From ba68179282b10a678962368d210d59144fe5c16e Mon Sep 17 00:00:00 2001 From: Sean Barag Date: Thu, 26 May 2022 23:43:17 +0000 Subject: [PATCH] ui: use esbuild-loader in webpack configs Transformations via Babel and JS minification via Terser took up a significant amount of time during UI builds due to the single-threaded nature of those tools. esbuild's multi-threaded behavior is significantly faster, but means babel-plugin-import [1] must be applied to committed files rather than applied at build-time for each build. esbuild-loader is a webpack plugin that uses esbuild for TypeScript and JavaScript transformation and minification in place of babel-loader and TerserWebpackPlugin respectively, with very few changes additional changes required but dramatic speed improvements. As measured on a 24-core Xeon machine with 32GB RAM via `./dev build`: Package babel-loader + terser esbuild-loader ------- --------------------- -------------- cluster-ui 71 s 29s db-console 157 s 30s Since building cluster-ui is a strict prerequisite for building db-console, this implies a time savings of roughly (157 s + 71 s) - (30 s + 29 s) == 169 seconds per build. Use esbuild-loader for UI bundling. [1] https://github.com/umijs/babel-plugin-import Release note: None --- Makefile | 59 +-- WORKSPACE | 8 +- build/bazelutil/seed_yarn_cache.bzl | 2 +- build/bazelutil/seed_yarn_cache.sh | 2 +- build/variables.mk | 6 +- pkg/cmd/dev/testdata/datadriven/ui | 10 +- pkg/cmd/dev/ui.go | 2 +- pkg/ui/README.md | 4 +- pkg/ui/not-yarn-workspace.sh | 1 + pkg/ui/workspaces/cluster-ui/.eslintrc.json | 4 +- pkg/ui/workspaces/cluster-ui/BUILD.bazel | 2 + pkg/ui/workspaces/cluster-ui/package.json | 6 +- .../databaseDetailsPage.tsx | 1 + .../databaseTablePage/databaseTablePage.tsx | 4 + .../src/databasesPage/databasesPage.tsx | 1 + .../src/dateRangeMenu/dateRangeMenu.tsx | 4 + .../src/graphs/visualization/index.tsx | 1 + .../src/indexDetailsPage/indexDetailsPage.tsx | 3 + .../workspaces/cluster-ui/src/modal/modal.tsx | 1 + .../cluster-ui/src/pagination/pagination.tsx | 3 +- .../cluster-ui/src/queryFilter/filter.tsx | 1 + .../cluster-ui/src/search/search.tsx | 5 +- .../selectWithDescription.tsx | 3 +- .../cluster-ui/src/sessions/index.ts | 4 +- .../src/sessions/sessionDetails.tsx | 2 + .../src/settings/booleanSetting.tsx | 1 + .../sortedtable/tableSpinner/tableSpinner.tsx | 2 + .../activeStatementDetails.tsx | 2 + .../src/statementDetails/statementDetails.tsx | 3 + .../activateStatementDiagnosticsModal.tsx | 7 + .../workspaces/cluster-ui/src/store/index.ts | 6 +- .../cluster-ui/src/summaryCard/index.tsx | 1 + .../workspaces/cluster-ui/src/table/table.tsx | 4 +- .../src/timeScaleDropdown/rangeSelect.tsx | 2 + .../timeScaleDropdown/timeFrameControls.tsx | 2 + .../activeTransactionDetails.tsx | 2 + .../transactionDetails/transactionDetails.tsx | 2 + pkg/ui/workspaces/cluster-ui/tsconfig.json | 1 + .../workspaces/cluster-ui/webpack.config.js | 31 +- pkg/ui/workspaces/cluster-ui/yarn.lock | 349 ++++++++++++++++-- pkg/ui/workspaces/db-console/BUILD.bazel | 10 +- pkg/ui/workspaces/db-console/karma.conf.js | 2 +- pkg/ui/workspaces/db-console/package.json | 5 +- .../src/components/dropdown/dropdown.tsx | 1 + .../db-console/src/components/modal/modal.tsx | 1 + .../rangeCalendar/rangeCalendar.tsx | 3 +- .../src/views/app/components/Search/index.tsx | 5 +- .../src/views/app/components/modal/index.tsx | 4 +- .../containers/nodesOverview/tableSection.tsx | 1 + .../src/views/hotRanges/hotRangesTable.tsx | 1 + .../db-console/src/views/jobs/jobDetails.tsx | 2 + .../containers/network/filter/index.tsx | 2 + .../containers/network/latency/index.tsx | 2 + .../containers/network/legend/index.tsx | 2 + .../reports/containers/network/sort/index.tsx | 2 + .../components/alertMessage/alertMessage.tsx | 2 + .../views/shared/components/drawer/index.tsx | 3 + .../views/shared/components/toolTip/index.tsx | 3 +- .../src/views/sqlActivity/sqlActivityPage.tsx | 1 + .../db-console/src/views/tracez/tracez.tsx | 1 + .../{webpack.app.js => webpack.config.js} | 78 ++-- .../workspaces/db-console/webpack.protos.js | 52 --- .../workspaces/db-console/webpack.vendor.js | 55 --- pkg/ui/workspaces/db-console/yarn.lock | 233 +++++++++++- .../workspaces/eslint-plugin-crdb/BUILD.bazel | 8 +- .../eslint-plugin-crdb/package.json | 1 + 66 files changed, 771 insertions(+), 263 deletions(-) rename pkg/ui/workspaces/db-console/{webpack.app.js => webpack.config.js} (83%) delete mode 100644 pkg/ui/workspaces/db-console/webpack.protos.js delete mode 100644 pkg/ui/workspaces/db-console/webpack.vendor.js diff --git a/Makefile b/Makefile index eda58cf26fb6..eeccce1369e8 100644 --- a/Makefile +++ b/Makefile @@ -355,6 +355,10 @@ $(GITHOOKSDIR)/%: githooks/% @ln -s ../../$(basename $<) $(dir $@) endif +ESLINT_PLUGIN_CRDB := pkg/ui/workspaces/eslint-plugin-crdb/dist/index.js +.SECONDARY: $(ESLINT_PLUGIN_CRDB) +$(ESLINT_PLUGIN_CRDB): $(shell find pkg/ui/workspaces/eslint-plugin-crdb/src -type f | grep -v '\.spec') pkg/ui/yarn.installed + $(NODE_RUN) -C pkg/ui/workspaces/eslint-plugin-crdb yarn build CLUSTER_UI_JS := pkg/ui/cluster-ui/dist/main.js @@ -369,9 +373,6 @@ pkg/ui/yarn.installed: pkg/ui/package.json pkg/ui/yarn.lock | bin/.submodules-in @# Also some linux distributions (that are used as development env) don't support some of @# optional dependencies (i.e. cypress) so it is important to make these deps optional. $(NODE_RUN) -C pkg/ui yarn install --ignore-optional --offline - @# We remove this broken dependency again in pkg/ui/workspaces/db-console/webpack.config.js. - @# See the comment there for details. - rm -rf pkg/ui/workspaces/db-console/node_modules/@types/node touch $@ vendor/modules.txt: | bin/.submodules-initialized @@ -1356,67 +1357,36 @@ ui-topo: pkg/ui/yarn.installed pkg/ui/workspaces/db-console/scripts/topo.js .PHONY: ui-lint -ui-lint: pkg/ui/yarn.installed $(UI_PROTOS_OSS) $(UI_PROTOS_CCL) +ui-lint: pkg/ui/yarn.installed $(ESLINT_PLUGIN_CRDB) $(UI_PROTOS_OSS) $(UI_PROTOS_CCL) $(CLUSTER_UI_JS) $(NODE_RUN) -C pkg/ui/workspaces/db-console $(STYLINT) -c .stylintrc styl $(NODE_RUN) -C pkg/ui/workspaces/db-console $(TSC) $(NODE_RUN) -C pkg/ui/workspaces/db-console yarn lint @if $(NODE_RUN) -C pkg/ui/workspaces/db-console yarn list | grep phantomjs; then echo ^ forbidden UI dependency >&2; exit 1; fi $(NODE_RUN) -C pkg/ui/workspaces/cluster-ui yarn --cwd pkg/ui/workspaces/cluster-ui lint -# DLLs are Webpack bundles, not Windows shared libraries. See "DLLs for speedy -# builds" in the UI README for details. -UI_CCL_DLLS := pkg/ui/workspaces/db-console/dist/protos.ccl.dll.js pkg/ui/workspaces/db-console/dist/vendor.oss.dll.js -UI_CCL_MANIFESTS := pkg/ui/workspaces/db-console/protos.ccl.manifest.json pkg/ui/workspaces/db-console/vendor.oss.manifest.json -UI_OSS_DLLS := $(subst .ccl,.oss,$(UI_CCL_DLLS)) -UI_OSS_MANIFESTS := $(subst .ccl,.oss,$(UI_CCL_MANIFESTS)) - -# (Ab)use pattern rules to teach Make that this one Webpack command produces two -# files. Normally, Make would run the recipe twice if dist/FOO.js and -# FOO-manifest.js were both out-of-date. [0] -# -# TODO(irfansharif): Ideally we'd scope the dependency on $(UI_PROTOS*) to the -# appropriate protos DLLs, but Make v3.81 has a bug that causes the dependency -# to be ignored [1]. We're stuck with this workaround until Apple decides to -# update the version of Make they ship with macOS or we require a newer version -# of Make. Such a requirement would need to be strictly enforced, as the way -# this fails is extremely subtle and doesn't present until the web UI is loaded -# in the browser. -# -# [0]: https://stackoverflow.com/a/3077254/1122351 -# [1]: http://savannah.gnu.org/bugs/?19108 -.SECONDARY: $(UI_CCL_DLLS) $(UI_CCL_MANIFESTS) $(UI_OSS_DLLS) $(UI_OSS_MANIFESTS) - -pkg/ui/workspaces/db-console/dist/%.oss.dll.js pkg/ui/workspaces/db-console/%.oss.manifest.json: export NODE_OPTIONS=--max-old-space-size=5000 -pkg/ui/workspaces/db-console/dist/%.oss.dll.js pkg/ui/workspaces/db-console/%.oss.manifest.json: pkg/ui/workspaces/db-console/webpack.%.js pkg/ui/yarn.installed $(CLUSTER_UI_JS) $(UI_PROTOS_OSS) - $(NODE_RUN) -C pkg/ui/workspaces/db-console $(WEBPACK) -p --config webpack.$*.js --env.dist=oss - -pkg/ui/workspaces/db-console/dist/%.ccl.dll.js pkg/ui/workspaces/db-console/%.ccl.manifest.json: export NODE_OPTIONS=--max-old-space-size=5000 -pkg/ui/workspaces/db-console/dist/%.ccl.dll.js pkg/ui/workspaces/db-console/%.ccl.manifest.json: pkg/ui/workspaces/db-console/webpack.%.js pkg/ui/yarn.installed $(CLUSTER_UI_JS) $(UI_PROTOS_CCL) - $(NODE_RUN) -C pkg/ui/workspaces/db-console $(WEBPACK) -p --config webpack.$*.js --env.dist=ccl - .PHONY: ui-test -ui-test: $(UI_CCL_DLLS) $(UI_CCL_MANIFESTS) +ui-test: $(UI_PROTOS_OSS) $(UI_PROTOS_CCL) $(CLUSTER_UI_JS) $(info $(yellow)NOTE: consider using `./dev ui test` instead of `make ui-test`$(term-reset)) $(NODE_RUN) -C pkg/ui/workspaces/db-console $(KARMA) start $(NODE_RUN) -C pkg/ui/workspaces/cluster-ui yarn ci .PHONY: ui-test-watch -ui-test-watch: $(UI_CCL_DLLS) $(UI_CCL_MANIFESTS) +ui-test-watch: $(UI_PROTOS_OSS) $(UI_PROTOS_CCL) $(CLUSTER_UI_JS) $(info $(yellow)NOTE: consider using `./dev ui test --watch` instead of `make ui-test-watch`$(term-reset)) $(NODE_RUN) -C pkg/ui/workspaces/db-console $(KARMA) start --no-single-run --auto-watch & \ $(NODE_RUN) -C pkg/ui/workspaces/cluster-ui yarn test .PHONY: ui-test-debug -ui-test-debug: $(UI_DLLS) $(UI_MANIFESTS) +ui-test-debug: $(UI_PROTOS_OSS) $(UI_PROTOS_CCL) $(CLUSTER_UI_JS) $(NODE_RUN) -C pkg/ui/workspaces/db-console $(KARMA) start --browsers Chrome --no-single-run --debug --auto-watch .SECONDARY: pkg/ui/assets.ccl.installed pkg/ui/assets.oss.installed -pkg/ui/assets.ccl.installed: $(UI_CCL_DLLS) $(UI_CCL_MANIFESTS) $(UI_JS_CCL) $(shell find pkg/ui/workspaces/db-console/ccl -type f) -pkg/ui/assets.oss.installed: $(UI_OSS_DLLS) $(UI_OSS_MANIFESTS) $(UI_JS_OSS) -pkg/ui/assets.%.installed: pkg/ui/workspaces/db-console/webpack.app.js $(shell find pkg/ui/workspaces/db-console/src pkg/ui/workspaces/db-console/styl -type f) | bin/.bootstrap +pkg/ui/assets.ccl.installed: $(UI_PROTOS_CCL) $(shell find pkg/ui/workspaces/db-console/ccl -type f) +pkg/ui/assets.oss.installed: $(UI_PROTOS_OSS) +pkg/ui/assets.%.installed: pkg/ui/workspaces/db-console/webpack.config.js $(CLUSTER_UI_JS) $(shell find pkg/ui/workspaces/db-console/src pkg/ui/workspaces/db-console/styl -type f) | bin/.bootstrap find pkg/ui/dist$*/assets -mindepth 1 -not -name .gitkeep -delete export NODE_OPTIONS=--max-old-space-size=5000 - $(NODE_RUN) -C pkg/ui/workspaces/db-console $(WEBPACK) --config webpack.app.js --env.dist=$* + $(NODE_RUN) -C pkg/ui/workspaces/db-console $(WEBPACK) --config webpack.config.js --env.dist=$* touch $@ pkg/ui/yarn.opt.installed: @@ -1430,7 +1400,7 @@ ui-watch-secure: export TARGET ?= https://localhost:8080/ .PHONY: ui-watch ui-watch: export TARGET ?= http://localhost:8080 ui-watch ui-watch-secure: PORT := 3000 -ui-watch ui-watch-secure: $(UI_CCL_DLLS) pkg/ui/yarn.opt.installed +ui-watch ui-watch-secure: $(UI_PROTOS_OSS) $(UI_PROTOS_CCL) pkg/ui/yarn.opt.installed # TODO (koorosh): running two webpack dev servers doesn't provide best performance and polling changes. # it has to be considered to use something like `parallel-webpack` lib. # @@ -1438,7 +1408,7 @@ ui-watch ui-watch-secure: $(UI_CCL_DLLS) pkg/ui/yarn.opt.installed # so it is safe to run yarn commands directly to preserve formatting and colors for outputs $(info $(yellow)NOTE: consider using `./dev ui watch [--secure]` instead of `make ui-watch[-secure]`$(term-reset)) yarn --cwd pkg/ui/workspaces/cluster-ui build:watch & \ - yarn --cwd pkg/ui/workspaces/db-console webpack-dev-server --config webpack.app.js --env.dist=ccl --env.WEBPACK_SERVE --port $(PORT) --mode "development" $(WEBPACK_DEV_SERVER_FLAGS) + yarn --cwd pkg/ui/workspaces/db-console webpack-dev-server --config webpack.config.js --env.dist=ccl --env.WEBPACK_SERVE --port $(PORT) --mode "development" $(WEBPACK_DEV_SERVER_FLAGS) .PHONY: ui-clean ui-clean: ## Remove build artifacts. @@ -1446,7 +1416,6 @@ ui-clean: ## Remove build artifacts. find pkg/ui/distccl/assets pkg/ui/distoss/assets -mindepth 1 -not -name .gitkeep -delete rm -rf pkg/ui/assets.ccl.installed pkg/ui/assets.oss.installed rm -f $(UI_PROTOS_CCL) $(UI_PROTOS_OSS) - rm -f pkg/ui/workspaces/db-console/*manifest.json rm -rf pkg/ui/workspaces/cluster-ui/dist .PHONY: ui-maintainer-clean diff --git a/WORKSPACE b/WORKSPACE index 710ca890cd31..fbbdbda0f790 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -4,7 +4,7 @@ workspace( name = "com_github_cockroachdb_cockroach", managed_directories = { "@yarn_vendor": ["pkg/ui/yarn-vendor"], - "@npm_eslint_rules": ["pkg/ui/workspaces/eslint-rules/node_modules"], + "@npm_eslint_plugin_crdb": ["pkg/ui/workspaces/eslint-plugin-crdb/node_modules"], "@npm_protos": ["pkg/ui/workspaces/db-console/src/js/node_modules"], "@npm_cluster_ui": ["pkg/ui/workspaces/cluster_ui/node_modules"], "@npm_db_console": ["pkg/ui/workspaces/db-console/node_modules"], @@ -248,7 +248,7 @@ seed_yarn_cache(name = "yarn_cache") # packages have isolated dependencies and must be installed as isolated # Bazel repositories. yarn_install( - name = "npm_eslint_rules", + name = "npm_eslint_plugin_crdb", args = [ "--offline", "--ignore-optional", @@ -257,9 +257,9 @@ yarn_install( "//pkg/ui:.yarnrc", "@yarn_cache//:.seed", ], - package_json = "//pkg/ui/workspaces/eslint-rules:package.json", + package_json = "//pkg/ui/workspaces/eslint-plugin-crdb:package.json", strict_visibility = False, - yarn_lock = "//pkg/ui/workspaces/eslint-rules:yarn.lock", + yarn_lock = "//pkg/ui/workspaces/eslint-plugin-crdb:yarn.lock", symlink_node_modules = True, ) diff --git a/build/bazelutil/seed_yarn_cache.bzl b/build/bazelutil/seed_yarn_cache.bzl index 75db349b2176..b29c80bddc89 100644 --- a/build/bazelutil/seed_yarn_cache.bzl +++ b/build/bazelutil/seed_yarn_cache.bzl @@ -41,7 +41,7 @@ def _seed_yarn_cache_impl(rctx): fail("Unable to seed yarn cache: " + res.stderr) paths = { - "eslint_rules": "pkg/ui/workspaces/eslint_rules", + "eslint_plugin_crdb": "pkg/ui/workspaces/eslint_plugin_crdb", "protos": "pkg/ui/workspaces/db-console/src/js", "cluster_ui": "pkg/ui/workspaces/cluster-ui", "db_console": "pkg/ui/workspaces/db-console", diff --git a/build/bazelutil/seed_yarn_cache.sh b/build/bazelutil/seed_yarn_cache.sh index 91919a360d20..10e1da889930 100755 --- a/build/bazelutil/seed_yarn_cache.sh +++ b/build/bazelutil/seed_yarn_cache.sh @@ -14,8 +14,8 @@ yarn \ --cwd $rootDir \ --modules-folder $moduleDir \ --offline \ - --ignore-optional \ --no-progress \ + --ignore-scripts \ --mutex network \ install diff --git a/build/variables.mk b/build/variables.mk index 290d1cfa96c5..8687a051d973 100644 --- a/build/variables.mk +++ b/build/variables.mk @@ -45,6 +45,7 @@ define VALID_VARS DYN_LIB_DIR ERRORS_PATH ERRORS_PROTO + ESLINT_PLUGIN_CRDB EVENTLOG_PROTOS EXECGEN_TARGETS EXTRA_XCMAKE_FLAGS @@ -103,7 +104,6 @@ define VALID_VARS MAKEFLAGS MAKE_TERMERR NCPUS - NODE_OPTIONS NODE_RUN OPTGEN_TARGETS PATH @@ -139,12 +139,8 @@ define VALID_VARS TSC TYPE TZ - UI_CCL_DLLS - UI_CCL_MANIFESTS UI_JS_CCL UI_JS_OSS - UI_OSS_DLLS - UI_OSS_MANIFESTS UI_PROTOS_CCL UI_PROTOS_OSS UI_TS_CCL diff --git a/pkg/cmd/dev/testdata/datadriven/ui b/pkg/cmd/dev/testdata/datadriven/ui index bd061e30aefa..2e7d87b09b0b 100644 --- a/pkg/cmd/dev/testdata/datadriven/ui +++ b/pkg/cmd/dev/testdata/datadriven/ui @@ -13,7 +13,7 @@ rm -rf crdb-checkout/pkg/ui/workspaces/cluster-ui/dist cp -r sandbox/pkg/ui/workspaces/cluster-ui/dist crdb-checkout/pkg/ui/workspaces/cluster-ui/dist bazel info workspace --color=no bazel run @yarn//:yarn -- --silent --cwd crdb-checkout/pkg/ui/workspaces/cluster-ui build:watch -bazel run @yarn//:yarn -- --silent --cwd crdb-checkout/pkg/ui/workspaces/db-console webpack-dev-server --config webpack.app.js --mode development --env.WEBPACK_SERVE --env.dist=ccl --env.target=http://localhost:8080 --port 3000 +bazel run @yarn//:yarn -- --silent --cwd crdb-checkout/pkg/ui/workspaces/db-console webpack-dev-server --config webpack.config.js --mode development --env.WEBPACK_SERVE --env.dist=ccl --env.target=http://localhost:8080 --port 3000 exec dev ui watch --oss @@ -28,7 +28,7 @@ rm -rf crdb-checkout/pkg/ui/workspaces/cluster-ui/dist cp -r sandbox/pkg/ui/workspaces/cluster-ui/dist crdb-checkout/pkg/ui/workspaces/cluster-ui/dist bazel info workspace --color=no bazel run @yarn//:yarn -- --silent --cwd crdb-checkout/pkg/ui/workspaces/cluster-ui build:watch -bazel run @yarn//:yarn -- --silent --cwd crdb-checkout/pkg/ui/workspaces/db-console webpack-dev-server --config webpack.app.js --mode development --env.WEBPACK_SERVE --env.dist=oss --env.target=http://localhost:8080 --port 3000 +bazel run @yarn//:yarn -- --silent --cwd crdb-checkout/pkg/ui/workspaces/db-console webpack-dev-server --config webpack.config.js --mode development --env.WEBPACK_SERVE --env.dist=oss --env.target=http://localhost:8080 --port 3000 exec dev ui watch --secure @@ -45,7 +45,7 @@ rm -rf crdb-checkout/pkg/ui/workspaces/cluster-ui/dist cp -r sandbox/pkg/ui/workspaces/cluster-ui/dist crdb-checkout/pkg/ui/workspaces/cluster-ui/dist bazel info workspace --color=no bazel run @yarn//:yarn -- --silent --cwd crdb-checkout/pkg/ui/workspaces/cluster-ui build:watch -bazel run @yarn//:yarn -- --silent --cwd crdb-checkout/pkg/ui/workspaces/db-console webpack-dev-server --config webpack.app.js --mode development --env.WEBPACK_SERVE --env.dist=ccl --env.target=http://localhost:8080 --port 3000 --https +bazel run @yarn//:yarn -- --silent --cwd crdb-checkout/pkg/ui/workspaces/db-console webpack-dev-server --config webpack.config.js --mode development --env.WEBPACK_SERVE --env.dist=ccl --env.target=http://localhost:8080 --port 3000 --https exec dev ui watch --db http://example.crdb.io:4848 @@ -62,7 +62,7 @@ rm -rf crdb-checkout/pkg/ui/workspaces/cluster-ui/dist cp -r sandbox/pkg/ui/workspaces/cluster-ui/dist crdb-checkout/pkg/ui/workspaces/cluster-ui/dist bazel info workspace --color=no bazel run @yarn//:yarn -- --silent --cwd crdb-checkout/pkg/ui/workspaces/cluster-ui build:watch -bazel run @yarn//:yarn -- --silent --cwd crdb-checkout/pkg/ui/workspaces/db-console webpack-dev-server --config webpack.app.js --mode development --env.WEBPACK_SERVE --env.dist=ccl --env.target=http://example.crdb.io:4848 --port 3000 +bazel run @yarn//:yarn -- --silent --cwd crdb-checkout/pkg/ui/workspaces/db-console webpack-dev-server --config webpack.config.js --mode development --env.WEBPACK_SERVE --env.dist=ccl --env.target=http://example.crdb.io:4848 --port 3000 exec dev ui watch --port 12345 @@ -79,7 +79,7 @@ rm -rf crdb-checkout/pkg/ui/workspaces/cluster-ui/dist cp -r sandbox/pkg/ui/workspaces/cluster-ui/dist crdb-checkout/pkg/ui/workspaces/cluster-ui/dist bazel info workspace --color=no bazel run @yarn//:yarn -- --silent --cwd crdb-checkout/pkg/ui/workspaces/cluster-ui build:watch -bazel run @yarn//:yarn -- --silent --cwd crdb-checkout/pkg/ui/workspaces/db-console webpack-dev-server --config webpack.app.js --mode development --env.WEBPACK_SERVE --env.dist=ccl --env.target=http://localhost:8080 --port 12345 +bazel run @yarn//:yarn -- --silent --cwd crdb-checkout/pkg/ui/workspaces/db-console webpack-dev-server --config webpack.config.js --mode development --env.WEBPACK_SERVE --env.dist=ccl --env.target=http://localhost:8080 --port 12345 exec dev ui lint diff --git a/pkg/cmd/dev/ui.go b/pkg/cmd/dev/ui.go index 5bc412848913..f646f6a1e55f 100644 --- a/pkg/cmd/dev/ui.go +++ b/pkg/cmd/dev/ui.go @@ -177,7 +177,7 @@ Replaces 'make ui-watch'.`, "--cwd", dirs.dbConsole, "webpack-dev-server", - "--config", "webpack.app.js", + "--config", "webpack.config.js", "--mode", "development", // Polyfill WEBPACK_SERVE for webpack v4; it's set in webpack v5 via // `webpack serve`. diff --git a/pkg/ui/README.md b/pkg/ui/README.md index afdc7e86cd1b..f53d48dca513 100644 --- a/pkg/ui/README.md +++ b/pkg/ui/README.md @@ -225,10 +225,8 @@ contingent upon resolving the above TODO. [cockroachdb/yarn-vendored]: https://github.com/cockroachdb/yarn-vendored [dcodeIO/protobuf.js#716]: https://github.com/dcodeIO/protobuf.js#716 -[main app bundle]: ./webpack.app.js +[main app bundle]: ./webpack.config.js [Git LFS]: https://git-lfs.github.com [offline mirror]: https://yarnpkg.com/blog/2016/11/24/offline-mirror/ -[protos DLL]: ./webpack.protos.js -[vendor DLL]: ./webpack.vendor.js [.yarnrc]: ./yarnrc [yarn-vendor]: ./yarn-vendor diff --git a/pkg/ui/not-yarn-workspace.sh b/pkg/ui/not-yarn-workspace.sh index 73dbdff4ee29..fbc80c3e90f4 100755 --- a/pkg/ui/not-yarn-workspace.sh +++ b/pkg/ui/not-yarn-workspace.sh @@ -3,6 +3,7 @@ set -euo pipefail ( set -x + yarn --cwd workspaces/eslint-plugin-crdb install yarn --cwd workspaces/db-console/src/js install yarn --cwd workspaces/cluster-ui install yarn --cwd workspaces/db-console install diff --git a/pkg/ui/workspaces/cluster-ui/.eslintrc.json b/pkg/ui/workspaces/cluster-ui/.eslintrc.json index d92f34cdc0e1..f1e039bda2c6 100644 --- a/pkg/ui/workspaces/cluster-ui/.eslintrc.json +++ b/pkg/ui/workspaces/cluster-ui/.eslintrc.json @@ -1,6 +1,7 @@ { "root": true, "extends": "@cockroachlabs/eslint-config", + "plugins": ["@cockroachlabs/eslint-plugin-crdb"], "env": { "browser": true, "node": true @@ -9,6 +10,7 @@ "@typescript-eslint/interface-name-prefix": "off", "@typescript-eslint/no-explicit-any": "warn", "@typescript-eslint/no-namespace": "off", - "@typescript-eslint/no-unused-vars": ["warn", { "argsIgnorePattern": "^_" }] + "@typescript-eslint/no-unused-vars": ["warn", { "argsIgnorePattern": "^_" }], + "@cockroachlabs/crdb/require-antd-style-import": "error" } } diff --git a/pkg/ui/workspaces/cluster-ui/BUILD.bazel b/pkg/ui/workspaces/cluster-ui/BUILD.bazel index 5a96b32205ce..bf4478938f09 100644 --- a/pkg/ui/workspaces/cluster-ui/BUILD.bazel +++ b/pkg/ui/workspaces/cluster-ui/BUILD.bazel @@ -73,6 +73,7 @@ DEPENDENCIES = [ "@npm_cluster_ui//d3-scale", "@npm_cluster_ui//enzyme", "@npm_cluster_ui//enzyme-adapter-react-16", + "@npm_cluster_ui//esbuild-loader", "@npm_cluster_ui//eslint", "@npm_cluster_ui//eslint-config-prettier", "@npm_cluster_ui//eslint-plugin-prettier", @@ -216,6 +217,7 @@ eslint_test( ".prettierignore", "prettier.config.js", "src", + "//pkg/ui/workspaces/eslint-plugin-crdb", "@npm_cluster_ui//@cockroachlabs/eslint-config", "@npm_cluster_ui//@testing-library/react", "@npm_cluster_ui//@testing-library/user-event", diff --git a/pkg/ui/workspaces/cluster-ui/package.json b/pkg/ui/workspaces/cluster-ui/package.json index 55cf22e3463a..611559a5b77a 100644 --- a/pkg/ui/workspaces/cluster-ui/package.json +++ b/pkg/ui/workspaces/cluster-ui/package.json @@ -44,6 +44,7 @@ "@cockroachlabs/crdb-protobuf-client": "link:../db-console/src/js", "@cockroachlabs/design-tokens": "0.4.5", "@cockroachlabs/eslint-config": "^0.1.11", + "@cockroachlabs/eslint-plugin-crdb": "link:../eslint-plugin-crdb", "@cockroachlabs/icons": "0.3.0", "@cockroachlabs/ui-components": "0.2.20", "@popperjs/core": "^2.4.0", @@ -93,6 +94,8 @@ "d3-scale": "^3.2.3", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.2", + "esbuild": "0.14.43", + "esbuild-loader": "^2.19.0", "eslint": "^6.8.0", "eslint-config-prettier": "^6.10.0", "eslint-plugin-prettier": "^3.1.2", @@ -162,6 +165,7 @@ "yargs-parser": "~13.1.2", "protobufjs": "6.8.6", "**/jest-environment-jsdom": "^27.5.1", - "aria-query": "file:../../yarn-vendor/aria-query-5.0.0-no-spaced-files.tgz" + "aria-query": "file:../../yarn-vendor/aria-query-5.0.0-no-spaced-files.tgz", + "esbuild": "0.14.43" } } diff --git a/pkg/ui/workspaces/cluster-ui/src/databaseDetailsPage/databaseDetailsPage.tsx b/pkg/ui/workspaces/cluster-ui/src/databaseDetailsPage/databaseDetailsPage.tsx index bee992f68460..0f3330803c3f 100644 --- a/pkg/ui/workspaces/cluster-ui/src/databaseDetailsPage/databaseDetailsPage.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/databaseDetailsPage/databaseDetailsPage.tsx @@ -11,6 +11,7 @@ import React from "react"; import { Link, RouteComponentProps } from "react-router-dom"; import { Tooltip } from "antd"; +import "antd/lib/tooltip/style"; import classNames from "classnames/bind"; import { Breadcrumbs } from "src/breadcrumbs"; import { Dropdown, DropdownOption } from "src/dropdown"; diff --git a/pkg/ui/workspaces/cluster-ui/src/databaseTablePage/databaseTablePage.tsx b/pkg/ui/workspaces/cluster-ui/src/databaseTablePage/databaseTablePage.tsx index 2097ca57a652..878e5e01f2e5 100644 --- a/pkg/ui/workspaces/cluster-ui/src/databaseTablePage/databaseTablePage.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/databaseTablePage/databaseTablePage.tsx @@ -10,9 +10,13 @@ import React from "react"; import { Col, Row, Tabs } from "antd"; +import "antd/lib/col/style"; +import "antd/lib/row/style"; +import "antd/lib/tabs/style"; import { RouteComponentProps } from "react-router-dom"; import classNames from "classnames/bind"; import { Tooltip } from "antd"; +import "antd/lib/tooltip/style"; import { Heading } from "@cockroachlabs/ui-components"; import { Anchor } from "src/anchor"; diff --git a/pkg/ui/workspaces/cluster-ui/src/databasesPage/databasesPage.tsx b/pkg/ui/workspaces/cluster-ui/src/databasesPage/databasesPage.tsx index dcdbd7327a7d..2126a5c325ba 100644 --- a/pkg/ui/workspaces/cluster-ui/src/databasesPage/databasesPage.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/databasesPage/databasesPage.tsx @@ -11,6 +11,7 @@ import React from "react"; import { Link, RouteComponentProps } from "react-router-dom"; import { Tooltip } from "antd"; +import "antd/lib/tooltip/style"; import classNames from "classnames/bind"; import { Anchor } from "src/anchor"; diff --git a/pkg/ui/workspaces/cluster-ui/src/dateRangeMenu/dateRangeMenu.tsx b/pkg/ui/workspaces/cluster-ui/src/dateRangeMenu/dateRangeMenu.tsx index 8f02e73b8030..1a5d8a0a2a5a 100644 --- a/pkg/ui/workspaces/cluster-ui/src/dateRangeMenu/dateRangeMenu.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/dateRangeMenu/dateRangeMenu.tsx @@ -10,6 +10,10 @@ import React, { useState } from "react"; import { Alert, DatePicker, Icon, TimePicker } from "antd"; +import "antd/lib/time-picker/style"; +import "antd/lib/icon/style"; +import "antd/lib/date-picker/style"; +import "antd/lib/alert/style"; import moment, { Moment } from "moment"; import classNames from "classnames/bind"; import { Time as TimeIcon, ErrorCircleFilled } from "@cockroachlabs/icons"; diff --git a/pkg/ui/workspaces/cluster-ui/src/graphs/visualization/index.tsx b/pkg/ui/workspaces/cluster-ui/src/graphs/visualization/index.tsx index b46303152e21..f4d3b32069b9 100644 --- a/pkg/ui/workspaces/cluster-ui/src/graphs/visualization/index.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/graphs/visualization/index.tsx @@ -12,6 +12,7 @@ import React from "react"; import classNames from "classnames/bind"; import spinner from "src/assets/spinner.gif"; import { Tooltip } from "antd"; +import "antd/lib/tooltip/style"; import styles from "./visualizations.module.scss"; const cx = classNames.bind(styles); diff --git a/pkg/ui/workspaces/cluster-ui/src/indexDetailsPage/indexDetailsPage.tsx b/pkg/ui/workspaces/cluster-ui/src/indexDetailsPage/indexDetailsPage.tsx index d6746ae37163..c55c4cb9ad7f 100644 --- a/pkg/ui/workspaces/cluster-ui/src/indexDetailsPage/indexDetailsPage.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/indexDetailsPage/indexDetailsPage.tsx @@ -19,6 +19,9 @@ import { BreadcrumbItem, Breadcrumbs } from "../breadcrumbs"; import { Caution, Search as IndexIcon } from "@cockroachlabs/icons"; import { SqlBox } from "src/sql"; import { Col, Row, Tooltip } from "antd"; +import "antd/lib/col/style"; +import "antd/lib/row/style"; +import "antd/lib/tooltip/style"; import { SummaryCard } from "../summaryCard"; import moment, { Moment } from "moment"; import { Heading } from "@cockroachlabs/ui-components"; diff --git a/pkg/ui/workspaces/cluster-ui/src/modal/modal.tsx b/pkg/ui/workspaces/cluster-ui/src/modal/modal.tsx index 11a3d2f6175f..20d6d6cfecd7 100644 --- a/pkg/ui/workspaces/cluster-ui/src/modal/modal.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/modal/modal.tsx @@ -11,6 +11,7 @@ import React from "react"; import classNames from "classnames/bind"; import { Modal as AntModal } from "antd"; +import "antd/lib/modal/style"; import { Button } from "../button"; import { Text, TextTypes } from "../text"; import styles from "./modal.module.scss"; diff --git a/pkg/ui/workspaces/cluster-ui/src/pagination/pagination.tsx b/pkg/ui/workspaces/cluster-ui/src/pagination/pagination.tsx index 5eaa7a86c5b9..99d6c4c0b8aa 100644 --- a/pkg/ui/workspaces/cluster-ui/src/pagination/pagination.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/pagination/pagination.tsx @@ -10,7 +10,8 @@ import React from "react"; import { Pagination as AntPagination } from "antd"; -import { PaginationProps as AntPaginationProps } from "antd/lib/pagination"; +import "antd/lib/pagination/style"; +import type { PaginationProps as AntPaginationProps } from "antd/lib/pagination"; import classNames from "classnames/bind"; import styles from "./pagination.module.scss"; diff --git a/pkg/ui/workspaces/cluster-ui/src/queryFilter/filter.tsx b/pkg/ui/workspaces/cluster-ui/src/queryFilter/filter.tsx index 5df6f2072918..e7ab48bd1336 100644 --- a/pkg/ui/workspaces/cluster-ui/src/queryFilter/filter.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/queryFilter/filter.tsx @@ -13,6 +13,7 @@ import Select from "react-select"; import { Button } from "../button"; import { CaretDown } from "@cockroachlabs/icons"; import { Input } from "antd"; +import "antd/lib/input/style"; import { History } from "history"; import { isEqual } from "lodash"; import { diff --git a/pkg/ui/workspaces/cluster-ui/src/search/search.tsx b/pkg/ui/workspaces/cluster-ui/src/search/search.tsx index e3cbb746f00f..e2fe4aefddce 100644 --- a/pkg/ui/workspaces/cluster-ui/src/search/search.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/search/search.tsx @@ -10,7 +10,10 @@ import React from "react"; import { Button, Form, Input } from "antd"; -import { InputProps } from "antd/lib/input"; +import "antd/lib/button/style"; +import "antd/lib/form/style"; +import "antd/lib/input/style"; +import type { InputProps } from "antd/lib/input"; import classNames from "classnames/bind"; import { noop } from "lodash"; import { diff --git a/pkg/ui/workspaces/cluster-ui/src/selectWithDescription/selectWithDescription.tsx b/pkg/ui/workspaces/cluster-ui/src/selectWithDescription/selectWithDescription.tsx index c5bca07598f3..6adf6dabb032 100644 --- a/pkg/ui/workspaces/cluster-ui/src/selectWithDescription/selectWithDescription.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/selectWithDescription/selectWithDescription.tsx @@ -12,7 +12,8 @@ import React, { useState } from "react"; import classNames from "classnames/bind"; import { CaretUp, CaretDown } from "@cockroachlabs/icons"; import { Radio } from "antd"; -import { RadioChangeEvent } from "antd/lib/radio"; +import "antd/lib/radio/style"; +import type { RadioChangeEvent } from "antd/lib/radio"; import { Button } from "../button"; import styles from "../statementsPage/statementTypeSelect.module.scss"; diff --git a/pkg/ui/workspaces/cluster-ui/src/sessions/index.ts b/pkg/ui/workspaces/cluster-ui/src/sessions/index.ts index 979cc36a497f..27f7ba4a757d 100644 --- a/pkg/ui/workspaces/cluster-ui/src/sessions/index.ts +++ b/pkg/ui/workspaces/cluster-ui/src/sessions/index.ts @@ -9,7 +9,9 @@ // licenses/APL.txt. export * from "./sessionsPage"; -export { SessionDetailsProps, SessionDetails } from "./sessionDetails"; +export { SessionDetails } from "./sessionDetails"; export * from "./sessionsPageConnected"; export * from "./sessionDetailsConnected"; export { byteArrayToUuid } from "./sessionsTable"; + +export type { SessionDetailsProps } from "./sessionDetails"; diff --git a/pkg/ui/workspaces/cluster-ui/src/sessions/sessionDetails.tsx b/pkg/ui/workspaces/cluster-ui/src/sessions/sessionDetails.tsx index efbda89016d0..0f1dcc5901e8 100644 --- a/pkg/ui/workspaces/cluster-ui/src/sessions/sessionDetails.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/sessions/sessionDetails.tsx @@ -28,6 +28,8 @@ import SQLActivityError from "../sqlActivity/errorComponent"; import { TimestampToMoment } from "src/util/convert"; import { Bytes, DATE_FORMAT } from "src/util/format"; import { Col, Row } from "antd"; +import "antd/lib/col/style"; +import "antd/lib/row/style"; import TerminateSessionModal, { TerminateSessionModalRef, diff --git a/pkg/ui/workspaces/cluster-ui/src/settings/booleanSetting.tsx b/pkg/ui/workspaces/cluster-ui/src/settings/booleanSetting.tsx index 6edf739f617a..d354f6d4ea7b 100644 --- a/pkg/ui/workspaces/cluster-ui/src/settings/booleanSetting.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/settings/booleanSetting.tsx @@ -11,6 +11,7 @@ import * as React from "react"; import { CircleFilled } from "src/icon"; import { Tooltip } from "antd"; +import "antd/lib/tooltip/style"; import classNames from "classnames/bind"; import styles from "./booleanSetting.module.scss"; diff --git a/pkg/ui/workspaces/cluster-ui/src/sortedtable/tableSpinner/tableSpinner.tsx b/pkg/ui/workspaces/cluster-ui/src/sortedtable/tableSpinner/tableSpinner.tsx index 5b70159b81ca..b9c947633db6 100644 --- a/pkg/ui/workspaces/cluster-ui/src/sortedtable/tableSpinner/tableSpinner.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/sortedtable/tableSpinner/tableSpinner.tsx @@ -11,6 +11,8 @@ import React from "react"; import { Spinner } from "@cockroachlabs/icons"; import { Spin, Icon } from "antd"; +import "antd/lib/spin/style"; +import "antd/lib/icon/style"; import classNames from "classnames/bind"; import styles from "./tableSpinner.module.scss"; diff --git a/pkg/ui/workspaces/cluster-ui/src/statementDetails/activeStatementDetails.tsx b/pkg/ui/workspaces/cluster-ui/src/statementDetails/activeStatementDetails.tsx index ac1cc8097cef..bf8c1e3f1ad2 100644 --- a/pkg/ui/workspaces/cluster-ui/src/statementDetails/activeStatementDetails.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/statementDetails/activeStatementDetails.tsx @@ -17,6 +17,8 @@ import { commonStyles } from "src/common"; import classNames from "classnames/bind"; import { Link, useHistory, match } from "react-router-dom"; import { Col, Row } from "antd"; +import "antd/lib/col/style"; +import "antd/lib/row/style"; import { SummaryCard } from "src/summaryCard"; import summaryCardStyles from "src/summaryCard/summaryCard.module.scss"; diff --git a/pkg/ui/workspaces/cluster-ui/src/statementDetails/statementDetails.tsx b/pkg/ui/workspaces/cluster-ui/src/statementDetails/statementDetails.tsx index a62016255e47..5e37b3fb494c 100644 --- a/pkg/ui/workspaces/cluster-ui/src/statementDetails/statementDetails.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/statementDetails/statementDetails.tsx @@ -10,6 +10,9 @@ import React, { ReactNode } from "react"; import { Col, Row, Tabs } from "antd"; +import "antd/lib/col/style"; +import "antd/lib/row/style"; +import "antd/lib/tabs/style"; import { cockroach, google } from "@cockroachlabs/crdb-protobuf-client"; import { Text, InlineAlert } from "@cockroachlabs/ui-components"; import { ArrowLeft } from "@cockroachlabs/icons"; diff --git a/pkg/ui/workspaces/cluster-ui/src/statementsDiagnostics/activateStatementDiagnosticsModal.tsx b/pkg/ui/workspaces/cluster-ui/src/statementsDiagnostics/activateStatementDiagnosticsModal.tsx index 323bf26804b0..404a26fcac5e 100644 --- a/pkg/ui/workspaces/cluster-ui/src/statementsDiagnostics/activateStatementDiagnosticsModal.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/statementsDiagnostics/activateStatementDiagnosticsModal.tsx @@ -9,6 +9,13 @@ // licenses/APL.txt. import { Radio, Button, Input, Checkbox, Divider, Select, Alert } from "antd"; +import "antd/lib/radio/style"; +import "antd/lib/button/style"; +import "antd/lib/input/style"; +import "antd/lib/checkbox/style"; +import "antd/lib/divider/style"; +import "antd/lib/select/style"; +import "antd/lib/alert/style"; import React, { useState, useCallback, useImperativeHandle } from "react"; import { Modal } from "src/modal"; import { Anchor } from "src/anchor"; diff --git a/pkg/ui/workspaces/cluster-ui/src/store/index.ts b/pkg/ui/workspaces/cluster-ui/src/store/index.ts index cf18010eaf94..bdd97f3f7260 100644 --- a/pkg/ui/workspaces/cluster-ui/src/store/index.ts +++ b/pkg/ui/workspaces/cluster-ui/src/store/index.ts @@ -11,5 +11,7 @@ export { sagas } from "./sagas"; export { notificationAction } from "./notifications"; export { actions as analyticsActions } from "./analytics"; -export { actions as uiConfigActions, UIConfigState } from "./uiConfig"; -export { rootReducer, AppState, rootActions } from "./reducers"; +export { actions as uiConfigActions } from "./uiConfig"; +export { rootReducer, rootActions } from "./reducers"; +export type { UIConfigState } from "./uiConfig"; +export type { AppState } from "./reducers"; diff --git a/pkg/ui/workspaces/cluster-ui/src/summaryCard/index.tsx b/pkg/ui/workspaces/cluster-ui/src/summaryCard/index.tsx index 5da8df98a42c..86517c2553a0 100644 --- a/pkg/ui/workspaces/cluster-ui/src/summaryCard/index.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/summaryCard/index.tsx @@ -14,6 +14,7 @@ import styles from "./summaryCard.module.scss"; import booleanSettingStyles from "../settings/booleanSetting.module.scss"; import { CircleFilled } from "src/icon"; import { Tooltip } from "antd"; +import "antd/lib/tooltip/style"; interface ISummaryCardProps { children: React.ReactNode; diff --git a/pkg/ui/workspaces/cluster-ui/src/table/table.tsx b/pkg/ui/workspaces/cluster-ui/src/table/table.tsx index f928f402feec..d1ca33c7a844 100644 --- a/pkg/ui/workspaces/cluster-ui/src/table/table.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/table/table.tsx @@ -10,7 +10,9 @@ import React from "react"; import { Table as AntTable, ConfigProvider } from "antd"; -import { ColumnProps } from "antd/lib/table"; +import "antd/lib/table/style"; +import "antd/lib/config-provider/style"; +import type { ColumnProps } from "antd/lib/table"; import classnames from "classnames/bind"; import styles from "./table.module.scss"; diff --git a/pkg/ui/workspaces/cluster-ui/src/timeScaleDropdown/rangeSelect.tsx b/pkg/ui/workspaces/cluster-ui/src/timeScaleDropdown/rangeSelect.tsx index 5918c201a256..28006967060d 100644 --- a/pkg/ui/workspaces/cluster-ui/src/timeScaleDropdown/rangeSelect.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/timeScaleDropdown/rangeSelect.tsx @@ -10,6 +10,8 @@ import React, { useState, useRef } from "react"; import { Button, Dropdown } from "antd"; +import "antd/lib/button/style"; +import "antd/lib/dropdown/style"; import moment, { Moment } from "moment"; import { DateRangeMenu } from "src/dateRangeMenu"; import { CaretDown } from "src/icon/caretDown"; diff --git a/pkg/ui/workspaces/cluster-ui/src/timeScaleDropdown/timeFrameControls.tsx b/pkg/ui/workspaces/cluster-ui/src/timeScaleDropdown/timeFrameControls.tsx index 19c1c4b858b5..9d87d72c7e0b 100644 --- a/pkg/ui/workspaces/cluster-ui/src/timeScaleDropdown/timeFrameControls.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/timeScaleDropdown/timeFrameControls.tsx @@ -11,6 +11,8 @@ import React from "react"; import classNames from "classnames/bind"; import { Button, Tooltip } from "antd"; +import "antd/lib/button/style"; +import "antd/lib/tooltip/style"; import { CaretLeft, CaretRight } from "@cockroachlabs/icons"; import { ArrowDirection } from "./timeScaleTypes"; diff --git a/pkg/ui/workspaces/cluster-ui/src/transactionDetails/activeTransactionDetails.tsx b/pkg/ui/workspaces/cluster-ui/src/transactionDetails/activeTransactionDetails.tsx index 7b99cec859cd..e519494b29c7 100644 --- a/pkg/ui/workspaces/cluster-ui/src/transactionDetails/activeTransactionDetails.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/transactionDetails/activeTransactionDetails.tsx @@ -18,6 +18,8 @@ import { SqlBox } from "src/sql/box"; import classNames from "classnames/bind"; import { Link, useHistory, match } from "react-router-dom"; import { Col, Row } from "antd"; +import "antd/lib/col/style"; +import "antd/lib/row/style"; import { SummaryCard } from "src/summaryCard"; import summaryCardStyles from "src/summaryCard/summaryCard.module.scss"; diff --git a/pkg/ui/workspaces/cluster-ui/src/transactionDetails/transactionDetails.tsx b/pkg/ui/workspaces/cluster-ui/src/transactionDetails/transactionDetails.tsx index 912aab586a47..d160aaaa609a 100644 --- a/pkg/ui/workspaces/cluster-ui/src/transactionDetails/transactionDetails.tsx +++ b/pkg/ui/workspaces/cluster-ui/src/transactionDetails/transactionDetails.tsx @@ -47,6 +47,8 @@ import SQLActivityError from "../sqlActivity/errorComponent"; import summaryCardStyles from "../summaryCard/summaryCard.module.scss"; import transactionDetailsStyles from "./transactionDetails.modules.scss"; import { Col, Row } from "antd"; +import "antd/lib/col/style"; +import "antd/lib/row/style"; import { Text, Heading } from "@cockroachlabs/ui-components"; import { formatTwoPlaces } from "../barCharts"; import { ArrowLeft } from "@cockroachlabs/icons"; diff --git a/pkg/ui/workspaces/cluster-ui/tsconfig.json b/pkg/ui/workspaces/cluster-ui/tsconfig.json index 64dd65627318..7a995ea0dfa2 100644 --- a/pkg/ui/workspaces/cluster-ui/tsconfig.json +++ b/pkg/ui/workspaces/cluster-ui/tsconfig.json @@ -4,6 +4,7 @@ "allowJs": false, "emitDeclarationOnly": true, "esModuleInterop": true, + "isolatedModules": true, "declaration": true, "jsx": "react", "module": "ESNext", diff --git a/pkg/ui/workspaces/cluster-ui/webpack.config.js b/pkg/ui/workspaces/cluster-ui/webpack.config.js index 65017e37c079..9e47942bb1e3 100644 --- a/pkg/ui/workspaces/cluster-ui/webpack.config.js +++ b/pkg/ui/workspaces/cluster-ui/webpack.config.js @@ -12,6 +12,7 @@ const path = require("path"); const webpack = require("webpack"); const WebpackBar = require("webpackbar"); const MomentLocalesPlugin = require("moment-locales-webpack-plugin"); +const { ESBuildMinifyPlugin } = require("esbuild-loader"); // tslint:disable:object-literal-sort-keys module.exports = (env, argv) => { @@ -70,7 +71,7 @@ module.exports = (env, argv) => { } }, }, - "sass-loader" + "sass-loader", ], }, // Ant design styles defined as global styles with .scss files which don't follow @@ -85,7 +86,13 @@ module.exports = (env, argv) => { { test: /\.(ts|js)x?$/, use: [ - "babel-loader", + { + loader: "esbuild-loader", + options: { + loader: "tsx", + target: "es6", + }, + }, { loader: "astroturf/loader", options: {extension: ".module.scss"}, @@ -125,12 +132,30 @@ module.exports = (env, argv) => { }, { test: /\.css$/, - use: ["style-loader", "css-loader"], + use: [ + "style-loader", + "css-loader", + { + loader: "esbuild-loader", + options: { + loader: "css", + minify: true, + }, + }, + ], exclude: /node_modules/, }, ], }, + optimization: { + minimizer: [ + new ESBuildMinifyPlugin({ + target: "es6", + }), + ], + }, + plugins: [ new WebpackBar({ name: "cluster-ui", diff --git a/pkg/ui/workspaces/cluster-ui/yarn.lock b/pkg/ui/workspaces/cluster-ui/yarn.lock index c42445bfaf93..bf80f0d2cfe8 100644 --- a/pkg/ui/workspaces/cluster-ui/yarn.lock +++ b/pkg/ui/workspaces/cluster-ui/yarn.lock @@ -1594,6 +1594,10 @@ "@typescript-eslint/parser" "^2.34.0" eslint-config-prettier "^6.11.0" +"@cockroachlabs/eslint-plugin-crdb@link:../eslint-plugin-crdb": + version "0.0.0" + uid "" + "@cockroachlabs/icons@0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@cockroachlabs/icons/-/icons-0.3.0.tgz#160573074396f266e92fcbe5e520c5ba1d8750f9" @@ -2054,9 +2058,9 @@ integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== "@nodelib/fs.walk@^1.2.3": - version "1.2.7" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz#94c23db18ee4653e129abd26fb06f870ac9e1ee2" - integrity sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA== + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" @@ -3075,11 +3079,16 @@ jest-matcher-utils "^27.0.0" pretty-format "^27.0.0" -"@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.7": +"@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": version "7.0.7" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== +"@types/json-schema@^7.0.7": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + "@types/lodash@^4.14.149": version "4.14.170" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.170.tgz#0d67711d4bf7f4ca5147e9091b847479b87925d6" @@ -3395,7 +3404,7 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.1.1", "@typescript-eslint/eslint-plugin@^4.22.0": +"@typescript-eslint/eslint-plugin@^4.1.1": version "4.29.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.1.tgz#808d206e2278e809292b5de752a91105da85860b" integrity sha512-AHqIU+SqZZgBEiWOrtN94ldR3ZUABV5dUG94j8Nms9rQnHFc8fvDOue/58K4CFz6r8OtDDc35Pw9NQPWo0Ayrw== @@ -3408,6 +3417,20 @@ semver "^7.3.5" tsutils "^3.21.0" +"@typescript-eslint/eslint-plugin@^4.22.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" + integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== + dependencies: + "@typescript-eslint/experimental-utils" "4.33.0" + "@typescript-eslint/scope-manager" "4.33.0" + debug "^4.3.1" + functional-red-black-tree "^1.0.1" + ignore "^5.1.8" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" + "@typescript-eslint/experimental-utils@4.29.1": version "4.29.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.1.tgz#0af2b17b0296b60c6b207f11062119fa9c5a8994" @@ -3420,7 +3443,19 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^2.34.0", "@typescript-eslint/parser@^4.1.1", "@typescript-eslint/parser@^4.22.0": +"@typescript-eslint/experimental-utils@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" + integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/parser@^2.34.0", "@typescript-eslint/parser@^4.1.1": version "4.29.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.1.tgz#17dfbb45c9032ffa0fe15881d20fbc2a4bdeb02d" integrity sha512-3fL5iN20hzX3Q4OkG7QEPFjZV2qsVGiDhEwwh+EkmE/w7oteiOvUNzmpu5eSwGJX/anCryONltJ3WDmAzAoCMg== @@ -3430,6 +3465,16 @@ "@typescript-eslint/typescript-estree" "4.29.1" debug "^4.3.1" +"@typescript-eslint/parser@^4.22.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" + integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== + dependencies: + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + debug "^4.3.1" + "@typescript-eslint/scope-manager@4.29.1": version "4.29.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.1.tgz#f25da25bc6512812efa2ce5ebd36619d68e61358" @@ -3438,11 +3483,24 @@ "@typescript-eslint/types" "4.29.1" "@typescript-eslint/visitor-keys" "4.29.1" +"@typescript-eslint/scope-manager@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" + integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + "@typescript-eslint/types@4.29.1": version "4.29.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.1.tgz#94cce6cf7cc83451df03339cda99d326be2feaf5" integrity sha512-Jj2yu78IRfw4nlaLtKjVaGaxh/6FhofmQ/j8v3NXmAiKafbIqtAPnKYrf0sbGjKdj0hS316J8WhnGnErbJ4RCA== +"@typescript-eslint/types@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" + integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== + "@typescript-eslint/typescript-estree@4.29.1": version "4.29.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.1.tgz#7b32a25ff8e51f2671ccc6b26cdbee3b1e6c5e7f" @@ -3456,6 +3514,19 @@ semver "^7.3.5" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + "@typescript-eslint/visitor-keys@4.29.1": version "4.29.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.1.tgz#0615be8b55721f5e854f3ee99f1a714f2d093e5d" @@ -3464,6 +3535,14 @@ "@typescript-eslint/types" "4.29.1" eslint-visitor-keys "^2.0.0" +"@typescript-eslint/visitor-keys@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" + integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== + dependencies: + "@typescript-eslint/types" "4.33.0" + eslint-visitor-keys "^2.0.0" + "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -4544,7 +4623,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1, braces@~3.0.2: +braces@^3.0.1, braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -5730,13 +5809,20 @@ debug@^3.0.0: dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" +debug@^4.3.1: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -6359,6 +6445,144 @@ es6-shim@^0.35.5: resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.6.tgz#d10578301a83af2de58b9eadb7c2c9945f7388a0" integrity sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA== +esbuild-android-64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.43.tgz#59bf3edad6863c27aa92bbb5c1d83a9a5c981495" + integrity sha512-kqFXAS72K6cNrB6RiM7YJ5lNvmWRDSlpi7ZuRZ1hu1S3w0zlwcoCxWAyM23LQUyZSs1PbjHgdbbfYAN8IGh6xg== + +esbuild-android-arm64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.43.tgz#0258704edf92ce2463af6d2900b844b5423bed63" + integrity sha512-bKS2BBFh+7XZY9rpjiHGRNA7LvWYbZWP87pLehggTG7tTaCDvj8qQGOU/OZSjCSKDYbgY7Q+oDw8RlYQ2Jt2BA== + +esbuild-darwin-64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.43.tgz#72a47295678d4aa0656979baa8cf6d5c8c92656f" + integrity sha512-/3PSilx011ttoieRGkSZ0XV8zjBf2C9enV4ScMMbCT4dpx0mFhMOpFnCHkOK0pWGB8LklykFyHrWk2z6DENVUg== + +esbuild-darwin-arm64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.43.tgz#5f5823170b8d85b888957f0794e186caac447aca" + integrity sha512-1HyFUKs8DMCBOvw1Qxpr5Vv/ThNcVIFb5xgXWK3pyT40WPvgYIiRTwJCvNs4l8i5qWF8/CK5bQxJVDjQvtv0Yw== + +esbuild-freebsd-64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.43.tgz#e4a48b08181053837e6cd9bda19ae0af94d493b0" + integrity sha512-FNWc05TPHYgaXjbPZO5/rJKSBslfG6BeMSs8GhwnqAKP56eEhvmzwnIz1QcC9cRVyO+IKqWNfmHFkCa1WJTULA== + +esbuild-freebsd-arm64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.43.tgz#386e780d36c1dedf3a1cdab79e0bbacd873274e6" + integrity sha512-amrYopclz3VohqisOPR6hA3GOWA3LZC1WDLnp21RhNmoERmJ/vLnOpnrG2P/Zao+/erKTCUqmrCIPVtj58DRoA== + +esbuild-linux-32@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.43.tgz#040ed6b9ebf06d73acdf2acce7f1cd0c12fbc6a5" + integrity sha512-KoxoEra+9O3AKVvgDFvDkiuddCds6q71owSQEYwjtqRV7RwbPzKxJa6+uyzUulHcyGVq0g15K0oKG5CFBcvYDw== + +esbuild-linux-64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.43.tgz#8abbb7594ab6a008f2aae72d95d8a4fdc59d9000" + integrity sha512-EwINwGMyiJMgBby5/SbMqKcUhS5AYAZ2CpEBzSowsJPNBJEdhkCTtEjk757TN/wxgbu3QklqDM6KghY660QCUw== + +esbuild-linux-arm64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.43.tgz#4e8e9ce77cbf7efec65e79e512b3d2fbd2da398f" + integrity sha512-UlSpjMWllAc70zYbHxWuDS3FJytyuR/gHJYBr8BICcTNb/TSOYVBg6U7b3jZ3mILTrgzwJUHwhEwK18FZDouUQ== + +esbuild-linux-arm@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.43.tgz#9e41ee5e099c0ffdfd150da154330c2c0226cc96" + integrity sha512-e6YzQUoDxxtyamuF12eVzzRC7bbEFSZohJ6igQB9tBqnNmIQY3fI6Cns3z2wxtbZ3f2o6idkD2fQnlvs2902Dg== + +esbuild-linux-mips64le@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.43.tgz#4b41f465a787f91cc4fe7dffa0dcabf655935a1a" + integrity sha512-f+v8cInPEL1/SDP//CfSYzcDNgE4CY3xgDV81DWm3KAPWzhvxARrKxB1Pstf5mB56yAslJDxu7ryBUPX207EZA== + +esbuild-linux-ppc64le@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.43.tgz#ca15934f5b46728dd9ac05270e783e7feaca9eaf" + integrity sha512-5wZYMDGAL/K2pqkdIsW+I4IR41kyfHr/QshJcNpUfK3RjB3VQcPWOaZmc+74rm4ZjVirYrtz+jWw0SgxtxRanA== + +esbuild-linux-riscv64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.43.tgz#70fce2b5a0605a67e58b5a357b0e00be1029836d" + integrity sha512-lYcAOUxp85hC7lSjycJUVSmj4/9oEfSyXjb/ua9bNl8afonaduuqtw7hvKMoKuYnVwOCDw4RSfKpcnIRDWq+Bw== + +esbuild-linux-s390x@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.43.tgz#318d03b4f4ccc7fa44ac7562121cf4a4529e477a" + integrity sha512-27e43ZhHvhFE4nM7HqtUbMRu37I/4eNSUbb8FGZWszV+uLzMIsHDwLoBiJmw7G9N+hrehNPeQ4F5Ujad0DrUKQ== + +esbuild-loader@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-2.19.0.tgz#54f62d1da8262acfc3c5883c24da35af8324f116" + integrity sha512-urGNVE6Tl2rqx92ElKi/LiExXjGvcH6HfDBFzJ9Ppwqh4n6Jmx8x7RKAyMzSM78b6CAaJLhDncG5sPrL0ROh5Q== + dependencies: + esbuild "^0.14.39" + joycon "^3.0.1" + json5 "^2.2.0" + loader-utils "^2.0.0" + tapable "^2.2.0" + webpack-sources "^2.2.0" + +esbuild-netbsd-64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.43.tgz#86130ce204ef0162a96e863b55851efecc92f423" + integrity sha512-2mH4QF6hHBn5zzAfxEI/2eBC0mspVsZ6UVo821LpAJKMvLJPBk3XJO5xwg7paDqSqpl7p6IRrAenW999AEfJhQ== + +esbuild-openbsd-64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.43.tgz#0229dc2db2ded97b03bb93bba7646b30ffdf5d0d" + integrity sha512-ZhQpiZjvqCqO8jKdGp9+8k9E/EHSA+zIWOg+grwZasI9RoblqJ1QiZqqi7jfd6ZrrG1UFBNGe4m0NFxCFbMVbg== + +esbuild-sunos-64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.43.tgz#17e316216eb9f1de25d52a9000356ae5b869e736" + integrity sha512-DgxSi9DaHReL9gYuul2rrQCAapgnCJkh3LSHPKsY26zytYppG0HgkgVF80zjIlvEsUbGBP/GHQzBtrezj/Zq1Q== + +esbuild-windows-32@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.43.tgz#a173757bc6dfd0f2656ff40b64f7f9290745778e" + integrity sha512-Ih3+2O5oExiqm0mY6YYE5dR0o8+AspccQ3vIAtRodwFvhuyGLjb0Hbmzun/F3Lw19nuhPMu3sW2fqIJ5xBxByw== + +esbuild-windows-64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.43.tgz#c447b23126aad158c4fe6a394342cafd97926ed1" + integrity sha512-8NsuNfI8xwFuJbrCuI+aBqNTYkrWErejFO5aYM+yHqyHuL8mmepLS9EPzAzk8rvfaJrhN0+RvKWAcymViHOKEw== + +esbuild-windows-arm64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.43.tgz#3caed1b430d394d7a7836407b9d36c4750246e76" + integrity sha512-7ZlD7bo++kVRblJEoG+cepljkfP8bfuTPz5fIXzptwnPaFwGS6ahvfoYzY7WCf5v/1nX2X02HDraVItTgbHnKw== + +esbuild@0.14.43, esbuild@^0.14.39: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.43.tgz#c227d585c512d3e0f23b88f50b8e16501147f647" + integrity sha512-Uf94+kQmy/5jsFwKWiQB4hfo/RkM9Dh7b79p8yqd1tshULdr25G2szLz631NoH3s2ujnKEKVD16RmOxvCNKRFA== + optionalDependencies: + esbuild-android-64 "0.14.43" + esbuild-android-arm64 "0.14.43" + esbuild-darwin-64 "0.14.43" + esbuild-darwin-arm64 "0.14.43" + esbuild-freebsd-64 "0.14.43" + esbuild-freebsd-arm64 "0.14.43" + esbuild-linux-32 "0.14.43" + esbuild-linux-64 "0.14.43" + esbuild-linux-arm "0.14.43" + esbuild-linux-arm64 "0.14.43" + esbuild-linux-mips64le "0.14.43" + esbuild-linux-ppc64le "0.14.43" + esbuild-linux-riscv64 "0.14.43" + esbuild-linux-s390x "0.14.43" + esbuild-netbsd-64 "0.14.43" + esbuild-openbsd-64 "0.14.43" + esbuild-sunos-64 "0.14.43" + esbuild-windows-32 "0.14.43" + esbuild-windows-64 "0.14.43" + esbuild-windows-arm64 "0.14.43" + escalade@^3.0.2, escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -6544,11 +6768,16 @@ estraverse@^4.1.1: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.1.0, estraverse@^5.2.0: +estraverse@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + estree-to-babel@^3.1.0: version "3.2.1" resolved "https://registry.yarnpkg.com/estree-to-babel/-/estree-to-babel-3.2.1.tgz#82e78315275c3ca74475fdc8ac1a5103c8a75bf5" @@ -6742,10 +6971,10 @@ fast-glob@^2.2.6: merge2 "^1.2.3" micromatch "^3.1.10" -fast-glob@^3.1.1: - version "3.2.6" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.6.tgz#434dd9529845176ea049acc9343e8282765c6e1a" - integrity sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ== +fast-glob@^3.1.1, fast-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -6774,9 +7003,9 @@ fastest-levenshtein@^1.0.9: integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== fastq@^1.6.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" - integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== dependencies: reusify "^1.0.4" @@ -7173,7 +7402,7 @@ function.prototype.name@^1.1.0, function.prototype.name@^1.1.2, function.prototy functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== functions-have-names@^1.2.2: version "1.2.2" @@ -7377,7 +7606,7 @@ globby@11.0.1: merge2 "^1.3.0" slash "^3.0.0" -globby@^11.0.2, globby@^11.0.3: +globby@^11.0.2: version "11.0.4" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== @@ -7389,6 +7618,18 @@ globby@^11.0.2, globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" +globby@^11.0.3: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + globby@^9.2.0: version "9.2.0" resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" @@ -7843,10 +8084,10 @@ ignore@^4.0.3, ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.4: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== +ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== image-size@~0.5.0: version "0.5.5" @@ -8211,7 +8452,7 @@ is-extglob@^1.0.0: is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^1.0.0: version "1.0.0" @@ -8254,13 +8495,20 @@ is-glob@^3.0.0, is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.0, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" +is-glob@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + is-hexadecimal@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" @@ -8966,6 +9214,11 @@ jest@^27.5.1: import-local "^3.0.2" jest-cli "^27.5.1" +joycon@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" + integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== + js-base64@^2.1.9: version "2.6.4" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" @@ -9078,6 +9331,11 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" +json5@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" @@ -9598,7 +9856,7 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.2.3, merge2@^1.3.0: +merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -9632,7 +9890,7 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.2, micromatch@^4.0.4: +micromatch@^4.0.2: version "4.0.4" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== @@ -9640,6 +9898,14 @@ micromatch@^4.0.2, micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -10560,11 +10826,16 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: +picomatch@^2.0.4, picomatch@^2.2.1: version "2.3.0" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== +picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + pidtree@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" @@ -12437,7 +12708,7 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@7.x, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: +semver@7.x, semver@^7.3.2, semver@^7.3.4: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -12449,6 +12720,13 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.3.5: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -12660,7 +12938,7 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -source-list-map@^2.0.0: +source-list-map@^2.0.0, source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== @@ -13138,6 +13416,11 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + tar@^6.0.2: version "6.1.0" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" @@ -14013,6 +14296,14 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: source-list-map "^2.0.0" source-map "~0.6.1" +webpack-sources@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" + integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + webpack-virtual-modules@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz#20863dc3cb6bb2104729fff951fbe14b18bd0299" diff --git a/pkg/ui/workspaces/db-console/BUILD.bazel b/pkg/ui/workspaces/db-console/BUILD.bazel index 5d8c91435742..f5771814146e 100644 --- a/pkg/ui/workspaces/db-console/BUILD.bazel +++ b/pkg/ui/workspaces/db-console/BUILD.bazel @@ -71,6 +71,7 @@ DEV_DEPENDENCIES = [ "@npm_db_console//eslint-plugin-prettier", "@npm_db_console//eslint-plugin-react", "@npm_db_console//eslint-plugin-react-hooks", + "@npm_db_console//esbuild-loader", "@npm_db_console//espree", "@npm_db_console//estraverse", "@npm_db_console//express", @@ -88,6 +89,7 @@ DEV_DEPENDENCIES = [ "@npm_db_console//karma-sinon", "@npm_db_console//karma-sourcemap-loader", "@npm_db_console//karma-webpack", + "@npm_db_console//less-loader", "@npm_db_console//minimist", "@npm_db_console//mocha", "@npm_db_console//nib", @@ -169,7 +171,7 @@ WEBPACK_DATA_COMMON = [ "src", "styl", "tsconfig.json", - "webpack.app.js", + "webpack.config.js", "//pkg/ui/workspaces/cluster-ui:cluster-ui", "//pkg/ui/workspaces/db-console/src/js:crdb-protobuf-client", ] @@ -184,7 +186,7 @@ WEBPACK_DATA_CCL = WEBPACK_DATA_COMMON + [ webpack( name = "db-console-ccl", args = [ - "--config $(execpath webpack.app.js)", + "--config $(execpath webpack.config.js)", "--env.dist=ccl", "--mode production", "--env.output=$(RULEDIR)/db-console-ccl", @@ -200,7 +202,7 @@ webpack( webpack( name = "db-console-oss", args = [ - "--config $(execpath webpack.app.js)", + "--config $(execpath webpack.config.js)", "--env.dist=oss", "--mode production", "--env.output=$(RULEDIR)/db-console-oss", @@ -335,7 +337,7 @@ KARMA_DEPS = [ "fonts", "styl", "tsconfig.json", - "webpack.app.js", + "webpack.config.js", "karma.conf.js", "tests-loader.js", "//pkg/ui/workspaces/cluster-ui:cluster-ui", diff --git a/pkg/ui/workspaces/db-console/karma.conf.js b/pkg/ui/workspaces/db-console/karma.conf.js index 13a4e7e599da..edd01cb7121f 100644 --- a/pkg/ui/workspaces/db-console/karma.conf.js +++ b/pkg/ui/workspaces/db-console/karma.conf.js @@ -13,7 +13,7 @@ "use strict"; -const webpackConfig = require("./webpack.app")( +const webpackConfig = require("./webpack.config")( { dist: "ccl" }, { mode: "development" }, ); diff --git a/pkg/ui/workspaces/db-console/package.json b/pkg/ui/workspaces/db-console/package.json index c39eef9144fc..02ae025674be 100644 --- a/pkg/ui/workspaces/db-console/package.json +++ b/pkg/ui/workspaces/db-console/package.json @@ -30,6 +30,7 @@ "combokeys": "^2.4.6", "connected-react-router": "^6.9.1", "create-react-context": "^0.3.0", + "esbuild-loader": "^2.19.0", "highlight.js": "^10.6.0", "list.js": "^2.3.1", "lodash": "^4.17.21", @@ -138,6 +139,7 @@ "karma-sinon": "^1.0.5", "karma-sourcemap-loader": "^0.3.7", "karma-webpack": "^2.0.13", + "less-loader": "6.2.0", "minimist": "^1.2.0", "mocha": "^6.2.1", "nib": "^1.1.2", @@ -162,7 +164,7 @@ "typescript": "4.2.4", "uglify-js": "^2.8.15", "uplot": "^1.6.8", - "url-loader": "2.1.0", + "url-loader": "4.1.1", "us-atlas": "^1.0.2", "webpack": "^4.41.5", "webpack-cli": "^3.3.10", @@ -196,6 +198,7 @@ "aria-query": "file:../../yarn-vendor/aria-query-5.0.0-no-spaced-files.tgz", "core-js": "^2.6.12", "elliptic": "~6.5.3", + "esbuild": "0.14.43", "http-proxy": "~1.18.1", "lodash": "^4.17.20", "markdown-to-jsx": "~6.11.4", diff --git a/pkg/ui/workspaces/db-console/src/components/dropdown/dropdown.tsx b/pkg/ui/workspaces/db-console/src/components/dropdown/dropdown.tsx index 091357b1659e..7941d150af62 100644 --- a/pkg/ui/workspaces/db-console/src/components/dropdown/dropdown.tsx +++ b/pkg/ui/workspaces/db-console/src/components/dropdown/dropdown.tsx @@ -14,6 +14,7 @@ import cn from "classnames"; import { OutsideEventHandler } from "../outsideEventHandler"; import "./dropdown.styl"; import { Icon } from "antd"; +import "antd/lib/icon/style"; import { Button } from "src/components/button"; export interface Item { diff --git a/pkg/ui/workspaces/db-console/src/components/modal/modal.tsx b/pkg/ui/workspaces/db-console/src/components/modal/modal.tsx index 72ee684a40d9..877299c0085f 100644 --- a/pkg/ui/workspaces/db-console/src/components/modal/modal.tsx +++ b/pkg/ui/workspaces/db-console/src/components/modal/modal.tsx @@ -10,6 +10,7 @@ import React from "react"; import { Modal as AntModal } from "antd"; +import "antd/lib/modal/style"; import { Button, Text, TextTypes } from "src/components"; import "./modal.styl"; diff --git a/pkg/ui/workspaces/db-console/src/components/rangeCalendar/rangeCalendar.tsx b/pkg/ui/workspaces/db-console/src/components/rangeCalendar/rangeCalendar.tsx index f20a6adb3713..d94579fb55f8 100644 --- a/pkg/ui/workspaces/db-console/src/components/rangeCalendar/rangeCalendar.tsx +++ b/pkg/ui/workspaces/db-console/src/components/rangeCalendar/rangeCalendar.tsx @@ -12,7 +12,8 @@ import React, { useCallback, useMemo, useState } from "react"; import moment, { DurationInputArg1, DurationInputArg2, Moment } from "moment"; import { noop } from "lodash"; import { TimePicker } from "antd"; -import { TimePickerProps } from "antd/es/time-picker"; +import "antd/lib/time-picker/style"; +import type { TimePickerProps } from "antd/lib/time-picker"; import RcRangeCalendar from "rc-calendar/es/RangeCalendar"; import locale from "rc-calendar/es/locale/en_US"; import "rc-calendar/assets/index.css"; diff --git a/pkg/ui/workspaces/db-console/src/views/app/components/Search/index.tsx b/pkg/ui/workspaces/db-console/src/views/app/components/Search/index.tsx index 292cd8b0919a..32854075aed6 100644 --- a/pkg/ui/workspaces/db-console/src/views/app/components/Search/index.tsx +++ b/pkg/ui/workspaces/db-console/src/views/app/components/Search/index.tsx @@ -9,7 +9,10 @@ // licenses/APL.txt. import { Button, Form, Input } from "antd"; -import { InputProps } from "antd/lib/input"; +import "antd/lib/button/style"; +import "antd/lib/form/style"; +import "antd/lib/input/style"; +import type { InputProps } from "antd/lib/input"; import CancelIcon from "assets/cancel.svg"; import SearchIcon from "assets/search.svg"; import React from "react"; diff --git a/pkg/ui/workspaces/db-console/src/views/app/components/modal/index.tsx b/pkg/ui/workspaces/db-console/src/views/app/components/modal/index.tsx index c191455d3544..da54e2e69574 100644 --- a/pkg/ui/workspaces/db-console/src/views/app/components/modal/index.tsx +++ b/pkg/ui/workspaces/db-console/src/views/app/components/modal/index.tsx @@ -9,9 +9,11 @@ // licenses/APL.txt. import { Modal, Button } from "antd"; +import "antd/lib/modal/style"; +import "antd/lib/button/style"; import React, { Fragment } from "react"; import "./styles.styl"; -import { ModalProps } from "antd/lib/modal"; +import type { ModalProps } from "antd/lib/modal"; interface ICustomModalProps extends ModalProps { children?: React.ReactNode; diff --git a/pkg/ui/workspaces/db-console/src/views/cluster/containers/nodesOverview/tableSection.tsx b/pkg/ui/workspaces/db-console/src/views/cluster/containers/nodesOverview/tableSection.tsx index 2a2c423e1624..0fcff679226a 100644 --- a/pkg/ui/workspaces/db-console/src/views/cluster/containers/nodesOverview/tableSection.tsx +++ b/pkg/ui/workspaces/db-console/src/views/cluster/containers/nodesOverview/tableSection.tsx @@ -12,6 +12,7 @@ import * as React from "react"; import { connect } from "react-redux"; import cn from "classnames"; import { Icon } from "antd"; +import "antd/lib/icon/style"; import { Action, Dispatch } from "redux"; import { LocalSetting, setLocalSetting } from "src/redux/localsettings"; diff --git a/pkg/ui/workspaces/db-console/src/views/hotRanges/hotRangesTable.tsx b/pkg/ui/workspaces/db-console/src/views/hotRanges/hotRangesTable.tsx index 683983e09514..2e0bbafc1f4d 100644 --- a/pkg/ui/workspaces/db-console/src/views/hotRanges/hotRangesTable.tsx +++ b/pkg/ui/workspaces/db-console/src/views/hotRanges/hotRangesTable.tsx @@ -11,6 +11,7 @@ import React, { useState } from "react"; import { Link } from "react-router-dom"; import { Tooltip } from "antd"; +import "antd/lib/tooltip/style"; import { ColumnDescriptor, SortedTable, diff --git a/pkg/ui/workspaces/db-console/src/views/jobs/jobDetails.tsx b/pkg/ui/workspaces/db-console/src/views/jobs/jobDetails.tsx index 760f11da9ef3..e4f9dcb621ae 100644 --- a/pkg/ui/workspaces/db-console/src/views/jobs/jobDetails.tsx +++ b/pkg/ui/workspaces/db-console/src/views/jobs/jobDetails.tsx @@ -9,6 +9,8 @@ // licenses/APL.txt. import { Col, Row } from "antd"; +import "antd/lib/col/style"; +import "antd/lib/row/style"; import _ from "lodash"; import Long from "long"; import React from "react"; diff --git a/pkg/ui/workspaces/db-console/src/views/reports/containers/network/filter/index.tsx b/pkg/ui/workspaces/db-console/src/views/reports/containers/network/filter/index.tsx index 76b811074481..142b7aba4a53 100644 --- a/pkg/ui/workspaces/db-console/src/views/reports/containers/network/filter/index.tsx +++ b/pkg/ui/workspaces/db-console/src/views/reports/containers/network/filter/index.tsx @@ -9,6 +9,8 @@ // licenses/APL.txt. import { Checkbox, Select } from "antd"; +import "antd/lib/checkbox/style"; +import "antd/lib/select/style"; import Dropdown, { arrowRenderer } from "src/views/shared/components/dropdown"; import React from "react"; import classNames from "classnames"; diff --git a/pkg/ui/workspaces/db-console/src/views/reports/containers/network/latency/index.tsx b/pkg/ui/workspaces/db-console/src/views/reports/containers/network/latency/index.tsx index 9f661761f412..76cbcdfa8730 100644 --- a/pkg/ui/workspaces/db-console/src/views/reports/containers/network/latency/index.tsx +++ b/pkg/ui/workspaces/db-console/src/views/reports/containers/network/latency/index.tsx @@ -9,6 +9,8 @@ // licenses/APL.txt. import { Divider, Tooltip } from "antd"; +import "antd/lib/divider/style"; +import "antd/lib/tooltip/style"; import classNames from "classnames"; import _ from "lodash"; import { util } from "@cockroachlabs/cluster-ui"; diff --git a/pkg/ui/workspaces/db-console/src/views/reports/containers/network/legend/index.tsx b/pkg/ui/workspaces/db-console/src/views/reports/containers/network/legend/index.tsx index 09978e62c6e8..a7d5ab663a3e 100644 --- a/pkg/ui/workspaces/db-console/src/views/reports/containers/network/legend/index.tsx +++ b/pkg/ui/workspaces/db-console/src/views/reports/containers/network/legend/index.tsx @@ -9,6 +9,8 @@ // licenses/APL.txt. import { Divider, Tooltip } from "antd"; +import "antd/lib/divider/style"; +import "antd/lib/tooltip/style"; import { Chip } from "src/views/app/components/chip"; import Modal from "src/views/app/components/modal"; import { getDisplayName } from "src/redux/nodes"; diff --git a/pkg/ui/workspaces/db-console/src/views/reports/containers/network/sort/index.tsx b/pkg/ui/workspaces/db-console/src/views/reports/containers/network/sort/index.tsx index 46a999e4bd07..7ef3bd6880e1 100644 --- a/pkg/ui/workspaces/db-console/src/views/reports/containers/network/sort/index.tsx +++ b/pkg/ui/workspaces/db-console/src/views/reports/containers/network/sort/index.tsx @@ -9,6 +9,8 @@ // licenses/APL.txt. import { Checkbox, Divider } from "antd"; +import "antd/lib/checkbox/style"; +import "antd/lib/divider/style"; import Dropdown, { DropdownOption } from "src/views/shared/components/dropdown"; import React from "react"; import { RouteComponentProps, withRouter } from "react-router-dom"; diff --git a/pkg/ui/workspaces/db-console/src/views/shared/components/alertMessage/alertMessage.tsx b/pkg/ui/workspaces/db-console/src/views/shared/components/alertMessage/alertMessage.tsx index 78bc6e4291b8..1df7351a3d2b 100644 --- a/pkg/ui/workspaces/db-console/src/views/shared/components/alertMessage/alertMessage.tsx +++ b/pkg/ui/workspaces/db-console/src/views/shared/components/alertMessage/alertMessage.tsx @@ -10,6 +10,8 @@ import React from "react"; import { Alert, Icon } from "antd"; +import "antd/lib/alert/style"; +import "antd/lib/icon/style"; import { Link } from "react-router-dom"; import { AlertInfo, AlertLevel } from "src/redux/alerts"; diff --git a/pkg/ui/workspaces/db-console/src/views/shared/components/drawer/index.tsx b/pkg/ui/workspaces/db-console/src/views/shared/components/drawer/index.tsx index 575e28aa0a17..0befbbd5e151 100644 --- a/pkg/ui/workspaces/db-console/src/views/shared/components/drawer/index.tsx +++ b/pkg/ui/workspaces/db-console/src/views/shared/components/drawer/index.tsx @@ -10,6 +10,9 @@ import React from "react"; import { Drawer, Button, Divider } from "antd"; +import "antd/lib/drawer/style"; +import "antd/lib/button/style"; +import "antd/lib/divider/style"; import { Link } from "react-router-dom"; import classNames from "classnames/bind"; import styles from "./drawer.module.styl"; diff --git a/pkg/ui/workspaces/db-console/src/views/shared/components/toolTip/index.tsx b/pkg/ui/workspaces/db-console/src/views/shared/components/toolTip/index.tsx index b56a4793cda6..0d3c925972bc 100644 --- a/pkg/ui/workspaces/db-console/src/views/shared/components/toolTip/index.tsx +++ b/pkg/ui/workspaces/db-console/src/views/shared/components/toolTip/index.tsx @@ -9,8 +9,9 @@ // licenses/APL.txt. import { Tooltip } from "antd"; +import "antd/lib/tooltip/style"; import React from "react"; -import { AbstractTooltipProps } from "antd/es/tooltip"; +import type { AbstractTooltipProps } from "antd/lib/tooltip"; import classNames from "classnames/bind"; import styles from "./tooltip.module.styl"; diff --git a/pkg/ui/workspaces/db-console/src/views/sqlActivity/sqlActivityPage.tsx b/pkg/ui/workspaces/db-console/src/views/sqlActivity/sqlActivityPage.tsx index 91e0152ef890..ce11f6861d32 100644 --- a/pkg/ui/workspaces/db-console/src/views/sqlActivity/sqlActivityPage.tsx +++ b/pkg/ui/workspaces/db-console/src/views/sqlActivity/sqlActivityPage.tsx @@ -14,6 +14,7 @@ import React from "react"; import Helmet from "react-helmet"; import { Tabs } from "antd"; +import "antd/lib/tabs/style"; import SessionsPageConnected from "src/views/sessions/sessionsPage"; import TransactionsPageConnected from "src/views/transactions/transactionsPage"; import StatementsPageConnected from "src/views/statements/statementsPage"; diff --git a/pkg/ui/workspaces/db-console/src/views/tracez/tracez.tsx b/pkg/ui/workspaces/db-console/src/views/tracez/tracez.tsx index 543c08c0f59b..9c0f77c8922e 100644 --- a/pkg/ui/workspaces/db-console/src/views/tracez/tracez.tsx +++ b/pkg/ui/workspaces/db-console/src/views/tracez/tracez.tsx @@ -35,6 +35,7 @@ import { } from "src/util/api"; import { CaretRight } from "@cockroachlabs/icons"; import { Switch } from "antd"; +import "antd/lib/switch/style"; import ISnapshotInfo = cockroach.server.serverpb.ISnapshotInfo; import ITracingSpan = cockroach.server.serverpb.ITracingSpan; import GetTracingSnapshotRequest = cockroach.server.serverpb.GetTracingSnapshotRequest; diff --git a/pkg/ui/workspaces/db-console/webpack.app.js b/pkg/ui/workspaces/db-console/webpack.config.js similarity index 83% rename from pkg/ui/workspaces/db-console/webpack.app.js rename to pkg/ui/workspaces/db-console/webpack.config.js index 31624ab54ff9..cf8f5d633a90 100644 --- a/pkg/ui/workspaces/db-console/webpack.app.js +++ b/pkg/ui/workspaces/db-console/webpack.config.js @@ -16,6 +16,7 @@ const webpack = require("webpack"); const CopyWebpackPlugin = require("copy-webpack-plugin"); const StringReplacePlugin = require("string-replace-webpack-plugin"); const WebpackBar = require("webpackbar"); +const { ESBuildMinifyPlugin } = require("esbuild-loader"); const proxyPrefixes = ["/_admin", "/_status", "/ts", "/login", "/logout"]; function shouldProxy(reqPath) { @@ -62,22 +63,6 @@ module.exports = (env, argv) => { modules.push("node_modules"); } - // Exclude DLLPlugin when build with Bazel because bazel handles caching on its own - if (!isBazelBuild && !env.WEBPACK_WATCH && !env.WEBPACK_SERVE) { - plugins = plugins.concat([ - // See "DLLs for speedy builds" in the README for details. - new webpack.DllReferencePlugin({ - context: path.resolve(__dirname, `dist${env.dist}`), - manifest: require(env.protos_manifest || - `./protos.${env.dist}.manifest.json`), - }), - new webpack.DllReferencePlugin({ - context: path.resolve(__dirname, `dist${env.dist}`), - manifest: require(env.vendor_manifest || "./vendor.oss.manifest.json"), - }), - ]); - } - const config = { context: __dirname, entry: [ "./src/index.tsx"], @@ -102,7 +87,37 @@ module.exports = (env, argv) => { module: { rules: [ - { test: /\.css$/, use: ["style-loader", "css-loader"] }, + { + test: /\.css$/, + use: [ + "style-loader", + "css-loader", + { + loader: "esbuild-loader", + options: { + loader: "css", + minify: true, + }, + } + ] + }, + // Preprocess LESS styles required by external components + // (react-select) + { + use: [ + "style-loader", + "css-loader", + { + loader: "less-loader", + options: { + lessOptions: { + javascriptEnabled: true + } + } + }, + ], + test: /\.less$/, + }, { test: /\.module\.styl$/, use: [ @@ -114,7 +129,6 @@ module.exports = (env, argv) => { modules: { localIdentName: "[local]--[hash:base64:5]", }, - importLoaders: 1, }, }, { @@ -156,7 +170,15 @@ module.exports = (env, argv) => { /ccl\/src\/js/, /cluster-ui\/dist/, ], - use: ["cache-loader", "babel-loader"], + use: [ + { + loader: "esbuild-loader", + options: { + loader: "js", + target: "es6", + }, + } + ], }, { test: /\.(ts|tsx)?$/, @@ -168,9 +190,13 @@ module.exports = (env, argv) => { /cluster-ui\/dist/, ], use: [ - "cache-loader", - "babel-loader", - { loader: "ts-loader", options: { happyPackMode: true } }, + { + loader: "esbuild-loader", + options: { + loader: "tsx", + target: "es6", + }, + }, ], }, @@ -190,6 +216,14 @@ module.exports = (env, argv) => { ], }, + optimization: { + minimizer: [ + new ESBuildMinifyPlugin({ + target: "es6", + }), + ], + }, + plugins: plugins, stats: "errors-only", diff --git a/pkg/ui/workspaces/db-console/webpack.protos.js b/pkg/ui/workspaces/db-console/webpack.protos.js deleted file mode 100644 index a214f5c59f68..000000000000 --- a/pkg/ui/workspaces/db-console/webpack.protos.js +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2019 The Cockroach Authors. -// -// Use of this software is governed by the Business Source License -// included in the file licenses/BSL.txt. -// -// As of the Change Date specified in that file, in accordance with -// the Business Source License, use of this software will be governed -// by the Apache License, Version 2.0, included in the file -// licenses/APL.txt. - -"use strict"; - -const path = require("path"); -const webpack = require("webpack"); - -// tslint:disable:object-literal-sort-keys -module.exports = (env) => ({ - entry: { - protos: [env.dist === "ccl" ? "./ccl/src/js/protos" : "./src/js/protos"], - }, - - mode: "none", - - output: { - filename: `protos.${env.dist}.dll.js`, - path: path.resolve(__dirname, "dist"), - library: "[name]_[hash]", - }, - - module: { - rules: [ - { - test: /\.js$/, - use: ["cache-loader", "thread-loader", "babel-loader"], - }, - ], - }, - - plugins: [ - new webpack.DllPlugin({ - name: "[name]_[hash]", - path: path.resolve(__dirname, `protos.${env.dist}.manifest.json`), - }), - ], - - // Max size of is set to 4Mb to disable warning message and control - // the growing size of bundle over time. - performance: { - maxEntrypointSize: 4000000, - maxAssetSize: 4000000, - }, -}); diff --git a/pkg/ui/workspaces/db-console/webpack.vendor.js b/pkg/ui/workspaces/db-console/webpack.vendor.js deleted file mode 100644 index 0f1b0e395d21..000000000000 --- a/pkg/ui/workspaces/db-console/webpack.vendor.js +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2019 The Cockroach Authors. -// -// Use of this software is governed by the Business Source License -// included in the file licenses/BSL.txt. -// -// As of the Change Date specified in that file, in accordance with -// the Business Source License, use of this software will be governed -// by the Apache License, Version 2.0, included in the file -// licenses/APL.txt. - -"use strict"; - -const path = require("path"); -const webpack = require("webpack"); - -const pkg = require("./package.json"); - -const prodDependencies = Object.keys(pkg.dependencies); - -// tslint:disable:object-literal-sort-keys -module.exports = (env, argv) => { - const manifestPath = env && env.manifest; - return { - entry: { - vendor: prodDependencies, - }, - - mode: "none", - - output: { - filename: "vendor.oss.dll.js", - path: path.resolve(__dirname, "dist"), - library: "[name]_[hash]", - }, - - resolve: { - modules: [ "node_modules" ], - }, - - plugins: [ - new webpack.DllPlugin({ - name: "[name]_[hash]", - path: - manifestPath || path.resolve(__dirname, "vendor.oss.manifest.json"), - }), - ], - - // Max size of is set to 4Mb to disable warning message and control - // the growing size of bundle over time. - performance: { - maxEntrypointSize: 4000000, - maxAssetSize: 4000000, - }, - }; -}; diff --git a/pkg/ui/workspaces/db-console/yarn.lock b/pkg/ui/workspaces/db-console/yarn.lock index 269d3d8700cb..914b96fc6009 100644 --- a/pkg/ui/workspaces/db-console/yarn.lock +++ b/pkg/ui/workspaces/db-console/yarn.lock @@ -4618,6 +4618,11 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= +clone@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" @@ -4867,6 +4872,13 @@ cookie@~0.4.1: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== +copy-anything@^2.0.1: + version "2.0.6" + resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480" + integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== + dependencies: + is-what "^3.14.1" + copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" @@ -5980,7 +5992,7 @@ enzyme@^3.3.0: rst-selector-parser "^2.2.3" string.prototype.trim "^1.2.1" -errno@^0.1.3, errno@~0.1.7: +errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== @@ -6057,6 +6069,144 @@ es6-shim@^0.35.5: resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.6.tgz#d10578301a83af2de58b9eadb7c2c9945f7388a0" integrity sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA== +esbuild-android-64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.43.tgz#59bf3edad6863c27aa92bbb5c1d83a9a5c981495" + integrity sha512-kqFXAS72K6cNrB6RiM7YJ5lNvmWRDSlpi7ZuRZ1hu1S3w0zlwcoCxWAyM23LQUyZSs1PbjHgdbbfYAN8IGh6xg== + +esbuild-android-arm64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.43.tgz#0258704edf92ce2463af6d2900b844b5423bed63" + integrity sha512-bKS2BBFh+7XZY9rpjiHGRNA7LvWYbZWP87pLehggTG7tTaCDvj8qQGOU/OZSjCSKDYbgY7Q+oDw8RlYQ2Jt2BA== + +esbuild-darwin-64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.43.tgz#72a47295678d4aa0656979baa8cf6d5c8c92656f" + integrity sha512-/3PSilx011ttoieRGkSZ0XV8zjBf2C9enV4ScMMbCT4dpx0mFhMOpFnCHkOK0pWGB8LklykFyHrWk2z6DENVUg== + +esbuild-darwin-arm64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.43.tgz#5f5823170b8d85b888957f0794e186caac447aca" + integrity sha512-1HyFUKs8DMCBOvw1Qxpr5Vv/ThNcVIFb5xgXWK3pyT40WPvgYIiRTwJCvNs4l8i5qWF8/CK5bQxJVDjQvtv0Yw== + +esbuild-freebsd-64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.43.tgz#e4a48b08181053837e6cd9bda19ae0af94d493b0" + integrity sha512-FNWc05TPHYgaXjbPZO5/rJKSBslfG6BeMSs8GhwnqAKP56eEhvmzwnIz1QcC9cRVyO+IKqWNfmHFkCa1WJTULA== + +esbuild-freebsd-arm64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.43.tgz#386e780d36c1dedf3a1cdab79e0bbacd873274e6" + integrity sha512-amrYopclz3VohqisOPR6hA3GOWA3LZC1WDLnp21RhNmoERmJ/vLnOpnrG2P/Zao+/erKTCUqmrCIPVtj58DRoA== + +esbuild-linux-32@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.43.tgz#040ed6b9ebf06d73acdf2acce7f1cd0c12fbc6a5" + integrity sha512-KoxoEra+9O3AKVvgDFvDkiuddCds6q71owSQEYwjtqRV7RwbPzKxJa6+uyzUulHcyGVq0g15K0oKG5CFBcvYDw== + +esbuild-linux-64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.43.tgz#8abbb7594ab6a008f2aae72d95d8a4fdc59d9000" + integrity sha512-EwINwGMyiJMgBby5/SbMqKcUhS5AYAZ2CpEBzSowsJPNBJEdhkCTtEjk757TN/wxgbu3QklqDM6KghY660QCUw== + +esbuild-linux-arm64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.43.tgz#4e8e9ce77cbf7efec65e79e512b3d2fbd2da398f" + integrity sha512-UlSpjMWllAc70zYbHxWuDS3FJytyuR/gHJYBr8BICcTNb/TSOYVBg6U7b3jZ3mILTrgzwJUHwhEwK18FZDouUQ== + +esbuild-linux-arm@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.43.tgz#9e41ee5e099c0ffdfd150da154330c2c0226cc96" + integrity sha512-e6YzQUoDxxtyamuF12eVzzRC7bbEFSZohJ6igQB9tBqnNmIQY3fI6Cns3z2wxtbZ3f2o6idkD2fQnlvs2902Dg== + +esbuild-linux-mips64le@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.43.tgz#4b41f465a787f91cc4fe7dffa0dcabf655935a1a" + integrity sha512-f+v8cInPEL1/SDP//CfSYzcDNgE4CY3xgDV81DWm3KAPWzhvxARrKxB1Pstf5mB56yAslJDxu7ryBUPX207EZA== + +esbuild-linux-ppc64le@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.43.tgz#ca15934f5b46728dd9ac05270e783e7feaca9eaf" + integrity sha512-5wZYMDGAL/K2pqkdIsW+I4IR41kyfHr/QshJcNpUfK3RjB3VQcPWOaZmc+74rm4ZjVirYrtz+jWw0SgxtxRanA== + +esbuild-linux-riscv64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.43.tgz#70fce2b5a0605a67e58b5a357b0e00be1029836d" + integrity sha512-lYcAOUxp85hC7lSjycJUVSmj4/9oEfSyXjb/ua9bNl8afonaduuqtw7hvKMoKuYnVwOCDw4RSfKpcnIRDWq+Bw== + +esbuild-linux-s390x@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.43.tgz#318d03b4f4ccc7fa44ac7562121cf4a4529e477a" + integrity sha512-27e43ZhHvhFE4nM7HqtUbMRu37I/4eNSUbb8FGZWszV+uLzMIsHDwLoBiJmw7G9N+hrehNPeQ4F5Ujad0DrUKQ== + +esbuild-loader@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-2.19.0.tgz#54f62d1da8262acfc3c5883c24da35af8324f116" + integrity sha512-urGNVE6Tl2rqx92ElKi/LiExXjGvcH6HfDBFzJ9Ppwqh4n6Jmx8x7RKAyMzSM78b6CAaJLhDncG5sPrL0ROh5Q== + dependencies: + esbuild "^0.14.39" + joycon "^3.0.1" + json5 "^2.2.0" + loader-utils "^2.0.0" + tapable "^2.2.0" + webpack-sources "^2.2.0" + +esbuild-netbsd-64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.43.tgz#86130ce204ef0162a96e863b55851efecc92f423" + integrity sha512-2mH4QF6hHBn5zzAfxEI/2eBC0mspVsZ6UVo821LpAJKMvLJPBk3XJO5xwg7paDqSqpl7p6IRrAenW999AEfJhQ== + +esbuild-openbsd-64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.43.tgz#0229dc2db2ded97b03bb93bba7646b30ffdf5d0d" + integrity sha512-ZhQpiZjvqCqO8jKdGp9+8k9E/EHSA+zIWOg+grwZasI9RoblqJ1QiZqqi7jfd6ZrrG1UFBNGe4m0NFxCFbMVbg== + +esbuild-sunos-64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.43.tgz#17e316216eb9f1de25d52a9000356ae5b869e736" + integrity sha512-DgxSi9DaHReL9gYuul2rrQCAapgnCJkh3LSHPKsY26zytYppG0HgkgVF80zjIlvEsUbGBP/GHQzBtrezj/Zq1Q== + +esbuild-windows-32@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.43.tgz#a173757bc6dfd0f2656ff40b64f7f9290745778e" + integrity sha512-Ih3+2O5oExiqm0mY6YYE5dR0o8+AspccQ3vIAtRodwFvhuyGLjb0Hbmzun/F3Lw19nuhPMu3sW2fqIJ5xBxByw== + +esbuild-windows-64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.43.tgz#c447b23126aad158c4fe6a394342cafd97926ed1" + integrity sha512-8NsuNfI8xwFuJbrCuI+aBqNTYkrWErejFO5aYM+yHqyHuL8mmepLS9EPzAzk8rvfaJrhN0+RvKWAcymViHOKEw== + +esbuild-windows-arm64@0.14.43: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.43.tgz#3caed1b430d394d7a7836407b9d36c4750246e76" + integrity sha512-7ZlD7bo++kVRblJEoG+cepljkfP8bfuTPz5fIXzptwnPaFwGS6ahvfoYzY7WCf5v/1nX2X02HDraVItTgbHnKw== + +esbuild@0.14.43, esbuild@^0.14.39: + version "0.14.43" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.43.tgz#c227d585c512d3e0f23b88f50b8e16501147f647" + integrity sha512-Uf94+kQmy/5jsFwKWiQB4hfo/RkM9Dh7b79p8yqd1tshULdr25G2szLz631NoH3s2ujnKEKVD16RmOxvCNKRFA== + optionalDependencies: + esbuild-android-64 "0.14.43" + esbuild-android-arm64 "0.14.43" + esbuild-darwin-64 "0.14.43" + esbuild-darwin-arm64 "0.14.43" + esbuild-freebsd-64 "0.14.43" + esbuild-freebsd-arm64 "0.14.43" + esbuild-linux-32 "0.14.43" + esbuild-linux-64 "0.14.43" + esbuild-linux-arm "0.14.43" + esbuild-linux-arm64 "0.14.43" + esbuild-linux-mips64le "0.14.43" + esbuild-linux-ppc64le "0.14.43" + esbuild-linux-riscv64 "0.14.43" + esbuild-linux-s390x "0.14.43" + esbuild-netbsd-64 "0.14.43" + esbuild-openbsd-64 "0.14.43" + esbuild-sunos-64 "0.14.43" + esbuild-windows-32 "0.14.43" + esbuild-windows-64 "0.14.43" + esbuild-windows-arm64 "0.14.43" + escalade@^3.0.2, escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -7822,6 +7972,11 @@ ignore@^5.1.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= + immer@8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/immer/-/immer-8.0.1.tgz#9c73db683e2b3975c424fb0572af5889877ae656" @@ -8363,6 +8518,11 @@ is-utf8@^0.2.0: resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= +is-what@^3.14.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" + integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== + is-whitespace-character@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" @@ -8517,6 +8677,11 @@ join-component@^1.1.0: resolved "https://registry.yarnpkg.com/join-component/-/join-component-1.1.0.tgz#b8417b750661a392bee2c2537c68b2a9d4977cd5" integrity sha1-uEF7dQZho5K+4sJTfGiyqdSXfNU= +joycon@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" + integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== + js-string-escape@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" @@ -8661,6 +8826,11 @@ json5@^2.1.2, json5@^2.1.3: dependencies: minimist "^1.2.5" +json5@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" @@ -8875,6 +9045,32 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" +less-loader@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-6.2.0.tgz#8b26f621c155b342eefc24f5bd6e9dc40c42a719" + integrity sha512-Cl5h95/Pz/PWub/tCBgT1oNMFeH1WTD33piG80jn5jr12T4XbxZcjThwNXDQ7AG649WEynuIzO4b0+2Tn9Qolg== + dependencies: + clone "^2.1.2" + less "^3.11.3" + loader-utils "^2.0.0" + schema-utils "^2.7.0" + +less@^3.11.3: + version "3.13.1" + resolved "https://registry.yarnpkg.com/less/-/less-3.13.1.tgz#0ebc91d2a0e9c0c6735b83d496b0ab0583077909" + integrity sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw== + dependencies: + copy-anything "^2.0.1" + tslib "^1.10.0" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + make-dir "^2.1.0" + mime "^1.4.1" + native-request "^1.0.5" + source-map "~0.6.0" + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -9489,7 +9685,7 @@ mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, dependencies: mime-db "1.48.0" -mime@1.6.0, mime@^1.5.0: +mime@1.6.0, mime@^1.4.1, mime@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== @@ -9790,6 +9986,11 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +native-request@^1.0.5: + version "1.1.0" + resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.1.0.tgz#acdb30fe2eefa3e1bc8c54b3a6852e9c5c0d3cb0" + integrity sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw== + native-url@^0.2.6: version "0.2.6" resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.2.6.tgz#ca1258f5ace169c716ff44eccbddb674e10399ae" @@ -12941,7 +13142,7 @@ sockjs@^0.3.21: uuid "^3.4.0" websocket-driver "^0.7.4" -source-list-map@^2.0.0: +source-list-map@^2.0.0, source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== @@ -13541,6 +13742,11 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + tar@^6.0.2: version "6.1.0" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" @@ -13871,7 +14077,7 @@ ts-pnp@^1.1.6: resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== -tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -14201,16 +14407,7 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-loader@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-2.1.0.tgz#bcc1ecabbd197e913eca23f5e0378e24b4412961" - integrity sha512-kVrp/8VfEm5fUt+fl2E0FQyrpmOYgMEkBsv8+UDP1wFhszECq5JyGF33I7cajlVY90zRZ6MyfgKXngLvHYZX8A== - dependencies: - loader-utils "^1.2.3" - mime "^2.4.4" - schema-utils "^2.0.0" - -url-loader@^4.1.1: +url-loader@4.1.1, url-loader@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== @@ -14574,6 +14771,14 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: source-list-map "^2.0.0" source-map "~0.6.1" +webpack-sources@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" + integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + webpack-virtual-modules@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz#20863dc3cb6bb2104729fff951fbe14b18bd0299" diff --git a/pkg/ui/workspaces/eslint-plugin-crdb/BUILD.bazel b/pkg/ui/workspaces/eslint-plugin-crdb/BUILD.bazel index 1553d38ce6cc..7e2e62e66f53 100644 --- a/pkg/ui/workspaces/eslint-plugin-crdb/BUILD.bazel +++ b/pkg/ui/workspaces/eslint-plugin-crdb/BUILD.bazel @@ -1,6 +1,6 @@ load("@build_bazel_rules_nodejs//:index.bzl", "js_library") -load("@npm_eslint_rules//@bazel/typescript:index.bzl", "ts_project") -load("@npm_eslint_rules//jest:index.bzl", "jest_test") +load("@npm_eslint_plugin_crdb//@bazel/typescript:index.bzl", "ts_project") +load("@npm_eslint_plugin_crdb//jest:index.bzl", "jest_test") ts_project( name = "ts_project", @@ -13,12 +13,12 @@ ts_project( tsconfig = "tsconfig.json", validate = False, deps = [ - "@npm_eslint_rules//@typescript-eslint/utils", + "@npm_eslint_plugin_crdb//@typescript-eslint/utils", ], ) js_library( - name = "eslint-rules", + name = "eslint-plugin-crdb", package_name = "@cockroachlabs/eslint-plugin-crdb", srcs = [ "package.json", diff --git a/pkg/ui/workspaces/eslint-plugin-crdb/package.json b/pkg/ui/workspaces/eslint-plugin-crdb/package.json index 344546a61231..db67b17e60ab 100644 --- a/pkg/ui/workspaces/eslint-plugin-crdb/package.json +++ b/pkg/ui/workspaces/eslint-plugin-crdb/package.json @@ -14,6 +14,7 @@ }, "devDependencies": { "@bazel/typescript": "5.5.0", + "@bazel/worker": "5.5.0", "@types/eslint": "^8.4.2", "@typescript-eslint/parser": "^5.26.0", "@typescript-eslint/utils": "^5.26.0",