[kbn/bazel-packages] convert to js (#139235)

This commit is contained in:
Spencer 2022-08-23 14:46:52 -07:00 committed by GitHub
parent fe646b297d
commit 6b0bd5b570
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 509 additions and 211 deletions

View file

@ -14,110 +14,110 @@ filegroup(
"//packages/analytics/shippers/elastic_v3/common:build",
"//packages/analytics/shippers/elastic_v3/server:build",
"//packages/analytics/shippers/fullstory:build",
"//packages/core/analytics/core-analytics-browser:build",
"//packages/core/analytics/core-analytics-browser-internal:build",
"//packages/core/analytics/core-analytics-browser-mocks:build",
"//packages/core/analytics/core-analytics-browser:build",
"//packages/core/analytics/core-analytics-server:build",
"//packages/core/analytics/core-analytics-server-internal:build",
"//packages/core/analytics/core-analytics-server-mocks:build",
"//packages/core/analytics/core-analytics-server:build",
"//packages/core/base/core-base-browser-internal:build",
"//packages/core/base/core-base-browser-mocks:build",
"//packages/core/base/core-base-common-internal:build",
"//packages/core/base/core-base-common:build",
"//packages/core/base/core-base-common-internal:build",
"//packages/core/base/core-base-server-internal:build",
"//packages/core/base/core-base-server-mocks:build",
"//packages/core/capabilities/core-capabilities-common:build",
"//packages/core/capabilities/core-capabilities-server:build",
"//packages/core/capabilities/core-capabilities-server-internal:build",
"//packages/core/capabilities/core-capabilities-server-mocks:build",
"//packages/core/capabilities/core-capabilities-server:build",
"//packages/core/config/core-config-server-internal:build",
"//packages/core/deprecations/core-deprecations-browser:build",
"//packages/core/deprecations/core-deprecations-browser-internal:build",
"//packages/core/deprecations/core-deprecations-browser-mocks:build",
"//packages/core/deprecations/core-deprecations-browser:build",
"//packages/core/deprecations/core-deprecations-common:build",
"//packages/core/doc-links/core-doc-links-browser:build",
"//packages/core/doc-links/core-doc-links-browser-internal:build",
"//packages/core/doc-links/core-doc-links-browser-mocks:build",
"//packages/core/doc-links/core-doc-links-browser:build",
"//packages/core/doc-links/core-doc-links-server:build",
"//packages/core/doc-links/core-doc-links-server-internal:build",
"//packages/core/doc-links/core-doc-links-server-mocks:build",
"//packages/core/doc-links/core-doc-links-server:build",
"//packages/core/elasticsearch/core-elasticsearch-client-server-internal:build",
"//packages/core/elasticsearch/core-elasticsearch-client-server-mocks:build",
"//packages/core/elasticsearch/core-elasticsearch-server:build",
"//packages/core/elasticsearch/core-elasticsearch-server-internal:build",
"//packages/core/elasticsearch/core-elasticsearch-server-mocks:build",
"//packages/core/elasticsearch/core-elasticsearch-server:build",
"//packages/core/environment/core-environment-server-internal:build",
"//packages/core/environment/core-environment-server-mocks:build",
"//packages/core/execution-context/core-execution-context-browser:build",
"//packages/core/execution-context/core-execution-context-browser-internal:build",
"//packages/core/execution-context/core-execution-context-browser-mocks:build",
"//packages/core/execution-context/core-execution-context-browser:build",
"//packages/core/execution-context/core-execution-context-common:build",
"//packages/core/execution-context/core-execution-context-server:build",
"//packages/core/execution-context/core-execution-context-server-internal:build",
"//packages/core/execution-context/core-execution-context-server-mocks:build",
"//packages/core/execution-context/core-execution-context-server:build",
"//packages/core/fatal-errors/core-fatal-errors-browser:build",
"//packages/core/fatal-errors/core-fatal-errors-browser-internal:build",
"//packages/core/fatal-errors/core-fatal-errors-browser-mocks:build",
"//packages/core/fatal-errors/core-fatal-errors-browser:build",
"//packages/core/http/core-http-browser:build",
"//packages/core/http/core-http-browser-internal:build",
"//packages/core/http/core-http-browser-mocks:build",
"//packages/core/http/core-http-browser:build",
"//packages/core/http/core-http-common:build",
"//packages/core/http/core-http-context-server-internal:build",
"//packages/core/http/core-http-context-server-mocks:build",
"//packages/core/http/core-http-router-server-internal:build",
"//packages/core/http/core-http-router-server-mocks:build",
"//packages/core/http/core-http-server:build",
"//packages/core/http/core-http-server-internal:build",
"//packages/core/http/core-http-server-mocks:build",
"//packages/core/http/core-http-server:build",
"//packages/core/i18n/core-i18n-browser:build",
"//packages/core/i18n/core-i18n-browser-internal:build",
"//packages/core/i18n/core-i18n-browser-mocks:build",
"//packages/core/i18n/core-i18n-browser:build",
"//packages/core/injected-metadata/core-injected-metadata-browser:build",
"//packages/core/injected-metadata/core-injected-metadata-browser-internal:build",
"//packages/core/injected-metadata/core-injected-metadata-browser-mocks:build",
"//packages/core/injected-metadata/core-injected-metadata-browser:build",
"//packages/core/injected-metadata/core-injected-metadata-common-internal:build",
"//packages/core/integrations/core-integrations-browser-internal:build",
"//packages/core/integrations/core-integrations-browser-mocks:build",
"//packages/core/logging/core-logging-server:build",
"//packages/core/logging/core-logging-server-internal:build",
"//packages/core/logging/core-logging-server-mocks:build",
"//packages/core/logging/core-logging-server:build",
"//packages/core/metrics/core-metrics-collectors-server-internal:build",
"//packages/core/metrics/core-metrics-collectors-server-mocks:build",
"//packages/core/metrics/core-metrics-server:build",
"//packages/core/metrics/core-metrics-server-internal:build",
"//packages/core/metrics/core-metrics-server-mocks:build",
"//packages/core/metrics/core-metrics-server:build",
"//packages/core/mount-utils/core-mount-utils-browser-internal:build",
"//packages/core/mount-utils/core-mount-utils-browser:build",
"//packages/core/mount-utils/core-mount-utils-browser-internal:build",
"//packages/core/node/core-node-server:build",
"//packages/core/node/core-node-server-internal:build",
"//packages/core/node/core-node-server-mocks:build",
"//packages/core/node/core-node-server:build",
"//packages/core/notifications/core-notifications-browser:build",
"//packages/core/notifications/core-notifications-browser-internal:build",
"//packages/core/notifications/core-notifications-browser-mocks:build",
"//packages/core/notifications/core-notifications-browser:build",
"//packages/core/overlays/core-overlays-browser:build",
"//packages/core/overlays/core-overlays-browser-internal:build",
"//packages/core/overlays/core-overlays-browser-mocks:build",
"//packages/core/overlays/core-overlays-browser:build",
"//packages/core/preboot/core-preboot-server:build",
"//packages/core/preboot/core-preboot-server-internal:build",
"//packages/core/preboot/core-preboot-server-mocks:build",
"//packages/core/preboot/core-preboot-server:build",
"//packages/core/saved-objects/core-saved-objects-api-browser:build",
"//packages/core/saved-objects/core-saved-objects-api-server:build",
"//packages/core/saved-objects/core-saved-objects-base-server-internal:build",
"//packages/core/saved-objects/core-saved-objects-base-server-mocks:build",
"//packages/core/saved-objects/core-saved-objects-browser:build",
"//packages/core/saved-objects/core-saved-objects-browser-internal:build",
"//packages/core/saved-objects/core-saved-objects-browser-mocks:build",
"//packages/core/saved-objects/core-saved-objects-browser:build",
"//packages/core/saved-objects/core-saved-objects-common:build",
"//packages/core/saved-objects/core-saved-objects-server:build",
"//packages/core/saved-objects/core-saved-objects-utils-server:build",
"//packages/core/test-helpers/core-test-helpers-deprecations-getters:build",
"//packages/core/test-helpers/core-test-helpers-http-setup-browser:build",
"//packages/core/theme/core-theme-browser:build",
"//packages/core/theme/core-theme-browser-internal:build",
"//packages/core/theme/core-theme-browser-mocks:build",
"//packages/core/theme/core-theme-browser:build",
"//packages/core/ui-settings/core-ui-settings-browser:build",
"//packages/core/ui-settings/core-ui-settings-browser-internal:build",
"//packages/core/ui-settings/core-ui-settings-browser-mocks:build",
"//packages/core/ui-settings/core-ui-settings-browser:build",
"//packages/core/ui-settings/core-ui-settings-common:build",
"//packages/home/sample_data_card:build",
"//packages/home/sample_data_tab:build",
@ -141,11 +141,11 @@ filegroup(
"//packages/kbn-ci-stats-reporter:build",
"//packages/kbn-cli-dev-mode:build",
"//packages/kbn-coloring:build",
"//packages/kbn-config:build",
"//packages/kbn-config-mocks:build",
"//packages/kbn-config-schema:build",
"//packages/kbn-config:build",
"//packages/kbn-crypto-browser:build",
"//packages/kbn-crypto:build",
"//packages/kbn-crypto-browser:build",
"//packages/kbn-datemath:build",
"//packages/kbn-dev-cli-errors:build",
"//packages/kbn-dev-cli-runner:build",
@ -154,10 +154,10 @@ filegroup(
"//packages/kbn-doc-links:build",
"//packages/kbn-docs-utils:build",
"//packages/kbn-ebt-tools:build",
"//packages/kbn-es:build",
"//packages/kbn-es-archiver:build",
"//packages/kbn-es-errors:build",
"//packages/kbn-es-query:build",
"//packages/kbn-es:build",
"//packages/kbn-eslint-config:build",
"//packages/kbn-eslint-plugin-disable:build",
"//packages/kbn-eslint-plugin-eslint:build",
@ -170,8 +170,8 @@ filegroup(
"//packages/kbn-get-repo-files:build",
"//packages/kbn-handlebars:build",
"//packages/kbn-hapi-mocks:build",
"//packages/kbn-i18n-react:build",
"//packages/kbn-i18n:build",
"//packages/kbn-i18n-react:build",
"//packages/kbn-import-resolver:build",
"//packages/kbn-interpreter:build",
"//packages/kbn-io-ts-utils:build",
@ -179,21 +179,21 @@ filegroup(
"//packages/kbn-jsonc:build",
"//packages/kbn-kibana-manifest-parser:build",
"//packages/kbn-kibana-manifest-schema:build",
"//packages/kbn-logging-mocks:build",
"//packages/kbn-logging:build",
"//packages/kbn-managed-vscode-config-cli:build",
"//packages/kbn-logging-mocks:build",
"//packages/kbn-managed-vscode-config:build",
"//packages/kbn-managed-vscode-config-cli:build",
"//packages/kbn-mapbox-gl:build",
"//packages/kbn-monaco:build",
"//packages/kbn-optimizer-webpack-helpers:build",
"//packages/kbn-optimizer:build",
"//packages/kbn-optimizer-webpack-helpers:build",
"//packages/kbn-performance-testing-dataset-extractor:build",
"//packages/kbn-plugin-discovery:build",
"//packages/kbn-plugin-generator:build",
"//packages/kbn-plugin-helpers:build",
"//packages/kbn-react-field:build",
"//packages/kbn-repo-source-classifier-cli:build",
"//packages/kbn-repo-source-classifier:build",
"//packages/kbn-repo-source-classifier-cli:build",
"//packages/kbn-rule-data-utils:build",
"//packages/kbn-safer-lodash-set:build",
"//packages/kbn-securitysolution-autocomplete:build",
@ -222,23 +222,23 @@ filegroup(
"//packages/kbn-storybook:build",
"//packages/kbn-synthetic-package-map:build",
"//packages/kbn-telemetry-tools:build",
"//packages/kbn-test:build",
"//packages/kbn-test-jest-helpers:build",
"//packages/kbn-test-subj-selector:build",
"//packages/kbn-test:build",
"//packages/kbn-timelion-grammar:build",
"//packages/kbn-tinymath:build",
"//packages/kbn-tooling-log:build",
"//packages/kbn-type-summarizer:build",
"//packages/kbn-type-summarizer-cli:build",
"//packages/kbn-type-summarizer-core:build",
"//packages/kbn-type-summarizer:build",
"//packages/kbn-typed-react-router-config:build",
"//packages/kbn-ui-framework:build",
"//packages/kbn-ui-shared-deps-npm:build",
"//packages/kbn-ui-shared-deps-src:build",
"//packages/kbn-ui-theme:build",
"//packages/kbn-user-profile-components:build",
"//packages/kbn-utility-types-jest:build",
"//packages/kbn-utility-types:build",
"//packages/kbn-utility-types-jest:build",
"//packages/kbn-utils:build",
"//packages/kbn-yarn-lock-validator:build",
"//packages/shared-ux/avatar/solution:build",
@ -290,110 +290,110 @@ filegroup(
"//packages/analytics/shippers/elastic_v3/common:build_types",
"//packages/analytics/shippers/elastic_v3/server:build_types",
"//packages/analytics/shippers/fullstory:build_types",
"//packages/core/analytics/core-analytics-browser:build_types",
"//packages/core/analytics/core-analytics-browser-internal:build_types",
"//packages/core/analytics/core-analytics-browser-mocks:build_types",
"//packages/core/analytics/core-analytics-browser:build_types",
"//packages/core/analytics/core-analytics-server:build_types",
"//packages/core/analytics/core-analytics-server-internal:build_types",
"//packages/core/analytics/core-analytics-server-mocks:build_types",
"//packages/core/analytics/core-analytics-server:build_types",
"//packages/core/base/core-base-browser-internal:build_types",
"//packages/core/base/core-base-browser-mocks:build_types",
"//packages/core/base/core-base-common-internal:build_types",
"//packages/core/base/core-base-common:build_types",
"//packages/core/base/core-base-common-internal:build_types",
"//packages/core/base/core-base-server-internal:build_types",
"//packages/core/base/core-base-server-mocks:build_types",
"//packages/core/capabilities/core-capabilities-common:build_types",
"//packages/core/capabilities/core-capabilities-server:build_types",
"//packages/core/capabilities/core-capabilities-server-internal:build_types",
"//packages/core/capabilities/core-capabilities-server-mocks:build_types",
"//packages/core/capabilities/core-capabilities-server:build_types",
"//packages/core/config/core-config-server-internal:build_types",
"//packages/core/deprecations/core-deprecations-browser:build_types",
"//packages/core/deprecations/core-deprecations-browser-internal:build_types",
"//packages/core/deprecations/core-deprecations-browser-mocks:build_types",
"//packages/core/deprecations/core-deprecations-browser:build_types",
"//packages/core/deprecations/core-deprecations-common:build_types",
"//packages/core/doc-links/core-doc-links-browser:build_types",
"//packages/core/doc-links/core-doc-links-browser-internal:build_types",
"//packages/core/doc-links/core-doc-links-browser-mocks:build_types",
"//packages/core/doc-links/core-doc-links-browser:build_types",
"//packages/core/doc-links/core-doc-links-server:build_types",
"//packages/core/doc-links/core-doc-links-server-internal:build_types",
"//packages/core/doc-links/core-doc-links-server-mocks:build_types",
"//packages/core/doc-links/core-doc-links-server:build_types",
"//packages/core/elasticsearch/core-elasticsearch-client-server-internal:build_types",
"//packages/core/elasticsearch/core-elasticsearch-client-server-mocks:build_types",
"//packages/core/elasticsearch/core-elasticsearch-server:build_types",
"//packages/core/elasticsearch/core-elasticsearch-server-internal:build_types",
"//packages/core/elasticsearch/core-elasticsearch-server-mocks:build_types",
"//packages/core/elasticsearch/core-elasticsearch-server:build_types",
"//packages/core/environment/core-environment-server-internal:build_types",
"//packages/core/environment/core-environment-server-mocks:build_types",
"//packages/core/execution-context/core-execution-context-browser:build_types",
"//packages/core/execution-context/core-execution-context-browser-internal:build_types",
"//packages/core/execution-context/core-execution-context-browser-mocks:build_types",
"//packages/core/execution-context/core-execution-context-browser:build_types",
"//packages/core/execution-context/core-execution-context-common:build_types",
"//packages/core/execution-context/core-execution-context-server:build_types",
"//packages/core/execution-context/core-execution-context-server-internal:build_types",
"//packages/core/execution-context/core-execution-context-server-mocks:build_types",
"//packages/core/execution-context/core-execution-context-server:build_types",
"//packages/core/fatal-errors/core-fatal-errors-browser:build_types",
"//packages/core/fatal-errors/core-fatal-errors-browser-internal:build_types",
"//packages/core/fatal-errors/core-fatal-errors-browser-mocks:build_types",
"//packages/core/fatal-errors/core-fatal-errors-browser:build_types",
"//packages/core/http/core-http-browser:build_types",
"//packages/core/http/core-http-browser-internal:build_types",
"//packages/core/http/core-http-browser-mocks:build_types",
"//packages/core/http/core-http-browser:build_types",
"//packages/core/http/core-http-common:build_types",
"//packages/core/http/core-http-context-server-internal:build_types",
"//packages/core/http/core-http-context-server-mocks:build_types",
"//packages/core/http/core-http-router-server-internal:build_types",
"//packages/core/http/core-http-router-server-mocks:build_types",
"//packages/core/http/core-http-server:build_types",
"//packages/core/http/core-http-server-internal:build_types",
"//packages/core/http/core-http-server-mocks:build_types",
"//packages/core/http/core-http-server:build_types",
"//packages/core/i18n/core-i18n-browser:build_types",
"//packages/core/i18n/core-i18n-browser-internal:build_types",
"//packages/core/i18n/core-i18n-browser-mocks:build_types",
"//packages/core/i18n/core-i18n-browser:build_types",
"//packages/core/injected-metadata/core-injected-metadata-browser:build_types",
"//packages/core/injected-metadata/core-injected-metadata-browser-internal:build_types",
"//packages/core/injected-metadata/core-injected-metadata-browser-mocks:build_types",
"//packages/core/injected-metadata/core-injected-metadata-browser:build_types",
"//packages/core/injected-metadata/core-injected-metadata-common-internal:build_types",
"//packages/core/integrations/core-integrations-browser-internal:build_types",
"//packages/core/integrations/core-integrations-browser-mocks:build_types",
"//packages/core/logging/core-logging-server:build_types",
"//packages/core/logging/core-logging-server-internal:build_types",
"//packages/core/logging/core-logging-server-mocks:build_types",
"//packages/core/logging/core-logging-server:build_types",
"//packages/core/metrics/core-metrics-collectors-server-internal:build_types",
"//packages/core/metrics/core-metrics-collectors-server-mocks:build_types",
"//packages/core/metrics/core-metrics-server:build_types",
"//packages/core/metrics/core-metrics-server-internal:build_types",
"//packages/core/metrics/core-metrics-server-mocks:build_types",
"//packages/core/metrics/core-metrics-server:build_types",
"//packages/core/mount-utils/core-mount-utils-browser-internal:build_types",
"//packages/core/mount-utils/core-mount-utils-browser:build_types",
"//packages/core/mount-utils/core-mount-utils-browser-internal:build_types",
"//packages/core/node/core-node-server:build_types",
"//packages/core/node/core-node-server-internal:build_types",
"//packages/core/node/core-node-server-mocks:build_types",
"//packages/core/node/core-node-server:build_types",
"//packages/core/notifications/core-notifications-browser:build_types",
"//packages/core/notifications/core-notifications-browser-internal:build_types",
"//packages/core/notifications/core-notifications-browser-mocks:build_types",
"//packages/core/notifications/core-notifications-browser:build_types",
"//packages/core/overlays/core-overlays-browser:build_types",
"//packages/core/overlays/core-overlays-browser-internal:build_types",
"//packages/core/overlays/core-overlays-browser-mocks:build_types",
"//packages/core/overlays/core-overlays-browser:build_types",
"//packages/core/preboot/core-preboot-server:build_types",
"//packages/core/preboot/core-preboot-server-internal:build_types",
"//packages/core/preboot/core-preboot-server-mocks:build_types",
"//packages/core/preboot/core-preboot-server:build_types",
"//packages/core/saved-objects/core-saved-objects-api-browser:build_types",
"//packages/core/saved-objects/core-saved-objects-api-server:build_types",
"//packages/core/saved-objects/core-saved-objects-base-server-internal:build_types",
"//packages/core/saved-objects/core-saved-objects-base-server-mocks:build_types",
"//packages/core/saved-objects/core-saved-objects-browser:build_types",
"//packages/core/saved-objects/core-saved-objects-browser-internal:build_types",
"//packages/core/saved-objects/core-saved-objects-browser-mocks:build_types",
"//packages/core/saved-objects/core-saved-objects-browser:build_types",
"//packages/core/saved-objects/core-saved-objects-common:build_types",
"//packages/core/saved-objects/core-saved-objects-server:build_types",
"//packages/core/saved-objects/core-saved-objects-utils-server:build_types",
"//packages/core/test-helpers/core-test-helpers-deprecations-getters:build_types",
"//packages/core/test-helpers/core-test-helpers-http-setup-browser:build_types",
"//packages/core/theme/core-theme-browser:build_types",
"//packages/core/theme/core-theme-browser-internal:build_types",
"//packages/core/theme/core-theme-browser-mocks:build_types",
"//packages/core/theme/core-theme-browser:build_types",
"//packages/core/ui-settings/core-ui-settings-browser:build_types",
"//packages/core/ui-settings/core-ui-settings-browser-internal:build_types",
"//packages/core/ui-settings/core-ui-settings-browser-mocks:build_types",
"//packages/core/ui-settings/core-ui-settings-browser:build_types",
"//packages/core/ui-settings/core-ui-settings-common:build_types",
"//packages/home/sample_data_card:build_types",
"//packages/home/sample_data_tab:build_types",
@ -412,11 +412,11 @@ filegroup(
"//packages/kbn-ci-stats-reporter:build_types",
"//packages/kbn-cli-dev-mode:build_types",
"//packages/kbn-coloring:build_types",
"//packages/kbn-config:build_types",
"//packages/kbn-config-mocks:build_types",
"//packages/kbn-config-schema:build_types",
"//packages/kbn-config:build_types",
"//packages/kbn-crypto-browser:build_types",
"//packages/kbn-crypto:build_types",
"//packages/kbn-crypto-browser:build_types",
"//packages/kbn-datemath:build_types",
"//packages/kbn-dev-cli-errors:build_types",
"//packages/kbn-dev-cli-runner:build_types",
@ -436,8 +436,8 @@ filegroup(
"//packages/kbn-get-repo-files:build_types",
"//packages/kbn-handlebars:build_types",
"//packages/kbn-hapi-mocks:build_types",
"//packages/kbn-i18n-react:build_types",
"//packages/kbn-i18n:build_types",
"//packages/kbn-i18n-react:build_types",
"//packages/kbn-import-resolver:build_types",
"//packages/kbn-interpreter:build_types",
"//packages/kbn-io-ts-utils:build_types",
@ -445,21 +445,21 @@ filegroup(
"//packages/kbn-jsonc:build_types",
"//packages/kbn-kibana-manifest-parser:build_types",
"//packages/kbn-kibana-manifest-schema:build_types",
"//packages/kbn-logging-mocks:build_types",
"//packages/kbn-logging:build_types",
"//packages/kbn-managed-vscode-config-cli:build_types",
"//packages/kbn-logging-mocks:build_types",
"//packages/kbn-managed-vscode-config:build_types",
"//packages/kbn-managed-vscode-config-cli:build_types",
"//packages/kbn-mapbox-gl:build_types",
"//packages/kbn-monaco:build_types",
"//packages/kbn-optimizer-webpack-helpers:build_types",
"//packages/kbn-optimizer:build_types",
"//packages/kbn-optimizer-webpack-helpers:build_types",
"//packages/kbn-performance-testing-dataset-extractor:build_types",
"//packages/kbn-plugin-discovery:build_types",
"//packages/kbn-plugin-generator:build_types",
"//packages/kbn-plugin-helpers:build_types",
"//packages/kbn-react-field:build_types",
"//packages/kbn-repo-source-classifier-cli:build_types",
"//packages/kbn-repo-source-classifier:build_types",
"//packages/kbn-repo-source-classifier-cli:build_types",
"//packages/kbn-rule-data-utils:build_types",
"//packages/kbn-safer-lodash-set:build_types",
"//packages/kbn-securitysolution-autocomplete:build_types",
@ -486,19 +486,19 @@ filegroup(
"//packages/kbn-stdio-dev-helpers:build_types",
"//packages/kbn-storybook:build_types",
"//packages/kbn-telemetry-tools:build_types",
"//packages/kbn-test-jest-helpers:build_types",
"//packages/kbn-test:build_types",
"//packages/kbn-test-jest-helpers:build_types",
"//packages/kbn-tooling-log:build_types",
"//packages/kbn-type-summarizer:build_types",
"//packages/kbn-type-summarizer-cli:build_types",
"//packages/kbn-type-summarizer-core:build_types",
"//packages/kbn-type-summarizer:build_types",
"//packages/kbn-typed-react-router-config:build_types",
"//packages/kbn-ui-shared-deps-npm:build_types",
"//packages/kbn-ui-shared-deps-src:build_types",
"//packages/kbn-ui-theme:build_types",
"//packages/kbn-user-profile-components:build_types",
"//packages/kbn-utility-types-jest:build_types",
"//packages/kbn-utility-types:build_types",
"//packages/kbn-utility-types-jest:build_types",
"//packages/kbn-utils:build_types",
"//packages/kbn-yarn-lock-validator:build_types",
"//packages/shared-ux/avatar/solution:build_types",

View file

@ -7,6 +7,7 @@ PKG_REQUIRE_NAME = "@kbn/bazel-packages"
SOURCE_FILES = glob(
[
"src/**/*.js",
"src/**/*.ts",
],
exclude = [
@ -37,11 +38,6 @@ NPM_MODULE_EXTRA_FILES = [
# "@npm//name-of-package"
# eg. "@npm//lodash"
RUNTIME_DEPS = [
"//packages/kbn-utils",
"//packages/kbn-std",
"//packages/kbn-synthetic-package-map",
"@npm//globby",
"@npm//normalize-path",
]
# In this array place dependencies necessary to build the types, which will include the
@ -55,13 +51,8 @@ RUNTIME_DEPS = [
# References to NPM packages work the same as RUNTIME_DEPS:
# eg. "@npm//@types/babel__core"
TYPES_DEPS = [
"//packages/kbn-utils:npm_module_types",
"//packages/kbn-std:npm_module_types",
"//packages/kbn-synthetic-package-map:npm_module_types",
"@npm//@types/node",
"@npm//@types/normalize-path",
"@npm//globby",
"@npm//normalize-path",
"@npm//@types/jest",
]
jsts_transpiler(
@ -87,6 +78,7 @@ ts_project(
deps = TYPES_DEPS,
declaration = True,
declaration_map = True,
allow_js = True,
emit_declaration_only = True,
out_dir = "target_types",
root_dir = "src",

View file

@ -0,0 +1,107 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
/**
*
* @template T
* @template T2
* @param {(v: T) => Promise<T2>} fn
* @param {T} item
* @returns {Promise<PromiseSettledResult<T2>>}
*/
const settle = async (fn, item) => {
const [result] = await Promise.allSettled([(async () => fn(item))()]);
return result;
};
/**
* @template T
* @template T2
* @param {Array<T>} source
* @param {number} limit
* @param {(v: T) => Promise<T2>} mapFn
* @returns {Promise<T2[]>}
*/
function asyncMapWithLimit(source, limit, mapFn) {
return new Promise((resolve, reject) => {
if (limit < 1) {
reject(new Error('invalid limit, must be greater than 0'));
return;
}
let failed = false;
let inProgress = 0;
const queue = [...source.entries()];
/** @type {T2[]} */
const results = new Array(source.length);
/**
* this is run for each item, manages the inProgress state,
* calls the mapFn with that item, writes the map result to
* the result array, and calls runMore() after each item
* completes to either start another item or resolve the
* returned promise.
*
* @param {number} index
* @param {T} item
*/
function run(index, item) {
inProgress += 1;
settle(mapFn, item).then((result) => {
inProgress -= 1;
if (failed) {
return;
}
if (result.status === 'fulfilled') {
results[index] = result.value;
runMore();
return;
}
// when an error occurs we update the state to prevent
// holding onto old results and ignore future results
// from in-progress promises
failed = true;
results.length = 0;
reject(result.reason);
});
}
/**
* If there is work in the queue, schedule it, if there isn't
* any work to be scheduled and there isn't anything in progress
* then we're done. This function is called every time a mapFn
* promise resolves and once after initialization
*/
function runMore() {
if (!queue.length) {
if (inProgress === 0) {
resolve(results);
}
return;
}
while (inProgress < limit) {
const entry = queue.shift();
if (!entry) {
break;
}
run(...entry);
}
}
runMore();
});
}
module.exports = { asyncMapWithLimit };

View file

@ -0,0 +1,61 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
import { setTimeout } from 'timers/promises';
import { asyncMapWithLimit } from './async';
const NUMS = [1, 2, 3, 4];
const ident = jest.fn(async function ident<T>(x: T) {
return await x;
});
const double = jest.fn(async function double(x: number) {
return x * 2;
});
beforeEach(() => {
jest.clearAllMocks();
});
it('resolves with an empty array', async () => {
const result = await asyncMapWithLimit([], 10, ident);
expect(ident).not.toHaveBeenCalled();
expect(result).toEqual([]);
});
it('resolves with a mapped array', async () => {
const result = await asyncMapWithLimit(NUMS, 10, double);
expect(double).toHaveBeenCalledTimes(NUMS.length);
expect(result.join(',')).toMatchInlineSnapshot(`"2,4,6,8"`);
});
it('rejects when limit it not >= 1', async () => {
await expect(() => asyncMapWithLimit([], -1, ident)).rejects.toMatchInlineSnapshot(
`[Error: invalid limit, must be greater than 0]`
);
await expect(() => asyncMapWithLimit([], 0, ident)).rejects.toMatchInlineSnapshot(
`[Error: invalid limit, must be greater than 0]`
);
await expect(() => asyncMapWithLimit([], -Infinity, ident)).rejects.toMatchInlineSnapshot(
`[Error: invalid limit, must be greater than 0]`
);
});
it('rejects with the first error produced and stops calling mapFn', async () => {
const map = jest.fn(async (num) => {
if (num % 2 === 0) {
throw new Error('even numbers are not supported');
}
return num * 2;
});
await expect(() => asyncMapWithLimit(NUMS, 1, map)).rejects.toMatchInlineSnapshot(
`[Error: even numbers are not supported]`
);
await setTimeout(10);
expect(map).toHaveBeenCalledTimes(2);
});

View file

@ -6,27 +6,31 @@
* Side Public License, v 1.
*/
import { inspect } from 'util';
import Path from 'path';
import Fsp from 'fs/promises';
const { inspect } = require('util');
const Path = require('path');
const Fsp = require('fs/promises');
import normalizePath from 'normalize-path';
import { REPO_ROOT } from '@kbn/utils';
import { readPackageJson, ParsedPackageJson } from './parse_package_json';
/** @typedef {import('./types').ParsedPackageJson} ParsedPackageJson */
const { readPackageJson } = require('./parse_package_json');
const BUILD_RULE_NAME = /(^|\s)name\s*=\s*"build"/;
const BUILD_TYPES_RULE_NAME = /(^|\s)name\s*=\s*"build_types"/;
/**
* Representation of a Bazel Package in the Kibana repository
* @class
* @property {string} normalizedRepoRelativeDir
* @property {import('./types').ParsedPackageJson} pkg
* @property {string | undefined} buildBazelContent
*/
export class BazelPackage {
class BazelPackage {
/**
* Create a BazelPackage object from a package directory. Reads some files from the package and returns
* a Promise for a BazelPackage instance.
* @param {string} repoRoot
* @param {string} dir
*/
static async fromDir(dir: string) {
static async fromDir(repoRoot, dir) {
const pkg = readPackageJson(Path.resolve(dir, 'package.json'));
let buildBazelContent;
@ -36,23 +40,30 @@ export class BazelPackage {
throw new Error(`unable to read BUILD.bazel file in [${dir}]: ${error.message}`);
}
return new BazelPackage(normalizePath(Path.relative(REPO_ROOT, dir)), pkg, buildBazelContent);
return new BazelPackage(Path.relative(repoRoot, dir), pkg, buildBazelContent);
}
constructor(
/**
* Relative path from the root of the repository to the package directory
* @type {string}
*/
public readonly normalizedRepoRelativeDir: string,
normalizedRepoRelativeDir,
/**
* Parsed package.json file from the package
* @type {import('./types').ParsedPackageJson}
*/
public readonly pkg: ParsedPackageJson,
pkg,
/**
* Content of the BUILD.bazel file
* @type {string | undefined}
*/
private readonly buildBazelContent?: string
) {}
buildBazelContent = undefined
) {
this.normalizedRepoRelativeDir = normalizedRepoRelativeDir;
this.pkg = pkg;
this.buildBazelContent = buildBazelContent;
}
/**
* Returns true if the package includes a `:build` bazel rule
@ -83,3 +94,7 @@ export class BazelPackage {
return `BazelPackage<${this.normalizedRepoRelativeDir}>`;
}
}
module.exports = {
BazelPackage,
};

View file

@ -6,10 +6,7 @@
* Side Public License, v 1.
*/
import globby from 'globby';
import Path from 'path';
import { REPO_ROOT } from '@kbn/utils';
const { expandWildcards } = require('./find_files');
/**
* This is a list of repo-relative paths to directories containing packages. Do not
@ -19,7 +16,7 @@ import { REPO_ROOT } from '@kbn/utils';
* eg. src/vis_editors => would find a package at src/vis_editors/foo/package.json
* src/vis_editors/* => would find a package at src/vis_editors/foo/bar/package.json
*/
export const BAZEL_PACKAGE_DIRS = [
const BAZEL_PACKAGE_DIRS = [
'packages',
'packages/shared-ux',
'packages/shared-ux/*',
@ -34,18 +31,13 @@ export const BAZEL_PACKAGE_DIRS = [
/**
* Resolve all the BAZEL_PACKAGE_DIRS to absolute paths
* @param {string} repoRoot
*/
export function getAllBazelPackageDirs() {
return globby.sync(BAZEL_PACKAGE_DIRS, {
cwd: REPO_ROOT,
onlyDirectories: true,
expandDirectories: false,
});
function getAllBazelPackageDirs(repoRoot) {
return expandWildcards(repoRoot, BAZEL_PACKAGE_DIRS);
}
/**
* Resolve all the BAZEL_PACKAGE_DIRS to repo-relative paths
*/
export function getAllRepoRelativeBazelPackageDirs() {
return getAllBazelPackageDirs().map((path) => Path.relative(REPO_ROOT, path));
}
module.exports = {
BAZEL_PACKAGE_DIRS,
getAllBazelPackageDirs,
};

View file

@ -0,0 +1,44 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
const Path = require('path');
const { BazelPackage } = require('./bazel_package');
const { getAllBazelPackageDirs } = require('./bazel_package_dirs');
const { findPackages } = require('./find_files');
const { asyncMapWithLimit } = require('./async');
/**
* @param {string} repoRoot
*/
function discoverBazelPackageLocations(repoRoot) {
const packagesWithBuildBazel = getAllBazelPackageDirs(repoRoot)
.flatMap((packageDir) => findPackages(packageDir, 'BUILD.bazel'))
.map((path) => Path.dirname(path));
// NOTE: only return as discovered packages with a package.json + BUILD.bazel file.
// In the future we should change this to only discover the ones with kibana.jsonc.
return getAllBazelPackageDirs(repoRoot)
.flatMap((packageDir) => findPackages(packageDir, 'package.json'))
.map((path) => Path.dirname(path))
.filter((pkg) => packagesWithBuildBazel.includes(pkg))
.sort((a, b) => a.localeCompare(b));
}
/**
* @param {string} repoRoot
*/
async function discoverBazelPackages(repoRoot) {
return await asyncMapWithLimit(
discoverBazelPackageLocations(repoRoot),
100,
async (dir) => await BazelPackage.fromDir(repoRoot, dir)
);
}
module.exports = { discoverBazelPackageLocations, discoverBazelPackages };

View file

@ -1,56 +0,0 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
import Path from 'path';
import globby from 'globby';
import normalizePath from 'normalize-path';
import { REPO_ROOT } from '@kbn/utils';
import { asyncMapWithLimit } from '@kbn/std';
import { BazelPackage } from './bazel_package';
import { BAZEL_PACKAGE_DIRS } from './bazel_package_dirs';
export function discoverBazelPackageLocations(repoRoot: string) {
const packagesWithPackageJson = globby
.sync(
BAZEL_PACKAGE_DIRS.map((dir) => `${dir}/*/package.json`),
{
cwd: repoRoot,
absolute: true,
}
)
// NOTE: removing x-pack by default for now to prevent a situation where a BUILD.bazel file
// needs to be added at the root of the folder which will make x-pack to be wrongly recognized
// as a Bazel package in that case
.filter((path) => !normalizePath(path).includes('x-pack/package.json'))
.sort((a, b) => a.localeCompare(b))
.map((path) => Path.dirname(path));
const packagesWithBuildBazel = globby
.sync(
BAZEL_PACKAGE_DIRS.map((dir) => `${dir}/*/BUILD.bazel`),
{
cwd: repoRoot,
absolute: true,
}
)
.map((path) => Path.dirname(path));
// NOTE: only return as discovered packages the ones with a package.json + BUILD.bazel file.
// In the future we should change this to only discover the ones declaring kibana.json.
return packagesWithPackageJson.filter((pkg) => packagesWithBuildBazel.includes(pkg));
}
export async function discoverBazelPackages(repoRoot: string = REPO_ROOT) {
return await asyncMapWithLimit(
discoverBazelPackageLocations(repoRoot),
100,
async (dir) => await BazelPackage.fromDir(dir)
);
}

View file

@ -0,0 +1,114 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
const Path = require('path');
const Fs = require('fs');
/**
* @param {string} path
*/
function safeIsFile(path) {
try {
return Fs.statSync(path).isFile();
} catch (error) {
if (error.code === 'ENOENT') {
return false;
}
throw error;
}
}
/**
* @param {string} path
*/
function safeReadDir(path) {
try {
return Fs.readdirSync(path, {
withFileTypes: true,
});
} catch (error) {
if (error.code === 'ENOENT' || error.code === 'ENOTDIR') {
return [];
}
throw error;
}
}
/**
* Search for `name` files in directories within `packageDir`
*
* @param {string} packageDir
* @param {string} name
* @returns {string[]}
*/
function findPackages(packageDir, name) {
return (
// get the directories within the "package dir"
safeReadDir(packageDir)
// if this directory has a file with the name, it's a match
.flatMap((e) => {
if (!e.isDirectory()) {
return [];
}
const path = Path.resolve(packageDir, e.name, name);
return safeIsFile(path) ? path : [];
})
);
}
/**
* Expand simple `*` wildcards in patterns, which are otherwise expected to be
* paths relative to `cwd`.
*
* @param {string} cwd
* @param {string[]} patterns
*/
function expandWildcards(cwd, patterns) {
/** @type {Set<string>} */
const results = new Set();
/** @type {Set<string>} */
const queue = new Set(patterns.map((p) => Path.resolve(cwd, p)));
for (const pattern of queue) {
let length = 3;
let index = pattern.indexOf('/*/');
if (index === -1 && pattern.endsWith('/*')) {
length = 2;
index = pattern.length - length;
}
if (index === -1) {
results.add(pattern);
continue;
}
const left = pattern.slice(0, index + 1);
const right = pattern.slice(index + length);
for (const ent of safeReadDir(left)) {
if (!ent.isDirectory()) {
continue;
}
const path = Path.resolve(left, ent.name);
if (right) {
queue.add(Path.resolve(path, right));
} else {
results.add(path);
}
}
}
return [...results];
}
module.exports = { findPackages, expandWildcards };

View file

@ -0,0 +1,19 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
/** @typedef {import('./bazel_package').BazelPackage} BazelPackage */
const { BAZEL_PACKAGE_DIRS, getAllBazelPackageDirs } = require('./bazel_package_dirs');
const { discoverBazelPackageLocations, discoverBazelPackages } = require('./discover_packages');
module.exports = {
BAZEL_PACKAGE_DIRS,
getAllBazelPackageDirs,
discoverBazelPackageLocations,
discoverBazelPackages,
};

View file

@ -1,11 +0,0 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
export * from './bazel_package_dirs';
export * from './discover_packages';
export type { BazelPackage } from './bazel_package';

View file

@ -6,40 +6,22 @@
* Side Public License, v 1.
*/
import Fs from 'fs';
const Fs = require('fs');
/**
* Simple parsed representation of a package.json file, validated
* by `assertParsedPackageJson()` and extensible as needed in the future
* @param {unknown} v
* @returns {v is Record<string, unknown>}
*/
export interface ParsedPackageJson {
/** The name of the package, usually `@kbn/`+something */
name: string;
/** "dependenices" property from package.json */
dependencies?: Record<string, string>;
/** "devDependenices" property from package.json */
devDependencies?: Record<string, string>;
/** Some kibana specific properties about this package */
kibana?: {
/** Is this package only intended for dev? */
devOnly?: boolean;
};
/** Scripts defined in the package.json file */
scripts?: {
[key: string]: string | undefined;
};
/** All other fields in the package.json are typed as unknown as we don't care what they are */
[key: string]: unknown;
}
function isObj(v: unknown): v is Record<string, unknown> {
function isObj(v) {
return !!(typeof v === 'object' && v);
}
/**
* Asserts that given value looks like a parsed package.json file
* @param {unknown} v
* @returns {asserts v is import('./types').ParsedPackageJson}
*/
export function assertParsedPackageJson(v: unknown): asserts v is ParsedPackageJson {
function validateParsedPackageJson(v) {
if (!isObj(v) || typeof v.name !== 'string') {
throw new Error('Expected at least a "name" property');
}
@ -66,14 +48,18 @@ export function assertParsedPackageJson(v: unknown): asserts v is ParsedPackageJ
/**
* Reads a given package.json file from disk and parses it
* @param {string} path
* @returns {import('./types').ParsedPackageJson}
*/
export function readPackageJson(path: string): ParsedPackageJson {
function readPackageJson(path) {
let pkg;
try {
pkg = JSON.parse(Fs.readFileSync(path, 'utf8'));
assertParsedPackageJson(pkg);
validateParsedPackageJson(pkg);
} catch (error) {
throw new Error(`unable to parse package.json at [${path}]: ${error.message}`);
}
return pkg;
}
module.exports = { readPackageJson, validateParsedPackageJson };

View file

@ -0,0 +1,31 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
/**
* Simple parsed representation of a package.json file, validated
* by `assertParsedPackageJson()` and extensible as needed in the future
*/
export interface ParsedPackageJson {
/** The name of the package, usually `@kbn/`+something */
name: string;
/** "dependenices" property from package.json */
dependencies?: Record<string, string>;
/** "devDependenices" property from package.json */
devDependencies?: Record<string, string>;
/** Some kibana specific properties about this package */
kibana?: {
/** Is this package only intended for dev? */
devOnly?: boolean;
};
/** Scripts defined in the package.json file */
scripts?: {
[key: string]: string | undefined;
};
/** All other fields in the package.json are typed as unknown as we don't care what they are */
[key: string]: unknown;
}

View file

@ -4,6 +4,8 @@
"declaration": true,
"declarationMap": true,
"emitDeclarationOnly": true,
"allowJs": true,
"checkJs": true,
"outDir": "target_types",
"rootDir": "src",
"stripInternal": false,

View file

@ -162,7 +162,7 @@ ${BAZEL_PACKAGE_DIRS.map((dir) => ` ./${dir}/*\n`).join
Path.resolve(TEMPLATE_DIR, 'packages_BUILD.bazel.ejs'),
Path.resolve(REPO_ROOT, 'packages/BUILD.bazel'),
{
packages: await discoverBazelPackages(),
packages: await discoverBazelPackages(REPO_ROOT),
}
);
log.info('Updated packages/BUILD.bazel');

View file

@ -31,7 +31,7 @@ export const PackagesBuildManifestCommand: GenerateCommand = {
async run({ log, render, flags }) {
const validate = !!flags.validate;
const packages = await discoverBazelPackages();
const packages = await discoverBazelPackages(REPO_ROOT);
const dest = Path.resolve(REPO_ROOT, 'packages/BUILD.bazel');
const relDest = Path.relative(process.cwd(), dest);

View file

@ -8,6 +8,7 @@
import Path from 'path';
import { REPO_ROOT } from '@kbn/utils';
import { discoverBazelPackages } from '@kbn/bazel-packages';
import { runBazel } from '@kbn/bazel-runner';
@ -16,7 +17,7 @@ import { Task, scanCopy, write } from '../lib';
export const BuildBazelPackages: Task = {
description: 'Building distributable versions of Bazel packages',
async run(config, log, build) {
const packages = (await discoverBazelPackages()).filter((pkg) => !pkg.isDevOnly());
const packages = (await discoverBazelPackages(REPO_ROOT)).filter((pkg) => !pkg.isDevOnly());
log.info(`Preparing Bazel projects production build non-devOnly packages`);
await runBazel(['build', '//packages:build']);

View file

@ -8,6 +8,7 @@
import minimatch from 'minimatch';
import { discoverBazelPackages } from '@kbn/bazel-packages';
import { REPO_ROOT } from '@kbn/utils';
import { deleteAll, deleteEmptyFolders, scanDelete, Task, GlobalTask } from '../lib';
export const Clean: GlobalTask = {
@ -259,7 +260,7 @@ export const DeleteBazelPackagesFromBuildRoot: Task = {
'Deleting bazel packages outputs from build folder root as they are now installed as node_modules',
async run(config, log, build) {
const bazelPackagesOnBuildRoot = (await discoverBazelPackages()).map((pkg) =>
const bazelPackagesOnBuildRoot = (await discoverBazelPackages(REPO_ROOT)).map((pkg) =>
build.resolvePath(pkg.normalizedRepoRelativeDir)
);