kibana/packages
Kibana Machine f657db7004
[8.8] [KQL] Fix node builder with empty array (#155901) (#156077)
# Backport

This will backport the following commits from `main` to `8.8`:
- [[KQL] Fix node builder with empty array
(#155901)](https://github.com/elastic/kibana/pull/155901)

<!--- Backport version: 8.9.7 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Lukas
Olson","email":"lukas@elastic.co"},"sourceCommit":{"committedDate":"2023-04-27T18:28:12Z","message":"[KQL]
Fix node builder with empty array (#155901)\n\n## Summary\r\n\r\nFixes
https://github.com/elastic/kibana/issues/95657.\r\n\r\nUpdates the logic
for `nodeBuilder` when passing an empty array
to\r\n`nodeBuilder.and`/`nodeBuilder.or` to actually return a
`KueryNode`\r\ninstead of `undefined`.\r\n\r\n### Checklist\r\n\r\n- [
]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas
added for features that require explanation or tutorials\r\n- [x] [Unit
or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios","sha":"654287b3adc928dd1582998504b7ed043259c3ae","branchLabelMapping":{"^v8.9.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Feature:KQL","release_note:skip","backport:skip","Team:DataDiscovery","v8.9.0"],"number":155901,"url":"https://github.com/elastic/kibana/pull/155901","mergeCommit":{"message":"[KQL]
Fix node builder with empty array (#155901)\n\n## Summary\r\n\r\nFixes
https://github.com/elastic/kibana/issues/95657.\r\n\r\nUpdates the logic
for `nodeBuilder` when passing an empty array
to\r\n`nodeBuilder.and`/`nodeBuilder.or` to actually return a
`KueryNode`\r\ninstead of `undefined`.\r\n\r\n### Checklist\r\n\r\n- [
]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas
added for features that require explanation or tutorials\r\n- [x] [Unit
or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios","sha":"654287b3adc928dd1582998504b7ed043259c3ae"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v8.9.0","labelRegex":"^v8.9.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/155901","number":155901,"mergeCommit":{"message":"[KQL]
Fix node builder with empty array (#155901)\n\n## Summary\r\n\r\nFixes
https://github.com/elastic/kibana/issues/95657.\r\n\r\nUpdates the logic
for `nodeBuilder` when passing an empty array
to\r\n`nodeBuilder.and`/`nodeBuilder.or` to actually return a
`KueryNode`\r\ninstead of `undefined`.\r\n\r\n### Checklist\r\n\r\n- [
]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas
added for features that require explanation or tutorials\r\n- [x] [Unit
or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios","sha":"654287b3adc928dd1582998504b7ed043259c3ae"}}]}]
BACKPORT-->

Co-authored-by: Lukas Olson <lukas@elastic.co>
2023-04-27 13:33:04 -07:00
..
analytics [FullStory] Update snippet (#153570) 2023-04-18 04:06:05 -07:00
content-management [Files] Allow option to disable delete action in mgt UI (#155179) 2023-04-24 17:45:41 +02:00
core [8.8] [Serverless] Select project type via config (#155754) (#155997) 2023-04-27 08:19:35 -07:00
home [codeowners] rename global experience to @elastic/appex-sharedux 2023-01-18 10:02:49 -07:00
kbn-ace Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-alerts Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-alerts-as-data-utils [RAM] kibana.alert.url (#155309) 2023-04-20 17:01:56 -04:00
kbn-alerts-ui-shared [RAM] Bring flapping status and settings in o11y (#150483) 2023-02-07 20:52:26 -07:00
kbn-ambient-common-types Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-ambient-ftr-types Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-ambient-storybook-types Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-ambient-ui-types Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-analytics Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-apm-config-loader Config loader: remove unecessary properties (#154902) 2023-04-13 11:16:51 -05:00
kbn-apm-synthtrace [APM] Add table tabs showing summary of metrics (#153044) 2023-04-25 15:43:21 +01:00
kbn-apm-synthtrace-client [APM] Add table tabs showing summary of metrics (#153044) 2023-04-25 15:43:21 +01:00
kbn-apm-utils Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-axe-config Updating axe-core to latest (#144940) 2023-03-29 00:06:25 +05:30
kbn-babel-preset [SecuritySolution] Refactor security packages (#155365) 2023-04-26 05:05:36 -07:00
kbn-babel-register [kbn/babel-register] improve cache performance (#150261) 2023-02-06 19:50:42 -07:00
kbn-babel-transform [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-bazel-runner Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-cases-components [Cases] add tooltip component to kbn-cases-components package (#148561) 2023-01-17 14:24:50 +01:00
kbn-cell-actions [Security Solution] Add Timeline Hover Action to Security Dashboard Calculated Metrics (#154299) 2023-04-21 13:43:08 -06:00
kbn-chart-icons Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-ci-stats-core Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-ci-stats-performance-metrics Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-ci-stats-reporter Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-ci-stats-shipper-cli [ci-stats] move shipper to a package, validate limits in on-merge job (#149474) 2023-01-25 08:20:40 -07:00
kbn-cli-dev-mode [kibana] Thank you for everything, Spencer! 🧔🏻‍♂️ (#150759) 2023-02-10 16:57:43 -06:00
kbn-coloring Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-config [HTTP] Switch default handler resolution based on Kibana config (#155142) 2023-04-20 15:20:09 +02:00
kbn-config-mocks [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-config-schema Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-content-management-utils [content management / maps] Create abstract types for saved object usage with content management api (#154985) 2023-04-24 20:58:22 -05:00
kbn-crypto Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-crypto-browser Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-cypress-config [Defend workflows] Add Cypress tests for Endpoint reassignment functi… (#151887) 2023-02-24 16:19:30 +01:00
kbn-datemath [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-dev-cli-errors Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-dev-cli-runner Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-dev-proc-runner Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-dev-utils [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-doc-links [8.8] [Enterprise Search] Enable converting native connector to custom (#155853) (#156063) 2023-04-27 11:38:11 -07:00
kbn-docs-utils [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-dom-drag-drop [Discover] Drag & drop for adding columns to the table (#153538) 2023-04-19 19:17:54 +02:00
kbn-ebt-tools Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-ecs Generate kbn/ecs with ECS 8.6.1 (#151642) 2023-02-21 15:02:38 +01:00
kbn-es [kbn/es] Add dev docs for snapshot promotion pipeline (#148350) 2023-01-05 12:45:34 -06:00
kbn-es-archiver Split the .kibana saved objects index into multiple indices (#154888) 2023-04-25 09:43:42 +02:00
kbn-es-errors Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-es-query [8.8] [KQL] Fix node builder with empty array (#155901) (#156077) 2023-04-27 13:33:04 -07:00
kbn-es-types [APM] Use (rolled up) service metrics for service inventory (#149938) 2023-02-04 04:00:25 -07:00
kbn-eslint-config ESLint Telemetry Rule (#153108) 2023-03-20 13:31:02 +00:00
kbn-eslint-plugin-disable Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-eslint-plugin-eslint Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-eslint-plugin-imports [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-eslint-plugin-telemetry Upgrade typescript-eslint to 5.54.0 (#152358) 2023-03-23 10:52:41 -05:00
kbn-expandable-flyout [Security Solution] Store expandable flyout state in the url (#154703) 2023-04-21 15:45:37 -05:00
kbn-expect Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-failed-test-reporter-cli [failed test reporter] no github issues for WebDriver invalid session id (#155707) 2023-04-25 17:06:34 +02:00
kbn-field-types Update codeowners to move AppServices packages to DataDiscovery (#149065) 2023-01-18 13:34:28 -07:00
kbn-find-used-node-modules [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-flot-charts Fix useless regex escapes (#150043) 2023-02-07 09:58:47 -07:00
kbn-ftr-common-functional-services Split the .kibana saved objects index into multiple indices (#154888) 2023-04-25 09:43:42 +02:00
kbn-ftr-screenshot-filename Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-generate [codeowners] allow overrides to take higher precedence (#150821) 2023-02-09 16:29:26 -07:00
kbn-generate-csv [Reporting] Generate CSV Package (#151801) 2023-04-13 10:27:35 -07:00
kbn-generate-csv-types [Reporting] Generate CSV Package (#151801) 2023-04-13 10:27:35 -07:00
kbn-get-repo-files [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-guided-onboarding [Guided onboarding] Dynamic URLs for steps (#154572) 2023-04-21 18:21:29 +02:00
kbn-handlebars [@kbn/handlebars] Refactor types (#150520) 2023-02-14 13:37:41 +01:00
kbn-hapi-mocks Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-health-gateway-server implement "plugin" package type (#149370) 2023-01-30 10:47:53 -07:00
kbn-i18n Downgrade Node.js to version 16 (#149531) 2023-01-26 11:53:52 +00:00
kbn-i18n-react Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-import-locator [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-import-resolver [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-interpreter Fix eslint rule for restricting certain lodash imports (#151023) 2023-02-16 08:35:09 -07:00
kbn-io-ts-utils [Infrastructure UI] Implement inventory views CRUD endpoints (#154900) 2023-04-24 11:54:43 +02:00
kbn-jest-serializers Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-journeys Enable APM for ES when running performance journeys (#155195) 2023-04-20 16:26:48 +02:00
kbn-json-ast [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-kibana-manifest-schema implement "plugin" package type (#149370) 2023-01-30 10:47:53 -07:00
kbn-language-documentation-popover Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-lint-packages-cli [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-lint-ts-projects-cli [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-logging Replace ecs package with ecs-typescript generated code (#148804) 2023-01-26 07:10:32 +01:00
kbn-logging-mocks Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-managed-vscode-config Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-managed-vscode-config-cli Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-mapbox-gl Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-monaco Downgrade Node.js to version 16 (#149531) 2023-01-26 11:53:52 +00:00
kbn-object-versioning [CM] Onboard maps to cross-type search (#155148) 2023-04-21 07:41:08 -07:00
kbn-optimizer Remove Exploratory View components from Observability (#155629) 2023-04-26 09:21:20 +02:00
kbn-optimizer-webpack-helpers Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-osquery-io-ts-types [Osquery] Substitute Event Data in place of {{parameter}} in Osquery run from Alerts (#146598) 2023-01-05 15:49:40 +01:00
kbn-peggy Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-peggy-loader Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-performance-testing-dataset-extractor [performance] use journey own ftr config to run scalability test (#152596) 2023-03-07 13:20:21 +01:00
kbn-picomatcher Implement package linter (#148496) 2023-01-09 16:49:29 -07:00
kbn-plugin-generator fix(NA): external plugins development flow with the new modern package plugins in place (#153562) 2023-04-06 18:00:24 +01:00
kbn-plugin-helpers fix(NA): external plugins development flow with the new modern package plugins in place (#153562) 2023-04-06 18:00:24 +01:00
kbn-react-field [Discover] Drag & drop for adding columns to the table (#153538) 2023-04-19 19:17:54 +02:00
kbn-repo-file-maps [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-repo-info Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-repo-linter Implement package linter (#148496) 2023-01-09 16:49:29 -07:00
kbn-repo-packages fix(NA): using repo root scope when validating package manifests (#151765) 2023-02-23 18:45:20 +00:00
kbn-repo-path [packages] prevent and remove basename collisions for js/ts code (#148835) 2023-01-12 12:29:30 -07:00
kbn-repo-source-classifier [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-repo-source-classifier-cli [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-reporting/common [Reporting] Generate CSV Package (#151801) 2023-04-13 10:27:35 -07:00
kbn-rison [Security Solution] Global query string functionality improvements (#147218) 2023-01-05 18:02:12 +01:00
kbn-rule-data-utils [Security Solution][Investigations] - Add kibana.alert.url (#155069) 2023-04-25 10:51:59 -04:00
kbn-safer-lodash-set Fix eslint rule for restricting certain lodash imports (#151023) 2023-02-16 08:35:09 -07:00
kbn-saved-objects-settings [Content Management] Remove dep from content_management -> saved_object_finder (#155013) 2023-04-17 16:25:58 +02:00
kbn-securitysolution-autocomplete [Security Solution][Exceptions] - Fix empty selection showing for exception item field selection (#155221) 2023-04-20 11:24:26 -07:00
kbn-securitysolution-ecs [Session View] Fixes to slow process event queries + xterm.js updated. (#155326) 2023-04-25 09:25:01 -07:00
kbn-securitysolution-es-utils [Response Ops][Alerting] Enable framework alerts as data by default (#154076) 2023-04-04 12:05:14 -07:00
kbn-securitysolution-exception-list-components [Security Solution][Exceptions] - Add exception list duplication options with and without expired items (#154991) 2023-04-21 16:01:43 -07:00
kbn-securitysolution-grouping [Security Solution] Multi level grouping for alerts table (#152862) 2023-04-24 07:01:05 -06:00
kbn-securitysolution-hook-utils Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-securitysolution-io-ts-alerting-types [RAM][SECURITYSOLUTION][ALERTS] - Integrate Alert summary inside of security solution rule page (#154990) 2023-04-23 10:53:48 +02:00
kbn-securitysolution-io-ts-list-types [Security Solution][Exceptions] - Add exception list duplication options with and without expired items (#154991) 2023-04-21 16:01:43 -07:00
kbn-securitysolution-io-ts-types [Security Solution][Platform] - Add connectors to import/export API (#148703) 2023-02-06 16:47:22 +00:00
kbn-securitysolution-io-ts-utils Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-securitysolution-list-api [Security Solution][Exceptions] - Add exception list duplication options with and without expired items (#154991) 2023-04-21 16:01:43 -07:00
kbn-securitysolution-list-constants Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-securitysolution-list-hooks [Security Solution][Exceptions] - Add exception list duplication options with and without expired items (#154991) 2023-04-21 16:01:43 -07:00
kbn-securitysolution-list-utils [Security Solution][Exceptions] - Fix exception operator logic when mapping conflict (#155071) 2023-04-17 17:05:55 -04:00
kbn-securitysolution-rules Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-securitysolution-t-grid Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-securitysolution-utils chore(NA): upgrades uuid to v9.0.0 (#149135) 2023-01-19 19:48:07 +00:00
kbn-server-http-tools chore(NA): upgrades uuid to v9.0.0 (#149135) 2023-01-19 19:48:07 +00:00
kbn-server-route-repository Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-set-map [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-shared-svg Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-shared-ux-utility [codeowners] rename global experience to @elastic/appex-sharedux 2023-01-18 10:02:49 -07:00
kbn-slo-schema chore(slo): require customkql timestamp field (#154654) 2023-04-11 08:31:53 -04:00
kbn-some-dev-log Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-sort-package-json [sort-package-json] always ensure 2-space indent is used 2023-01-10 10:39:48 -07:00
kbn-spec-to-console [Console] Update autocomplete definitions (#153098) 2023-03-22 14:50:38 +00:00
kbn-std Config loader: remove unecessary properties (#154902) 2023-04-13 11:16:51 -05:00
kbn-stdio-dev-helpers Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-storybook Upgrade vega dependency (5.22.15.23.0). (#152541) (#152700) 2023-03-06 16:00:26 +01:00
kbn-telemetry-tools [Telemetry] Fix telemetry-tools TS parser for packages (#149819) 2023-01-31 04:09:09 +03:00
kbn-test [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-test-jest-helpers [Shared UX] Adoption of Shared UX Route component (#150357) 2023-02-14 19:25:04 +00:00
kbn-test-subj-selector Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-timelion-grammar Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-tinymath [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-tooling-log Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-ts-projects Remove Playwright e2e test from Observability (#153934) 2023-03-29 17:01:35 +02:00
kbn-ts-type-check-cli [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-typed-react-router-config [APM] Migrate tx latency chart and group stats to rollups/service metrics (#153162) 2023-03-23 11:30:20 +01:00
kbn-ui-actions-browser create @kbn/ui-actions-browser package (#149202) 2023-01-19 18:28:07 +01:00
kbn-ui-framework Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-ui-shared-deps-npm [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-ui-shared-deps-src [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-ui-theme Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-url-state [Security Solution] Store expandable flyout state in the url (#154703) 2023-04-21 15:45:37 -05:00
kbn-user-profile-components Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-utility-types [Versioned HTTP] Add response runtime and type-level validation (#153011) 2023-03-13 10:54:42 -03:00
kbn-utility-types-jest [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-utils Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-validate-next-docs-cli [validate-next-docs] declare how github urls are determined 2023-02-10 10:54:20 -06:00
kbn-web-worker-stub Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-whereis-pkg-cli [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-yarn-lock-validator [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
shared-ux [Shared UX] Clean up toolbar styles (#155667) 2023-04-24 18:54:41 -07:00
README.md create @kbn/ui-actions-browser package (#149202) 2023-01-19 18:28:07 +01:00

Kibana-related packages

This folder contains packages that are intended for use in Kibana and Kibana plugins.

tl;dr:

  • Don't publish to npm registry
  • Always use the @kbn namespace
  • Always set "private": true in package.json

Using these packages

We no longer publish these packages to the npm registry. Now, instead of specifying a version when including these packages, we rely on yarn workspaces, which sets up a symlink to the package.

For example if you want to use the @kbn/i18n package in Kibana itself, you can specify the dependency like this:

"@kbn/i18n": "1.0.0"

However, if you want to use this from a Kibana plugin, you need to use a link: dependency and account for the relative location of the Kibana repo, so it would instead be:

"@kbn/i18n": "link:../../kibana/packages/kbn-i18n"

then run yarn kbn bootstrap from the plugin directory.

Creating a new package

Run the following command from the root of the Kibana repo:

node scripts/generate package @kbn/<PACKAGE_NAME> --web --owner @elastic/<TEAM_NAME>

Unit tests for a package

Currently there is only one tool being used in order to test packages which is Jest. Below we will explain how it should be done.

Jest

A package should follow the pattern of having .test.js files as siblings of the source code files, and these run by Jest.

A package using the .test.js naming convention will have those tests automatically picked up by Jest and run by the unit test runner, currently mapped to the Kibana test script in the root package.json.

  • yarn test runs all unit tests.
  • yarn jest runs all Jest tests in Kibana.

In order for the plugin or package to use Jest, a jest.config.js file must be present in it's root. However, there are safeguards for this in CI should a test file be added without a corresponding config file.


Each package can also specify its own test script in the package's package.json, for cases where you'd prefer to run the tests from the local package directory.