[packages] migrate all plugins to packages (#148130)

Fixes https://github.com/elastic/kibana/issues/149344

This PR migrates all plugins to packages automatically. It does this
using `node scripts/lint_packages` to automatically migrate
`kibana.json` files to `kibana.jsonc` files. By doing this automatically
we can simplify many build and testing procedures to only support
packages, and not both "packages" and "synthetic packages" (basically
pointers to plugins).

The majority of changes are in operations related code, so we'll be
having operations review this before marking it ready for review. The
vast majority of the code owners are simply pinged because we deleted
all `kibana.json` files and replaced them with `kibana.jsonc` files, so
we plan on leaving the PR ready-for-review for about 24 hours before
merging (after feature freeze), assuming we don't have any blockers
(especially from @elastic/kibana-core since there are a few core
specific changes, though the majority were handled in #149370).

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Spencer 2023-02-08 20:06:50 -07:00 committed by GitHub
parent 26c8d714cd
commit 1b85815402
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
1044 changed files with 11279 additions and 11058 deletions

View file

@ -8,14 +8,15 @@ export KBN_NP_PLUGINS_BUILT=true
echo "--- Build Kibana Distribution"
BUILD_ARGS=""
is_pr_with_label "ci:build-all-platforms" && BUILD_ARGS="--all-platforms"
is_pr_with_label "ci:build-example-plugins" && BUILD_ARGS="$BUILD_ARGS --example-plugins"
is_pr_with_label "ci:build-docker-cross-compile" && BUILD_ARG="$BUILD_ARGS --docker-cross-compile"
is_pr_with_label "ci:build-os-packages" || BUILD_ARGS="$BUILD_ARGS --skip-os-packages"
is_pr_with_label "ci:build-canvas-shareable-runtime" || BUILD_ARGS="$BUILD_ARGS --skip-canvas-shareable-runtime"
is_pr_with_label "ci:build-docker-contexts" || BUILD_ARGS="$BUILD_ARGS --skip-docker-contexts"
node scripts/build $BUILD_ARGS
BUILD_ARGS=("--with-test-plugins" "--with-example-plugins")
is_pr_with_label "ci:build-all-platforms" && BUILD_ARGS+=("--all-platforms")
is_pr_with_label "ci:build-docker-cross-compile" && BUILD_ARGS+=("--docker-cross-compile")
is_pr_with_label "ci:build-os-packages" || BUILD_ARGS+=("--skip-os-packages")
is_pr_with_label "ci:build-canvas-shareable-runtime" || BUILD_ARGS+=("--skip-canvas-shareable-runtime")
is_pr_with_label "ci:build-docker-contexts" || BUILD_ARGS+=("--skip-docker-contexts")
echo "> node scripts/build" "${BUILD_ARGS[@]}"
node scripts/build "${BUILD_ARGS[@]}"
if is_pr_with_label "ci:build-cloud-image"; then
echo "$KIBANA_DOCKER_PASSWORD" | docker login -u "$KIBANA_DOCKER_USERNAME" --password-stdin docker.elastic.co

View file

@ -7,7 +7,7 @@ set -euo pipefail
source .buildkite/scripts/steps/artifacts/env.sh
echo "--- Build Kibana artifacts"
node scripts/build --all-platforms --debug --docker-cross-compile $(echo "$BUILD_ARGS")
node scripts/build --all-platforms --debug --docker-cross-compile "${BUILD_ARGS[@]}"
echo "--- Extract default i18n messages"
mkdir -p target/i18n

View file

@ -11,7 +11,7 @@ KIBANA_DOCKER_CONTEXT="${KIBANA_DOCKER_CONTEXT:="default"}"
echo "--- Create contexts"
mkdir -p target
node scripts/build --skip-initialize --skip-generic-folders --skip-platform-folders --skip-archives --docker-context-use-local-artifact $(echo "$BUILD_ARGS")
node scripts/build --skip-initialize --skip-generic-folders --skip-platform-folders --skip-archives --docker-context-use-local-artifact "${BUILD_ARGS[@]}"
echo "--- Setup context"
DOCKER_BUILD_FOLDER=$(mktemp -d)

View file

@ -15,11 +15,11 @@ fi
if [[ "$RELEASE_BUILD" == "true" ]]; then
FULL_VERSION="$QUALIFIER_VERSION"
BUILD_ARGS="--release --version-qualifier=$VERSION_QUALIFIER"
BUILD_ARGS=("--release" "--version-qualifier=$VERSION_QUALIFIER")
WORKFLOW="staging"
else
FULL_VERSION="$QUALIFIER_VERSION-SNAPSHOT"
BUILD_ARGS="--version-qualifier=$VERSION_QUALIFIER"
BUILD_ARGS=("--version-qualifier=$VERSION_QUALIFIER")
WORKFLOW="snapshot"
fi

View file

@ -6,6 +6,7 @@ export DISABLE_BOOTSTRAP_VALIDATION=false
.buildkite/scripts/bootstrap.sh
.buildkite/scripts/steps/checks/precommit_hook.sh
.buildkite/scripts/steps/checks/packages.sh
.buildkite/scripts/steps/checks/ts_projects.sh
.buildkite/scripts/steps/checks/packages.sh
.buildkite/scripts/steps/checks/bazel_packages.sh
@ -18,7 +19,6 @@ export DISABLE_BOOTSTRAP_VALIDATION=false
.buildkite/scripts/steps/checks/i18n.sh
.buildkite/scripts/steps/checks/file_casing.sh
.buildkite/scripts/steps/checks/licenses.sh
.buildkite/scripts/steps/checks/plugins_with_circular_deps.sh
.buildkite/scripts/steps/checks/test_projects.sh
.buildkite/scripts/steps/checks/test_hardening.sh
.buildkite/scripts/steps/checks/ftr_configs.sh

View file

@ -4,7 +4,7 @@ set -euo pipefail
source .buildkite/scripts/common/util.sh
echo --- Lint packages
echo --- Lint Packages
cmd="node scripts/lint_packages"
if is_pr && ! is_auto_commit_disabled; then
cmd="$cmd --fix"

View file

@ -1,8 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
source .buildkite/scripts/common/util.sh
echo --- Check Plugins With Circular Dependencies
node scripts/find_plugins_with_circular_deps

View file

@ -4,7 +4,7 @@ set -euo pipefail
source .buildkite/scripts/common/util.sh
echo --- Lint TS projects
echo --- Lint TS Projects
cmd="node scripts/lint_ts_projects"
if is_pr && ! is_auto_commit_disabled; then
cmd="$cmd --fix"

View file

@ -121,7 +121,7 @@ const VENN_DIAGRAM_HEADER = `
/** Packages which should not be included within production code. */
const DEV_PACKAGE_DIRS = getPackages(REPO_ROOT).flatMap((pkg) =>
pkg.isDevOnly ? pkg.normalizedRepoRelativeDir : []
pkg.isDevOnly() ? pkg.normalizedRepoRelativeDir : []
);
/** Directories (at any depth) which include dev-only code. */
@ -1734,7 +1734,10 @@ module.exports = {
* Code inside .buildkite runs separately from everything else in CI, before bootstrap, with ts-node. It needs a few tweaks because of this.
*/
{
files: 'packages/kbn-{package-*,repo-*,dep-*}/**/*',
files: [
'packages/kbn-{package-*,repo-*,dep-*}/**/*',
'packages/kbn-find-used-node-modules/**/*',
],
rules: {
'max-classes-per-file': 'off',
},

630
.github/CODEOWNERS vendored
View file

@ -5,94 +5,26 @@
# The #CC# prefix delineates Code Coverage,
# used for the 'team' designator within Kibana Stats
# Alerting commmunal ownership
/x-pack/plugins/rule_registry/ @elastic/response-ops @elastic/actionable-observability
# Data Discovery
/src/plugins/discover/ @elastic/kibana-data-discovery
/src/plugins/saved_search/ @elastic/kibana-data-discovery
/x-pack/plugins/discover_enhanced/ @elastic/kibana-data-discovery
/x-pack/test/functional/apps/discover/ @elastic/kibana-data-discovery
/x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/discover/ @elastic/kibana-data-discovery
/test/functional/apps/discover/ @elastic/kibana-data-discovery
/test/functional/apps/context/ @elastic/kibana-data-discovery
/test/api_integration/apis/unified_field_list/ @elastic/kibana-data-discovery
/src/plugins/unified_field_list/ @elastic/kibana-data-discovery
/src/plugins/unified_histogram/ @elastic/kibana-data-discovery
/src/plugins/saved_objects_finder/ @elastic/kibana-data-discovery
/src/plugins/data_views/ @elastic/kibana-data-discovery
/src/plugins/data_view_editor/ @elastic/kibana-data-discovery
/src/plugins/data_view_field_editor/ @elastic/kibana-data-discovery
/src/plugins/data_view_management/ @elastic/kibana-data-discovery
/src/plugins/data/ @elastic/kibana-visualizations @elastic/kibana-data-discovery
/src/plugins/field_formats/ @elastic/kibana-data-discovery
/x-pack/test/search_sessions_integration/ @elastic/kibana-data-discovery
/test/plugin_functional/test_suites/data_plugin @elastic/kibana-data-discovery
/examples/field_formats_example/ @elastic/kibana-data-discovery
/examples/partial_results_example/ @elastic/kibana-data-discovery
/examples/search_examples/ @elastic/kibana-data-discovery
/examples/demo_search/ @elastic/kibana-data-discovery
# Vis Editors
/x-pack/plugins/lens/ @elastic/kibana-visualizations
/src/plugins/charts/ @elastic/kibana-visualizations
/src/plugins/event_annotation @elastic/kibana-visualizations
/src/plugins/vis_default_editor/ @elastic/kibana-visualizations
/src/plugins/vis_types/metric/ @elastic/kibana-visualizations
/src/plugins/vis_types/table/ @elastic/kibana-visualizations
/src/plugins/vis_types/tagcloud/ @elastic/kibana-visualizations
/src/plugins/vis_types/timelion/ @elastic/kibana-visualizations
/src/plugins/vis_types/timeseries/ @elastic/kibana-visualizations
/src/plugins/vis_types/vega/ @elastic/kibana-visualizations
/src/plugins/vis_types/vislib/ @elastic/kibana-visualizations
/src/plugins/vis_types/xy/ @elastic/kibana-visualizations
/src/plugins/vis_types/pie/ @elastic/kibana-visualizations
/src/plugins/vis_types/heatmap/ @elastic/kibana-visualizations
/src/plugins/visualize/ @elastic/kibana-visualizations
/src/plugins/visualizations/ @elastic/kibana-visualizations
/src/plugins/chart_expressions/expression_tagcloud/ @elastic/kibana-visualizations
/src/plugins/chart_expressions/expression_metric/ @elastic/kibana-visualizations
/src/plugins/chart_expressions/expression_heatmap/ @elastic/kibana-visualizations
/src/plugins/chart_expressions/expression_gauge/ @elastic/kibana-visualizations
/src/plugins/chart_expressions/expression_partition_vis/ @elastic/kibana-visualizations
/src/plugins/chart_expressions/expression_xy/ @elastic/kibana-visualizations
/src/plugins/url_forwarding/ @elastic/kibana-visualizations
/x-pack/test/functional/apps/lens @elastic/kibana-visualizations
/x-pack/test/api_integration/apis/lens/ @elastic/kibana-visualizations
/test/functional/apps/visualize/ @elastic/kibana-visualizations
/src/plugins/expressions/ @elastic/kibana-visualizations
/src/plugins/unified_search/ @elastic/kibana-visualizations
/x-pack/plugins/graph/ @elastic/kibana-visualizations
/x-pack/test/functional/apps/graph @elastic/kibana-visualizations
# Global Experience
/src/plugins/bfetch/ @elastic/appex-sharedux
/src/plugins/files @elastic/appex-sharedux
/src/plugins/screenshot_mode @elastic/appex-sharedux
/src/plugins/share/ @elastic/appex-sharedux
/src/plugins/ui_actions/ @elastic/appex-sharedux
/src/plugins/ui_actions_enhanced/ @elastic/appex-sharedux
/src/plugins/navigation/ @elastic/appex-sharedux
/src/plugins/image_embeddable/ @elastic/appex-sharedux
/x-pack/plugins/notifications/ @elastic/appex-sharedux
## Examples
/examples/bfetch_explorer/ @elastic/appex-sharedux
/examples/files_example @elastic/appex-sharedux
/examples/state_containers_examples/ @elastic/appex-sharedux
/examples/ui_action_examples/ @elastic/appex-sharedux
/examples/ui_actions_explorer/ @elastic/appex-sharedux
/examples/developer_examples/ @elastic/appex-sharedux
/x-pack/examples/ui_actions_enhanced_examples/ @elastic/appex-sharedux
### Overview Plugin and Packages
/src/plugins/kibana_overview/ @elastic/appex-sharedux
### Global Experience Reporting
/x-pack/examples/reporting_example/ @elastic/appex-sharedux
/x-pack/examples/screenshotting_example/ @elastic/appex-sharedux
/x-pack/plugins/reporting/ @elastic/appex-sharedux
/x-pack/test/functional/apps/dashboard/reporting/ @elastic/appex-sharedux
/x-pack/test/functional/apps/reporting/ @elastic/appex-sharedux
/x-pack/test/functional/apps/reporting_management/ @elastic/appex-sharedux
@ -108,12 +40,9 @@
/docs/setup/configuring-reporting.asciidoc @elastic/appex-sharedux
### Global Experience Tagging
/src/plugins/saved_objects_tagging_oss @elastic/appex-sharedux
/x-pack/plugins/saved_objects_tagging/ @elastic/appex-sharedux
/x-pack/test/saved_object_tagging/ @elastic/appex-sharedux
### Kibana React (to be deprecated)
/src/plugins/kibana_react/ @elastic/appex-sharedux
/src/plugins/kibana_react/public/@elastic/appex-sharedux @elastic/kibana-presentation
### Home Plugin and Packages
@ -152,26 +81,22 @@
/x-pack/test/observability_functional @elastic/actionable-observability
# Infra Monitoring
/x-pack/plugins/infra/ @elastic/infra-monitoring-ui
/x-pack/test/functional/apps/infra @elastic/infra-monitoring-ui
/x-pack/test/api_integration/apis/infra @elastic/infra-monitoring-ui
# Elastic Stack Monitoring
/x-pack/plugins/monitoring/ @elastic/infra-monitoring-ui
/x-pack/test/functional/apps/monitoring @elastic/infra-monitoring-ui
/x-pack/test/api_integration/apis/monitoring @elastic/infra-monitoring-ui
/x-pack/test/api_integration/apis/monitoring_collection @elastic/infra-monitoring-ui
# Fleet
/fleet_packages.json @elastic/fleet
/x-pack/plugins/fleet/ @elastic/fleet
/x-pack/test/fleet_api_integration @elastic/fleet
/x-pack/test/fleet_cypress @elastic/fleet
/x-pack/test/fleet_functional @elastic/fleet
/src/dev/build/tasks/bundle_fleet_packages.ts @elastic/fleet @elastic/kibana-operations
# APM
/x-pack/plugins/apm/ @elastic/apm-ui
/x-pack/test/functional/apps/apm/ @elastic/apm-ui
/x-pack/test/apm_api_integration/ @elastic/apm-ui
/src/apm.js @elastic/kibana-core @vigneshshanmugam
@ -182,8 +107,6 @@
#CC# /x-pack/plugins/observability/ @elastic/apm-ui
# Uptime
/x-pack/plugins/synthetics @elastic/uptime
/x-pack/plugins/ux @elastic/uptime
/x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/uptime/ @elastic/uptime
/x-pack/test/functional/apps/uptime @elastic/uptime
/x-pack/test/functional/es_archives/uptime @elastic/uptime
@ -197,9 +120,6 @@
/x-pack/plugins/apm/public/components/app/rum_dashboard @elastic/uptime
/x-pack/test/apm_api_integration/tests/csm/ @elastic/uptime
# Profiling
/x-pack/plugins/profiling @elastic/profiling-ui
# Observability onboarding tour
/x-pack/plugins/observability/public/components/shared/tour @elastic/platform-onboarding
/x-pack/test/functional/apps/infra/tour.ts @elastic/platform-onboarding
@ -207,34 +127,14 @@
### END Observability Plugins
# Presentation
/src/plugins/dashboard/ @elastic/kibana-presentation
/src/plugins/expression_error/ @elastic/kibana-presentation
/src/plugins/expression_image/ @elastic/kibana-presentation
/src/plugins/expression_metric/ @elastic/kibana-presentation
/src/plugins/expression_repeat_image/ @elastic/kibana-presentation
/src/plugins/expression_reveal_image/ @elastic/kibana-presentation
/src/plugins/expression_shape/ @elastic/kibana-presentation
/src/plugins/input_control_vis/ @elastic/kibana-presentation
/src/plugins/vis_type_markdown/ @elastic/kibana-presentation
/src/plugins/presentation_util/ @elastic/kibana-presentation
/src/plugins/controls/ @elastic/kibana-presentation
/test/functional/apps/dashboard/ @elastic/kibana-presentation
/test/functional/apps/dashboard_elements/ @elastic/kibana-presentation
/test/functional/services/dashboard/ @elastic/kibana-presentation
/x-pack/plugins/canvas/ @elastic/kibana-presentation
/x-pack/plugins/dashboard_enhanced/ @elastic/kibana-presentation
/x-pack/test/functional/apps/canvas/ @elastic/kibana-presentation
/examples/dashboard_embeddable_examples/ @elastic/kibana-presentation
/examples/embeddable_examples/ @elastic/kibana-presentation
/examples/embeddable_explorer/ @elastic/kibana-presentation
/src/plugins/embeddable/ @elastic/kibana-presentation
/src/plugins/inspector/ @elastic/kibana-presentation
/x-pack/plugins/embeddable_enhanced/ @elastic/kibana-presentation
/test/plugin_functional/test_suites/panel_actions @elastic/kibana-presentation
#CC# /src/plugins/kibana_react/public/code_editor/ @elastic/kibana-presentation
# Machine Learning
/x-pack/plugins/ml/ @elastic/ml-ui
/x-pack/plugins/ml/common/openapi/ @elastic/mlr-docs
/x-pack/test/accessibility/apps/ml.ts @elastic/ml-ui
/x-pack/test/accessibility/apps/ml_embeddables_in_dashboard.ts @elastic/ml-ui
@ -252,28 +152,21 @@
/docs/api/machine-learning/ @elastic/mlr-docs
# Additional plugins and packages maintained by the ML team.
/x-pack/plugins/aiops/ @elastic/ml-ui
/x-pack/plugins/data_visualizer/ @elastic/ml-ui
/x-pack/plugins/file_upload/ @elastic/ml-ui
/x-pack/plugins/transform/ @elastic/ml-ui
/x-pack/test/accessibility/apps/transform.ts @elastic/ml-ui
/x-pack/test/api_integration/apis/transform/ @elastic/ml-ui
/x-pack/test/api_integration_basic/apis/transform/ @elastic/ml-ui
/x-pack/test/functional/apps/transform/ @elastic/ml-ui
/x-pack/test/functional/services/transform/ @elastic/ml-ui
/x-pack/test/functional_basic/apps/transform/ @elastic/ml-ui
/examples/response_stream/ @elastic/ml-ui
# Maps
#CC# /x-pack/plugins/maps/ @elastic/kibana-gis
/x-pack/plugins/maps/ @elastic/kibana-gis
/x-pack/test/api_integration/apis/maps/ @elastic/kibana-gis
/x-pack/test/functional/apps/maps/ @elastic/kibana-gis
/x-pack/test/functional/es_archives/maps/ @elastic/kibana-gis
/x-pack/plugins/stack_alerts/server/rule_types/geo_containment @elastic/kibana-gis
/x-pack/plugins/stack_alerts/public/rule_types/geo_containment @elastic/kibana-gis
#CC# /x-pack/plugins/file_upload @elastic/kibana-gis
/x-pack/plugins/file_upload @elastic/kibana-gis
# Operations
/src/dev/license_checker/config.ts @elastic/kibana-operations
@ -302,25 +195,9 @@
/x-pack/test/visual_regression @elastic/kibana-qa
# Core
/examples/hello_world/ @elastic/kibana-core
/src/core/ @elastic/kibana-core
/config/kibana.yml @elastic/kibana-core
/typings/ @elastic/kibana-core
/x-pack/plugins/global_search_providers @elastic/kibana-core
/x-pack/plugins/banners/ @elastic/kibana-core
/x-pack/plugins/features/ @elastic/kibana-core
/x-pack/plugins/licensing/ @elastic/kibana-core
/x-pack/plugins/global_search/ @elastic/kibana-core
/x-pack/plugins/cloud/ @elastic/kibana-core
/x-pack/plugins/cloud_integrations/cloud_chat/ @elastic/kibana-core
/x-pack/plugins/cloud_integrations/cloud_experiments/ @elastic/kibana-core
/x-pack/plugins/cloud_integrations/cloud_full_story/ @elastic/kibana-core
/x-pack/plugins/cloud_integrations/cloud_gain_sight/ @elastic/kibana-core
/x-pack/plugins/cloud_integrations/cloud_links/ @elastic/kibana-core
/x-pack/test/saved_objects_field_count/ @elastic/kibana-core
/src/plugins/saved_objects_management/ @elastic/kibana-core
/src/plugins/advanced_settings/ @elastic/kibana-core
/x-pack/plugins/global_search_bar/ @elastic/kibana-core
/test/analytics @elastic/kibana-core
#CC# /src/core/server/csp/ @elastic/kibana-core
#CC# /src/plugins/saved_objects/ @elastic/kibana-core
@ -331,13 +208,6 @@
#CC# /x-pack/plugins/global_search_providers/ @elastic/kibana-core
# Kibana Telemetry
/src/plugins/kibana_usage_collection/ @elastic/kibana-core
/src/plugins/newsfeed/ @elastic/kibana-core
/src/plugins/telemetry/ @elastic/kibana-core
/src/plugins/telemetry_collection_manager/ @elastic/kibana-core
/src/plugins/telemetry_management_section/ @elastic/kibana-core
/src/plugins/usage_collection/ @elastic/kibana-core
/x-pack/plugins/telemetry_collection_xpack/ @elastic/kibana-core
/.telemetryrc.json @elastic/kibana-core
/x-pack/.telemetryrc.json @elastic/kibana-core
/src/plugins/telemetry/schema/ @elastic/kibana-core @elastic/kibana-telemetry
@ -349,14 +219,10 @@
#CC# /x-pack/plugins/translations/ @elastic/kibana-localization @elastic/kibana-core
# Kibana Platform Security
/src/plugins/interactive_setup/ @elastic/kibana-security
/src/plugins/telemetry/server/config/telemetry_labels.ts @elastic/kibana-security
/test/interactive_setup_api_integration/ @elastic/kibana-security
/test/interactive_setup_functional/ @elastic/kibana-security
/test/plugin_functional/test_suites/core_plugins/rendering.ts @elastic/kibana-security
/x-pack/plugins/spaces/ @elastic/kibana-security
/x-pack/plugins/encrypted_saved_objects/ @elastic/kibana-security
/x-pack/plugins/security/ @elastic/kibana-security
/x-pack/test/api_integration/apis/security/ @elastic/kibana-security
/x-pack/test/api_integration/apis/spaces/ @elastic/kibana-security
/x-pack/test/ui_capabilities/ @elastic/kibana-security
@ -367,25 +233,14 @@
/x-pack/test/security_functional/ @elastic/kibana-security
/x-pack/test/spaces_api_integration/ @elastic/kibana-security
/x-pack/test/saved_object_api_integration/ @elastic/kibana-security
/examples/preboot_example/ @elastic/kibana-security @elastic/kibana-core
/examples/user_profile_examples/ @elastic/kibana-security
#CC# /x-pack/plugins/security/ @elastic/kibana-security
# Response Ops team
/x-pack/plugins/alerting/ @elastic/response-ops
/x-pack/plugins/actions/ @elastic/response-ops
/x-pack/plugins/event_log/ @elastic/response-ops
/x-pack/plugins/task_manager/ @elastic/response-ops
/x-pack/plugins/stack_connectors/ @elastic/response-ops
/x-pack/test/alerting_api_integration/ @elastic/response-ops
/x-pack/test/plugin_api_integration/test_suites/task_manager/ @elastic/response-ops
/x-pack/plugins/triggers_actions_ui/ @elastic/response-ops
/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/ @elastic/response-ops
/x-pack/test/functional_with_es_ssl/plugins/alerts/ @elastic/response-ops
/docs/user/alerting/ @elastic/response-ops
/docs/management/connectors/ @elastic/response-ops
/x-pack/plugins/stack_alerts/ @elastic/response-ops
/x-pack/plugins/cases/ @elastic/response-ops
/x-pack/test/cases_api_integration/ @elastic/response-ops
/x-pack/test/functional/services/cases/ @elastic/response-ops
/x-pack/test/functional_with_es_ssl/apps/cases/ @elastic/response-ops
@ -396,44 +251,17 @@
/x-pack/plugins/cases/docs/openapi @elastic/mlr-docs
# Enterprise Search
/x-pack/plugins/enterprise_search @elastic/enterprise-search-frontend
/x-pack/test/functional_enterprise_search/ @elastic/enterprise-search-frontend
/x-pack/plugins/enterprise_search/public/applications/shared/doc_links @elastic/ent-search-docs-team
# Management Experience - Deployment Management
/src/plugins/dev_tools/ @elastic/platform-deployment-management
/src/plugins/console/ @elastic/platform-deployment-management
/src/plugins/es_ui_shared/ @elastic/platform-deployment-management
/src/plugins/management/ @elastic/platform-deployment-management
/x-pack/plugins/cross_cluster_replication/ @elastic/platform-deployment-management
/x-pack/plugins/index_lifecycle_management/ @elastic/platform-deployment-management
/x-pack/plugins/grokdebugger/ @elastic/platform-deployment-management
/x-pack/plugins/index_management/ @elastic/platform-deployment-management
/x-pack/plugins/runtime_fields @elastic/platform-deployment-management
/x-pack/plugins/license_api_guard/ @elastic/platform-deployment-management
/x-pack/plugins/license_management/ @elastic/platform-deployment-management
/x-pack/plugins/painless_lab/ @elastic/platform-deployment-management
/x-pack/plugins/remote_clusters/ @elastic/platform-deployment-management
/x-pack/plugins/rollup/ @elastic/platform-deployment-management
/x-pack/plugins/searchprofiler/ @elastic/platform-deployment-management
/x-pack/plugins/snapshot_restore/ @elastic/platform-deployment-management
/x-pack/plugins/upgrade_assistant/ @elastic/platform-deployment-management
/x-pack/plugins/watcher/ @elastic/platform-deployment-management
/x-pack/plugins/ingest_pipelines/ @elastic/platform-deployment-management
#CC# /x-pack/plugins/cross_cluster_replication/ @elastic/platform-deployment-management
# Platform Onboarding
/src/plugins/guided_onboarding/ @elastic/platform-onboarding
/examples/guided_onboarding_example/ @elastic/platform-onboarding
/x-pack/plugins/cloud_integrations/cloud_data_migration/ @elastic/platform-onboarding
# Security Solution
/x-pack/test/endpoint_api_integration_no_ingest/ @elastic/security-solution
/x-pack/test/security_solution_endpoint/ @elastic/security-solution
/x-pack/test/functional/es_archives/endpoint/ @elastic/security-solution
/x-pack/test/plugin_functional/plugins/resolver_test/ @elastic/security-solution
/x-pack/test/plugin_functional/test_suites/resolver/ @elastic/security-solution
/x-pack/plugins/security_solution/ @elastic/security-solution
/x-pack/test/detection_engine_api_integration @elastic/security-solution
/x-pack/test/lists_api_integration @elastic/security-solution
/x-pack/test/api_integration/apis/security_solution @elastic/security-solution
@ -442,9 +270,6 @@
# Security Solution sub teams
## Security Solution sub teams - Threat Hunting Investigations
/x-pack/packages/kbn-ecs-data-quality-dashboard @elastic/security-threat-hunting-investigations
/x-pack/plugins/ecs_data_quality_dashboard @elastic/security-threat-hunting-investigations
/x-pack/plugins/timelines @elastic/security-threat-hunting-investigations
/x-pack/plugins/security_solution/common/search_strategy/timeline @elastic/security-threat-hunting-investigations
/x-pack/plugins/security_solution/common/types/timeline @elastic/security-threat-hunting-investigations
@ -562,7 +387,6 @@
/x-pack/plugins/security_solution/server/utils @elastic/security-detections-response-rules
## Security Solution sub teams - Security Platform
/x-pack/plugins/lists @elastic/security-solution-platform
/x-pack/plugins/security_solution/cypress/e2e/data_sources @elastic/security-solution-platform
/x-pack/plugins/security_solution/cypress/e2e/exceptions @elastic/security-solution-platform
@ -628,24 +452,19 @@ x-pack/plugins/security_solution/cypress/README.md @elastic/security-engineering
x-pack/test/security_solution_cypress @elastic/security-engineering-productivity
## Security Solution sub teams - adaptive-workload-protection
x-pack/plugins/kubernetes_security @elastic/awp-viz
x-pack/plugins/session_view @elastic/awp-viz
x-pack/plugins/security_solution/public/common/components/sessions_viewer @elastic/awp-viz
x-pack/plugins/security_solution/public/kubernetes @elastic/awp-viz
## Security Solution sub teams - Protections Experience
x-pack/plugins/threat_intelligence @elastic/protections-experience
x-pack/plugins/security_solution/public/threat_intelligence @elastic/protections-experience
x-pack/test/threat_intelligence_cypress @elastic/protections-experience
# Security Defend Workflows - OSQuery Ownership
/x-pack/plugins/osquery @elastic/security-defend-workflows
/x-pack/plugins/security_solution/common/detection_engine/rule_response_actions @elastic/security-defend-workflows
/x-pack/plugins/security_solution/public/detection_engine/rule_response_actions @elastic/security-defend-workflows
/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions @elastic/security-defend-workflows
# Cloud Security Posture
/x-pack/plugins/cloud_security_posture/ @elastic/kibana-cloud-security-posture
/x-pack/plugins/security_solution/public/cloud_security_posture @elastic/kibana-cloud-security-posture
/x-pack/test/api_integration/apis/cloud_security_posture/ @elastic/kibana-cloud-security-posture
/x-pack/test/cloud_security_posture_functional/ @elastic/kibana-cloud-security-posture
@ -678,9 +497,6 @@ x-pack/test/threat_intelligence_cypress @elastic/protections-experience
# EUI design
/src/plugins/kibana_react/public/page_template/ @elastic/eui-design @elastic/appex-sharedux
# Application Experience
# Landing page for guided onboarding in Home plugin
/src/plugins/home/public/application/components/guided_onboarding @elastic/platform-onboarding
@ -690,20 +506,95 @@ x-pack/test/threat_intelligence_cypress @elastic/protections-experience
## by running `node scripts/generate codeowners`.
####
x-pack/test/alerting_api_integration/common/plugins/aad @elastic/response-ops
packages/kbn-ace @elastic/platform-deployment-management
x-pack/plugins/actions @elastic/response-ops
x-pack/test/alerting_api_integration/common/plugins/actions_simulators @elastic/response-ops
src/plugins/advanced_settings @elastic/kibana-core
x-pack/packages/ml/aiops_components @elastic/ml-ui
x-pack/plugins/aiops @elastic/ml-ui
x-pack/packages/ml/aiops_utils @elastic/ml-ui
x-pack/test/alerting_api_integration/packages/helpers @elastic/response-ops
x-pack/test/alerting_api_integration/common/plugins/alerts @elastic/response-ops
x-pack/examples/alerting_example @elastic/response-ops
x-pack/test/functional_with_es_ssl/plugins/alerts @elastic/response-ops
x-pack/plugins/alerting @elastic/response-ops
packages/kbn-alerts @elastic/security-solution
x-pack/test/alerting_api_integration/common/plugins/alerts_restricted @elastic/response-ops
packages/kbn-alerts-ui-shared @elastic/response-ops
packages/kbn-ambient-common-types @elastic/kibana-operations
packages/kbn-ambient-ftr-types @elastic/kibana-operations
packages/kbn-ambient-storybook-types @elastic/kibana-operations
packages/kbn-ambient-ui-types @elastic/kibana-operations
packages/kbn-analytics @elastic/kibana-core
packages/analytics/client @elastic/kibana-core
test/analytics/plugins/analytics_ftr_helpers @elastic/kibana-core
test/analytics/plugins/analytics_plugin_a @elastic/kibana-core
packages/analytics/shippers/elastic_v3/browser @elastic/kibana-core
packages/analytics/shippers/elastic_v3/common @elastic/kibana-core
packages/analytics/shippers/elastic_v3/server @elastic/kibana-core
packages/analytics/shippers/fullstory @elastic/kibana-core
packages/analytics/shippers/gainsight @elastic/kibana-core
packages/kbn-apm-config-loader @elastic/kibana-core @vigneshshanmugam
x-pack/plugins/apm @elastic/apm-ui
packages/kbn-apm-synthtrace @elastic/apm-ui
packages/kbn-apm-synthtrace-client @elastic/apm-ui
packages/kbn-apm-utils @elastic/apm-ui
test/plugin_functional/plugins/app_link_test @elastic/kibana-core
x-pack/test/usage_collection/plugins/application_usage_test @elastic/kibana-core
x-pack/test/security_api_integration/plugins/audit_log @elastic/kibana-security
packages/kbn-axe-config @elastic/kibana-qa
packages/kbn-babel-preset @elastic/kibana-operations
packages/kbn-babel-register @elastic/kibana-operations
packages/kbn-babel-transform @elastic/kibana-operations
x-pack/plugins/banners @elastic/kibana-core
packages/kbn-bazel-runner @elastic/kibana-operations
examples/bfetch_explorer @elastic/appex-sharedux
src/plugins/bfetch @elastic/appex-sharedux
x-pack/plugins/canvas @elastic/kibana-presentation
x-pack/test/cases_api_integration/common/plugins/cases @elastic/response-ops
packages/kbn-cases-components @elastic/response-ops
x-pack/plugins/cases @elastic/response-ops
packages/kbn-cell-actions @elastic/security-threat-hunting-explore
src/plugins/chart_expressions/common @elastic/kibana-visualizations
packages/kbn-chart-icons @elastic/kibana-visualizations
src/plugins/charts @elastic/kibana-visualizations
packages/kbn-ci-stats-core @elastic/kibana-operations
packages/kbn-ci-stats-performance-metrics @elastic/kibana-operations
packages/kbn-ci-stats-reporter @elastic/kibana-operations
packages/kbn-ci-stats-shipper-cli @elastic/kibana-operations
packages/kbn-cli-dev-mode @elastic/kibana-operations
x-pack/plugins/cloud_integrations/cloud_chat @elastic/kibana-core
x-pack/plugins/cloud_integrations/cloud_data_migration @elastic/platform-onboarding
x-pack/plugins/cloud_defend @elastic/sec-cloudnative-integrations
x-pack/plugins/cloud_integrations/cloud_experiments @elastic/kibana-core
x-pack/plugins/cloud_integrations/cloud_full_story @elastic/kibana-core
x-pack/plugins/cloud_integrations/cloud_gain_sight @elastic/kibana-core
x-pack/test/cloud_integration/plugins/saml_provider @elastic/kibana-core
x-pack/plugins/cloud_integrations/cloud_links @elastic/kibana-core
x-pack/plugins/cloud @elastic/kibana-core
x-pack/plugins/cloud_security_posture @elastic/kibana-cloud-security-posture
packages/shared-ux/code_editor/impl @elastic/appex-sharedux
packages/shared-ux/code_editor/mocks @elastic/appex-sharedux
packages/shared-ux/code_editor/types @elastic/appex-sharedux
packages/kbn-coloring @elastic/kibana-visualizations
packages/kbn-config @elastic/kibana-core
packages/kbn-config-mocks @elastic/kibana-core
packages/kbn-config-schema @elastic/kibana-core
src/plugins/console @elastic/platform-deployment-management
packages/content-management/content_editor @elastic/appex-sharedux
src/plugins/content_management @elastic/kibana-global-experience
packages/content-management/table_list @elastic/appex-sharedux
examples/controls_example @elastic/kibana-presentation
src/plugins/controls @elastic/kibana-presentation
src/core @elastic/kibana-core
packages/core/analytics/core-analytics-browser @elastic/kibana-core
packages/core/analytics/core-analytics-browser-internal @elastic/kibana-core
packages/core/analytics/core-analytics-browser-mocks @elastic/kibana-core
packages/core/analytics/core-analytics-server @elastic/kibana-core
packages/core/analytics/core-analytics-server-internal @elastic/kibana-core
packages/core/analytics/core-analytics-server-mocks @elastic/kibana-core
test/plugin_functional/plugins/core_app_status @elastic/kibana-core
packages/core/application/core-application-browser @elastic/kibana-core
packages/core/application/core-application-browser-internal @elastic/kibana-core
packages/core/application/core-application-browser-mocks @elastic/kibana-core
@ -764,12 +655,14 @@ packages/core/execution-context/core-execution-context-server-mocks @elastic/kib
packages/core/fatal-errors/core-fatal-errors-browser @elastic/kibana-core
packages/core/fatal-errors/core-fatal-errors-browser-internal @elastic/kibana-core
packages/core/fatal-errors/core-fatal-errors-browser-mocks @elastic/kibana-core
test/plugin_functional/plugins/core_history_block @elastic/kibana-core
packages/core/http/core-http-browser @elastic/kibana-core
packages/core/http/core-http-browser-internal @elastic/kibana-core
packages/core/http/core-http-browser-mocks @elastic/kibana-core
packages/core/http/core-http-common @elastic/kibana-core
packages/core/http/core-http-context-server-internal @elastic/kibana-core
packages/core/http/core-http-context-server-mocks @elastic/kibana-core
test/plugin_functional/plugins/core_http @elastic/kibana-core
packages/core/http/core-http-request-handler-context-server @elastic/kibana-core
packages/core/http/core-http-request-handler-context-server-internal @elastic/kibana-core
packages/core/http/core-http-resources-server @elastic/kibana-core
@ -819,6 +712,17 @@ packages/core/notifications/core-notifications-browser-mocks @elastic/kibana-cor
packages/core/overlays/core-overlays-browser @elastic/kibana-core
packages/core/overlays/core-overlays-browser-internal @elastic/kibana-core
packages/core/overlays/core-overlays-browser-mocks @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_a @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_appleave @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_b @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_chromeless @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_deep_links @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_deprecations @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_execution_context @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_helpmenu @elastic/kibana-core
test/node_roles_functional/plugins/core_plugin_initializer_context @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_route_timeouts @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_static_assets @elastic/kibana-core
packages/core/plugins/core-plugins-base-server-internal @elastic/kibana-core
packages/core/plugins/core-plugins-browser @elastic/kibana-core
packages/core/plugins/core-plugins-browser-internal @elastic/kibana-core
@ -829,6 +733,7 @@ packages/core/plugins/core-plugins-server-mocks @elastic/kibana-core
packages/core/preboot/core-preboot-server @elastic/kibana-core
packages/core/preboot/core-preboot-server-internal @elastic/kibana-core
packages/core/preboot/core-preboot-server-mocks @elastic/kibana-core
test/plugin_functional/plugins/core_provider_plugin @elastic/kibana-core
packages/core/rendering/core-rendering-browser-internal @elastic/kibana-core
packages/core/rendering/core-rendering-browser-mocks @elastic/kibana-core
packages/core/rendering/core-rendering-server-internal @elastic/kibana-core
@ -877,103 +782,208 @@ packages/core/usage-data/core-usage-data-base-server-internal @elastic/kibana-co
packages/core/usage-data/core-usage-data-server @elastic/kibana-core
packages/core/usage-data/core-usage-data-server-internal @elastic/kibana-core
packages/core/usage-data/core-usage-data-server-mocks @elastic/kibana-core
packages/home/sample_data_card @elastic/appex-sharedux
packages/home/sample_data_tab @elastic/appex-sharedux
packages/home/sample_data_types @elastic/appex-sharedux
packages/kbn-ace @elastic/platform-deployment-management
packages/kbn-alerts @elastic/security-solution
packages/kbn-alerts-ui-shared @elastic/response-ops
packages/kbn-ambient-common-types @elastic/kibana-operations
packages/kbn-ambient-ftr-types @elastic/kibana-operations
packages/kbn-ambient-storybook-types @elastic/kibana-operations
packages/kbn-ambient-ui-types @elastic/kibana-operations
packages/kbn-analytics @elastic/kibana-core
packages/kbn-apm-config-loader @elastic/kibana-core @vigneshshanmugam
packages/kbn-apm-synthtrace @elastic/apm-ui
packages/kbn-apm-synthtrace-client @elastic/apm-ui
packages/kbn-apm-utils @elastic/apm-ui
packages/kbn-axe-config @elastic/kibana-qa
packages/kbn-babel-plugin-package-imports @elastic/kibana-operations
packages/kbn-babel-preset @elastic/kibana-operations
packages/kbn-babel-register @elastic/kibana-operations
packages/kbn-babel-transform @elastic/kibana-operations
packages/kbn-bazel-runner @elastic/kibana-operations
packages/kbn-cases-components @elastic/response-ops
packages/kbn-cell-actions @elastic/security-threat-hunting-explore
packages/kbn-chart-icons @elastic/kibana-visualizations
packages/kbn-ci-stats-core @elastic/kibana-operations
packages/kbn-ci-stats-performance-metrics @elastic/kibana-operations
packages/kbn-ci-stats-reporter @elastic/kibana-operations
packages/kbn-ci-stats-shipper-cli @elastic/kibana-operations
packages/kbn-cli-dev-mode @elastic/kibana-operations
packages/kbn-coloring @elastic/kibana-visualizations
packages/kbn-config @elastic/kibana-core
packages/kbn-config-mocks @elastic/kibana-core
packages/kbn-config-schema @elastic/kibana-core
x-pack/plugins/cross_cluster_replication @elastic/platform-deployment-management
packages/kbn-crypto @elastic/kibana-security
packages/kbn-crypto-browser @elastic/kibana-core
x-pack/plugins/custom_branding @elastic/appex-sharedux
src/plugins/custom_integrations @elastic/fleet
packages/kbn-cypress-config @elastic/kibana-operations
examples/dashboard_embeddable_examples @elastic/kibana-presentation
x-pack/plugins/dashboard_enhanced @elastic/kibana-presentation
src/plugins/dashboard @elastic/kibana-presentation
src/plugins/data @elastic/kibana-visualizations @elastic/kibana-data-discovery
test/plugin_functional/plugins/data_search @elastic/kibana-app-services
src/plugins/data_view_editor @elastic/kibana-data-discovery
examples/data_view_field_editor_example @elastic/kibana-app-services
src/plugins/data_view_field_editor @elastic/kibana-data-discovery
src/plugins/data_view_management @elastic/kibana-data-discovery
src/plugins/data_views @elastic/kibana-data-discovery
x-pack/plugins/data_visualizer @elastic/ml-ui
packages/kbn-datemath @elastic/kibana-data-discovery
packages/kbn-dev-cli-errors @elastic/kibana-operations
packages/kbn-dev-cli-runner @elastic/kibana-operations
packages/kbn-dev-proc-runner @elastic/kibana-operations
src/plugins/dev_tools @elastic/platform-deployment-management
packages/kbn-dev-utils @elastic/kibana-operations
examples/developer_examples @elastic/appex-sharedux
x-pack/plugins/discover_enhanced @elastic/kibana-data-discovery
src/plugins/discover @elastic/kibana-data-discovery
packages/kbn-doc-links @elastic/kibana-docs
packages/kbn-docs-utils @elastic/kibana-operations
packages/kbn-ebt-tools @elastic/kibana-core
packages/kbn-ecs @elastic/kibana-core
x-pack/packages/kbn-ecs-data-quality-dashboard @elastic/security-threat-hunting-investigations
x-pack/plugins/ecs_data_quality_dashboard @elastic/security-threat-hunting-investigations
test/plugin_functional/plugins/elasticsearch_client_plugin @elastic/kibana-core
x-pack/test/plugin_api_integration/plugins/elasticsearch_client @elastic/kibana-core
x-pack/plugins/embeddable_enhanced @elastic/kibana-presentation
examples/embeddable_examples @elastic/kibana-presentation
examples/embeddable_explorer @elastic/kibana-presentation
src/plugins/embeddable @elastic/kibana-presentation
x-pack/examples/embedded_lens_example @elastic/kibana-visualizations
x-pack/plugins/encrypted_saved_objects @elastic/kibana-security
x-pack/plugins/enterprise_search @elastic/enterprise-search-frontend
packages/kbn-es @elastic/kibana-operations
packages/kbn-es-archiver @elastic/kibana-operations
packages/kbn-es-errors @elastic/kibana-core
packages/kbn-es-query @elastic/kibana-data-discovery
packages/kbn-es-types @elastic/kibana-core @elastic/apm-ui
src/plugins/es_ui_shared @elastic/platform-deployment-management
packages/kbn-eslint-config @elastic/kibana-operations
packages/kbn-eslint-plugin-disable @elastic/kibana-operations
packages/kbn-eslint-plugin-eslint @elastic/kibana-operations
packages/kbn-eslint-plugin-imports @elastic/kibana-operations
x-pack/test/encrypted_saved_objects_api_integration/plugins/api_consumer_plugin @elastic/kibana-security
src/plugins/event_annotation @elastic/kibana-visualizations
x-pack/test/plugin_api_integration/plugins/event_log @elastic/response-ops
x-pack/plugins/event_log @elastic/response-ops
packages/kbn-expect @elastic/kibana-operations
x-pack/examples/exploratory_view_example @elastic/uptime
src/plugins/expression_error @elastic/kibana-presentation
src/plugins/chart_expressions/expression_gauge @elastic/kibana-visualizations
src/plugins/chart_expressions/expression_heatmap @elastic/kibana-visualizations
src/plugins/expression_image @elastic/kibana-presentation
src/plugins/chart_expressions/expression_legacy_metric @elastic/kibana-visualizations
src/plugins/expression_metric @elastic/kibana-presentation
src/plugins/chart_expressions/expression_metric @elastic/kibana-visualizations
src/plugins/chart_expressions/expression_partition_vis @elastic/kibana-visualizations
src/plugins/expression_repeat_image @elastic/kibana-presentation
src/plugins/expression_reveal_image @elastic/kibana-presentation
src/plugins/expression_shape @elastic/kibana-presentation
src/plugins/chart_expressions/expression_tagcloud @elastic/kibana-visualizations
src/plugins/chart_expressions/expression_xy @elastic/kibana-visualizations
examples/expressions_explorer @elastic/kibana-app-services
src/plugins/expressions @elastic/kibana-visualizations
packages/kbn-failed-test-reporter-cli @elastic/kibana-operations
x-pack/test/plugin_api_integration/plugins/feature_usage_test @elastic/kibana-security
x-pack/plugins/features @elastic/kibana-core
x-pack/test/functional_execution_context/plugins/alerts @elastic/kibana-core
examples/field_formats_example @elastic/kibana-data-discovery
src/plugins/field_formats @elastic/kibana-data-discovery
packages/kbn-field-types @elastic/kibana-data-discovery
x-pack/plugins/file_upload @elastic/kibana-gis
examples/files_example @elastic/appex-sharedux
src/plugins/files_management @elastic/appex-sharedux
src/plugins/files @elastic/appex-sharedux
packages/kbn-find-used-node-modules @elastic/kibana-operations
x-pack/plugins/fleet @elastic/fleet
packages/kbn-flot-charts @elastic/kibana-operations
x-pack/test/ui_capabilities/common/plugins/foo_plugin @elastic/kibana-security
src/plugins/ftr_apis @elastic/kibana-core
packages/kbn-ftr-common-functional-services @elastic/kibana-operations
packages/kbn-ftr-screenshot-filename @elastic/kibana-operations
x-pack/test/functional_with_es_ssl/plugins/cases @elastic/response-ops
packages/kbn-generate @elastic/kibana-operations
packages/kbn-get-repo-files @elastic/kibana-operations
x-pack/plugins/global_search_bar @elastic/kibana-core
x-pack/plugins/global_search @elastic/kibana-core
x-pack/plugins/global_search_providers @elastic/kibana-core
x-pack/test/plugin_functional/plugins/global_search_test @elastic/kibana-core
x-pack/plugins/graph @elastic/kibana-visualizations
x-pack/plugins/grokdebugger @elastic/platform-deployment-management
packages/kbn-guided-onboarding @elastic/platform-onboarding
examples/guided_onboarding_example @elastic/platform-onboarding
src/plugins/guided_onboarding @elastic/platform-onboarding
packages/kbn-handlebars @elastic/kibana-security
packages/kbn-hapi-mocks @elastic/kibana-core
packages/kbn-health-gateway-server @elastic/kibana-core
examples/hello_world @elastic/kibana-core
src/plugins/home @elastic/kibana-core
packages/home/sample_data_card @elastic/appex-sharedux
packages/home/sample_data_tab @elastic/appex-sharedux
packages/home/sample_data_types @elastic/appex-sharedux
packages/kbn-i18n @elastic/kibana-core
packages/kbn-i18n-react @elastic/kibana-core
x-pack/test/functional_embedded/plugins/iframe_embedded @elastic/kibana-core
src/plugins/image_embeddable @elastic/appex-sharedux
packages/kbn-import-locator @elastic/kibana-operations
packages/kbn-import-resolver @elastic/kibana-operations
x-pack/plugins/index_lifecycle_management @elastic/platform-deployment-management
x-pack/plugins/index_management @elastic/platform-deployment-management
test/plugin_functional/plugins/index_patterns @elastic/kibana-app-services
x-pack/plugins/infra @elastic/infra-monitoring-ui
x-pack/plugins/ingest_pipelines @elastic/platform-deployment-management
src/plugins/input_control_vis @elastic/kibana-presentation
src/plugins/inspector @elastic/kibana-presentation
src/plugins/interactive_setup @elastic/kibana-security
test/interactive_setup_api_integration/plugins/test_endpoints @elastic/kibana-security
packages/kbn-interpreter @elastic/kibana-visualizations
packages/kbn-io-ts-utils @elastic/apm-ui
packages/kbn-jest-serializers @elastic/kibana-operations
packages/kbn-journeys @elastic/kibana-operations
packages/kbn-json-ast @elastic/kibana-operations
test/health_gateway/plugins/status @elastic/kibana-core
test/plugin_functional/plugins/kbn_sample_panel_action @elastic/kibana-app-services
test/plugin_functional/plugins/kbn_top_nav @elastic/kibana-core
test/plugin_functional/plugins/kbn_tp_custom_visualizations @elastic/kibana-visualizations
test/interpreter_functional/plugins/kbn_tp_run_pipeline @elastic/kibana-core
x-pack/test/functional_cors/plugins/kibana_cors_test @elastic/kibana-security
packages/kbn-kibana-manifest-schema @elastic/kibana-operations
src/plugins/kibana_overview @elastic/appex-sharedux
src/plugins/kibana_react @elastic/appex-sharedux
src/plugins/kibana_usage_collection @elastic/kibana-core
src/plugins/kibana_utils @elastic/kibana-app-services
x-pack/plugins/kubernetes_security @elastic/awp-viz
packages/kbn-language-documentation-popover @elastic/kibana-visualizations
x-pack/plugins/lens @elastic/kibana-visualizations
x-pack/plugins/license_api_guard @elastic/platform-deployment-management
x-pack/plugins/license_management @elastic/platform-deployment-management
x-pack/plugins/licensing @elastic/kibana-core
packages/kbn-lint-packages-cli @elastic/kibana-operations
packages/kbn-lint-ts-projects-cli @elastic/kibana-operations
x-pack/plugins/lists @elastic/security-solution-platform
examples/locator_examples @elastic/kibana-app-services
examples/locator_explorer @elastic/kibana-app-services
packages/kbn-logging @elastic/kibana-core
packages/kbn-logging-mocks @elastic/kibana-core
x-pack/plugins/logstash @elastic/logstash
packages/kbn-managed-vscode-config @elastic/kibana-operations
packages/kbn-managed-vscode-config-cli @elastic/kibana-operations
src/plugins/management @elastic/platform-deployment-management
test/plugin_functional/plugins/management_test_plugin @elastic/kibana-app-services
packages/kbn-mapbox-gl @elastic/kibana-gis
x-pack/examples/third_party_maps_source_example @elastic/kibana-gis
src/plugins/maps_ems @elastic/kibana-gis
x-pack/plugins/maps @elastic/kibana-gis
x-pack/packages/ml/agg_utils @elastic/ml-ui
x-pack/packages/ml/date_picker @elastic/ml-ui
x-pack/packages/ml/is_defined @elastic/ml-ui
x-pack/packages/ml/is_populated_object @elastic/ml-ui
x-pack/packages/ml/local_storage @elastic/ml-ui
x-pack/packages/ml/nested_property @elastic/ml-ui
x-pack/plugins/ml @elastic/ml-ui
x-pack/packages/ml/query_utils @elastic/ml-ui
x-pack/packages/ml/string_hash @elastic/ml-ui
x-pack/packages/ml/url_state @elastic/ml-ui
packages/kbn-monaco @elastic/appex-sharedux
x-pack/plugins/monitoring_collection @elastic/infra-monitoring-ui
x-pack/plugins/monitoring @elastic/infra-monitoring-ui
src/plugins/navigation @elastic/appex-sharedux
src/plugins/newsfeed @elastic/kibana-core
test/common/plugins/newsfeed @elastic/kibana-core
x-pack/plugins/notifications @elastic/appex-sharedux
x-pack/test/cases_api_integration/common/plugins/observability @elastic/response-ops
x-pack/plugins/observability @elastic/observability-ui
x-pack/test/security_api_integration/plugins/oidc_provider @elastic/kibana-security
test/common/plugins/otel_metrics @elastic/infra-monitoring-ui
packages/kbn-optimizer @elastic/kibana-operations
packages/kbn-optimizer-webpack-helpers @elastic/kibana-operations
packages/kbn-osquery-io-ts-types @elastic/security-asset-management
x-pack/plugins/osquery @elastic/security-defend-workflows
examples/partial_results_example @elastic/kibana-data-discovery
x-pack/plugins/painless_lab @elastic/platform-deployment-management
packages/kbn-peggy @elastic/kibana-operations
packages/kbn-peggy-loader @elastic/kibana-operations
packages/kbn-performance-testing-dataset-extractor @elastic/kibana-performance-testing
packages/kbn-picomatcher @elastic/kibana-operations
packages/kbn-plugin-discovery @elastic/kibana-operations
packages/kbn-plugin-generator @elastic/kibana-operations
packages/kbn-plugin-helpers @elastic/kibana-operations
examples/preboot_example @elastic/kibana-security @elastic/kibana-core
src/plugins/presentation_util @elastic/kibana-presentation
x-pack/plugins/profiling @elastic/profiling-ui
packages/kbn-react-field @elastic/kibana-data-discovery
x-pack/plugins/remote_clusters @elastic/platform-deployment-management
test/plugin_functional/plugins/rendering_plugin @elastic/kibana-core
packages/kbn-repo-file-maps @elastic/kibana-operations
packages/kbn-repo-info @elastic/kibana-operations
packages/kbn-repo-linter @elastic/kibana-operations
@ -981,9 +991,41 @@ packages/kbn-repo-packages @elastic/kibana-operations
packages/kbn-repo-path @elastic/kibana-operations
packages/kbn-repo-source-classifier @elastic/kibana-operations
packages/kbn-repo-source-classifier-cli @elastic/kibana-operations
x-pack/examples/reporting_example @elastic/appex-sharedux
x-pack/plugins/reporting @elastic/appex-sharedux
x-pack/test/plugin_functional/plugins/resolver_test @elastic/security-solution
examples/response_stream @elastic/ml-ui
packages/kbn-rison @elastic/kibana-operations
x-pack/plugins/rollup @elastic/platform-deployment-management
examples/routing_example @elastic/kibana-core
packages/kbn-rule-data-utils @elastic/security-detections-response @elastic/actionable-observability @elastic/response-ops
x-pack/plugins/rule_registry @elastic/response-ops @elastic/actionable-observability
x-pack/plugins/runtime_fields @elastic/platform-deployment-management
packages/kbn-safer-lodash-set @elastic/kibana-security
x-pack/test/security_api_integration/plugins/saml_provider @elastic/kibana-security
x-pack/test/plugin_api_integration/plugins/sample_task_plugin @elastic/response-ops
test/plugin_functional/plugins/saved_object_export_transforms @elastic/kibana-core
test/plugin_functional/plugins/saved_object_import_warnings @elastic/kibana-core
x-pack/test/saved_object_api_integration/common/plugins/saved_object_test_plugin @elastic/kibana-security
src/plugins/saved_objects_finder @elastic/kibana-data-discovery
test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type @elastic/kibana-core
test/plugin_functional/plugins/saved_objects_hidden_type @elastic/kibana-core
src/plugins/saved_objects_management @elastic/kibana-core
src/plugins/saved_objects @elastic/kibana-core
src/plugins/saved_objects_tagging_oss @elastic/appex-sharedux
x-pack/plugins/saved_objects_tagging @elastic/appex-sharedux
src/plugins/saved_search @elastic/kibana-data-discovery
examples/screenshot_mode_example @elastic/kibana-app-services
src/plugins/screenshot_mode @elastic/appex-sharedux
x-pack/examples/screenshotting_example @elastic/appex-sharedux
x-pack/plugins/screenshotting @elastic/kibana-reporting-services
examples/search_examples @elastic/kibana-data-discovery
x-pack/plugins/searchprofiler @elastic/platform-deployment-management
x-pack/test/security_api_integration/packages/helpers @elastic/kibana-core
x-pack/plugins/security @elastic/kibana-security
x-pack/test/cases_api_integration/common/plugins/security_solution @elastic/response-ops
x-pack/plugins/security_solution @elastic/security-solution
x-pack/test/security_functional/plugins/test_endpoints @elastic/kibana-security
packages/kbn-securitysolution-autocomplete @elastic/security-solution-platform
packages/kbn-securitysolution-ecs @elastic/security-threat-hunting-explore
packages/kbn-securitysolution-es-utils @elastic/security-solution-platform
@ -1002,57 +1044,28 @@ packages/kbn-securitysolution-t-grid @elastic/security-solution-platform
packages/kbn-securitysolution-utils @elastic/security-solution-platform
packages/kbn-server-http-tools @elastic/kibana-core
packages/kbn-server-route-repository @elastic/apm-ui
test/plugin_functional/plugins/session_notifications @elastic/kibana-core
x-pack/plugins/session_view @elastic/awp-viz
packages/kbn-set-map @elastic/kibana-operations
examples/share_examples @elastic/kibana-app-services
src/plugins/share @elastic/appex-sharedux
packages/kbn-shared-svg @elastic/apm-ui
packages/kbn-shared-ux-utility @elastic/appex-sharedux
packages/kbn-slo-schema @elastic/actionable-observability
packages/kbn-some-dev-log @elastic/kibana-operations
packages/kbn-sort-package-json @elastic/kibana-operations
packages/kbn-spec-to-console @elastic/platform-deployment-management
packages/kbn-std @elastic/kibana-core
packages/kbn-stdio-dev-helpers @elastic/kibana-operations
packages/kbn-storybook @elastic/kibana-operations
packages/kbn-telemetry-tools @elastic/kibana-core
packages/kbn-test @elastic/kibana-operations
packages/kbn-test-jest-helpers @elastic/kibana-operations
packages/kbn-test-subj-selector @elastic/kibana-operations
packages/kbn-timelion-grammar @elastic/kibana-visualizations
packages/kbn-tinymath @elastic/kibana-visualizations
packages/kbn-tooling-log @elastic/kibana-operations
packages/kbn-ts-projects @elastic/kibana-operations
packages/kbn-ts-type-check-cli @elastic/kibana-operations
packages/kbn-typed-react-router-config @elastic/apm-ui
packages/kbn-ui-actions-browser @elastic/appex-sharedux
packages/kbn-ui-framework @elastic/kibana-design
packages/kbn-ui-shared-deps-npm @elastic/kibana-operations
packages/kbn-ui-shared-deps-src @elastic/kibana-operations
packages/kbn-ui-theme @elastic/kibana-operations
packages/kbn-user-profile-components @elastic/kibana-security
packages/kbn-utility-types @elastic/kibana-core
packages/kbn-utility-types-jest @elastic/kibana-operations
packages/kbn-utils @elastic/kibana-operations
packages/kbn-web-worker-stub @elastic/kibana-operations
packages/kbn-whereis-pkg-cli @elastic/kibana-operations
packages/kbn-yarn-lock-validator @elastic/kibana-operations
packages/shared-ux/avatar/solution @elastic/appex-sharedux
packages/shared-ux/avatar/user_profile/impl @elastic/appex-sharedux
packages/shared-ux/button_toolbar @elastic/appex-sharedux
packages/shared-ux/button/exit_full_screen/impl @elastic/appex-sharedux
packages/shared-ux/button/exit_full_screen/mocks @elastic/appex-sharedux
packages/shared-ux/button/exit_full_screen/types @elastic/appex-sharedux
packages/shared-ux/button_toolbar @elastic/appex-sharedux
packages/shared-ux/card/no_data/impl @elastic/appex-sharedux
packages/shared-ux/card/no_data/mocks @elastic/appex-sharedux
packages/shared-ux/card/no_data/types @elastic/appex-sharedux
packages/shared-ux/code_editor/impl @elastic/appex-sharedux
packages/shared-ux/code_editor/mocks @elastic/appex-sharedux
packages/shared-ux/code_editor/types @elastic/appex-sharedux
packages/shared-ux/file/context @elastic/appex-sharedux
packages/shared-ux/file/file_picker/impl @elastic/appex-sharedux
packages/shared-ux/file/file_upload/impl @elastic/appex-sharedux
packages/shared-ux/file/image/impl @elastic/appex-sharedux
packages/shared-ux/file/image/mocks @elastic/appex-sharedux
packages/shared-ux/file/mocks @elastic/appex-sharedux
packages/shared-ux/file/file_picker/impl @elastic/appex-sharedux
packages/shared-ux/file/types @elastic/appex-sharedux
packages/shared-ux/file/file_upload/impl @elastic/appex-sharedux
packages/shared-ux/file/util @elastic/appex-sharedux
packages/shared-ux/link/redirect_app/impl @elastic/appex-sharedux
packages/shared-ux/link/redirect_app/mocks @elastic/appex-sharedux
@ -1069,10 +1082,10 @@ packages/shared-ux/page/kibana_no_data/types @elastic/appex-sharedux
packages/shared-ux/page/kibana_template/impl @elastic/appex-sharedux
packages/shared-ux/page/kibana_template/mocks @elastic/appex-sharedux
packages/shared-ux/page/kibana_template/types @elastic/appex-sharedux
packages/shared-ux/page/no_data/impl @elastic/appex-sharedux
packages/shared-ux/page/no_data_config/impl @elastic/appex-sharedux
packages/shared-ux/page/no_data_config/mocks @elastic/appex-sharedux
packages/shared-ux/page/no_data_config/types @elastic/appex-sharedux
packages/shared-ux/page/no_data/impl @elastic/appex-sharedux
packages/shared-ux/page/no_data/mocks @elastic/appex-sharedux
packages/shared-ux/page/no_data/types @elastic/appex-sharedux
packages/shared-ux/page/solution_nav @elastic/appex-sharedux
@ -1085,17 +1098,96 @@ packages/shared-ux/router/mocks @elastic/appex-sharedux
packages/shared-ux/router/types @elastic/appex-sharedux
packages/shared-ux/storybook/config @elastic/appex-sharedux
packages/shared-ux/storybook/mock @elastic/appex-sharedux
src/plugins/chart_expressions/common @elastic/kibana-visualizations
x-pack/packages/kbn-ecs-data-quality-dashboard @elastic/security-threat-hunting-investigations
x-pack/packages/ml/agg_utils @elastic/ml-ui
x-pack/packages/ml/aiops_components @elastic/ml-ui
x-pack/packages/ml/aiops_utils @elastic/ml-ui
x-pack/packages/ml/date_picker @elastic/ml-ui
x-pack/packages/ml/is_defined @elastic/ml-ui
x-pack/packages/ml/is_populated_object @elastic/ml-ui
x-pack/packages/ml/local_storage @elastic/ml-ui
x-pack/packages/ml/nested_property @elastic/ml-ui
x-pack/packages/ml/query_utils @elastic/ml-ui
x-pack/packages/ml/string_hash @elastic/ml-ui
x-pack/packages/ml/url_state @elastic/ml-ui
x-pack/test/alerting_api_integration/packages/helpers @elastic/response-ops
packages/kbn-shared-ux-utility @elastic/appex-sharedux
packages/kbn-slo-schema @elastic/actionable-observability
x-pack/plugins/snapshot_restore @elastic/platform-deployment-management
packages/kbn-some-dev-log @elastic/kibana-operations
packages/kbn-sort-package-json @elastic/kibana-operations
x-pack/plugins/spaces @elastic/kibana-security
x-pack/test/spaces_api_integration/common/plugins/spaces_test_plugin @elastic/kibana-security
packages/kbn-spec-to-console @elastic/platform-deployment-management
x-pack/plugins/stack_alerts @elastic/response-ops
x-pack/plugins/stack_connectors @elastic/response-ops
x-pack/test/usage_collection/plugins/stack_management_usage_test @elastic/platform-deployment-management
examples/state_containers_examples @elastic/appex-sharedux
test/server_integration/plugins/status_plugin_a @elastic/kibana-core
test/server_integration/plugins/status_plugin_b @elastic/kibana-core
packages/kbn-std @elastic/kibana-core
packages/kbn-stdio-dev-helpers @elastic/kibana-operations
packages/kbn-storybook @elastic/kibana-operations
x-pack/plugins/synthetics @elastic/uptime
x-pack/test/alerting_api_integration/common/plugins/task_manager_fixture @elastic/response-ops
x-pack/test/plugin_api_perf/plugins/task_manager_performance @elastic/response-ops
x-pack/plugins/task_manager @elastic/response-ops
src/plugins/telemetry_collection_manager @elastic/kibana-core
x-pack/plugins/telemetry_collection_xpack @elastic/kibana-core
src/plugins/telemetry_management_section @elastic/kibana-core
src/plugins/telemetry @elastic/kibana-core
test/plugin_functional/plugins/telemetry @elastic/kibana-core
packages/kbn-telemetry-tools @elastic/kibana-core
packages/kbn-test @elastic/kibana-operations
x-pack/test/licensing_plugin/plugins/test_feature_usage @elastic/kibana-security
packages/kbn-test-jest-helpers @elastic/kibana-operations
packages/kbn-test-subj-selector @elastic/kibana-operations
x-pack/examples/testing_embedded_lens @elastic/kibana-visualizations
x-pack/examples/third_party_lens_navigation_prompt @elastic/kibana-visualizations
x-pack/examples/third_party_vis_lens_example @elastic/kibana-visualizations
x-pack/plugins/threat_intelligence @elastic/protections-experience
x-pack/plugins/timelines @elastic/security-threat-hunting-investigations
packages/kbn-timelion-grammar @elastic/kibana-visualizations
packages/kbn-tinymath @elastic/kibana-visualizations
packages/kbn-tooling-log @elastic/kibana-operations
x-pack/plugins/transform @elastic/ml-ui
x-pack/plugins/translations @elastic/kibana-localization
x-pack/examples/triggers_actions_ui_example @elastic/response-ops
x-pack/plugins/triggers_actions_ui @elastic/response-ops
packages/kbn-ts-projects @elastic/kibana-operations
packages/kbn-ts-type-check-cli @elastic/kibana-operations
packages/kbn-typed-react-router-config @elastic/apm-ui
packages/kbn-ui-actions-browser @elastic/appex-sharedux
x-pack/examples/ui_actions_enhanced_examples @elastic/appex-sharedux
src/plugins/ui_actions_enhanced @elastic/appex-sharedux
examples/ui_action_examples @elastic/appex-sharedux
examples/ui_actions_explorer @elastic/appex-sharedux
src/plugins/ui_actions @elastic/appex-sharedux
packages/kbn-ui-framework @elastic/kibana-design
test/plugin_functional/plugins/ui_settings_plugin @elastic/kibana-core
packages/kbn-ui-shared-deps-npm @elastic/kibana-operations
packages/kbn-ui-shared-deps-src @elastic/kibana-operations
packages/kbn-ui-theme @elastic/kibana-operations
src/plugins/unified_field_list @elastic/kibana-data-discovery
src/plugins/unified_histogram @elastic/kibana-data-discovery
src/plugins/unified_search @elastic/kibana-visualizations
x-pack/plugins/upgrade_assistant @elastic/platform-deployment-management
x-pack/plugins/drilldowns/url_drilldown @elastic/kibana-app-services
src/plugins/url_forwarding @elastic/kibana-visualizations
src/plugins/usage_collection @elastic/kibana-core
test/plugin_functional/plugins/usage_collection @elastic/kibana-core
packages/kbn-user-profile-components @elastic/kibana-security
examples/user_profile_examples @elastic/kibana-security
x-pack/test/security_api_integration/plugins/user_profiles_consumer @elastic/kibana-security
packages/kbn-utility-types @elastic/kibana-core
packages/kbn-utility-types-jest @elastic/kibana-operations
packages/kbn-utils @elastic/kibana-operations
x-pack/plugins/ux @elastic/uptime
src/plugins/vis_default_editor @elastic/kibana-visualizations
src/plugins/vis_types/gauge @elastic/kibana-visualizations
src/plugins/vis_types/heatmap @elastic/kibana-visualizations
src/plugins/vis_type_markdown @elastic/kibana-presentation
src/plugins/vis_types/metric @elastic/kibana-visualizations
src/plugins/vis_types/pie @elastic/kibana-visualizations
src/plugins/vis_types/table @elastic/kibana-visualizations
src/plugins/vis_types/tagcloud @elastic/kibana-visualizations
src/plugins/vis_types/timelion @elastic/kibana-visualizations
src/plugins/vis_types/timeseries @elastic/kibana-visualizations
src/plugins/vis_types/vega @elastic/kibana-visualizations
src/plugins/vis_types/vislib @elastic/kibana-visualizations
src/plugins/vis_types/xy @elastic/kibana-visualizations
src/plugins/visualizations @elastic/kibana-visualizations
x-pack/plugins/watcher @elastic/platform-deployment-management
packages/kbn-web-worker-stub @elastic/kibana-operations
packages/kbn-whereis-pkg-cli @elastic/kibana-operations
packages/kbn-yarn-lock-validator @elastic/kibana-operations
# Design (at the bottom for specificity of SASS files)
**/*.scss @elastic/kibana-design

1
.gitignore vendored
View file

@ -57,6 +57,7 @@ webpackstats.json
!/config/serverless.security.yml
!/config/node.options
coverage
!/test/common/fixtures/plugins/coverage
selenium
.babel_register_cache.json
.webpack.babelcache

View file

@ -67,7 +67,7 @@ If that isn't the case, please file an issue, it could be a bug with the system.
We are [aware of some performance issues](https://github.com/elastic/elastic-docs/issues/274) with deeply nested, or large APIs.
In the short term, the best thing you can do is avoid deeply nested API items. Use interfaces rather than inlined objects. Also consider
adding `serviceFolders` in your kibana.json. This will automatically split your docs up based on which APIs are defined within the service folders.
adding `serviceFolders` in your kibana.jsonc. This will automatically split your docs up based on which APIs are defined within the service folders.
They will get built into a doc with an id of
`kib${PluginName}${ServiceName}PluginApi`. The data plugin does this, so you
can [check that out as an example](https://github.com/elastic/kibana/blob/main/src/plugins/data/kibana.json#L13).

View file

@ -36,7 +36,6 @@ layout: landing
{ pageId: "kibDevDocsOpsKbnPm" },
{ pageId: "kibDevDocsOpsOptimizer" },
{ pageId: "kibDevDocsOpsBabelPreset" },
{ pageId: "kibDevDocsOpsBabelPluginPackageImports" },
{ pageId: "kibDevDocsOpsUiSharedDepsNpm" },
{ pageId: "kibDevDocsOpsUiSharedDepsSrc" },
{ pageId: "kibDevDocsOpsPluginDiscovery" },

View file

@ -1,14 +0,0 @@
{
"id": "bfetchExplorer",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": true,
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"requiredPlugins": ["bfetch", "developerExamples"],
"optionalPlugins": [],
"requiredBundles": ["kibanaReact"]
}

View file

@ -0,0 +1,17 @@
{
"type": "plugin",
"id": "@kbn/bfetch-explorer-plugin",
"owner": "@elastic/appex-sharedux",
"plugin": {
"id": "bfetchExplorer",
"server": true,
"browser": true,
"requiredPlugins": [
"bfetch",
"developerExamples"
],
"requiredBundles": [
"kibanaReact"
]
}
}

View file

@ -1,18 +0,0 @@
{
"id": "controlsExample",
"owner": {
"name": "Kibana Presentation",
"githubTeam": "kibana-presentation"
},
"version": "1.0.0",
"kibanaVersion": "kibana",
"ui": true,
"requiredPlugins": [
"controls",
"data",
"developerExamples",
"embeddable",
"navigation",
"presentationUtil"
]
}

View file

@ -0,0 +1,18 @@
{
"type": "plugin",
"id": "@kbn/controls-example-plugin",
"owner": "@elastic/kibana-presentation",
"plugin": {
"id": "controlsExample",
"server": false,
"browser": true,
"requiredPlugins": [
"controls",
"data",
"developerExamples",
"embeddable",
"navigation",
"presentationUtil"
]
}
}

View file

@ -1,20 +0,0 @@
{
"id": "dashboardEmbeddableExamples",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": false,
"ui": true,
"requiredPlugins": [
"embeddable",
"embeddableExamples",
"dashboard",
"developerExamples",
"kibanaReact"
],
"owner": {
"name": "Presentation",
"githubTeam": "kibana-presentation"
},
"description": "Example app that shows how to embed a dashboard in an application",
"optionalPlugins": []
}

View file

@ -0,0 +1,18 @@
{
"type": "plugin",
"id": "@kbn/dashboard-embeddable-examples-plugin",
"owner": "@elastic/kibana-presentation",
"description": "Example app that shows how to embed a dashboard in an application",
"plugin": {
"id": "dashboardEmbeddableExamples",
"server": false,
"browser": true,
"requiredPlugins": [
"embeddable",
"embeddableExamples",
"dashboard",
"developerExamples",
"kibanaReact"
]
}
}

View file

@ -1,15 +0,0 @@
{
"id": "dataViewFieldEditorExample",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": false,
"ui": true,
"requiredPlugins": ["data", "dataViewFieldEditor", "developerExamples"],
"optionalPlugins": [],
"requiredBundles": [],
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Data view field editor example app"
}

View file

@ -0,0 +1,16 @@
{
"type": "plugin",
"id": "@kbn/data-view-field-editor-example-plugin",
"owner": "@elastic/kibana-app-services",
"description": "Data view field editor example app",
"plugin": {
"id": "dataViewFieldEditorExample",
"server": false,
"browser": true,
"requiredPlugins": [
"data",
"dataViewFieldEditor",
"developerExamples"
]
}
}

View file

@ -1,10 +0,0 @@
{
"id": "developerExamples",
"owner": {
"name": "Kibana Core",
"githubTeam": "kibana-core"
},
"kibanaVersion": "kibana",
"version": "0.0.1",
"ui": true
}

View file

@ -0,0 +1,10 @@
{
"type": "plugin",
"id": "@kbn/developer-examples-plugin",
"owner": "@elastic/appex-sharedux",
"plugin": {
"id": "developerExamples",
"server": false,
"browser": true
}
}

View file

@ -1,16 +0,0 @@
{
"id": "embeddableExamples",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": true,
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example app that shows how to register custom embeddables",
"requiredPlugins": ["embeddable", "uiActions", "savedObjects", "dashboard", "kibanaUtils"],
"optionalPlugins": [],
"extraPublicDirs": ["public/todo", "public/hello_world", "public/todo/todo_ref_embeddable"],
"requiredBundles": ["kibanaReact"]
}

View file

@ -0,0 +1,26 @@
{
"type": "plugin",
"id": "@kbn/embeddable-examples-plugin",
"owner": "@elastic/kibana-presentation",
"description": "Example app that shows how to register custom embeddables",
"plugin": {
"id": "embeddableExamples",
"server": true,
"browser": true,
"requiredPlugins": [
"embeddable",
"uiActions",
"savedObjects",
"dashboard",
"kibanaUtils"
],
"requiredBundles": [
"kibanaReact"
],
"extraPublicDirs": [
"public/todo",
"public/hello_world",
"public/todo/todo_ref_embeddable"
]
}
}

View file

@ -1,23 +0,0 @@
{
"id": "embeddableExplorer",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": false,
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example app that relies on registered functionality in the embeddable_examples plugin",
"requiredPlugins": [
"uiActions",
"inspector",
"embeddable",
"embeddableExamples",
"developerExamples",
"dashboard",
"kibanaReact",
"savedObjects"
],
"optionalPlugins": []
}

View file

@ -0,0 +1,21 @@
{
"type": "plugin",
"id": "@kbn/embeddable-explorer-plugin",
"owner": "@elastic/kibana-presentation",
"description": "Example app that relies on registered functionality in the embeddable_examples plugin",
"plugin": {
"id": "embeddableExplorer",
"server": false,
"browser": true,
"requiredPlugins": [
"uiActions",
"inspector",
"embeddable",
"embeddableExamples",
"developerExamples",
"dashboard",
"kibanaReact",
"savedObjects"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "expressionsExplorer",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": false,
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"requiredPlugins": ["expressions", "inspector", "uiActions", "developerExamples"],
"optionalPlugins": [],
"requiredBundles": ["kibanaReact"]
}

View file

@ -0,0 +1,19 @@
{
"type": "plugin",
"id": "@kbn/expressions-explorer-plugin",
"owner": "@elastic/kibana-app-services",
"plugin": {
"id": "expressionsExplorer",
"server": false,
"browser": true,
"requiredPlugins": [
"expressions",
"inspector",
"uiActions",
"developerExamples"
],
"requiredBundles": [
"kibanaReact"
]
}
}

View file

@ -1,13 +0,0 @@
{
"id": "fieldFormatsExample",
"version": "1.0.0",
"kibanaVersion": "kibana",
"ui": true,
"server": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "A plugin that demonstrates field formats usage",
"requiredPlugins": ["developerExamples", "fieldFormats", "dataViewFieldEditor", "data"]
}

View file

@ -0,0 +1,17 @@
{
"type": "plugin",
"id": "@kbn/field-formats-example-plugin",
"owner": "@elastic/kibana-data-discovery",
"description": "A plugin that demonstrates field formats usage",
"plugin": {
"id": "fieldFormatsExample",
"server": true,
"browser": true,
"requiredPlugins": [
"developerExamples",
"fieldFormats",
"dataViewFieldEditor",
"data"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "filesExample",
"version": "1.0.0",
"kibanaVersion": "kibana",
"owner": {
"name": "kibana-app-services",
"githubTeam": "kibana-app-services"
},
"description": "Example plugin integrating with files plugin",
"server": true,
"ui": true,
"requiredPlugins": ["files", "developerExamples"],
"optionalPlugins": []
}

View file

@ -0,0 +1,15 @@
{
"type": "plugin",
"id": "@kbn/files-example-plugin",
"owner": "@elastic/appex-sharedux",
"description": "Example plugin integrating with files plugin",
"plugin": {
"id": "filesExample",
"server": true,
"browser": true,
"requiredPlugins": [
"files",
"developerExamples"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "guidedOnboardingExample",
"version": "1.0.0",
"kibanaVersion": "kibana",
"owner": {
"name": "platform-onboarding",
"githubTeam": "platform-onboarding"
},
"description": "Example plugin to consume guidedOnboarding",
"server": true,
"ui": true,
"requiredPlugins": ["navigation", "guidedOnboarding"],
"optionalPlugins": []
}

View file

@ -0,0 +1,15 @@
{
"type": "plugin",
"id": "@kbn/guided-onboarding-example-plugin",
"owner": "@elastic/platform-onboarding",
"description": "Example plugin to consume guidedOnboarding",
"plugin": {
"id": "guidedOnboardingExample",
"server": true,
"browser": true,
"requiredPlugins": [
"navigation",
"guidedOnboarding"
]
}
}

View file

@ -1,12 +0,0 @@
{
"id": "helloWorld",
"version": "1.0.0",
"kibanaVersion": "kibana",
"ui": true,
"owner": {
"name": "Kibana core",
"githubTeam": "kibana-core"
},
"description": "A plugin which registers a very simple hello world application.",
"requiredPlugins": ["developerExamples"]
}

View file

@ -0,0 +1,14 @@
{
"type": "plugin",
"id": "@kbn/hello-world-plugin",
"owner": "@elastic/kibana-core",
"description": "A plugin which registers a very simple hello world application.",
"plugin": {
"id": "helloWorld",
"server": false,
"browser": true,
"requiredPlugins": [
"developerExamples"
]
}
}

View file

@ -1,15 +0,0 @@
{
"id": "locatorExamples",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": false,
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example app that registers custom URL locators",
"requiredPlugins": ["share"],
"optionalPlugins": [],
"extraPublicDirs": ["public/locator"]
}

View file

@ -0,0 +1,17 @@
{
"type": "plugin",
"id": "@kbn/locator-examples-plugin",
"owner": "@elastic/kibana-app-services",
"description": "Example app that registers custom URL locators",
"plugin": {
"id": "locatorExamples",
"server": false,
"browser": true,
"requiredPlugins": [
"share"
],
"extraPublicDirs": [
"public/locator"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "locatorExplorer",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": false,
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example app that shows how to use custom URL locators",
"requiredPlugins": ["share", "locatorExamples", "developerExamples"],
"optionalPlugins": []
}

View file

@ -0,0 +1,16 @@
{
"type": "plugin",
"id": "@kbn/locator-explorer-plugin",
"owner": "@elastic/kibana-app-services",
"description": "Example app that shows how to use custom URL locators",
"plugin": {
"id": "locatorExplorer",
"server": false,
"browser": true,
"requiredPlugins": [
"share",
"locatorExamples",
"developerExamples"
]
}
}

View file

@ -1,12 +0,0 @@
{
"id": "paertialResultsExample",
"version": "0.1.0",
"kibanaVersion": "kibana",
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "A plugin demonstrating partial results in the expressions plugin",
"requiredPlugins": ["developerExamples", "expressions"]
}

View file

@ -0,0 +1,15 @@
{
"type": "plugin",
"id": "@kbn/paertial-results-example-plugin",
"owner": "@elastic/kibana-data-discovery",
"description": "A plugin demonstrating partial results in the expressions plugin",
"plugin": {
"id": "paertialResultsExample",
"server": false,
"browser": true,
"requiredPlugins": [
"developerExamples",
"expressions"
]
}
}

View file

@ -1,16 +0,0 @@
{
"id": "prebootExample",
"kibanaVersion": "kibana",
"owner": {
"name": "Core",
"githubTeam": "kibana-core"
},
"description": "The example of the `preboot` plugin.",
"version": "8.0.0",
"configPath": ["prebootExample"],
"type": "preboot",
"server": true,
"ui": true,
"requiredPlugins": [],
"requiredBundles": []
}

View file

@ -0,0 +1,18 @@
{
"type": "plugin",
"id": "@kbn/preboot-example-plugin",
"owner": [
"@elastic/kibana-security",
"@elastic/kibana-core"
],
"description": "The example of the `preboot` plugin.",
"plugin": {
"id": "prebootExample",
"type": "preboot",
"server": true,
"browser": true,
"configPath": [
"prebootExample"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "responseStream",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": true,
"ui": true,
"owner": {
"name": "ML UI",
"githubTeam": "ml-ui"
},
"requiredPlugins": ["developerExamples"],
"optionalPlugins": [],
"requiredBundles": ["kibanaReact"]
}

View file

@ -0,0 +1,16 @@
{
"type": "plugin",
"id": "@kbn/response-stream-plugin",
"owner": "@elastic/ml-ui",
"plugin": {
"id": "responseStream",
"server": true,
"browser": true,
"requiredPlugins": [
"developerExamples"
],
"requiredBundles": [
"kibanaReact"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "routingExample",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": true,
"ui": true,
"owner": {
"name": "Core",
"githubTeam": "kibana-core"
},
"description": "A simple example of how to use core's routing services",
"requiredPlugins": ["developerExamples"],
"optionalPlugins": []
}

View file

@ -0,0 +1,14 @@
{
"type": "plugin",
"id": "@kbn/routing-example-plugin",
"owner": "@elastic/kibana-core",
"description": "A simple example of how to use core's routing services",
"plugin": {
"id": "routingExample",
"server": true,
"browser": true,
"requiredPlugins": [
"developerExamples"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "screenshotModeExample",
"kibanaVersion": "kibana",
"version": "1.0.0",
"server": true,
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example plugin of how to use screenshotMode plugin services",
"requiredPlugins": ["navigation", "screenshotMode", "usageCollection", "developerExamples"],
"optionalPlugins": []
}

View file

@ -0,0 +1,17 @@
{
"type": "plugin",
"id": "@kbn/screenshot-mode-example-plugin",
"owner": "@elastic/kibana-app-services",
"description": "Example plugin of how to use screenshotMode plugin services",
"plugin": {
"id": "screenshotModeExample",
"server": true,
"browser": true,
"requiredPlugins": [
"navigation",
"screenshotMode",
"usageCollection",
"developerExamples"
]
}
}

View file

@ -1,20 +0,0 @@
{
"id": "searchExamples",
"kibanaVersion": "kibana",
"version": "0.0.1",
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example plugin of how to use data plugin search services",
"server": true,
"ui": true,
"requiredPlugins": ["navigation", "data", "developerExamples", "inspector", "kibanaUtils", "share", "unifiedSearch"],
"optionalPlugins": [],
"requiredBundles": ["kibanaReact"],
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Examples for using the data plugin search service. Includes examples for searching using the high level search source, or low-level search services, as well as integrating with search sessions."
}

View file

@ -0,0 +1,23 @@
{
"type": "plugin",
"id": "@kbn/search-examples-plugin",
"owner": "@elastic/kibana-data-discovery",
"description": "Examples for using the data plugin search service. Includes examples for searching using the high level search source, or low-level search services, as well as integrating with search sessions.",
"plugin": {
"id": "searchExamples",
"server": true,
"browser": true,
"requiredPlugins": [
"navigation",
"data",
"developerExamples",
"inspector",
"kibanaUtils",
"share",
"unifiedSearch"
],
"requiredBundles": [
"kibanaReact"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "shareExamples",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": false,
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Small demos of share plugin usage",
"requiredPlugins": ["share"],
"optionalPlugins": []
}

View file

@ -0,0 +1,14 @@
{
"type": "plugin",
"id": "@kbn/share-examples-plugin",
"owner": "@elastic/kibana-app-services",
"description": "Small demos of share plugin usage",
"plugin": {
"id": "shareExamples",
"server": false,
"browser": true,
"requiredPlugins": [
"share"
]
}
}

View file

@ -1,15 +0,0 @@
{
"id": "stateContainersExamples",
"kibanaVersion": "kibana",
"version": "0.0.1",
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example plugin of how to use kibanaUtils services",
"server": false,
"ui": true,
"requiredPlugins": ["navigation", "data", "developerExamples"],
"optionalPlugins": [],
"requiredBundles": ["kibanaUtils"]
}

View file

@ -0,0 +1,19 @@
{
"type": "plugin",
"id": "@kbn/state-containers-examples-plugin",
"owner": "@elastic/appex-sharedux",
"description": "Example plugin of how to use kibanaUtils services",
"plugin": {
"id": "stateContainersExamples",
"server": false,
"browser": true,
"requiredPlugins": [
"navigation",
"data",
"developerExamples"
],
"requiredBundles": [
"kibanaUtils"
]
}
}

View file

@ -1,15 +0,0 @@
{
"id": "uiActionsExamples",
"kibanaVersion": "kibana",
"version": "0.0.1",
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example plugin of how to register custom uiActions",
"server": false,
"ui": true,
"requiredPlugins": ["uiActions"],
"optionalPlugins": [],
"requiredBundles": ["kibanaReact"]
}

View file

@ -0,0 +1,17 @@
{
"type": "plugin",
"id": "@kbn/ui-actions-examples-plugin",
"owner": "@elastic/appex-sharedux",
"description": "Example plugin of how to register custom uiActions",
"plugin": {
"id": "uiActionsExamples",
"server": false,
"browser": true,
"requiredPlugins": [
"uiActions"
],
"requiredBundles": [
"kibanaReact"
]
}
}

View file

@ -1,15 +0,0 @@
{
"id": "uiActionsExplorer",
"kibanaVersion": "kibana",
"version": "0.0.1",
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example plugin of how to use uiActions plugin services",
"server": false,
"ui": true,
"requiredPlugins": ["uiActions", "uiActionsExamples", "developerExamples"],
"optionalPlugins": [],
"requiredBundles": ["kibanaReact"]
}

View file

@ -0,0 +1,19 @@
{
"type": "plugin",
"id": "@kbn/ui-actions-explorer-plugin",
"owner": "@elastic/appex-sharedux",
"description": "Example plugin of how to use uiActions plugin services",
"plugin": {
"id": "uiActionsExplorer",
"server": false,
"browser": true,
"requiredPlugins": [
"uiActions",
"uiActionsExamples",
"developerExamples"
],
"requiredBundles": [
"kibanaReact"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "userProfileExamples",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": true,
"ui": true,
"owner": {
"name": "Kibana Platform Security",
"githubTeam": "kibana-security"
},
"description": "Demo of how to implement a suggest user functionality",
"requiredPlugins": ["developerExamples", "security", "spaces"],
"optionalPlugins": []
}

View file

@ -0,0 +1,16 @@
{
"type": "plugin",
"id": "@kbn/user-profile-examples-plugin",
"owner": "@elastic/kibana-security",
"description": "Demo of how to implement a suggest user functionality",
"plugin": {
"id": "userProfileExamples",
"server": true,
"browser": true,
"requiredPlugins": [
"developerExamples",
"security",
"spaces"
]
}
}

View file

@ -23,7 +23,7 @@ import { Log } from './lib/log.mjs';
import External from './lib/external_packages.js';
const start = Date.now();
const args = new Args(process.argv.slice(2), process.env.CI ? ['--quiet'] : []);
const args = new Args(process.argv.slice(2), []);
const log = new Log(args.getLoggingLevel());
const cmdName = args.getCommandName();

View file

@ -62,7 +62,7 @@ export const command = {
const forceInstall =
args.getBooleanValue('force-install') ?? (await haveNodeModulesBeenManuallyDeleted());
const [{ packages, plugins, tsConfigsPaths }] = await Promise.all([
const [{ packageManifestPaths, tsConfigRepoRels }] = await Promise.all([
// discover the location of packages, plugins, etc
await time('discovery', discovery),
@ -78,16 +78,22 @@ export const command = {
]);
// generate the package map and package.json file, if necessary
await Promise.all([
const [packages] = await Promise.all([
time('regenerate package map', async () => {
await regeneratePackageMap(packages, plugins, log);
return await regeneratePackageMap(log, packageManifestPaths);
}),
time('regenerate tsconfig map', async () => {
await regenerateTsconfigPaths(tsConfigsPaths, log);
await regenerateTsconfigPaths(tsConfigRepoRels, log);
}),
]);
await Promise.all([
time('update package json', async () => {
await updatePackageJson(packages, log);
}),
time('regenerate tsconfig.base.json', async () => {
await regenerateBaseTsconfig(packages, log);
}),
]);
// Bootstrap process for Bazel packages
@ -111,9 +117,6 @@ export const command = {
});
await Promise.all([
time('regenerate tsconfig.base.json', async () => {
await regenerateBaseTsconfig();
}),
time('sort package json', async () => {
await sortPackageJson(log);
}),

View file

@ -7,83 +7,37 @@
*/
import Path from 'path';
import Fs from 'fs';
import ChildProcess from 'child_process';
import { promisify } from 'util';
import External from '../../lib/external_packages.js';
import { REPO_ROOT } from '../../lib/paths.mjs';
const execAsync = promisify(ChildProcess.execFile);
export async function discovery() {
const { getPluginSearchPaths, simpleKibanaPlatformPluginDiscovery } = await import(
// eslint-disable-next-line @kbn/imports/uniform_imports
'../../../../packages/kbn-plugin-discovery/index.js'
);
const { getRepoRels } = External['@kbn/repo-packages']();
const { Package } = await import(
// we need to run this before we install node modules, so it can't rely on @kbn/* imports
// eslint-disable-next-line @kbn/imports/uniform_imports
'../../../../packages/kbn-repo-packages/index.js'
);
const proc = await execAsync('git', ['ls-files', '-comt', '--exclude-standard'], {
cwd: REPO_ROOT,
encoding: 'utf8',
maxBuffer: Infinity,
});
const paths = new Map();
/** @type {Map<string, Set<string>>} */
const filesByName = new Map();
for (const raw of proc.stdout.split('\n')) {
const line = raw.trim();
if (!line) {
/** @type {string[]} */
const tsConfigRepoRels = [];
/** @type {string[]} */
const packageManifestPaths = [];
for (const repoRel of await getRepoRels(REPO_ROOT, [
'tsconfig.json',
'**/tsconfig.json',
'**/kibana.jsonc',
])) {
if (repoRel === 'tsconfig.json' || repoRel.endsWith('/tsconfig.json')) {
tsConfigRepoRels.push(repoRel);
continue;
}
const repoRel = line.slice(2); // trim the single char status and separating space from the line
const name = repoRel.split('/').pop();
if (name !== 'kibana.jsonc' && name !== 'tsconfig.json') {
if (repoRel.endsWith('/kibana.jsonc')) {
packageManifestPaths.push(Path.resolve(REPO_ROOT, repoRel));
continue;
}
const existingPath = paths.get(repoRel);
const path = existingPath ?? Path.resolve(REPO_ROOT, repoRel);
if (!existingPath) {
paths.set(repoRel, path);
}
let files = filesByName.get(name);
if (!files) {
files = new Set();
filesByName.set(name, files);
}
if (line.startsWith('C ')) {
// this line indicates that the previous path is changed in the working
// tree, so we need to determine if it was deleted and remove it if so
if (!Fs.existsSync(path)) {
files.delete(path);
}
} else {
files.add(path);
}
throw new Error(`unexpected repo rel: ${repoRel}`);
}
return {
plugins: simpleKibanaPlatformPluginDiscovery(
getPluginSearchPaths({
rootDir: REPO_ROOT,
examples: true,
oss: false,
testPlugins: true,
}),
[]
),
tsConfigsPaths: Array.from(filesByName.get('tsconfig.json') ?? new Set()),
packages: Array.from(filesByName.get('kibana.jsonc') ?? new Set())
.map((path) => Package.fromManifest(REPO_ROOT, path))
.sort((a, b) => a.id.localeCompare(b.id)),
tsConfigRepoRels,
packageManifestPaths,
};
}

View file

@ -10,27 +10,30 @@ import Path from 'path';
import Fsp from 'fs/promises';
import { REPO_ROOT } from '../../lib/paths.mjs';
import External from '../../lib/external_packages.js';
export async function regenerateBaseTsconfig() {
const pkgMap = External['@kbn/repo-packages']().readPackageMap();
/**
* @param {import('@kbn/repo-packages').Package[]} packages
* @param {import('@kbn/some-dev-log').SomeDevLog} log
*/
export async function regenerateBaseTsconfig(packages, log) {
const tsconfigPath = Path.resolve(REPO_ROOT, 'tsconfig.base.json');
const lines = (await Fsp.readFile(tsconfigPath, 'utf-8')).split('\n');
const current = await Fsp.readFile(tsconfigPath, 'utf8');
const lines = current.split('\n');
const start = lines.findIndex((l) => l.trim() === '// START AUTOMATED PACKAGE LISTING');
const end = lines.findIndex((l) => l.trim() === '// END AUTOMATED PACKAGE LISTING');
const current = await Fsp.readFile(tsconfigPath, 'utf8');
const updated = [
...lines.slice(0, start + 1),
...Array.from(pkgMap.entries()).flatMap(([moduleId, repoRelPath]) => [
` "${moduleId}": ["${repoRelPath}"],`,
` "${moduleId}/*": ["${repoRelPath}/*"],`,
...packages.flatMap((p) => [
` "${p.id}": ["${p.normalizedRepoRelativeDir}"],`,
` "${p.id}/*": ["${p.normalizedRepoRelativeDir}/*"],`,
]),
...lines.slice(end),
].join('\n');
if (updated !== current) {
await Fsp.writeFile(tsconfigPath, updated);
log.warning('updated tsconfig.base.json');
}
}

View file

@ -6,46 +6,19 @@
* Side Public License, v 1.
*/
import Path from 'path';
import Fs from 'fs';
import Fsp from 'fs/promises';
import { convertPluginIdToPackageId } from '../../lib/plugins.mjs';
import { normalizePath } from '../../lib/normalize_path.mjs';
import External from '../../lib/external_packages.js';
import { REPO_ROOT } from '../../lib/paths.mjs';
/**
*
* @param {import('@kbn/repo-packages').Package[]} packages
* @param {import('@kbn/plugin-discovery').KibanaPlatformPlugin[]} plugins
* @param {import('@kbn/some-dev-log').SomeDevLog} log
* @param {string[]} packageManifestPaths
*/
export async function regeneratePackageMap(packages, plugins, log) {
const path = Path.resolve(REPO_ROOT, 'packages/kbn-repo-packages/package-map.json');
const existingContent = Fs.existsSync(path) ? await Fsp.readFile(path, 'utf8') : undefined;
export async function regeneratePackageMap(log, packageManifestPaths) {
const { updatePackageMap, getPackages } = External['@kbn/repo-packages']();
/** @type {Array<[string, string]>} */
const entries = [['@kbn/core', 'src/core']];
for (const pkg of packages) {
entries.push([pkg.manifest.id, pkg.normalizedRepoRelativeDir]);
}
for (const plugin of plugins) {
entries.push([
convertPluginIdToPackageId(plugin.manifest.id),
normalizePath(Path.relative(REPO_ROOT, plugin.directory)),
]);
}
const content = JSON.stringify(
entries.sort((a, b) => a[0].localeCompare(b[0])),
null,
2
);
if (content !== existingContent) {
await Fsp.writeFile(path, content);
if (updatePackageMap(REPO_ROOT, packageManifestPaths)) {
log.warning('updated package map');
}
return getPackages(REPO_ROOT);
}

View file

@ -13,16 +13,14 @@ import Fsp from 'fs/promises';
import { REPO_ROOT } from '../../lib/paths.mjs';
/**
* @param {string[]} tsconfigPaths
* @param {string[]} tsConfigRepoRels
* @param {import('@kbn/some-dev-log').SomeDevLog} log
*/
export async function regenerateTsconfigPaths(tsconfigPaths, log) {
export async function regenerateTsconfigPaths(tsConfigRepoRels, log) {
const path = Path.resolve(REPO_ROOT, 'packages/kbn-ts-projects/config-paths.json');
const existingContent = Fs.existsSync(path) ? await Fsp.readFile(path, 'utf8') : undefined;
const entries = [...tsconfigPaths]
.map((abs) => Path.relative(REPO_ROOT, abs))
.sort((a, b) => a.localeCompare(b));
const entries = Array.from(tsConfigRepoRels).sort((a, b) => a.localeCompare(b));
const content = JSON.stringify(entries, null, 2);
if (content !== existingContent) {

View file

@ -64,7 +64,7 @@ export async function updatePackageJson(pkgs, log) {
new Map(Object.entries(pkgJson.dependencies).filter(([k]) => k.startsWith('@kbn/'))),
new Map(
pkgs
.filter((p) => !p.isDevOnly)
.filter((p) => !p.isDevOnly())
.map((p) => [p.manifest.id, `link:${p.normalizedRepoRelativeDir}`])
)
);
@ -74,7 +74,7 @@ export async function updatePackageJson(pkgs, log) {
new Map(Object.entries(pkgJson.devDependencies).filter(([k]) => k.startsWith('@kbn/'))),
new Map(
pkgs
.filter((p) => p.isDevOnly)
.filter((p) => p.isDevOnly())
.map((p) => [p.manifest.id, `link:${p.normalizedRepoRelativeDir}`])
)
);

View file

@ -1,29 +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 { createCliError } from '../../lib/cli_error.mjs';
/**
* @param {import('@kbn/repo-info').KibanaPackageJson} pkgJson
* @param {import('@kbn/some-dev-log').SomeDevLog} log
*/
export async function validatePackageJson(pkgJson, log) {
const failures = false;
const typesInProd = Object.keys(pkgJson.dependencies).filter((id) => id.startsWith('@types/'));
if (typesInProd.length) {
const list = typesInProd.map((id) => ` - ${id}`).join('\n');
log.error(
`The following @types/* packages are listed in dependencies but should be in the devDependencies:\n${list}`
);
}
if (failures) {
throw createCliError('failed to validate package.json, check for errors above');
}
}

View file

@ -6,9 +6,11 @@
* Side Public License, v 1.
*/
module.exports = {
/** @returns {import('@kbn/repo-packages')} */
['@kbn/repo-packages']() {
require('@kbn/babel-register').install();
return require('@kbn/repo-packages');
// we need to load this package before we install node modules so we can't use @kbn/* imports here
// eslint-disable-next-line import/no-dynamic-require
return require('../../../' + 'packages/kbn-repo-packages');
},
['@kbn/ci-stats-reporter']() {
@ -30,24 +32,4 @@ module.exports = {
require('@kbn/babel-register').install();
return require('@kbn/get-repo-files');
},
['@kbn/repo-info']() {
require('@kbn/babel-register').install();
return require('@kbn/repo-info');
},
['@kbn/ts-projects']() {
require('@kbn/babel-register').install();
return require('@kbn/ts-projects');
},
/**
* @param {string} absPath
* @returns {unknown}
*/
reqAbs(absPath) {
require('@kbn/babel-register').install();
// eslint-disable-next-line import/no-dynamic-require
return require(absPath);
},
};

View file

@ -21,7 +21,8 @@
"@kbn/sort-package-json",
{ "path": "../src/dev/tsconfig.json" },
"@kbn/ci-stats-reporter",
"@kbn/ts-projects",
"@kbn/repo-packages"
"@kbn/repo-packages",
"@kbn/some-dev-log",
"@kbn/bazel-runner"
]
}

View file

@ -131,24 +131,57 @@
"@hapi/hoek": "^9.2.1",
"@hapi/inert": "^6.0.4",
"@hapi/wreck": "^17.1.0",
"@kbn/aad-fixtures-plugin": "link:x-pack/test/alerting_api_integration/common/plugins/aad",
"@kbn/ace": "link:packages/kbn-ace",
"@kbn/actions-plugin": "link:x-pack/plugins/actions",
"@kbn/actions-simulators-plugin": "link:x-pack/test/alerting_api_integration/common/plugins/actions_simulators",
"@kbn/advanced-settings-plugin": "link:src/plugins/advanced_settings",
"@kbn/aiops-components": "link:x-pack/packages/ml/aiops_components",
"@kbn/aiops-plugin": "link:x-pack/plugins/aiops",
"@kbn/aiops-utils": "link:x-pack/packages/ml/aiops_utils",
"@kbn/alerting-api-integration-test-plugin": "link:x-pack/test/alerting_api_integration/common/plugins/alerts",
"@kbn/alerting-example-plugin": "link:x-pack/examples/alerting_example",
"@kbn/alerting-fixture-plugin": "link:x-pack/test/functional_with_es_ssl/plugins/alerts",
"@kbn/alerting-plugin": "link:x-pack/plugins/alerting",
"@kbn/alerts": "link:packages/kbn-alerts",
"@kbn/alerts-restricted-fixtures-plugin": "link:x-pack/test/alerting_api_integration/common/plugins/alerts_restricted",
"@kbn/alerts-ui-shared": "link:packages/kbn-alerts-ui-shared",
"@kbn/analytics": "link:packages/kbn-analytics",
"@kbn/analytics-client": "link:packages/analytics/client",
"@kbn/analytics-ftr-helpers-plugin": "link:test/analytics/plugins/analytics_ftr_helpers",
"@kbn/analytics-plugin-a-plugin": "link:test/analytics/plugins/analytics_plugin_a",
"@kbn/analytics-shippers-elastic-v3-browser": "link:packages/analytics/shippers/elastic_v3/browser",
"@kbn/analytics-shippers-elastic-v3-common": "link:packages/analytics/shippers/elastic_v3/common",
"@kbn/analytics-shippers-elastic-v3-server": "link:packages/analytics/shippers/elastic_v3/server",
"@kbn/analytics-shippers-fullstory": "link:packages/analytics/shippers/fullstory",
"@kbn/analytics-shippers-gainsight": "link:packages/analytics/shippers/gainsight",
"@kbn/apm-config-loader": "link:packages/kbn-apm-config-loader",
"@kbn/apm-plugin": "link:x-pack/plugins/apm",
"@kbn/apm-utils": "link:packages/kbn-apm-utils",
"@kbn/app-link-test-plugin": "link:test/plugin_functional/plugins/app_link_test",
"@kbn/application-usage-test-plugin": "link:x-pack/test/usage_collection/plugins/application_usage_test",
"@kbn/audit-log-plugin": "link:x-pack/test/security_api_integration/plugins/audit_log",
"@kbn/banners-plugin": "link:x-pack/plugins/banners",
"@kbn/bfetch-explorer-plugin": "link:examples/bfetch_explorer",
"@kbn/bfetch-plugin": "link:src/plugins/bfetch",
"@kbn/canvas-plugin": "link:x-pack/plugins/canvas",
"@kbn/cases-api-integration-test-plugin": "link:x-pack/test/cases_api_integration/common/plugins/cases",
"@kbn/cases-components": "link:packages/kbn-cases-components",
"@kbn/cases-plugin": "link:x-pack/plugins/cases",
"@kbn/cell-actions": "link:packages/kbn-cell-actions",
"@kbn/chart-expressions-common": "link:src/plugins/chart_expressions/common",
"@kbn/chart-icons": "link:packages/kbn-chart-icons",
"@kbn/charts-plugin": "link:src/plugins/charts",
"@kbn/cloud-chat-plugin": "link:x-pack/plugins/cloud_integrations/cloud_chat",
"@kbn/cloud-data-migration-plugin": "link:x-pack/plugins/cloud_integrations/cloud_data_migration",
"@kbn/cloud-defend-plugin": "link:x-pack/plugins/cloud_defend",
"@kbn/cloud-experiments-plugin": "link:x-pack/plugins/cloud_integrations/cloud_experiments",
"@kbn/cloud-full-story-plugin": "link:x-pack/plugins/cloud_integrations/cloud_full_story",
"@kbn/cloud-gainsight-plugin": "link:x-pack/plugins/cloud_integrations/cloud_gain_sight",
"@kbn/cloud-integration-saml-provider-plugin": "link:x-pack/test/cloud_integration/plugins/saml_provider",
"@kbn/cloud-links-plugin": "link:x-pack/plugins/cloud_integrations/cloud_links",
"@kbn/cloud-plugin": "link:x-pack/plugins/cloud",
"@kbn/cloud-security-posture-plugin": "link:x-pack/plugins/cloud_security_posture",
"@kbn/code-editor": "link:packages/shared-ux/code_editor/impl",
"@kbn/code-editor-mocks": "link:packages/shared-ux/code_editor/mocks",
"@kbn/code-editor-types": "link:packages/shared-ux/code_editor/types",
@ -156,12 +189,18 @@
"@kbn/config": "link:packages/kbn-config",
"@kbn/config-mocks": "link:packages/kbn-config-mocks",
"@kbn/config-schema": "link:packages/kbn-config-schema",
"@kbn/console-plugin": "link:src/plugins/console",
"@kbn/content-management-content-editor": "link:packages/content-management/content_editor",
"@kbn/content-management-plugin": "link:src/plugins/content_management",
"@kbn/content-management-table-list": "link:packages/content-management/table_list",
"@kbn/controls-example-plugin": "link:examples/controls_example",
"@kbn/controls-plugin": "link:src/plugins/controls",
"@kbn/core": "link:src/core",
"@kbn/core-analytics-browser": "link:packages/core/analytics/core-analytics-browser",
"@kbn/core-analytics-browser-internal": "link:packages/core/analytics/core-analytics-browser-internal",
"@kbn/core-analytics-server": "link:packages/core/analytics/core-analytics-server",
"@kbn/core-analytics-server-internal": "link:packages/core/analytics/core-analytics-server-internal",
"@kbn/core-app-status-plugin": "link:test/plugin_functional/plugins/core_app_status",
"@kbn/core-application-browser": "link:packages/core/application/core-application-browser",
"@kbn/core-application-browser-internal": "link:packages/core/application/core-application-browser-internal",
"@kbn/core-application-common": "link:packages/core/application/core-application-common",
@ -205,10 +244,12 @@
"@kbn/core-execution-context-server-internal": "link:packages/core/execution-context/core-execution-context-server-internal",
"@kbn/core-fatal-errors-browser": "link:packages/core/fatal-errors/core-fatal-errors-browser",
"@kbn/core-fatal-errors-browser-internal": "link:packages/core/fatal-errors/core-fatal-errors-browser-internal",
"@kbn/core-history-block-plugin": "link:test/plugin_functional/plugins/core_history_block",
"@kbn/core-http-browser": "link:packages/core/http/core-http-browser",
"@kbn/core-http-browser-internal": "link:packages/core/http/core-http-browser-internal",
"@kbn/core-http-common": "link:packages/core/http/core-http-common",
"@kbn/core-http-context-server-internal": "link:packages/core/http/core-http-context-server-internal",
"@kbn/core-http-plugin": "link:test/plugin_functional/plugins/core_http",
"@kbn/core-http-request-handler-context-server": "link:packages/core/http/core-http-request-handler-context-server",
"@kbn/core-http-request-handler-context-server-internal": "link:packages/core/http/core-http-request-handler-context-server-internal",
"@kbn/core-http-resources-server": "link:packages/core/http/core-http-resources-server",
@ -242,6 +283,17 @@
"@kbn/core-notifications-browser-internal": "link:packages/core/notifications/core-notifications-browser-internal",
"@kbn/core-overlays-browser": "link:packages/core/overlays/core-overlays-browser",
"@kbn/core-overlays-browser-internal": "link:packages/core/overlays/core-overlays-browser-internal",
"@kbn/core-plugin-a-plugin": "link:test/plugin_functional/plugins/core_plugin_a",
"@kbn/core-plugin-appleave-plugin": "link:test/plugin_functional/plugins/core_plugin_appleave",
"@kbn/core-plugin-b-plugin": "link:test/plugin_functional/plugins/core_plugin_b",
"@kbn/core-plugin-chromeless-plugin": "link:test/plugin_functional/plugins/core_plugin_chromeless",
"@kbn/core-plugin-deep-links-plugin": "link:test/plugin_functional/plugins/core_plugin_deep_links",
"@kbn/core-plugin-deprecations-plugin": "link:test/plugin_functional/plugins/core_plugin_deprecations",
"@kbn/core-plugin-execution-context-plugin": "link:test/plugin_functional/plugins/core_plugin_execution_context",
"@kbn/core-plugin-helpmenu-plugin": "link:test/plugin_functional/plugins/core_plugin_helpmenu",
"@kbn/core-plugin-initializer-context-plugin": "link:test/node_roles_functional/plugins/core_plugin_initializer_context",
"@kbn/core-plugin-route-timeouts-plugin": "link:test/plugin_functional/plugins/core_plugin_route_timeouts",
"@kbn/core-plugin-static-assets-plugin": "link:test/plugin_functional/plugins/core_plugin_static_assets",
"@kbn/core-plugins-base-server-internal": "link:packages/core/plugins/core-plugins-base-server-internal",
"@kbn/core-plugins-browser": "link:packages/core/plugins/core-plugins-browser",
"@kbn/core-plugins-browser-internal": "link:packages/core/plugins/core-plugins-browser-internal",
@ -249,6 +301,7 @@
"@kbn/core-plugins-server-internal": "link:packages/core/plugins/core-plugins-server-internal",
"@kbn/core-preboot-server": "link:packages/core/preboot/core-preboot-server",
"@kbn/core-preboot-server-internal": "link:packages/core/preboot/core-preboot-server-internal",
"@kbn/core-provider-plugin": "link:test/plugin_functional/plugins/core_provider_plugin",
"@kbn/core-rendering-browser-internal": "link:packages/core/rendering/core-rendering-browser-internal",
"@kbn/core-rendering-server-internal": "link:packages/core/rendering/core-rendering-server-internal",
"@kbn/core-root-browser-internal": "link:packages/core/root/core-root-browser-internal",
@ -283,51 +336,207 @@
"@kbn/core-usage-data-base-server-internal": "link:packages/core/usage-data/core-usage-data-base-server-internal",
"@kbn/core-usage-data-server": "link:packages/core/usage-data/core-usage-data-server",
"@kbn/core-usage-data-server-internal": "link:packages/core/usage-data/core-usage-data-server-internal",
"@kbn/cross-cluster-replication-plugin": "link:x-pack/plugins/cross_cluster_replication",
"@kbn/crypto": "link:packages/kbn-crypto",
"@kbn/crypto-browser": "link:packages/kbn-crypto-browser",
"@kbn/custom-branding-plugin": "link:x-pack/plugins/custom_branding",
"@kbn/custom-integrations-plugin": "link:src/plugins/custom_integrations",
"@kbn/dashboard-embeddable-examples-plugin": "link:examples/dashboard_embeddable_examples",
"@kbn/dashboard-enhanced-plugin": "link:x-pack/plugins/dashboard_enhanced",
"@kbn/dashboard-plugin": "link:src/plugins/dashboard",
"@kbn/data-plugin": "link:src/plugins/data",
"@kbn/data-search-plugin": "link:test/plugin_functional/plugins/data_search",
"@kbn/data-view-editor-plugin": "link:src/plugins/data_view_editor",
"@kbn/data-view-field-editor-example-plugin": "link:examples/data_view_field_editor_example",
"@kbn/data-view-field-editor-plugin": "link:src/plugins/data_view_field_editor",
"@kbn/data-view-management-plugin": "link:src/plugins/data_view_management",
"@kbn/data-views-plugin": "link:src/plugins/data_views",
"@kbn/data-visualizer-plugin": "link:x-pack/plugins/data_visualizer",
"@kbn/datemath": "link:packages/kbn-datemath",
"@kbn/dev-tools-plugin": "link:src/plugins/dev_tools",
"@kbn/developer-examples-plugin": "link:examples/developer_examples",
"@kbn/discover-enhanced-plugin": "link:x-pack/plugins/discover_enhanced",
"@kbn/discover-plugin": "link:src/plugins/discover",
"@kbn/doc-links": "link:packages/kbn-doc-links",
"@kbn/ebt-tools": "link:packages/kbn-ebt-tools",
"@kbn/ecs": "link:packages/kbn-ecs",
"@kbn/ecs-data-quality-dashboard": "link:x-pack/packages/kbn-ecs-data-quality-dashboard",
"@kbn/ecs-data-quality-dashboard-plugin": "link:x-pack/plugins/ecs_data_quality_dashboard",
"@kbn/elasticsearch-client-plugin": "link:test/plugin_functional/plugins/elasticsearch_client_plugin",
"@kbn/elasticsearch-client-xpack-plugin": "link:x-pack/test/plugin_api_integration/plugins/elasticsearch_client",
"@kbn/embeddable-enhanced-plugin": "link:x-pack/plugins/embeddable_enhanced",
"@kbn/embeddable-examples-plugin": "link:examples/embeddable_examples",
"@kbn/embeddable-explorer-plugin": "link:examples/embeddable_explorer",
"@kbn/embeddable-plugin": "link:src/plugins/embeddable",
"@kbn/embedded-lens-example-plugin": "link:x-pack/examples/embedded_lens_example",
"@kbn/encrypted-saved-objects-plugin": "link:x-pack/plugins/encrypted_saved_objects",
"@kbn/enterprise-search-plugin": "link:x-pack/plugins/enterprise_search",
"@kbn/es-errors": "link:packages/kbn-es-errors",
"@kbn/es-query": "link:packages/kbn-es-query",
"@kbn/es-types": "link:packages/kbn-es-types",
"@kbn/es-ui-shared-plugin": "link:src/plugins/es_ui_shared",
"@kbn/eso-plugin": "link:x-pack/test/encrypted_saved_objects_api_integration/plugins/api_consumer_plugin",
"@kbn/event-annotation-plugin": "link:src/plugins/event_annotation",
"@kbn/event-log-fixture-plugin": "link:x-pack/test/plugin_api_integration/plugins/event_log",
"@kbn/event-log-plugin": "link:x-pack/plugins/event_log",
"@kbn/exploratory-view-example-plugin": "link:x-pack/examples/exploratory_view_example",
"@kbn/expression-error-plugin": "link:src/plugins/expression_error",
"@kbn/expression-gauge-plugin": "link:src/plugins/chart_expressions/expression_gauge",
"@kbn/expression-heatmap-plugin": "link:src/plugins/chart_expressions/expression_heatmap",
"@kbn/expression-image-plugin": "link:src/plugins/expression_image",
"@kbn/expression-legacy-metric-vis-plugin": "link:src/plugins/chart_expressions/expression_legacy_metric",
"@kbn/expression-metric-plugin": "link:src/plugins/expression_metric",
"@kbn/expression-metric-vis-plugin": "link:src/plugins/chart_expressions/expression_metric",
"@kbn/expression-partition-vis-plugin": "link:src/plugins/chart_expressions/expression_partition_vis",
"@kbn/expression-repeat-image-plugin": "link:src/plugins/expression_repeat_image",
"@kbn/expression-reveal-image-plugin": "link:src/plugins/expression_reveal_image",
"@kbn/expression-shape-plugin": "link:src/plugins/expression_shape",
"@kbn/expression-tagcloud-plugin": "link:src/plugins/chart_expressions/expression_tagcloud",
"@kbn/expression-xy-plugin": "link:src/plugins/chart_expressions/expression_xy",
"@kbn/expressions-explorer-plugin": "link:examples/expressions_explorer",
"@kbn/expressions-plugin": "link:src/plugins/expressions",
"@kbn/feature-usage-test-plugin": "link:x-pack/test/plugin_api_integration/plugins/feature_usage_test",
"@kbn/features-plugin": "link:x-pack/plugins/features",
"@kbn/fec-alerts-test-plugin": "link:x-pack/test/functional_execution_context/plugins/alerts",
"@kbn/field-formats-example-plugin": "link:examples/field_formats_example",
"@kbn/field-formats-plugin": "link:src/plugins/field_formats",
"@kbn/field-types": "link:packages/kbn-field-types",
"@kbn/file-upload-plugin": "link:x-pack/plugins/file_upload",
"@kbn/files-example-plugin": "link:examples/files_example",
"@kbn/files-management-plugin": "link:src/plugins/files_management",
"@kbn/files-plugin": "link:src/plugins/files",
"@kbn/fleet-plugin": "link:x-pack/plugins/fleet",
"@kbn/flot-charts": "link:packages/kbn-flot-charts",
"@kbn/foo-plugin": "link:x-pack/test/ui_capabilities/common/plugins/foo_plugin",
"@kbn/ftr-apis-plugin": "link:src/plugins/ftr_apis",
"@kbn/functional-with-es-ssl-cases-test-plugin": "link:x-pack/test/functional_with_es_ssl/plugins/cases",
"@kbn/global-search-bar-plugin": "link:x-pack/plugins/global_search_bar",
"@kbn/global-search-plugin": "link:x-pack/plugins/global_search",
"@kbn/global-search-providers-plugin": "link:x-pack/plugins/global_search_providers",
"@kbn/global-search-test-plugin": "link:x-pack/test/plugin_functional/plugins/global_search_test",
"@kbn/graph-plugin": "link:x-pack/plugins/graph",
"@kbn/grokdebugger-plugin": "link:x-pack/plugins/grokdebugger",
"@kbn/guided-onboarding": "link:packages/kbn-guided-onboarding",
"@kbn/guided-onboarding-example-plugin": "link:examples/guided_onboarding_example",
"@kbn/guided-onboarding-plugin": "link:src/plugins/guided_onboarding",
"@kbn/handlebars": "link:packages/kbn-handlebars",
"@kbn/hapi-mocks": "link:packages/kbn-hapi-mocks",
"@kbn/health-gateway-server": "link:packages/kbn-health-gateway-server",
"@kbn/hello-world-plugin": "link:examples/hello_world",
"@kbn/home-plugin": "link:src/plugins/home",
"@kbn/home-sample-data-card": "link:packages/home/sample_data_card",
"@kbn/home-sample-data-tab": "link:packages/home/sample_data_tab",
"@kbn/home-sample-data-types": "link:packages/home/sample_data_types",
"@kbn/i18n": "link:packages/kbn-i18n",
"@kbn/i18n-react": "link:packages/kbn-i18n-react",
"@kbn/iframe-embedded-plugin": "link:x-pack/test/functional_embedded/plugins/iframe_embedded",
"@kbn/image-embeddable-plugin": "link:src/plugins/image_embeddable",
"@kbn/index-lifecycle-management-plugin": "link:x-pack/plugins/index_lifecycle_management",
"@kbn/index-management-plugin": "link:x-pack/plugins/index_management",
"@kbn/index-patterns-test-plugin": "link:test/plugin_functional/plugins/index_patterns",
"@kbn/infra-plugin": "link:x-pack/plugins/infra",
"@kbn/ingest-pipelines-plugin": "link:x-pack/plugins/ingest_pipelines",
"@kbn/input-control-vis-plugin": "link:src/plugins/input_control_vis",
"@kbn/inspector-plugin": "link:src/plugins/inspector",
"@kbn/interactive-setup-plugin": "link:src/plugins/interactive_setup",
"@kbn/interactive-setup-test-endpoints-plugin": "link:test/interactive_setup_api_integration/plugins/test_endpoints",
"@kbn/interpreter": "link:packages/kbn-interpreter",
"@kbn/io-ts-utils": "link:packages/kbn-io-ts-utils",
"@kbn/kbn-health-gateway-status-plugin": "link:test/health_gateway/plugins/status",
"@kbn/kbn-sample-panel-action-plugin": "link:test/plugin_functional/plugins/kbn_sample_panel_action",
"@kbn/kbn-top-nav-plugin": "link:test/plugin_functional/plugins/kbn_top_nav",
"@kbn/kbn-tp-custom-visualizations-plugin": "link:test/plugin_functional/plugins/kbn_tp_custom_visualizations",
"@kbn/kbn-tp-run-pipeline-plugin": "link:test/interpreter_functional/plugins/kbn_tp_run_pipeline",
"@kbn/kibana-cors-test-plugin": "link:x-pack/test/functional_cors/plugins/kibana_cors_test",
"@kbn/kibana-overview-plugin": "link:src/plugins/kibana_overview",
"@kbn/kibana-react-plugin": "link:src/plugins/kibana_react",
"@kbn/kibana-usage-collection-plugin": "link:src/plugins/kibana_usage_collection",
"@kbn/kibana-utils-plugin": "link:src/plugins/kibana_utils",
"@kbn/kubernetes-security-plugin": "link:x-pack/plugins/kubernetes_security",
"@kbn/language-documentation-popover": "link:packages/kbn-language-documentation-popover",
"@kbn/lens-plugin": "link:x-pack/plugins/lens",
"@kbn/license-api-guard-plugin": "link:x-pack/plugins/license_api_guard",
"@kbn/license-management-plugin": "link:x-pack/plugins/license_management",
"@kbn/licensing-plugin": "link:x-pack/plugins/licensing",
"@kbn/lists-plugin": "link:x-pack/plugins/lists",
"@kbn/locator-examples-plugin": "link:examples/locator_examples",
"@kbn/locator-explorer-plugin": "link:examples/locator_explorer",
"@kbn/logging": "link:packages/kbn-logging",
"@kbn/logging-mocks": "link:packages/kbn-logging-mocks",
"@kbn/logstash-plugin": "link:x-pack/plugins/logstash",
"@kbn/management-plugin": "link:src/plugins/management",
"@kbn/management-test-plugin": "link:test/plugin_functional/plugins/management_test_plugin",
"@kbn/mapbox-gl": "link:packages/kbn-mapbox-gl",
"@kbn/maps-custom-raster-source-plugin": "link:x-pack/examples/third_party_maps_source_example",
"@kbn/maps-ems-plugin": "link:src/plugins/maps_ems",
"@kbn/maps-plugin": "link:x-pack/plugins/maps",
"@kbn/ml-agg-utils": "link:x-pack/packages/ml/agg_utils",
"@kbn/ml-date-picker": "link:x-pack/packages/ml/date_picker",
"@kbn/ml-is-defined": "link:x-pack/packages/ml/is_defined",
"@kbn/ml-is-populated-object": "link:x-pack/packages/ml/is_populated_object",
"@kbn/ml-local-storage": "link:x-pack/packages/ml/local_storage",
"@kbn/ml-nested-property": "link:x-pack/packages/ml/nested_property",
"@kbn/ml-plugin": "link:x-pack/plugins/ml",
"@kbn/ml-query-utils": "link:x-pack/packages/ml/query_utils",
"@kbn/ml-string-hash": "link:x-pack/packages/ml/string_hash",
"@kbn/ml-url-state": "link:x-pack/packages/ml/url_state",
"@kbn/monaco": "link:packages/kbn-monaco",
"@kbn/monitoring-collection-plugin": "link:x-pack/plugins/monitoring_collection",
"@kbn/monitoring-plugin": "link:x-pack/plugins/monitoring",
"@kbn/navigation-plugin": "link:src/plugins/navigation",
"@kbn/newsfeed-plugin": "link:src/plugins/newsfeed",
"@kbn/newsfeed-test-plugin": "link:test/common/plugins/newsfeed",
"@kbn/notifications-plugin": "link:x-pack/plugins/notifications",
"@kbn/observability-fixtures-plugin": "link:x-pack/test/cases_api_integration/common/plugins/observability",
"@kbn/observability-plugin": "link:x-pack/plugins/observability",
"@kbn/oidc-provider-plugin": "link:x-pack/test/security_api_integration/plugins/oidc_provider",
"@kbn/open-telemetry-instrumented-plugin": "link:test/common/plugins/otel_metrics",
"@kbn/osquery-io-ts-types": "link:packages/kbn-osquery-io-ts-types",
"@kbn/plugin-discovery": "link:packages/kbn-plugin-discovery",
"@kbn/osquery-plugin": "link:x-pack/plugins/osquery",
"@kbn/paertial-results-example-plugin": "link:examples/partial_results_example",
"@kbn/painless-lab-plugin": "link:x-pack/plugins/painless_lab",
"@kbn/preboot-example-plugin": "link:examples/preboot_example",
"@kbn/presentation-util-plugin": "link:src/plugins/presentation_util",
"@kbn/profiling-plugin": "link:x-pack/plugins/profiling",
"@kbn/react-field": "link:packages/kbn-react-field",
"@kbn/remote-clusters-plugin": "link:x-pack/plugins/remote_clusters",
"@kbn/rendering-plugin": "link:test/plugin_functional/plugins/rendering_plugin",
"@kbn/repo-info": "link:packages/kbn-repo-info",
"@kbn/repo-packages": "link:packages/kbn-repo-packages",
"@kbn/reporting-example-plugin": "link:x-pack/examples/reporting_example",
"@kbn/reporting-plugin": "link:x-pack/plugins/reporting",
"@kbn/resolver-test-plugin": "link:x-pack/test/plugin_functional/plugins/resolver_test",
"@kbn/response-stream-plugin": "link:examples/response_stream",
"@kbn/rison": "link:packages/kbn-rison",
"@kbn/rollup-plugin": "link:x-pack/plugins/rollup",
"@kbn/routing-example-plugin": "link:examples/routing_example",
"@kbn/rule-data-utils": "link:packages/kbn-rule-data-utils",
"@kbn/rule-registry-plugin": "link:x-pack/plugins/rule_registry",
"@kbn/runtime-fields-plugin": "link:x-pack/plugins/runtime_fields",
"@kbn/safer-lodash-set": "link:packages/kbn-safer-lodash-set",
"@kbn/saml-provider-plugin": "link:x-pack/test/security_api_integration/plugins/saml_provider",
"@kbn/sample-task-plugin": "link:x-pack/test/plugin_api_integration/plugins/sample_task_plugin",
"@kbn/saved-object-export-transforms-plugin": "link:test/plugin_functional/plugins/saved_object_export_transforms",
"@kbn/saved-object-import-warnings-plugin": "link:test/plugin_functional/plugins/saved_object_import_warnings",
"@kbn/saved-object-test-plugin": "link:x-pack/test/saved_object_api_integration/common/plugins/saved_object_test_plugin",
"@kbn/saved-objects-finder-plugin": "link:src/plugins/saved_objects_finder",
"@kbn/saved-objects-hidden-from-http-apis-type-plugin": "link:test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type",
"@kbn/saved-objects-hidden-type-plugin": "link:test/plugin_functional/plugins/saved_objects_hidden_type",
"@kbn/saved-objects-management-plugin": "link:src/plugins/saved_objects_management",
"@kbn/saved-objects-plugin": "link:src/plugins/saved_objects",
"@kbn/saved-objects-tagging-oss-plugin": "link:src/plugins/saved_objects_tagging_oss",
"@kbn/saved-objects-tagging-plugin": "link:x-pack/plugins/saved_objects_tagging",
"@kbn/saved-search-plugin": "link:src/plugins/saved_search",
"@kbn/screenshot-mode-example-plugin": "link:examples/screenshot_mode_example",
"@kbn/screenshot-mode-plugin": "link:src/plugins/screenshot_mode",
"@kbn/screenshotting-example-plugin": "link:x-pack/examples/screenshotting_example",
"@kbn/screenshotting-plugin": "link:x-pack/plugins/screenshotting",
"@kbn/search-examples-plugin": "link:examples/search_examples",
"@kbn/searchprofiler-plugin": "link:x-pack/plugins/searchprofiler",
"@kbn/security-plugin": "link:x-pack/plugins/security",
"@kbn/security-solution-fixtures-plugin": "link:x-pack/test/cases_api_integration/common/plugins/security_solution",
"@kbn/security-solution-plugin": "link:x-pack/plugins/security_solution",
"@kbn/security-test-endpoints-plugin": "link:x-pack/test/security_functional/plugins/test_endpoints",
"@kbn/securitysolution-autocomplete": "link:packages/kbn-securitysolution-autocomplete",
"@kbn/securitysolution-ecs": "link:packages/kbn-securitysolution-ecs",
"@kbn/securitysolution-es-utils": "link:packages/kbn-securitysolution-es-utils",
@ -346,7 +555,11 @@
"@kbn/securitysolution-utils": "link:packages/kbn-securitysolution-utils",
"@kbn/server-http-tools": "link:packages/kbn-server-http-tools",
"@kbn/server-route-repository": "link:packages/kbn-server-route-repository",
"@kbn/session-notifications-plugin": "link:test/plugin_functional/plugins/session_notifications",
"@kbn/session-view-plugin": "link:x-pack/plugins/session_view",
"@kbn/set-map": "link:packages/kbn-set-map",
"@kbn/share-examples-plugin": "link:examples/share_examples",
"@kbn/share-plugin": "link:src/plugins/share",
"@kbn/shared-svg": "link:packages/kbn-shared-svg",
"@kbn/shared-ux-avatar-solution": "link:packages/shared-ux/avatar/solution",
"@kbn/shared-ux-avatar-user-profile-components": "link:packages/shared-ux/avatar/user_profile/impl",
@ -398,19 +611,79 @@
"@kbn/shared-ux-storybook-mock": "link:packages/shared-ux/storybook/mock",
"@kbn/shared-ux-utility": "link:packages/kbn-shared-ux-utility",
"@kbn/slo-schema": "link:packages/kbn-slo-schema",
"@kbn/snapshot-restore-plugin": "link:x-pack/plugins/snapshot_restore",
"@kbn/spaces-plugin": "link:x-pack/plugins/spaces",
"@kbn/spaces-test-plugin": "link:x-pack/test/spaces_api_integration/common/plugins/spaces_test_plugin",
"@kbn/stack-alerts-plugin": "link:x-pack/plugins/stack_alerts",
"@kbn/stack-connectors-plugin": "link:x-pack/plugins/stack_connectors",
"@kbn/stack-management-usage-test-plugin": "link:x-pack/test/usage_collection/plugins/stack_management_usage_test",
"@kbn/state-containers-examples-plugin": "link:examples/state_containers_examples",
"@kbn/status-plugin-a-plugin": "link:test/server_integration/plugins/status_plugin_a",
"@kbn/status-plugin-b-plugin": "link:test/server_integration/plugins/status_plugin_b",
"@kbn/std": "link:packages/kbn-std",
"@kbn/synthetics-plugin": "link:x-pack/plugins/synthetics",
"@kbn/task-manager-fixture-plugin": "link:x-pack/test/alerting_api_integration/common/plugins/task_manager_fixture",
"@kbn/task-manager-performance-plugin": "link:x-pack/test/plugin_api_perf/plugins/task_manager_performance",
"@kbn/task-manager-plugin": "link:x-pack/plugins/task_manager",
"@kbn/telemetry-collection-manager-plugin": "link:src/plugins/telemetry_collection_manager",
"@kbn/telemetry-collection-xpack-plugin": "link:x-pack/plugins/telemetry_collection_xpack",
"@kbn/telemetry-management-section-plugin": "link:src/plugins/telemetry_management_section",
"@kbn/telemetry-plugin": "link:src/plugins/telemetry",
"@kbn/telemetry-test-plugin": "link:test/plugin_functional/plugins/telemetry",
"@kbn/test-feature-usage-plugin": "link:x-pack/test/licensing_plugin/plugins/test_feature_usage",
"@kbn/testing-embedded-lens-plugin": "link:x-pack/examples/testing_embedded_lens",
"@kbn/third-party-lens-navigation-prompt-plugin": "link:x-pack/examples/third_party_lens_navigation_prompt",
"@kbn/third-party-vis-lens-example-plugin": "link:x-pack/examples/third_party_vis_lens_example",
"@kbn/threat-intelligence-plugin": "link:x-pack/plugins/threat_intelligence",
"@kbn/timelines-plugin": "link:x-pack/plugins/timelines",
"@kbn/timelion-grammar": "link:packages/kbn-timelion-grammar",
"@kbn/tinymath": "link:packages/kbn-tinymath",
"@kbn/transform-plugin": "link:x-pack/plugins/transform",
"@kbn/translations-plugin": "link:x-pack/plugins/translations",
"@kbn/triggers-actions-ui-example-plugin": "link:x-pack/examples/triggers_actions_ui_example",
"@kbn/triggers-actions-ui-plugin": "link:x-pack/plugins/triggers_actions_ui",
"@kbn/typed-react-router-config": "link:packages/kbn-typed-react-router-config",
"@kbn/ui-actions-browser": "link:packages/kbn-ui-actions-browser",
"@kbn/ui-actions-enhanced-examples-plugin": "link:x-pack/examples/ui_actions_enhanced_examples",
"@kbn/ui-actions-enhanced-plugin": "link:src/plugins/ui_actions_enhanced",
"@kbn/ui-actions-examples-plugin": "link:examples/ui_action_examples",
"@kbn/ui-actions-explorer-plugin": "link:examples/ui_actions_explorer",
"@kbn/ui-actions-plugin": "link:src/plugins/ui_actions",
"@kbn/ui-framework": "link:packages/kbn-ui-framework",
"@kbn/ui-settings-plugin": "link:test/plugin_functional/plugins/ui_settings_plugin",
"@kbn/ui-shared-deps-npm": "link:packages/kbn-ui-shared-deps-npm",
"@kbn/ui-shared-deps-src": "link:packages/kbn-ui-shared-deps-src",
"@kbn/ui-theme": "link:packages/kbn-ui-theme",
"@kbn/unified-field-list-plugin": "link:src/plugins/unified_field_list",
"@kbn/unified-histogram-plugin": "link:src/plugins/unified_histogram",
"@kbn/unified-search-plugin": "link:src/plugins/unified_search",
"@kbn/upgrade-assistant-plugin": "link:x-pack/plugins/upgrade_assistant",
"@kbn/url-drilldown-plugin": "link:x-pack/plugins/drilldowns/url_drilldown",
"@kbn/url-forwarding-plugin": "link:src/plugins/url_forwarding",
"@kbn/usage-collection-plugin": "link:src/plugins/usage_collection",
"@kbn/usage-collection-test-plugin": "link:test/plugin_functional/plugins/usage_collection",
"@kbn/user-profile-components": "link:packages/kbn-user-profile-components",
"@kbn/user-profile-examples-plugin": "link:examples/user_profile_examples",
"@kbn/user-profiles-consumer-plugin": "link:x-pack/test/security_api_integration/plugins/user_profiles_consumer",
"@kbn/utility-types": "link:packages/kbn-utility-types",
"@kbn/utility-types-jest": "link:packages/kbn-utility-types-jest",
"@kbn/utils": "link:packages/kbn-utils",
"@kbn/ux-plugin": "link:x-pack/plugins/ux",
"@kbn/vis-default-editor-plugin": "link:src/plugins/vis_default_editor",
"@kbn/vis-type-gauge-plugin": "link:src/plugins/vis_types/gauge",
"@kbn/vis-type-heatmap-plugin": "link:src/plugins/vis_types/heatmap",
"@kbn/vis-type-markdown-plugin": "link:src/plugins/vis_type_markdown",
"@kbn/vis-type-metric-plugin": "link:src/plugins/vis_types/metric",
"@kbn/vis-type-pie-plugin": "link:src/plugins/vis_types/pie",
"@kbn/vis-type-table-plugin": "link:src/plugins/vis_types/table",
"@kbn/vis-type-tagcloud-plugin": "link:src/plugins/vis_types/tagcloud",
"@kbn/vis-type-timelion-plugin": "link:src/plugins/vis_types/timelion",
"@kbn/vis-type-timeseries-plugin": "link:src/plugins/vis_types/timeseries",
"@kbn/vis-type-vega-plugin": "link:src/plugins/vis_types/vega",
"@kbn/vis-type-vislib-plugin": "link:src/plugins/vis_types/vislib",
"@kbn/vis-type-xy-plugin": "link:src/plugins/vis_types/xy",
"@kbn/visualizations-plugin": "link:src/plugins/visualizations",
"@kbn/watcher-plugin": "link:x-pack/plugins/watcher",
"@loaders.gl/core": "^2.3.1",
"@loaders.gl/json": "^2.3.1",
"@loaders.gl/shapefile": "^2.3.1",
@ -713,7 +986,6 @@
"@kbn/apm-synthtrace": "link:packages/kbn-apm-synthtrace",
"@kbn/apm-synthtrace-client": "link:packages/kbn-apm-synthtrace-client",
"@kbn/axe-config": "link:packages/kbn-axe-config",
"@kbn/babel-plugin-package-imports": "link:packages/kbn-babel-plugin-package-imports",
"@kbn/babel-preset": "link:packages/kbn-babel-preset",
"@kbn/babel-register": "link:packages/kbn-babel-register",
"@kbn/babel-transform": "link:packages/kbn-babel-transform",
@ -819,6 +1091,7 @@
"@kbn/repo-path": "link:packages/kbn-repo-path",
"@kbn/repo-source-classifier": "link:packages/kbn-repo-source-classifier",
"@kbn/repo-source-classifier-cli": "link:packages/kbn-repo-source-classifier-cli",
"@kbn/security-api-integration-helpers": "link:x-pack/test/security_api_integration/packages/helpers",
"@kbn/some-dev-log": "link:packages/kbn-some-dev-log",
"@kbn/sort-package-json": "link:packages/kbn-sort-package-json",
"@kbn/spec-to-console": "link:packages/kbn-spec-to-console",

View file

@ -77,7 +77,7 @@ describe('registerBundleRoutes', () => {
expect(registerRouteForBundleMock).toHaveBeenCalledWith(router, {
fileHashCache: expect.any(FileHashCache),
isDist: true,
bundlesPath: expect.stringMatching(/src\/core\/target\/public/),
bundlesPath: expect.stringMatching(/\/@kbn\/core\/target\/public$/),
publicPath: '/server-base-path/42/bundles/core/',
routePath: '/42/bundles/core/',
});

View file

@ -6,7 +6,6 @@
* Side Public License, v 1.
*/
import { join } from 'path';
import type { PackageInfo } from '@kbn/config';
import { fromRoot } from '@kbn/repo-info';
import UiSharedDepsNpm from '@kbn/ui-shared-deps-npm';
@ -61,7 +60,9 @@ export function registerBundleRoutes({
registerRouteForBundle(router, {
publicPath: `${serverBasePath}/${buildNum}/bundles/core/`,
routePath: `/${buildNum}/bundles/core/`,
bundlesPath: fromRoot(join('src', 'core', 'target', 'public')),
bundlesPath: isDist
? fromRoot('node_modules/@kbn/core/target/public')
: fromRoot('src/core/target/public'),
fileHashCache,
isDist,
});

View file

@ -17,8 +17,15 @@ jest.mock('./get_translation_paths', () => ({
jest.mock('@kbn/repo-info', () => ({
fromRoot: jest.fn().mockImplementation((path: string) => path),
}));
jest.mock('@kbn/repo-packages', () => {
return {
getPackages: jest.fn().mockReturnValue([]),
getPluginPackagesFilter: jest.fn().mockImplementation(() => () => false),
};
});
const locale = 'en';
const { getPackages, getPluginPackagesFilter } = jest.requireMock('@kbn/repo-packages');
describe('getKibanaTranslationPaths', () => {
beforeEach(() => {
@ -67,4 +74,21 @@ describe('getKibanaTranslationPaths', () => {
expect(translationFiles).toEqual(['/root/en.json', '/kibana-extra/en.json']);
});
it('looks for translation paths in filters plugin packages', async () => {
const package1 = { directory: 'package1' };
const package2 = { directory: 'package2' };
const filter = jest.fn((p: any) => p === package2);
getPackages.mockReturnValue([package1, package2]);
getPluginPackagesFilter.mockReturnValue(filter);
await getKibanaTranslationFiles(locale, []);
expect(getPackages).toHaveBeenCalledTimes(1);
expect(getPluginPackagesFilter).toHaveBeenCalledTimes(1);
expect(filter).toHaveBeenCalledTimes(2);
expect(mockGetTranslationPaths).toHaveBeenCalledTimes(3);
expect(mockGetTranslationPaths).not.toHaveBeenCalledWith({ cwd: 'package1', nested: false });
expect(mockGetTranslationPaths).toHaveBeenCalledWith({ cwd: 'package2', nested: false });
});
});

View file

@ -8,6 +8,8 @@
import { basename } from 'path';
import { fromRoot } from '@kbn/repo-info';
import { asyncMapWithLimit } from '@kbn/std';
import { getPackages, getPluginPackagesFilter } from '@kbn/repo-packages';
import { getTranslationPaths } from './get_translation_paths';
export const getKibanaTranslationFiles = async (
@ -19,14 +21,23 @@ export const getKibanaTranslationFiles = async (
cwd: fromRoot('.'),
nested: true,
}),
...pluginPaths.map((pluginPath) => getTranslationPaths({ cwd: pluginPath, nested: false })),
asyncMapWithLimit(
getPackages(fromRoot('.')).filter(getPluginPackagesFilter({ paths: pluginPaths })),
20,
async (pkg) => await getTranslationPaths({ cwd: pkg.directory, nested: false })
),
asyncMapWithLimit(
pluginPaths,
20,
async (pluginPath) => await getTranslationPaths({ cwd: pluginPath, nested: false })
),
getTranslationPaths({
cwd: fromRoot('../kibana-extra'),
nested: true,
}),
]);
return ([] as string[])
.concat(...translationPaths)
return translationPaths
.flat(2)
.filter((translationPath) => basename(translationPath, '.json') === locale);
};

View file

@ -26,12 +26,12 @@ export async function getTranslationPaths({ cwd, nested }: { cwd: string; nested
const pluginBasePath = dirname(entryFullPath);
try {
const content = await readFile(entryFullPath, 'utf8');
const { translations } = JSON.parse(content) as I18NRCFileStructure;
if (translations && translations.length) {
translations.forEach((translation) => {
const translationFullPath = resolve(pluginBasePath, translation);
translationPaths.push(translationFullPath);
});
const { translations = [] } = JSON.parse(content) as I18NRCFileStructure;
for (const path of translations) {
translationPaths.push(
path.startsWith('@kbn/') ? require.resolve(path) : resolve(pluginBasePath, path)
);
}
} catch (err) {
throw new Error(`Failed to parse .i18nrc.json file at ${entryFullPath}`);

View file

@ -23,6 +23,8 @@
"@kbn/core-base-server-mocks",
"@kbn/core-http-server-mocks",
"@kbn/i18n",
"@kbn/std",
"@kbn/repo-packages",
],
"exclude": [
"target/**/*",

View file

@ -25,10 +25,8 @@ import type { InstanceInfo } from '../plugin_context';
import { discover } from './plugins_discovery';
import { PluginType } from '@kbn/core-base-common';
const KIBANA_ROOT = process.cwd();
jest.mock('@kbn/repo-packages', () => ({
...jest.requireActual('@kbn/repo-packages'),
getPackages: jest.fn().mockReturnValue([]),
getPluginPackagesFilter: jest.fn().mockReturnValue(() => true),
}));
@ -153,8 +151,8 @@ const packageMock = {
},
};
const manifestPath = (...pluginPath: string[]) =>
resolve(KIBANA_ROOT, 'src', 'plugins', ...pluginPath, 'kibana.json');
const pluginDir = (...segments: string[]) => resolve(REPO_ROOT, 'plugins', ...segments);
const manifestPath = (...pluginPath: string[]) => resolve(pluginDir(...pluginPath), 'kibana.json');
describe('plugins discovery system', () => {
let logger: ReturnType<typeof loggingSystemMock.create>;
@ -185,6 +183,7 @@ describe('plugins discovery system', () => {
REPO_ROOT,
getEnvOptions({
cliArgs: { envName: 'development' },
repoPackages: [],
})
);
@ -230,10 +229,10 @@ describe('plugins discovery system', () => {
mockFs(
{
[`${KIBANA_ROOT}/src/plugins/plugin_a`]: Plugins.valid('pluginA'),
[`${KIBANA_ROOT}/plugins/plugin_b`]: Plugins.valid('pluginB'),
[`${KIBANA_ROOT}/x-pack/plugins/plugin_c`]: Plugins.valid('pluginC'),
[`${KIBANA_ROOT}/src/plugins/plugin_d`]: Plugins.validPreboot('pluginD'),
[pluginDir('plugin_a')]: Plugins.valid('pluginA'),
[pluginDir('plugin_b')]: Plugins.valid('pluginB'),
[pluginDir(`plugin_c`)]: Plugins.valid('pluginC'),
[pluginDir(`plugin_d`)]: Plugins.validPreboot('pluginD'),
},
{ createCwd: false }
);
@ -257,12 +256,12 @@ describe('plugins discovery system', () => {
mockFs(
{
[`${KIBANA_ROOT}/src/plugins/plugin_a`]: Plugins.invalid(),
[`${KIBANA_ROOT}/src/plugins/plugin_b`]: Plugins.incomplete(),
[`${KIBANA_ROOT}/src/plugins/plugin_c`]: Plugins.incompatible(),
[`${KIBANA_ROOT}/src/plugins/plugin_d`]: Plugins.incompatibleType('pluginD'),
[`${KIBANA_ROOT}/src/plugins/plugin_ad`]: Plugins.missingManifest(),
[`${KIBANA_ROOT}/src/plugins/plugin_e`]: Plugins.missingOwnerAttribute(),
[pluginDir(`plugin_a`)]: Plugins.invalid(),
[pluginDir(`plugin_b`)]: Plugins.incomplete(),
[pluginDir(`plugin_c`)]: Plugins.incompatible(),
[pluginDir(`plugin_d`)]: Plugins.incompatibleType('pluginD'),
[pluginDir(`plugin_ad`)]: Plugins.missingManifest(),
[pluginDir(`plugin_e`)]: Plugins.missingOwnerAttribute(),
},
{ createCwd: false }
);
@ -324,7 +323,7 @@ describe('plugins discovery system', () => {
mockFs(
{
[`${KIBANA_ROOT}/src/plugins`]: mockFs.directory({
[pluginDir('.')]: mockFs.directory({
mode: 0, // 0000
items: {
plugin_a: Plugins.valid('pluginA'),
@ -344,12 +343,38 @@ describe('plugins discovery system', () => {
)
.toPromise();
const srcPluginsPath = resolve(KIBANA_ROOT, 'src', 'plugins');
const xpackPluginsPath = resolve(KIBANA_ROOT, 'x-pack', 'plugins');
const srcPluginsPath = pluginDir('.');
expect(errors).toEqual(
expect.arrayContaining([
`Error: EACCES, permission denied '${srcPluginsPath}' (invalid-search-path, ${srcPluginsPath})`,
`Error: ENOENT, no such file or directory '${xpackPluginsPath}' (invalid-search-path, ${xpackPluginsPath})`,
])
);
});
it('return errors when the plugin search path is missing', async () => {
const { plugin$, error$ } = discover({
config: new PluginsConfig(pluginConfig, env),
coreContext,
instanceInfo,
nodeInfo,
});
mockFs({}, { createCwd: false });
const plugins = await plugin$.pipe(toArray()).toPromise();
expect(plugins).toHaveLength(0);
const errors = await error$
.pipe(
map((error) => error.toString()),
toArray()
)
.toPromise();
const srcPluginsPath = pluginDir('.');
expect(errors).toEqual(
expect.arrayContaining([
`Error: ENOENT, no such file or directory '${srcPluginsPath}' (invalid-search-path, ${srcPluginsPath})`,
])
);
});
@ -364,7 +389,7 @@ describe('plugins discovery system', () => {
mockFs(
{
[`${KIBANA_ROOT}/src/plugins/plugin_a`]: {
[pluginDir(`plugin_a`)]: {
...Plugins.inaccessibleManifest(),
nested_plugin: Plugins.valid('nestedPlugin'),
},
@ -400,11 +425,11 @@ describe('plugins discovery system', () => {
mockFs(
{
[`${KIBANA_ROOT}/src/plugins/plugin_a`]: Plugins.valid('pluginA'),
[`${KIBANA_ROOT}/src/plugins/sub1/plugin_b`]: Plugins.valid('pluginB'),
[`${KIBANA_ROOT}/src/plugins/sub1/sub2/plugin_c`]: Plugins.valid('pluginC'),
[`${KIBANA_ROOT}/src/plugins/sub1/sub2/plugin_d`]: Plugins.validPreboot('pluginD'),
[`${KIBANA_ROOT}/src/plugins/sub1/sub2/plugin_e`]: Plugins.incomplete(),
[pluginDir(`plugin_a`)]: Plugins.valid('pluginA'),
[pluginDir(`sub1/plugin_b`)]: Plugins.valid('pluginB'),
[pluginDir(`sub1/sub2/plugin_c`)]: Plugins.valid('pluginC'),
[pluginDir(`sub1/sub2/plugin_d`)]: Plugins.validPreboot('pluginD'),
[pluginDir(`sub1/sub2/plugin_e`)]: Plugins.incomplete(),
},
{ createCwd: false }
);
@ -445,7 +470,7 @@ describe('plugins discovery system', () => {
mockFs(
{
[`${KIBANA_ROOT}/src/plugins/plugin_a`]: {
[pluginDir(`plugin_a`)]: {
...Plugins.valid('pluginA'),
nested_plugin: Plugins.valid('nestedPlugin'),
},
@ -469,13 +494,12 @@ describe('plugins discovery system', () => {
mockFs(
{
[`${KIBANA_ROOT}/src/plugins/sub1/plugin`]: Plugins.valid('plugin1'),
[`${KIBANA_ROOT}/src/plugins/sub1/sub2/plugin`]: Plugins.valid('plugin2'),
[`${KIBANA_ROOT}/src/plugins/sub1/sub2/sub3/plugin`]: Plugins.valid('plugin3'),
[`${KIBANA_ROOT}/src/plugins/sub1/sub2/sub3/sub4/plugin`]: Plugins.valid('plugin4'),
[`${KIBANA_ROOT}/src/plugins/sub1/sub2/sub3/sub4/sub5/plugin`]: Plugins.valid('plugin5'),
[`${KIBANA_ROOT}/src/plugins/sub1/sub2/sub3/sub4/sub5/sub6/plugin`]:
Plugins.valid('plugin6'),
[pluginDir(`sub1/plugin`)]: Plugins.valid('plugin1'),
[pluginDir(`sub1/sub2/plugin`)]: Plugins.valid('plugin2'),
[pluginDir(`sub1/sub2/sub3/plugin`)]: Plugins.valid('plugin3'),
[pluginDir(`sub1/sub2/sub3/sub4/plugin`)]: Plugins.valid('plugin4'),
[pluginDir(`sub1/sub2/sub3/sub4/sub5/plugin`)]: Plugins.valid('plugin5'),
[pluginDir(`sub1/sub2/sub3/sub4/sub5/sub6/plugin`)]: Plugins.valid('plugin6'),
},
{ createCwd: false }
);
@ -497,12 +521,12 @@ describe('plugins discovery system', () => {
nodeInfo,
});
const pluginFolder = resolve(KIBANA_ROOT, '..', 'ext-plugins');
const pluginFolder = pluginDir('../ext-plugins');
mockFs(
{
[`${KIBANA_ROOT}/plugins`]: mockFs.symlink({
path: '../ext-plugins',
[pluginDir(`.`)]: mockFs.symlink({
path: pluginFolder,
}),
[pluginFolder]: {
plugin_a: Plugins.valid('pluginA'),
@ -634,18 +658,18 @@ describe('plugins discovery system', () => {
it('returns the plugins in a deterministic order', async () => {
mockFs(
{
[`${KIBANA_ROOT}/src/plugins/plugin_a`]: Plugins.valid('pluginA'),
[`${KIBANA_ROOT}/plugins/plugin_b`]: Plugins.valid('pluginB'),
[`${KIBANA_ROOT}/x-pack/plugins/plugin_c`]: Plugins.valid('pluginC'),
[`${REPO_ROOT}/src/plugins/plugin_a`]: Plugins.valid('pluginA'),
[`${REPO_ROOT}/plugins/plugin_b`]: Plugins.valid('pluginB'),
[`${REPO_ROOT}/x-pack/plugins/plugin_c`]: Plugins.valid('pluginC'),
},
{ createCwd: false }
);
scanPluginSearchPathsMock.mockReturnValue(
from([
`${KIBANA_ROOT}/src/plugins/plugin_a`,
`${KIBANA_ROOT}/plugins/plugin_b`,
`${KIBANA_ROOT}/x-pack/plugins/plugin_c`,
`${REPO_ROOT}/src/plugins/plugin_a`,
`${REPO_ROOT}/plugins/plugin_b`,
`${REPO_ROOT}/x-pack/plugins/plugin_c`,
])
);
@ -671,9 +695,9 @@ describe('plugins discovery system', () => {
// second pass
scanPluginSearchPathsMock.mockReturnValue(
from([
`${KIBANA_ROOT}/plugins/plugin_b`,
`${KIBANA_ROOT}/x-pack/plugins/plugin_c`,
`${KIBANA_ROOT}/src/plugins/plugin_a`,
`${REPO_ROOT}/plugins/plugin_b`,
`${REPO_ROOT}/x-pack/plugins/plugin_c`,
`${REPO_ROOT}/src/plugins/plugin_a`,
])
);

View file

@ -722,10 +722,8 @@ describe('PluginsService', () => {
additionalPluginPaths: [],
initialize: true,
pluginSearchPaths: [
resolve(process.cwd(), 'src', 'plugins'),
resolve(process.cwd(), 'x-pack', 'plugins'),
resolve(process.cwd(), 'plugins'),
resolve(process.cwd(), '..', 'kibana-extra'),
resolve(REPO_ROOT, '..', 'kibana-extra'),
resolve(REPO_ROOT, 'plugins'),
],
},
coreContext: { coreId, env, logger, configService },

View file

@ -1,6 +1,6 @@
{
"name": "@kbn/apm-synthtrace-client",
"version": "0.1.0",
"version": "1.0.0",
"description": "Elastic APM trace data generator",
"license": "SSPL-1.0 OR Elastic License 2.0",
"private": true

View file

@ -1,6 +1,6 @@
{
"name": "@kbn/apm-synthtrace",
"version": "0.1.0",
"version": "1.0.0",
"description": "Elastic APM trace data generator",
"license": "SSPL-1.0 OR Elastic License 2.0",
"bin": {

View file

@ -1,31 +0,0 @@
load("@build_bazel_rules_nodejs//:index.bzl", "js_library")
SRCS = [
"babel_plugin_package_imports.js",
"index.js",
]
# In this array place runtime dependencies, including other packages and NPM packages
# which must be available for this code to run.
#
# To reference other packages use:
# "//repo/relative/path/to/package"
# eg. "//packages/kbn-utils"
#
# To reference a NPM package use:
# "@npm//name-of-package"
# eg. "@npm//lodash"
BUNDLER_DEPS = [
"@npm//@babel/helper-plugin-utils",
"@npm//normalize-path",
"//packages/kbn-repo-info",
"//packages/kbn-repo-packages",
]
js_library(
name = "kbn-babel-plugin-package-imports",
package_name = "@kbn/babel-plugin-package-imports",
srcs = ["package.json"] + SRCS,
deps = BUNDLER_DEPS,
visibility = ["//visibility:public"],
)

View file

@ -1,11 +0,0 @@
---
id: kibDevDocsOpsBabelPluginPackageImports
slug: /kibana-dev-docs/ops/babel-plugin-package-imports
title: "@kbn/babel-plugin-package-imports"
description: A babel plugin that transforms our @kbn/{NAME} imports into paths
date: 2022-05-19
tags: ['kibana', 'dev', 'contributor', 'operations', 'babel', 'plugin', 'packages', 'imports']
---
When developing inside the Kibana repository importing a package from any other package is just easy as
importing `@kbn/{package-name}`. However not every package is a node_module yet and while that is something we are working on to accomplish we need a way to dealing with it for now. Using this babel plugin is our transitory solution. It allows us to import from module ids and then transform it automatically back into paths on the transpiled code without friction for our engineering teams.

View file

@ -1,195 +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.
*/
const Path = require('path');
const T = require('@babel/types');
const normalizePath = require('normalize-path');
const { declare } = require('@babel/helper-plugin-utils');
const { readPackageMap } = require('@kbn/repo-packages');
const { REPO_ROOT } = require('@kbn/repo-info');
const PKG_MAP = readPackageMap();
/**
* @param {unknown} v
* @returns {v is Record<string, unknown>}
*/
const isObj = (v) => typeof v === 'object' && !!v;
/**
* @param {unknown} state
* @returns {string}
*/
function getFilename(state) {
if (!isObj(state) || typeof state.filename !== 'string' || !Path.isAbsolute(state.filename)) {
throw new Error(
`@kbn/babel-plugin-package-imports is only compatible when building files with absolute filename state`
);
}
return state.filename;
}
/**
* @param {string} req
* @returns {import('./types').ParsedReq | undefined}
*/
function parseReq(req) {
if (!req.startsWith('@kbn/')) {
return;
}
const parts = req.split('/');
const moduleId = `@kbn/${parts[1]}`;
const dir = PKG_MAP.get(moduleId);
if (!dir) {
return;
}
return {
req,
moduleId,
dir,
subParts: parts.slice(2),
};
}
/**
* @param {import('./types').ParsedReq} req
* @param {string} filename
*/
function fixImportRequest(req, filename) {
if (process.env.BAZEL_WORKSPACE === 'kibana') {
return;
}
const rel = normalizePath(
Path.relative(Path.dirname(filename), Path.resolve(REPO_ROOT, req.dir, ...req.subParts))
);
return rel.startsWith('.') ? rel : `./${rel}`;
}
/**
* @param {T.CallExpression} node
* @returns {node is T.Import & { arguments: [T.StringLiteral] }}
*/
function isDynamicImport(node) {
return !!(
T.isImport(node.callee) &&
node.arguments.length === 1 &&
T.isStringLiteral(node.arguments[0])
);
}
/**
* @param {T.CallExpression} node
* @returns {node is T.CallExpression & { arguments: [T.StringLiteral] }}
*/
function isRequire(node) {
return !!(
T.isIdentifier(node.callee) &&
node.callee.name === 'require' &&
node.arguments.length >= 1 &&
T.isStringLiteral(node.arguments[0])
);
}
/**
* @param {T.CallExpression} node
* @returns {node is T.CallExpression & { arguments: [T.StringLiteral] }}
*/
function isRequireResolve(node) {
return !!(
T.isMemberExpression(node.callee) &&
T.isIdentifier(node.callee.object) &&
node.callee.object.name === 'require' &&
T.isIdentifier(node.callee.property) &&
node.callee.property.name === 'resolve' &&
node.arguments.length >= 1 &&
T.isStringLiteral(node.arguments[0])
);
}
/**
* @param {T.CallExpression} node
* @returns {node is T.CallExpression & { arguments: [T.StringLiteral] }}
*/
function isJestMockCall(node) {
return !!(
T.isMemberExpression(node.callee) &&
T.isIdentifier(node.callee.object) &&
node.callee.object.name === 'jest' &&
node.arguments.length >= 1 &&
T.isStringLiteral(node.arguments[0])
);
}
module.exports = declare((api, options) => {
/** @type {Set<string> | undefined} */
const ignoredPkgIds = options.ignoredPkgIds;
api.assertVersion(7);
return {
name: 'kbn-package-imports',
visitor: {
/**
* @param {import('@babel/core').NodePath<T.ImportDeclaration | T.ExportNamedDeclaration | T.ExportAllDeclaration>} path
*/
'ImportDeclaration|ExportNamedDeclaration|ExportAllDeclaration'(path) {
const filename = getFilename(this);
const source = path.node.source;
if (!T.isStringLiteral(source)) {
return;
}
const req = source.value;
const parsed = parseReq(req);
if (!parsed || ignoredPkgIds?.has(parsed.moduleId)) {
return;
}
const newReq = fixImportRequest(parsed, filename);
if (newReq) {
path.get('source').replaceWith(T.stringLiteral(newReq));
}
},
/**
* @param {import('@babel/core').NodePath<T.CallExpression>} path
*/
CallExpression(path) {
const filename = getFilename(this);
const { node } = path;
if (
!isDynamicImport(node) &&
!isRequire(node) &&
!isRequireResolve(node) &&
!isJestMockCall(node)
) {
return;
}
const req = node.arguments[0].value;
const parsed = parseReq(req);
if (!parsed || ignoredPkgIds?.has(parsed.moduleId)) {
return;
}
const newReq = fixImportRequest(parsed, filename);
if (newReq) {
path.get('arguments')[0].replaceWith(T.stringLiteral(newReq));
}
},
},
};
});

View file

@ -1,9 +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.
*/
module.exports = require('./babel_plugin_package_imports');

View file

@ -1,6 +0,0 @@
{
"type": "shared-common",
"id": "@kbn/babel-plugin-package-imports",
"devOnly": true,
"owner": "@elastic/kibana-operations"
}

View file

@ -1,6 +0,0 @@
{
"name": "@kbn/babel-plugin-package-imports",
"private": true,
"version": "1.0.0",
"license": "SSPL-1.0 OR Elastic License 2.0"
}

View file

@ -1,14 +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 interface ParsedReq {
req: string;
moduleId: string;
dir: string;
subParts: string[];
}

View file

@ -39,7 +39,6 @@ RUNTIME_DEPS = [
"@npm//babel-plugin-add-module-exports",
"@npm//babel-plugin-styled-components",
"@npm//babel-plugin-transform-react-remove-prop-types",
"//packages/kbn-babel-plugin-package-imports",
]
js_library(

View file

@ -6,7 +6,7 @@
* Side Public License, v 1.
*/
module.exports = (_, options = {}) => ({
module.exports = () => ({
presets: [
// plugins always run before presets, but in this case we need the
// @babel/preset-typescript preset to run first so we have to move
@ -46,19 +46,6 @@ module.exports = (_, options = {}) => ({
version: '^7.12.5',
},
],
...(options['kibana/ignoreAllPkgImports']
? []
: [
[
require.resolve('@kbn/babel-plugin-package-imports'),
{
ignoredPkgIds: options['kibana/ignoredPkgIds']
? new Set(options['kibana/ignoredPkgIds'])
: undefined,
},
],
]),
],
},

View file

@ -21,14 +21,7 @@ const cwd = process.cwd();
function getBabelOptions(path, config = {}) {
return {
filename: path,
presets: [
[
NODE_PRESET,
{
'kibana/ignoredPkgIds': config.ignoredPkgIds,
},
],
],
presets: [NODE_PRESET],
cwd,
babelrc: false,
sourceMaps: config.disableSourceMaps ? false : 'both',

View file

@ -8,7 +8,6 @@
export interface TransformConfig {
disableSourceMaps?: boolean;
ignoredPkgIds?: string[];
}
export interface WorkerData {

View file

@ -116,7 +116,6 @@ it('passes correct args to sub-classes', () => {
"cache": true,
"dist": true,
"enabled": true,
"oss": true,
"pluginPaths": Array [],
"pluginScanDirs": Array [
<absolute path>/src/plugins,

View file

@ -149,9 +149,6 @@ export class CliDevMode {
this.optimizer = new Optimizer({
enabled: !cliArgs.disableOptimizer,
repoRoot: REPO_ROOT,
oss: cliArgs.oss,
pluginPaths: config.plugins.additionalPluginPaths,
pluginScanDirs: config.plugins.pluginSearchPaths,
runExamples: cliArgs.runExamples,
cache: cliArgs.cache,
dist: cliArgs.dist,
@ -159,6 +156,8 @@ export class CliDevMode {
silent: !!cliArgs.silent,
verbose: !!cliArgs.verbose,
watch: cliArgs.watch,
pluginPaths: config.plugins.additionalPluginPaths,
pluginScanDirs: config.plugins.pluginSearchPaths,
});
}

View file

@ -43,7 +43,6 @@ const defaultOptions: Options = {
enabled: true,
cache: true,
dist: true,
oss: true,
pluginPaths: ['/some/dir'],
pluginScanDirs: ['/some-scan-path'],
quiet: true,
@ -85,7 +84,6 @@ it('uses options to create valid OptimizerConfig', () => {
cache: false,
dist: false,
runExamples: false,
oss: false,
pluginPaths: [],
pluginScanDirs: [],
repoRoot: '/foo/bar',
@ -100,7 +98,6 @@ it('uses options to create valid OptimizerConfig', () => {
"dist": true,
"examples": true,
"includeCoreBundle": true,
"oss": true,
"pluginPaths": Array [
"/some/dir",
],
@ -117,7 +114,6 @@ it('uses options to create valid OptimizerConfig', () => {
"dist": false,
"examples": false,
"includeCoreBundle": true,
"oss": false,
"pluginPaths": Array [],
"pluginScanDirs": Array [],
"repoRoot": "/foo/bar",

View file

@ -35,11 +35,10 @@ export interface Options {
watch: boolean;
cache: boolean;
dist: boolean;
oss: boolean;
runExamples: boolean;
pluginPaths: string[];
pluginScanDirs: string[];
writeLogTo?: Writable;
pluginPaths?: string[];
pluginScanDirs?: string[];
}
export class Optimizer {
@ -61,7 +60,6 @@ export class Optimizer {
includeCoreBundle: true,
cache: options.cache,
dist: options.dist,
oss: options.oss,
examples: options.runExamples,
pluginPaths: options.pluginPaths,
pluginScanDirs: options.pluginScanDirs,

View file

@ -15,19 +15,17 @@ import { makeMatcher } from '@kbn/picomatcher';
import { Log } from './log';
const packageMatcher = makeMatcher(['**/*', '!**/.*']);
const packageMatcher = makeMatcher([
'**/*',
'!**/.*',
'!x-pack/plugins/screenshotting/chromium/**',
'!x-pack/plugins/canvas/shareable_runtime/**',
]);
/**
* Any code that is outside of a package must match this in order to trigger a restart
*/
const nonPackageMatcher = makeMatcher([
'config/**/*.yml',
'src/**',
'!src/{dev,fixtures}/**',
'x-pack/plugins/**',
'!x-pack/plugins/screenshotting/chromium/**',
'!x-pack/plugins/canvas/shareable_runtime/**',
]);
const nonPackageMatcher = makeMatcher(['config/**/*.yml']);
export interface Options {
enabled: boolean;
@ -84,6 +82,7 @@ export class Watcher {
if (result.type === 'common package' || result.type === 'server package') {
return packageMatcher(result.repoRel) && fire(result.repoRel);
}
if (result.type === 'non-package') {
return nonPackageMatcher(result.repoRel) && fire(result.repoRel);
}

Some files were not shown because too many files have changed in this diff Show more