diff --git a/.buildkite/scripts/steps/serverless/build_and_deploy.sh b/.buildkite/scripts/steps/serverless/build_and_deploy.sh index 44529c6dba5f5..8553cb57fb700 100644 --- a/.buildkite/scripts/steps/serverless/build_and_deploy.sh +++ b/.buildkite/scripts/steps/serverless/build_and_deploy.sh @@ -22,6 +22,7 @@ deploy() { esac PROJECT_NAME="kibana-pr-$BUILDKITE_PULL_REQUEST-$PROJECT_TYPE" + VAULT_KEY_NAME="$PROJECT_NAME" is_pr_with_label "ci:project-persist-deployment" && PROJECT_NAME="keep_$PROJECT_NAME" PROJECT_CREATE_CONFIGURATION='{ "name": "'"$PROJECT_NAME"'", @@ -81,9 +82,9 @@ deploy() { # TODO: remove after https://github.com/elastic/kibana-operations/issues/15 is done if [[ "$IS_LEGACY_VAULT_ADDR" == "true" ]]; then - vault_set "cloud-deploy/$PROJECT_NAME" username="$PROJECT_USERNAME" password="$PROJECT_PASSWORD" id="$PROJECT_ID" + vault_set "cloud-deploy/$VAULT_KEY_NAME" username="$PROJECT_USERNAME" password="$PROJECT_PASSWORD" id="$PROJECT_ID" else - vault_kv_set "cloud-deploy/$PROJECT_NAME" username="$PROJECT_USERNAME" password="$PROJECT_PASSWORD" id="$PROJECT_ID" + vault_kv_set "cloud-deploy/$VAULT_KEY_NAME" username="$PROJECT_USERNAME" password="$PROJECT_PASSWORD" id="$PROJECT_ID" fi else @@ -101,9 +102,9 @@ deploy() { # TODO: remove after https://github.com/elastic/kibana-operations/issues/15 is done if [[ "$IS_LEGACY_VAULT_ADDR" == "true" ]]; then - VAULT_READ_COMMAND="vault read $VAULT_PATH_PREFIX/cloud-deploy/$PROJECT_NAME" + VAULT_READ_COMMAND="vault read $VAULT_PATH_PREFIX/cloud-deploy/$VAULT_KEY_NAME" else - VAULT_READ_COMMAND="vault kv get $VAULT_KV_PREFIX/cloud-deploy/$PROJECT_NAME" + VAULT_READ_COMMAND="vault kv get $VAULT_KV_PREFIX/cloud-deploy/$VAULT_KEY_NAME" fi cat << EOF | buildkite-agent annotate --style "info" --context "project-$PROJECT_TYPE" diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index a3a2d11db16ce..5f6dc7c05c43e 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'actions'] --- import actionsObj from './actions.devdocs.json'; diff --git a/api_docs/advanced_settings.mdx b/api_docs/advanced_settings.mdx index bea8239760477..4402bd69c6fba 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings'] --- import advancedSettingsObj from './advanced_settings.devdocs.json'; diff --git a/api_docs/ai_assistant_management_observability.mdx b/api_docs/ai_assistant_management_observability.mdx index 6ed0ab3b5bcee..4769060e3019d 100644 --- a/api_docs/ai_assistant_management_observability.mdx +++ b/api_docs/ai_assistant_management_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiAssistantManagementObservability title: "aiAssistantManagementObservability" image: https://source.unsplash.com/400x175/?github description: API docs for the aiAssistantManagementObservability plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiAssistantManagementObservability'] --- import aiAssistantManagementObservabilityObj from './ai_assistant_management_observability.devdocs.json'; diff --git a/api_docs/ai_assistant_management_selection.mdx b/api_docs/ai_assistant_management_selection.mdx index 378e1a94de7dd..71aa42c7e711b 100644 --- a/api_docs/ai_assistant_management_selection.mdx +++ b/api_docs/ai_assistant_management_selection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiAssistantManagementSelection title: "aiAssistantManagementSelection" image: https://source.unsplash.com/400x175/?github description: API docs for the aiAssistantManagementSelection plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiAssistantManagementSelection'] --- import aiAssistantManagementSelectionObj from './ai_assistant_management_selection.devdocs.json'; diff --git a/api_docs/aiops.mdx b/api_docs/aiops.mdx index f58768ee6e509..dfb27eb127834 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops'] --- import aiopsObj from './aiops.devdocs.json'; diff --git a/api_docs/alerting.devdocs.json b/api_docs/alerting.devdocs.json index 742db75b9e834..3c334cabd2e1f 100644 --- a/api_docs/alerting.devdocs.json +++ b/api_docs/alerting.devdocs.json @@ -3567,6 +3567,10 @@ "plugin": "infra", "path": "x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts" }, + { + "plugin": "infra", + "path": "x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts" + }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/route.ts" diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index db679b6b7619b..e4189ce099b9c 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index 5a3635353ce60..fa48e2da7adda 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/apm_data_access.mdx b/api_docs/apm_data_access.mdx index e2d89a3fc7b5f..4fe87feca67cd 100644 --- a/api_docs/apm_data_access.mdx +++ b/api_docs/apm_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apmDataAccess title: "apmDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the apmDataAccess plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apmDataAccess'] --- import apmDataAccessObj from './apm_data_access.devdocs.json'; diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx index b4108abaf8902..c29f73b66c7fc 100644 --- a/api_docs/asset_manager.mdx +++ b/api_docs/asset_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager title: "assetManager" image: https://source.unsplash.com/400x175/?github description: API docs for the assetManager plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager'] --- import assetManagerObj from './asset_manager.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index 0e6c19768441a..d8df75d2d03b3 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'banners'] --- import bannersObj from './banners.devdocs.json'; diff --git a/api_docs/bfetch.mdx b/api_docs/bfetch.mdx index e4cf1d7fd4536..b4c37b73176b2 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'bfetch'] --- import bfetchObj from './bfetch.devdocs.json'; diff --git a/api_docs/canvas.mdx b/api_docs/canvas.mdx index b45d4330e5eea..9c785540bc5f8 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index ffcdf009b695c..f76f34a96b8ee 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 8f8ec188afc17..2c8b350d5993c 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts'] --- import chartsObj from './charts.devdocs.json'; diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx index b77e1ceddd8ff..d0d838291a56f 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index 9edb1c6a3e853..1acf9bfd17dae 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index f88ef3c8d8fe7..b69c2da11ff4d 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index 3c95dd2d59330..b9b79bf03e4e8 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudExperiments'] --- import cloudExperimentsObj from './cloud_experiments.devdocs.json'; diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx index d3836057107ea..b0b4536c7e8a7 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture'] --- import cloudSecurityPostureObj from './cloud_security_posture.devdocs.json'; diff --git a/api_docs/console.mdx b/api_docs/console.mdx index 3ccc9dd4f1915..1f364746cac2b 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index 744a98f052b99..a1a55f2bf1d55 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; diff --git a/api_docs/controls.devdocs.json b/api_docs/controls.devdocs.json index 4f53974a1a4b3..e837613960147 100644 --- a/api_docs/controls.devdocs.json +++ b/api_docs/controls.devdocs.json @@ -1212,7 +1212,15 @@ "section": "def-public.ControlOutput", "text": "ControlOutput" }, - ">, unknown>, partial: Partial | undefined, otherPanels: ", + ">, ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.FinderAttributes", + "text": "FinderAttributes" + }, + ">, partial: Partial | undefined, otherPanels: ", { "pluginId": "controls", "scope": "common", @@ -1285,7 +1293,15 @@ "section": "def-public.ControlOutput", "text": "ControlOutput" }, - ">, unknown>" + ">, ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.FinderAttributes", + "text": "FinderAttributes" + }, + ">" ], "path": "src/plugins/controls/public/control_group/embeddable/control_group_container.tsx", "deprecated": false, @@ -1549,7 +1565,15 @@ "section": "def-public.EmbeddableOutput", "text": "EmbeddableOutput" }, - ", any>, unknown>" + ", any>, ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.FinderAttributes", + "text": "FinderAttributes" + }, + ">" ], "path": "src/plugins/controls/public/control_group/embeddable/control_group_container_factory.ts", "deprecated": false, @@ -2482,7 +2506,15 @@ "section": "def-public.EmbeddableOutput", "text": "EmbeddableOutput" }, - ", any>, unknown>,", + ", any>, ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.FinderAttributes", + "text": "FinderAttributes" + }, + ">,", { "pluginId": "controls", "scope": "public", @@ -3604,7 +3636,15 @@ "section": "def-public.EmbeddableOutput", "text": "EmbeddableOutput" }, - ", any>, unknown>,", + ", any>, ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.FinderAttributes", + "text": "FinderAttributes" + }, + ">,", { "pluginId": "controls", "scope": "public", @@ -4954,7 +4994,15 @@ "section": "def-public.EmbeddableOutput", "text": "EmbeddableOutput" }, - ", any>, unknown>, \"type\">" + ", any>, ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.FinderAttributes", + "text": "FinderAttributes" + }, + ">, \"type\">" ], "path": "src/plugins/controls/public/types.ts", "deprecated": false, @@ -5642,7 +5690,15 @@ "section": "def-public.ControlOutput", "text": "ControlOutput" }, - ">, unknown>" + ">, ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.FinderAttributes", + "text": "FinderAttributes" + }, + ">" ], "path": "src/plugins/controls/public/types.ts", "deprecated": false, diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 9656b12c69678..fe85017b36074 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index aee7970e15dab..d0069e6ddb4a8 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] --- import customIntegrationsObj from './custom_integrations.devdocs.json'; diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx index 1090e0068e04d..668de16662623 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard'] --- import dashboardObj from './dashboard.devdocs.json'; diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx index d72e1d3bc356d..9c0d05e235f30 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced'] --- import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json'; diff --git a/api_docs/data.mdx b/api_docs/data.mdx index 9266f3327b7a7..139a79232da66 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.devdocs.json'; diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index ce00b915e9df0..e59833a6865f3 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index cc31aa5ee8cb5..e55f115ac7973 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search'] --- import dataSearchObj from './data_search.devdocs.json'; diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx index 9f7418d799e7c..6c11cec34e46d 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewEditor'] --- import dataViewEditorObj from './data_view_editor.devdocs.json'; diff --git a/api_docs/data_view_field_editor.mdx b/api_docs/data_view_field_editor.mdx index 93e8c82b736e4..e751be5c983fd 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewFieldEditor'] --- import dataViewFieldEditorObj from './data_view_field_editor.devdocs.json'; diff --git a/api_docs/data_view_management.mdx b/api_docs/data_view_management.mdx index c8101b25de25f..f7a7578cb2003 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] --- import dataViewManagementObj from './data_view_management.devdocs.json'; diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index 780a86cc3fe73..c95a54233c3a4 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViews'] --- import dataViewsObj from './data_views.devdocs.json'; diff --git a/api_docs/data_visualizer.mdx b/api_docs/data_visualizer.mdx index f1a45ca7f8223..6d60987990d0e 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer'] --- import dataVisualizerObj from './data_visualizer.devdocs.json'; diff --git a/api_docs/dataset_quality.mdx b/api_docs/dataset_quality.mdx index d558775c2a532..42ca56772e88d 100644 --- a/api_docs/dataset_quality.mdx +++ b/api_docs/dataset_quality.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/datasetQuality title: "datasetQuality" image: https://source.unsplash.com/400x175/?github description: API docs for the datasetQuality plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'datasetQuality'] --- import datasetQualityObj from './dataset_quality.devdocs.json'; diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx index da609ead4dc7c..54a5c77bf65a7 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index 44eb9adce34f4..3b31b26792776 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -997,7 +997,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [inventory_metric_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts#:~:text=alertFactory) | - | +| | [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [inventory_metric_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts#:~:text=alertFactory), [inventory_metric_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts#:~:text=alertFactory) | - | | | [common_providers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/public/apps/common_providers.tsx#:~:text=KibanaThemeProvider), [common_providers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/public/apps/common_providers.tsx#:~:text=KibanaThemeProvider), [common_providers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/public/apps/common_providers.tsx#:~:text=KibanaThemeProvider) | - | | | [saved_object_type.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/server/lib/sources/saved_object_type.ts#:~:text=migrations) | - | @@ -1117,7 +1117,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [log_view_saved_object.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/logs_shared/server/saved_objects/log_view/log_view_saved_object.ts#:~:text=migrations) | - | +| | [log_view_saved_object.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/logs_shared/server/saved_objects/log_view/log_view_saved_object.ts#:~:text=migrations) | - | @@ -1734,4 +1734,4 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [shared_imports.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/application/shared_imports.ts#:~:text=KibanaThemeProvider), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/application/index.tsx#:~:text=KibanaThemeProvider), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/application/index.tsx#:~:text=KibanaThemeProvider), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/application/index.tsx#:~:text=KibanaThemeProvider) | - | -| | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/plugin.ts#:~:text=license%24) | 8.8.0 | +| | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/watcher/public/plugin.ts#:~:text=license%24) | 8.8.0 | \ No newline at end of file diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index c4cee6f7ce44f..053ab00623b95 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index 03eea393a2bdd..d7bf717b3e55a 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'devTools'] --- import devToolsObj from './dev_tools.devdocs.json'; diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index 6ef2386ffadc7..7df3e434aa208 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discover'] --- import discoverObj from './discover.devdocs.json'; diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx index 92ec5d5e79331..ad60e0a3533cc 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index df3ca5285a427..c618a5867c8d2 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/elastic_assistant.mdx b/api_docs/elastic_assistant.mdx index 025d9f6005a97..02eacc83d87f3 100644 --- a/api_docs/elastic_assistant.mdx +++ b/api_docs/elastic_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/elasticAssistant title: "elasticAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the elasticAssistant plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'elasticAssistant'] --- import elasticAssistantObj from './elastic_assistant.devdocs.json'; diff --git a/api_docs/embeddable.devdocs.json b/api_docs/embeddable.devdocs.json index 2d4f65109a84c..fc94b793f1390 100644 --- a/api_docs/embeddable.devdocs.json +++ b/api_docs/embeddable.devdocs.json @@ -145,7 +145,15 @@ "section": "def-public.EmbeddableOutput", "text": "EmbeddableOutput" }, - ", any>, unknown>) | undefined" + ", any>, ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.FinderAttributes", + "text": "FinderAttributes" + }, + ">) | undefined" ], "path": "src/plugins/embeddable/public/lib/attribute_service/attribute_service.tsx", "deprecated": false, @@ -618,7 +626,15 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - " | undefined" + " | undefined" ], "path": "src/plugins/embeddable/public/lib/containers/container.ts", "deprecated": false, @@ -1592,7 +1608,15 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - ", partial?: Partial, attributes?: unknown) => { newPanel: ", + ", partial?: Partial, attributes?: unknown) => { newPanel: ", { "pluginId": "embeddable", "scope": "common", @@ -1621,7 +1645,15 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - "" + "" ], "path": "src/plugins/embeddable/public/lib/containers/container.ts", "deprecated": false, @@ -7609,7 +7641,15 @@ "section": "def-public.IEmbeddable", "text": "IEmbeddable" }, - ", T = ", + ", T extends ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.FinderAttributes", + "text": "FinderAttributes" + }, + " = ", { "pluginId": "@kbn/core-saved-objects-common", "scope": "common", @@ -14310,7 +14350,15 @@ "section": "def-public.EmbeddableFactoryDefinition", "text": "EmbeddableFactoryDefinition" }, - ") => () => ", + ") => () => ", { "pluginId": "embeddable", "scope": "public", @@ -14318,7 +14366,15 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - "" + "" ], "path": "src/plugins/embeddable/public/plugin.tsx", "deprecated": false, @@ -14354,7 +14410,15 @@ "section": "def-public.EmbeddableFactoryDefinition", "text": "EmbeddableFactoryDefinition" }, - "" + "" ], "path": "src/plugins/embeddable/public/plugin.tsx", "deprecated": false, @@ -14566,7 +14630,15 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - " | undefined" + " | undefined" ], "path": "src/plugins/embeddable/public/plugin.tsx", "deprecated": false, @@ -14646,7 +14718,15 @@ "section": "def-public.EmbeddableOutput", "text": "EmbeddableOutput" }, - ", any>, unknown>>" + ", any>, ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.FinderAttributes", + "text": "FinderAttributes" + }, + ">>" ], "path": "src/plugins/embeddable/public/plugin.tsx", "deprecated": false, diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index f8fd961f423e5..0c6ba81ca8ea7 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable'] --- import embeddableObj from './embeddable.devdocs.json'; diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx index 1050949dde823..1eaa22a659fab 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddableEnhanced'] --- import embeddableEnhancedObj from './embeddable_enhanced.devdocs.json'; diff --git a/api_docs/encrypted_saved_objects.mdx b/api_docs/encrypted_saved_objects.mdx index 0ada21d289775..dc261fb1c1f0a 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'encryptedSavedObjects'] --- import encryptedSavedObjectsObj from './encrypted_saved_objects.devdocs.json'; diff --git a/api_docs/enterprise_search.mdx b/api_docs/enterprise_search.mdx index da17de0c2ec54..396d28d787a86 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch'] --- import enterpriseSearchObj from './enterprise_search.devdocs.json'; diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx index bb8b63560a963..6321716bbd0ac 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared'] --- import esUiSharedObj from './es_ui_shared.devdocs.json'; diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx index fb0ea48dbdc96..0c4f91fef79be 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation'] --- import eventAnnotationObj from './event_annotation.devdocs.json'; diff --git a/api_docs/event_annotation_listing.mdx b/api_docs/event_annotation_listing.mdx index 3acecc9f4f59a..e698a940d1bc7 100644 --- a/api_docs/event_annotation_listing.mdx +++ b/api_docs/event_annotation_listing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotationListing title: "eventAnnotationListing" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotationListing plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotationListing'] --- import eventAnnotationListingObj from './event_annotation_listing.devdocs.json'; diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index ca366cf4ed6c9..3d3ca347c0b3c 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx index cd7d6aa2f8958..8ae131da17453 100644 --- a/api_docs/exploratory_view.mdx +++ b/api_docs/exploratory_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView title: "exploratoryView" image: https://source.unsplash.com/400x175/?github description: API docs for the exploratoryView plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'exploratoryView'] --- import exploratoryViewObj from './exploratory_view.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index e433ad4c9b2d2..7183f2091b02f 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError'] --- import expressionErrorObj from './expression_error.devdocs.json'; diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx index ef7be4110517f..bd3c4605a7337 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge'] --- import expressionGaugeObj from './expression_gauge.devdocs.json'; diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx index 3778a0d6543a5..f2a444877ad82 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionHeatmap'] --- import expressionHeatmapObj from './expression_heatmap.devdocs.json'; diff --git a/api_docs/expression_image.mdx b/api_docs/expression_image.mdx index a1e8fffcd4cd8..f86d939293cf6 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionImage'] --- import expressionImageObj from './expression_image.devdocs.json'; diff --git a/api_docs/expression_legacy_metric_vis.mdx b/api_docs/expression_legacy_metric_vis.mdx index 6d5f9b03433af..b592c9a0e91a2 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionLegacyMetricVis'] --- import expressionLegacyMetricVisObj from './expression_legacy_metric_vis.devdocs.json'; diff --git a/api_docs/expression_metric.mdx b/api_docs/expression_metric.mdx index d1a75b98e0a9d..255440c21ae56 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric'] --- import expressionMetricObj from './expression_metric.devdocs.json'; diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index d40c1410ec887..274dfdb04edee 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] --- import expressionMetricVisObj from './expression_metric_vis.devdocs.json'; diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index c771913afb252..5ec304bcac3f3 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index 3f90539375bcd..30ba07997cdc5 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRepeatImage'] --- import expressionRepeatImageObj from './expression_repeat_image.devdocs.json'; diff --git a/api_docs/expression_reveal_image.mdx b/api_docs/expression_reveal_image.mdx index 16be841961045..6573d5908fd6b 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRevealImage'] --- import expressionRevealImageObj from './expression_reveal_image.devdocs.json'; diff --git a/api_docs/expression_shape.mdx b/api_docs/expression_shape.mdx index 4de8eee519d8c..37ad41f3535a4 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionShape'] --- import expressionShapeObj from './expression_shape.devdocs.json'; diff --git a/api_docs/expression_tagcloud.mdx b/api_docs/expression_tagcloud.mdx index 1c91af9c2db3b..51d8c4086bc7f 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud'] --- import expressionTagcloudObj from './expression_tagcloud.devdocs.json'; diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx index aa45e2064d855..74b1295cccbe1 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY'] --- import expressionXYObj from './expression_x_y.devdocs.json'; diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index eccf1d9e31cbc..5be48695539ed 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions'] --- import expressionsObj from './expressions.devdocs.json'; diff --git a/api_docs/features.mdx b/api_docs/features.mdx index 70e7c75f182fb..08faf102072de 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features'] --- import featuresObj from './features.devdocs.json'; diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx index 9bb49ca7bdf72..bd388032f4600 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats'] --- import fieldFormatsObj from './field_formats.devdocs.json'; diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx index dcbbf033b85a5..0740eefcd1078 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fileUpload'] --- import fileUploadObj from './file_upload.devdocs.json'; diff --git a/api_docs/files.mdx b/api_docs/files.mdx index 61baa6b96c17a..8ae239f765766 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files'] --- import filesObj from './files.devdocs.json'; diff --git a/api_docs/files_management.mdx b/api_docs/files_management.mdx index 1a6af8cfd2a41..60b7f0901c9be 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 14e7ab93c06de..dbb97f928dee2 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index 4c71f10a9e9bb..545c47bd898d7 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch'] --- import globalSearchObj from './global_search.devdocs.json'; diff --git a/api_docs/guided_onboarding.mdx b/api_docs/guided_onboarding.mdx index 77979876bb3ec..d6297412341f3 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding'] --- import guidedOnboardingObj from './guided_onboarding.devdocs.json'; diff --git a/api_docs/home.mdx b/api_docs/home.mdx index db45ebd0bae8f..2acb753c012e3 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx index 84a5229b481f2..811d120faa509 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable'] --- import imageEmbeddableObj from './image_embeddable.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index 1f75c73800d68..c1dda81cf4bf6 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement'] --- import indexLifecycleManagementObj from './index_lifecycle_management.devdocs.json'; diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx index d70c0dfcf9082..83ffce35ababb 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] --- import indexManagementObj from './index_management.devdocs.json'; diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index 2a108e9160f82..da43b75c4fecc 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra'] --- import infraObj from './infra.devdocs.json'; diff --git a/api_docs/ingest_pipelines.mdx b/api_docs/ingest_pipelines.mdx index faf17839b51eb..0d1ed8f41732e 100644 --- a/api_docs/ingest_pipelines.mdx +++ b/api_docs/ingest_pipelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ingestPipelines title: "ingestPipelines" image: https://source.unsplash.com/400x175/?github description: API docs for the ingestPipelines plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ingestPipelines'] --- import ingestPipelinesObj from './ingest_pipelines.devdocs.json'; diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx index aa8c07b137aaa..d96bc5eb4ea58 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector'] --- import inspectorObj from './inspector.devdocs.json'; diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx index 6e328e10322f4..69580f0bcab28 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup'] --- import interactiveSetupObj from './interactive_setup.devdocs.json'; diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx index 33f3a36e4d7c7..a257d811bc5ed 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ace'] --- import kbnAceObj from './kbn_ace.devdocs.json'; diff --git a/api_docs/kbn_actions_types.mdx b/api_docs/kbn_actions_types.mdx index edcee079ca646..b6be7bdc6c9cc 100644 --- a/api_docs/kbn_actions_types.mdx +++ b/api_docs/kbn_actions_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-actions-types title: "@kbn/actions-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/actions-types plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/actions-types'] --- import kbnActionsTypesObj from './kbn_actions_types.devdocs.json'; diff --git a/api_docs/kbn_aiops_components.mdx b/api_docs/kbn_aiops_components.mdx index 2d91f92c08b7f..edf2807f64082 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components'] --- import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json'; diff --git a/api_docs/kbn_aiops_utils.mdx b/api_docs/kbn_aiops_utils.mdx index 1feb2c2adb1fc..86fb5383dc6cc 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerting_api_integration_helpers.mdx b/api_docs/kbn_alerting_api_integration_helpers.mdx index bd343e44f67c1..c2489b9d1543f 100644 --- a/api_docs/kbn_alerting_api_integration_helpers.mdx +++ b/api_docs/kbn_alerting_api_integration_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-api-integration-helpers title: "@kbn/alerting-api-integration-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-api-integration-helpers plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-api-integration-helpers'] --- import kbnAlertingApiIntegrationHelpersObj from './kbn_alerting_api_integration_helpers.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index e0e89f3a07790..6d4cd45dfe69c 100644 --- a/api_docs/kbn_alerting_state_types.mdx +++ b/api_docs/kbn_alerting_state_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types title: "@kbn/alerting-state-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-state-types plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types'] --- import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json'; diff --git a/api_docs/kbn_alerting_types.mdx b/api_docs/kbn_alerting_types.mdx index 4bc81820752c2..d0fabf6911b3b 100644 --- a/api_docs/kbn_alerting_types.mdx +++ b/api_docs/kbn_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-types title: "@kbn/alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-types plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-types'] --- import kbnAlertingTypesObj from './kbn_alerting_types.devdocs.json'; diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index a68fe833ea8a1..47e774a75e16f 100644 --- a/api_docs/kbn_alerts_as_data_utils.mdx +++ b/api_docs/kbn_alerts_as_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils title: "@kbn/alerts-as-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-as-data-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index 99c661a45c42c..219cff4a0d44d 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index 257207a11b5a6..d8482f7bc3da3 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx index 5fa4468092fb9..5bc8dccf861d7 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-client'] --- import kbnAnalyticsClientObj from './kbn_analytics_client.devdocs.json'; diff --git a/api_docs/kbn_analytics_collection_utils.mdx b/api_docs/kbn_analytics_collection_utils.mdx index 3432fd3183505..0f55ae5ea8900 100644 --- a/api_docs/kbn_analytics_collection_utils.mdx +++ b/api_docs/kbn_analytics_collection_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-collection-utils title: "@kbn/analytics-collection-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-collection-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-collection-utils'] --- import kbnAnalyticsCollectionUtilsObj from './kbn_analytics_collection_utils.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx index 353cf1588aa69..e6ec1ea323de9 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-browser'] --- import kbnAnalyticsShippersElasticV3BrowserObj from './kbn_analytics_shippers_elastic_v3_browser.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx index 75346fe5462f4..fc1e8afce9a26 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-common'] --- import kbnAnalyticsShippersElasticV3CommonObj from './kbn_analytics_shippers_elastic_v3_common.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx index 0727d0d9d2e80..b8ced5cc7c346 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-server'] --- import kbnAnalyticsShippersElasticV3ServerObj from './kbn_analytics_shippers_elastic_v3_server.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_fullstory.mdx b/api_docs/kbn_analytics_shippers_fullstory.mdx index 2ff48333c7337..d03074437cf56 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index c907eb1ddbc1d..0955c6950dd39 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader'] --- import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx index 0ee5cbb2c5a2d..2953ccdec3420 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index 70eeead0f96b1..60ad150252d4f 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index 7ea2f7cf368d0..a9c09b87b9791 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils'] --- import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json'; diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx index 4cf000247feea..a49cedf937600 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config'] --- import kbnAxeConfigObj from './kbn_axe_config.devdocs.json'; diff --git a/api_docs/kbn_bfetch_error.mdx b/api_docs/kbn_bfetch_error.mdx index e8e34bf5b72ef..e3fceadd1733a 100644 --- a/api_docs/kbn_bfetch_error.mdx +++ b/api_docs/kbn_bfetch_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-bfetch-error title: "@kbn/bfetch-error" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/bfetch-error plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/bfetch-error'] --- import kbnBfetchErrorObj from './kbn_bfetch_error.devdocs.json'; diff --git a/api_docs/kbn_calculate_auto.mdx b/api_docs/kbn_calculate_auto.mdx index 82eb1bd1a1431..1e26c49a1ef75 100644 --- a/api_docs/kbn_calculate_auto.mdx +++ b/api_docs/kbn_calculate_auto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-auto title: "@kbn/calculate-auto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/calculate-auto plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/calculate-auto'] --- import kbnCalculateAutoObj from './kbn_calculate_auto.devdocs.json'; diff --git a/api_docs/kbn_calculate_width_from_char_count.mdx b/api_docs/kbn_calculate_width_from_char_count.mdx index 86b4ddf428683..25e2aa653a920 100644 --- a/api_docs/kbn_calculate_width_from_char_count.mdx +++ b/api_docs/kbn_calculate_width_from_char_count.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-width-from-char-count title: "@kbn/calculate-width-from-char-count" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/calculate-width-from-char-count plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/calculate-width-from-char-count'] --- import kbnCalculateWidthFromCharCountObj from './kbn_calculate_width_from_char_count.devdocs.json'; diff --git a/api_docs/kbn_cases_components.mdx b/api_docs/kbn_cases_components.mdx index 3728a4a5748fe..1502b12fe1c0f 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index f73837cbc3da4..e8ca3f26ede0a 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index 8c087f8c58908..d88bf001aa2d4 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index d2d77c4e00995..82689043dc0ea 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-icons'] --- import kbnChartIconsObj from './kbn_chart_icons.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_core.mdx b/api_docs/kbn_ci_stats_core.mdx index 0dd3c1be0a97d..f268fee857861 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-core'] --- import kbnCiStatsCoreObj from './kbn_ci_stats_core.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_performance_metrics.mdx b/api_docs/kbn_ci_stats_performance_metrics.mdx index a8f0198a544d5..95227e48ad5d8 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-performance-metrics'] --- import kbnCiStatsPerformanceMetricsObj from './kbn_ci_stats_performance_metrics.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_reporter.mdx b/api_docs/kbn_ci_stats_reporter.mdx index 5f3280be25c86..895cce24c9a54 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-reporter'] --- import kbnCiStatsReporterObj from './kbn_ci_stats_reporter.devdocs.json'; diff --git a/api_docs/kbn_cli_dev_mode.mdx b/api_docs/kbn_cli_dev_mode.mdx index 012decf132c58..586bc30b4ca24 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index 9fe73d325c2f5..efc61355d8b8a 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mock.mdx b/api_docs/kbn_code_editor_mock.mdx index 31a1d819cb365..b5d7f26cdb3ef 100644 --- a/api_docs/kbn_code_editor_mock.mdx +++ b/api_docs/kbn_code_editor_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mock title: "@kbn/code-editor-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mock plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mock'] --- import kbnCodeEditorMockObj from './kbn_code_editor_mock.devdocs.json'; diff --git a/api_docs/kbn_code_owners.mdx b/api_docs/kbn_code_owners.mdx index 304847f821026..8a210c6cbcf8f 100644 --- a/api_docs/kbn_code_owners.mdx +++ b/api_docs/kbn_code_owners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-owners title: "@kbn/code-owners" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-owners plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-owners'] --- import kbnCodeOwnersObj from './kbn_code_owners.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index f22b21c7c49ea..d06ae56e158b7 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/coloring'] --- import kbnColoringObj from './kbn_coloring.devdocs.json'; diff --git a/api_docs/kbn_config.mdx b/api_docs/kbn_config.mdx index 164ff88378d19..ac89e0d4285bc 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config'] --- import kbnConfigObj from './kbn_config.devdocs.json'; diff --git a/api_docs/kbn_config_mocks.mdx b/api_docs/kbn_config_mocks.mdx index 320ad84e9410d..0cd356db04869 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks'] --- import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx index 31d3a8e3ca5d7..1424c5b7f6cdf 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index 2772a612f316b..f64d1a3cab2c3 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_tabbed_table_list_view.mdx b/api_docs/kbn_content_management_tabbed_table_list_view.mdx index 7a04e81242487..e6d6e77e99f89 100644 --- a/api_docs/kbn_content_management_tabbed_table_list_view.mdx +++ b/api_docs/kbn_content_management_tabbed_table_list_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-tabbed-table-list-view title: "@kbn/content-management-tabbed-table-list-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-tabbed-table-list-view plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-tabbed-table-list-view'] --- import kbnContentManagementTabbedTableListViewObj from './kbn_content_management_tabbed_table_list_view.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view.mdx b/api_docs/kbn_content_management_table_list_view.mdx index 585f61b14b2d7..bcb52581d89ed 100644 --- a/api_docs/kbn_content_management_table_list_view.mdx +++ b/api_docs/kbn_content_management_table_list_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view title: "@kbn/content-management-table-list-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view'] --- import kbnContentManagementTableListViewObj from './kbn_content_management_table_list_view.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view_common.mdx b/api_docs/kbn_content_management_table_list_view_common.mdx index 1a32321bc218d..9124d51efd07a 100644 --- a/api_docs/kbn_content_management_table_list_view_common.mdx +++ b/api_docs/kbn_content_management_table_list_view_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-common title: "@kbn/content-management-table-list-view-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-common'] --- import kbnContentManagementTableListViewCommonObj from './kbn_content_management_table_list_view_common.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view_table.mdx b/api_docs/kbn_content_management_table_list_view_table.mdx index df3ea8e511ae6..2d71efc769ac1 100644 --- a/api_docs/kbn_content_management_table_list_view_table.mdx +++ b/api_docs/kbn_content_management_table_list_view_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-table title: "@kbn/content-management-table-list-view-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view-table plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-table'] --- import kbnContentManagementTableListViewTableObj from './kbn_content_management_table_list_view_table.devdocs.json'; diff --git a/api_docs/kbn_content_management_utils.mdx b/api_docs/kbn_content_management_utils.mdx index 97eb90171f69d..abcf9e8647017 100644 --- a/api_docs/kbn_content_management_utils.mdx +++ b/api_docs/kbn_content_management_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-utils title: "@kbn/content-management-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-utils'] --- import kbnContentManagementUtilsObj from './kbn_content_management_utils.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx index 476c8ef187d22..799bd3091d9e9 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser'] --- import kbnCoreAnalyticsBrowserObj from './kbn_core_analytics_browser.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_internal.mdx b/api_docs/kbn_core_analytics_browser_internal.mdx index 13c0bac0294ee..d16b5e846ef55 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-internal'] --- import kbnCoreAnalyticsBrowserInternalObj from './kbn_core_analytics_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_mocks.mdx b/api_docs/kbn_core_analytics_browser_mocks.mdx index 09f919869f109..14d756ead2df4 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-mocks'] --- import kbnCoreAnalyticsBrowserMocksObj from './kbn_core_analytics_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server.mdx b/api_docs/kbn_core_analytics_server.mdx index f8ecfaaea2f1d..681738aa1f05a 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server'] --- import kbnCoreAnalyticsServerObj from './kbn_core_analytics_server.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_internal.mdx b/api_docs/kbn_core_analytics_server_internal.mdx index f1d16e94909e0..70f25fd5e06a9 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-internal'] --- import kbnCoreAnalyticsServerInternalObj from './kbn_core_analytics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_mocks.mdx b/api_docs/kbn_core_analytics_server_mocks.mdx index 9452cb41ffbda..25446d271ff17 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-mocks'] --- import kbnCoreAnalyticsServerMocksObj from './kbn_core_analytics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser.mdx b/api_docs/kbn_core_application_browser.mdx index e9fb833f4f67a..9fac308c903c8 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser'] --- import kbnCoreApplicationBrowserObj from './kbn_core_application_browser.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_internal.mdx b/api_docs/kbn_core_application_browser_internal.mdx index 978ad99402a8c..4f45060c210ef 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-internal'] --- import kbnCoreApplicationBrowserInternalObj from './kbn_core_application_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_mocks.mdx b/api_docs/kbn_core_application_browser_mocks.mdx index 48de64664562e..291e6959ebcfd 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-mocks'] --- import kbnCoreApplicationBrowserMocksObj from './kbn_core_application_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_common.mdx b/api_docs/kbn_core_application_common.mdx index f74d1494d4c70..6efd0a9fe4f45 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-common'] --- import kbnCoreApplicationCommonObj from './kbn_core_application_common.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_internal.mdx b/api_docs/kbn_core_apps_browser_internal.mdx index b60b658556701..d6e9b78533259 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-internal'] --- import kbnCoreAppsBrowserInternalObj from './kbn_core_apps_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_mocks.mdx b/api_docs/kbn_core_apps_browser_mocks.mdx index 72b3010c5e89f..cb74d5c88687e 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-mocks'] --- import kbnCoreAppsBrowserMocksObj from './kbn_core_apps_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_apps_server_internal.mdx b/api_docs/kbn_core_apps_server_internal.mdx index ec89fdf8dfe69..b4e990ba98207 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-server-internal'] --- import kbnCoreAppsServerInternalObj from './kbn_core_apps_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx index d8c998caceef5..e0c8bc7d5712a 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-browser-mocks'] --- import kbnCoreBaseBrowserMocksObj from './kbn_core_base_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_base_common.mdx b/api_docs/kbn_core_base_common.mdx index 9509ba3181825..cc0639147fde7 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-common'] --- import kbnCoreBaseCommonObj from './kbn_core_base_common.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_internal.mdx b/api_docs/kbn_core_base_server_internal.mdx index 7ca99a43de92a..b542032f6aeda 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-internal'] --- import kbnCoreBaseServerInternalObj from './kbn_core_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_mocks.mdx b/api_docs/kbn_core_base_server_mocks.mdx index 1da76b2729138..e92ecb1f285b6 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-mocks'] --- import kbnCoreBaseServerMocksObj from './kbn_core_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_browser_mocks.mdx b/api_docs/kbn_core_capabilities_browser_mocks.mdx index 21ae286c8672b..1c11cea50622d 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-browser-mocks'] --- import kbnCoreCapabilitiesBrowserMocksObj from './kbn_core_capabilities_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_common.mdx b/api_docs/kbn_core_capabilities_common.mdx index efd804b260df1..c6ef3aa9f11ab 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-common'] --- import kbnCoreCapabilitiesCommonObj from './kbn_core_capabilities_common.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server.mdx b/api_docs/kbn_core_capabilities_server.mdx index 1968d98adbf3e..fc090339519a6 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server'] --- import kbnCoreCapabilitiesServerObj from './kbn_core_capabilities_server.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server_mocks.mdx b/api_docs/kbn_core_capabilities_server_mocks.mdx index ddda09299794f..41ee17ef0897f 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server-mocks'] --- import kbnCoreCapabilitiesServerMocksObj from './kbn_core_capabilities_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser.devdocs.json b/api_docs/kbn_core_chrome_browser.devdocs.json index f30b457616c71..a016432daa68d 100644 --- a/api_docs/kbn_core_chrome_browser.devdocs.json +++ b/api_docs/kbn_core_chrome_browser.devdocs.json @@ -3467,6 +3467,145 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.SolutionNavigationDefinition", + "type": "Interface", + "tags": [], + "label": "SolutionNavigationDefinition", + "description": [], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.SolutionNavigationDefinition.id", + "type": "string", + "tags": [], + "label": "id", + "description": [ + "Unique id for the solution navigation." + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.SolutionNavigationDefinition.title", + "type": "string", + "tags": [], + "label": "title", + "description": [ + "Title for the solution navigation." + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.SolutionNavigationDefinition.icon", + "type": "CompoundType", + "tags": [], + "label": "icon", + "description": [ + "Optional icon for the solution navigation." + ], + "signature": [ + "IconType", + " | undefined" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.SolutionNavigationDefinition.sideNavComponentGetter", + "type": "Function", + "tags": [], + "label": "sideNavComponentGetter", + "description": [], + "signature": [ + "(() => ", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.SideNavComponent", + "text": "SideNavComponent" + }, + ") | undefined" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.SolutionNavigationDefinition.homePage", + "type": "CompoundType", + "tags": [], + "label": "homePage", + "description": [ + "The page to navigate to when switching to this solution navigation." + ], + "signature": [ + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.AppDeepLinkId", + "text": "AppDeepLinkId" + }, + " | undefined" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.SolutionNavigationDefinitions", + "type": "Interface", + "tags": [], + "label": "SolutionNavigationDefinitions", + "description": [], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.SolutionNavigationDefinitions.Unnamed", + "type": "IndexSignature", + "tags": [], + "label": "[id: string]: SolutionNavigationDefinition", + "description": [], + "signature": [ + "[id: string]: ", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.SolutionNavigationDefinition", + "text": "SolutionNavigationDefinition" + } + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false } ], "enums": [], diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx index ffee88433cbbe..142daef73c1e7 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser'] --- import kbnCoreChromeBrowserObj from './kbn_core_chrome_browser.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sh | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 192 | 0 | 93 | 0 | +| 200 | 0 | 97 | 0 | ## Common diff --git a/api_docs/kbn_core_chrome_browser_mocks.mdx b/api_docs/kbn_core_chrome_browser_mocks.mdx index 3bff7a8537ce5..1c211fa05fde2 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser-mocks'] --- import kbnCoreChromeBrowserMocksObj from './kbn_core_chrome_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_config_server_internal.mdx b/api_docs/kbn_core_config_server_internal.mdx index 810e43e305a51..60be7b6474059 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx index dc886d9d6f59b..a178bae156118 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser'] --- import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx index 7975c820a31fe..2adf5156d47ce 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal'] --- import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx index ee28c3cd26200..1673c279262bc 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks'] --- import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx index bc35ad238be36..0d971ae36e10d 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common'] --- import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx index 92656d1ae4135..d07113b5f3efe 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server'] --- import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx index 8055cdefc938f..5a4d6a4058c44 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal'] --- import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx index 22644c755671c..4f2a4947a71d1 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks'] --- import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index 8eed73f5ba88a..b3009a646c75f 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser'] --- import kbnCoreDeprecationsBrowserObj from './kbn_core_deprecations_browser.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_internal.mdx b/api_docs/kbn_core_deprecations_browser_internal.mdx index 868664fe3bb5d..435cb3182f8ef 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-internal'] --- import kbnCoreDeprecationsBrowserInternalObj from './kbn_core_deprecations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_mocks.mdx b/api_docs/kbn_core_deprecations_browser_mocks.mdx index f0239239cbebf..7c89d6ec67e3d 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-mocks'] --- import kbnCoreDeprecationsBrowserMocksObj from './kbn_core_deprecations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_common.mdx b/api_docs/kbn_core_deprecations_common.mdx index bb47245b6c13a..5e236b3fbd236 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-common'] --- import kbnCoreDeprecationsCommonObj from './kbn_core_deprecations_common.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server.mdx b/api_docs/kbn_core_deprecations_server.mdx index 6f207c31c97e5..d10fc38fe57ac 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server'] --- import kbnCoreDeprecationsServerObj from './kbn_core_deprecations_server.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_internal.mdx b/api_docs/kbn_core_deprecations_server_internal.mdx index 139c1f8224ea7..8fd89fada21b5 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-internal'] --- import kbnCoreDeprecationsServerInternalObj from './kbn_core_deprecations_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_mocks.mdx b/api_docs/kbn_core_deprecations_server_mocks.mdx index 946508fae6502..13f9f2fef21ce 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-mocks'] --- import kbnCoreDeprecationsServerMocksObj from './kbn_core_deprecations_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser.mdx b/api_docs/kbn_core_doc_links_browser.mdx index 6152f10a10a90..d0e65fc486df7 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser'] --- import kbnCoreDocLinksBrowserObj from './kbn_core_doc_links_browser.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser_mocks.mdx b/api_docs/kbn_core_doc_links_browser_mocks.mdx index 5663545579a12..cec67a22a0632 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser-mocks'] --- import kbnCoreDocLinksBrowserMocksObj from './kbn_core_doc_links_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server.mdx b/api_docs/kbn_core_doc_links_server.mdx index 9c0f82eb4338c..5becb3d788f3f 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server'] --- import kbnCoreDocLinksServerObj from './kbn_core_doc_links_server.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server_mocks.mdx b/api_docs/kbn_core_doc_links_server_mocks.mdx index 9a301f7c1c536..ec64712a7ff50 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server-mocks'] --- import kbnCoreDocLinksServerMocksObj from './kbn_core_doc_links_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx index 99b366b5355d2..b4c191cfedfef 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-internal'] --- import kbnCoreElasticsearchClientServerInternalObj from './kbn_core_elasticsearch_client_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx index 57a950d0bde70..0852a42811de9 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-mocks'] --- import kbnCoreElasticsearchClientServerMocksObj from './kbn_core_elasticsearch_client_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server.mdx b/api_docs/kbn_core_elasticsearch_server.mdx index fe7ea3e46c9d6..26c35787d8d02 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server'] --- import kbnCoreElasticsearchServerObj from './kbn_core_elasticsearch_server.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx index 79e34911ce9e2..9869e9e6c3bcf 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-internal'] --- import kbnCoreElasticsearchServerInternalObj from './kbn_core_elasticsearch_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_server_mocks.mdx index ca329f74fbccc..2a8dd827a0946 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-mocks'] --- import kbnCoreElasticsearchServerMocksObj from './kbn_core_elasticsearch_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_internal.mdx b/api_docs/kbn_core_environment_server_internal.mdx index 6e8a4f8b74535..cd0ac0274500c 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-internal'] --- import kbnCoreEnvironmentServerInternalObj from './kbn_core_environment_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_mocks.mdx b/api_docs/kbn_core_environment_server_mocks.mdx index 5e8c659cf04d5..8277cd525a4d4 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-mocks'] --- import kbnCoreEnvironmentServerMocksObj from './kbn_core_environment_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser.mdx b/api_docs/kbn_core_execution_context_browser.mdx index 74230b2974efc..c6d8f482c3564 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser'] --- import kbnCoreExecutionContextBrowserObj from './kbn_core_execution_context_browser.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_internal.mdx b/api_docs/kbn_core_execution_context_browser_internal.mdx index e6f1381eb061e..7129f8de78a0c 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-internal'] --- import kbnCoreExecutionContextBrowserInternalObj from './kbn_core_execution_context_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_mocks.mdx b/api_docs/kbn_core_execution_context_browser_mocks.mdx index 961c832ae06c5..e420552c452d9 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-mocks'] --- import kbnCoreExecutionContextBrowserMocksObj from './kbn_core_execution_context_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_common.mdx b/api_docs/kbn_core_execution_context_common.mdx index 10d37c59acf56..c7c4436ec0238 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-common'] --- import kbnCoreExecutionContextCommonObj from './kbn_core_execution_context_common.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server.mdx b/api_docs/kbn_core_execution_context_server.mdx index 3bfe6dc32c006..89cdc1173ba06 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server'] --- import kbnCoreExecutionContextServerObj from './kbn_core_execution_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_internal.mdx b/api_docs/kbn_core_execution_context_server_internal.mdx index cbabc796eaaa6..23639dccfc8f1 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-internal'] --- import kbnCoreExecutionContextServerInternalObj from './kbn_core_execution_context_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_mocks.mdx b/api_docs/kbn_core_execution_context_server_mocks.mdx index 2fcd57055bdb4..723659b4538e1 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-mocks'] --- import kbnCoreExecutionContextServerMocksObj from './kbn_core_execution_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser.mdx b/api_docs/kbn_core_fatal_errors_browser.mdx index 0ea9c52b16336..0ec51ee86871b 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser'] --- import kbnCoreFatalErrorsBrowserObj from './kbn_core_fatal_errors_browser.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx index d137e9fd37e75..037d4723e9e23 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser-mocks'] --- import kbnCoreFatalErrorsBrowserMocksObj from './kbn_core_fatal_errors_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser.mdx b/api_docs/kbn_core_http_browser.mdx index 6916884ad61fd..ce5ae5e33748d 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser'] --- import kbnCoreHttpBrowserObj from './kbn_core_http_browser.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_internal.mdx b/api_docs/kbn_core_http_browser_internal.mdx index 3ccfa14e7d5a8..2779e3a675d9b 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-internal'] --- import kbnCoreHttpBrowserInternalObj from './kbn_core_http_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_mocks.mdx b/api_docs/kbn_core_http_browser_mocks.mdx index ec409c51c799f..01557388c8c36 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-mocks'] --- import kbnCoreHttpBrowserMocksObj from './kbn_core_http_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_common.mdx b/api_docs/kbn_core_http_common.mdx index 38a2c351c0bef..e152d7b1e4bbd 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-common'] --- import kbnCoreHttpCommonObj from './kbn_core_http_common.devdocs.json'; diff --git a/api_docs/kbn_core_http_context_server_mocks.mdx b/api_docs/kbn_core_http_context_server_mocks.mdx index ce12173d5cb24..ec62fc80a0047 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-context-server-mocks'] --- import kbnCoreHttpContextServerMocksObj from './kbn_core_http_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_request_handler_context_server.mdx b/api_docs/kbn_core_http_request_handler_context_server.mdx index 61d1a3b05d03a..2463302ae5a69 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-request-handler-context-server'] --- import kbnCoreHttpRequestHandlerContextServerObj from './kbn_core_http_request_handler_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx index 851b56d7a207d..142178e96f529 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server'] --- import kbnCoreHttpResourcesServerObj from './kbn_core_http_resources_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_internal.mdx b/api_docs/kbn_core_http_resources_server_internal.mdx index bee9e5c96cd59..a868e17c31304 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-internal'] --- import kbnCoreHttpResourcesServerInternalObj from './kbn_core_http_resources_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_mocks.mdx b/api_docs/kbn_core_http_resources_server_mocks.mdx index d3018400c260b..b5984e1e647b8 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-mocks'] --- import kbnCoreHttpResourcesServerMocksObj from './kbn_core_http_resources_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index 826cd973cc3b1..1e04125f3cb44 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-internal'] --- import kbnCoreHttpRouterServerInternalObj from './kbn_core_http_router_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_mocks.mdx b/api_docs/kbn_core_http_router_server_mocks.mdx index 391144ae11265..b81a8bf4877c1 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks'] --- import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_server.devdocs.json b/api_docs/kbn_core_http_server.devdocs.json index 2365e4275e35c..51589224da083 100644 --- a/api_docs/kbn_core_http_server.devdocs.json +++ b/api_docs/kbn_core_http_server.devdocs.json @@ -5020,6 +5020,10 @@ "plugin": "taskManager", "path": "x-pack/plugins/task_manager/server/routes/health.test.ts" }, + { + "plugin": "taskManager", + "path": "x-pack/plugins/task_manager/server/routes/health.test.ts" + }, { "plugin": "taskManager", "path": "x-pack/plugins/task_manager/server/routes/metrics.test.ts" @@ -13572,7 +13576,7 @@ }, { "plugin": "logsShared", - "path": "x-pack/plugins/logs_shared/server/lib/adapters/framework/kibana_framework_adapter.ts" + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/adapters/framework/kibana_framework_adapter.ts" }, { "plugin": "fileUpload", @@ -14283,7 +14287,7 @@ }, { "plugin": "logsShared", - "path": "x-pack/plugins/logs_shared/server/lib/adapters/framework/kibana_framework_adapter.ts" + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/adapters/framework/kibana_framework_adapter.ts" }, { "plugin": "lists", @@ -14906,7 +14910,7 @@ }, { "plugin": "logsShared", - "path": "x-pack/plugins/logs_shared/server/lib/adapters/framework/kibana_framework_adapter.ts" + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/adapters/framework/kibana_framework_adapter.ts" }, { "plugin": "fileUpload", @@ -15417,7 +15421,7 @@ }, { "plugin": "logsShared", - "path": "x-pack/plugins/logs_shared/server/lib/adapters/framework/kibana_framework_adapter.ts" + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/adapters/framework/kibana_framework_adapter.ts" }, { "plugin": "lists", @@ -15612,7 +15616,7 @@ }, { "plugin": "logsShared", - "path": "x-pack/plugins/logs_shared/server/lib/adapters/framework/kibana_framework_adapter.ts" + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/adapters/framework/kibana_framework_adapter.ts" }, { "plugin": "lists", diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx index 1fe84d1d48875..a75ee4d804bf9 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server'] --- import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx index 04672bad9d904..567d1b5cada0c 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-internal'] --- import kbnCoreHttpServerInternalObj from './kbn_core_http_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx index 6aff5f68f4408..0ad2959022e84 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-mocks'] --- import kbnCoreHttpServerMocksObj from './kbn_core_http_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser.mdx b/api_docs/kbn_core_i18n_browser.mdx index d872e027b27cc..e6f7a03d2aeca 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser'] --- import kbnCoreI18nBrowserObj from './kbn_core_i18n_browser.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser_mocks.mdx b/api_docs/kbn_core_i18n_browser_mocks.mdx index 76bf56d35645b..ff95b7437c6d9 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser-mocks'] --- import kbnCoreI18nBrowserMocksObj from './kbn_core_i18n_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server.mdx b/api_docs/kbn_core_i18n_server.mdx index b2f092d59ebfa..9edbb0c0c4ce6 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server'] --- import kbnCoreI18nServerObj from './kbn_core_i18n_server.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_internal.mdx b/api_docs/kbn_core_i18n_server_internal.mdx index 72cfadd2ac7ab..8ddaf0c7936e3 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-internal'] --- import kbnCoreI18nServerInternalObj from './kbn_core_i18n_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_mocks.mdx b/api_docs/kbn_core_i18n_server_mocks.mdx index d8c90527648ca..3b24bc786b45d 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index f22c5a454a06c..cf768b04e3a1c 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser-mocks'] --- import kbnCoreInjectedMetadataBrowserMocksObj from './kbn_core_injected_metadata_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_internal.mdx b/api_docs/kbn_core_integrations_browser_internal.mdx index f2ec8322edd4a..ef5a21b51f201 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-internal'] --- import kbnCoreIntegrationsBrowserInternalObj from './kbn_core_integrations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_mocks.mdx b/api_docs/kbn_core_integrations_browser_mocks.mdx index 6e4861d47dd0e..d01ea667c4766 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-mocks'] --- import kbnCoreIntegrationsBrowserMocksObj from './kbn_core_integrations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser.mdx b/api_docs/kbn_core_lifecycle_browser.mdx index 2ffac210f7920..d074c93ee8498 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser'] --- import kbnCoreLifecycleBrowserObj from './kbn_core_lifecycle_browser.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser_mocks.mdx b/api_docs/kbn_core_lifecycle_browser_mocks.mdx index 261343158e731..964c45472b8f6 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser-mocks'] --- import kbnCoreLifecycleBrowserMocksObj from './kbn_core_lifecycle_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server.mdx b/api_docs/kbn_core_lifecycle_server.mdx index 5f1731c98ed64..ab61a7c09fdd2 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server'] --- import kbnCoreLifecycleServerObj from './kbn_core_lifecycle_server.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server_mocks.mdx b/api_docs/kbn_core_lifecycle_server_mocks.mdx index 941ddc16e27a6..bb33acd9dea84 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server-mocks'] --- import kbnCoreLifecycleServerMocksObj from './kbn_core_lifecycle_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_browser_mocks.mdx b/api_docs/kbn_core_logging_browser_mocks.mdx index 27b3aaf739e7a..397de7c2cde52 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-browser-mocks'] --- import kbnCoreLoggingBrowserMocksObj from './kbn_core_logging_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx index f1012505db86b..7c66aeedd48ec 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-common-internal'] --- import kbnCoreLoggingCommonInternalObj from './kbn_core_logging_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx index db4fcb228a000..ad7e4db603a9b 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server'] --- import kbnCoreLoggingServerObj from './kbn_core_logging_server.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_internal.mdx b/api_docs/kbn_core_logging_server_internal.mdx index 18ed75065a1c8..2df1415e5351c 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-internal'] --- import kbnCoreLoggingServerInternalObj from './kbn_core_logging_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_mocks.mdx b/api_docs/kbn_core_logging_server_mocks.mdx index e4038409e1017..4a87da1facb8e 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-mocks'] --- import kbnCoreLoggingServerMocksObj from './kbn_core_logging_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_internal.mdx b/api_docs/kbn_core_metrics_collectors_server_internal.mdx index 4aa0a3745b8e7..db2f2be48360d 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-internal'] --- import kbnCoreMetricsCollectorsServerInternalObj from './kbn_core_metrics_collectors_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx index 91ad6d54ca61f..8b2896341113c 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-mocks'] --- import kbnCoreMetricsCollectorsServerMocksObj from './kbn_core_metrics_collectors_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server.mdx b/api_docs/kbn_core_metrics_server.mdx index 7efccd3a28fa4..6655a7a3a1df7 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server'] --- import kbnCoreMetricsServerObj from './kbn_core_metrics_server.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_internal.mdx b/api_docs/kbn_core_metrics_server_internal.mdx index 61bd5637a2d3a..54de0f1a4df4b 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-internal'] --- import kbnCoreMetricsServerInternalObj from './kbn_core_metrics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_mocks.mdx b/api_docs/kbn_core_metrics_server_mocks.mdx index ecbf0b5814b43..a130eda2be4f4 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-mocks'] --- import kbnCoreMetricsServerMocksObj from './kbn_core_metrics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_mount_utils_browser.mdx b/api_docs/kbn_core_mount_utils_browser.mdx index e7fe52942bf12..86af3f871475e 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-mount-utils-browser'] --- import kbnCoreMountUtilsBrowserObj from './kbn_core_mount_utils_browser.devdocs.json'; diff --git a/api_docs/kbn_core_node_server.mdx b/api_docs/kbn_core_node_server.mdx index e8e7b4888e242..c93edba77c4a4 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server'] --- import kbnCoreNodeServerObj from './kbn_core_node_server.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_internal.mdx b/api_docs/kbn_core_node_server_internal.mdx index f429819f1fac0..2f425b78330ed 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-internal'] --- import kbnCoreNodeServerInternalObj from './kbn_core_node_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_mocks.mdx b/api_docs/kbn_core_node_server_mocks.mdx index 4d19d4caf7dd7..5e246bd9929f2 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-mocks'] --- import kbnCoreNodeServerMocksObj from './kbn_core_node_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser.mdx b/api_docs/kbn_core_notifications_browser.mdx index cb9ff6558455e..640697bb8686e 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser'] --- import kbnCoreNotificationsBrowserObj from './kbn_core_notifications_browser.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_internal.mdx b/api_docs/kbn_core_notifications_browser_internal.mdx index d81fee0fcd68b..49da25e50c9a5 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-internal'] --- import kbnCoreNotificationsBrowserInternalObj from './kbn_core_notifications_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_mocks.mdx b/api_docs/kbn_core_notifications_browser_mocks.mdx index ee2a25d4873a3..c322d0341bca6 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-mocks'] --- import kbnCoreNotificationsBrowserMocksObj from './kbn_core_notifications_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser.mdx b/api_docs/kbn_core_overlays_browser.mdx index 988e73d2cff58..9617cfc9d7329 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser'] --- import kbnCoreOverlaysBrowserObj from './kbn_core_overlays_browser.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_internal.mdx b/api_docs/kbn_core_overlays_browser_internal.mdx index 40f11a938c4bc..5062a958f76f9 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-internal'] --- import kbnCoreOverlaysBrowserInternalObj from './kbn_core_overlays_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_mocks.mdx b/api_docs/kbn_core_overlays_browser_mocks.mdx index 7b7983502808a..8ebce26bdc130 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-mocks'] --- import kbnCoreOverlaysBrowserMocksObj from './kbn_core_overlays_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser.mdx b/api_docs/kbn_core_plugins_browser.mdx index f3a8c13133025..59bd53c8b7770 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser'] --- import kbnCorePluginsBrowserObj from './kbn_core_plugins_browser.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser_mocks.mdx b/api_docs/kbn_core_plugins_browser_mocks.mdx index 3d087f9d96202..71e9ca36c2173 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks'] --- import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_contracts_browser.mdx b/api_docs/kbn_core_plugins_contracts_browser.mdx index 04431a442b490..ef77389a0e84a 100644 --- a/api_docs/kbn_core_plugins_contracts_browser.mdx +++ b/api_docs/kbn_core_plugins_contracts_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-browser title: "@kbn/core-plugins-contracts-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-contracts-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-contracts-browser'] --- import kbnCorePluginsContractsBrowserObj from './kbn_core_plugins_contracts_browser.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_contracts_server.mdx b/api_docs/kbn_core_plugins_contracts_server.mdx index a50c3c06bdd52..ba7758e518e73 100644 --- a/api_docs/kbn_core_plugins_contracts_server.mdx +++ b/api_docs/kbn_core_plugins_contracts_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-server title: "@kbn/core-plugins-contracts-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-contracts-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-contracts-server'] --- import kbnCorePluginsContractsServerObj from './kbn_core_plugins_contracts_server.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx index e7b425c64ff81..88ec5de3777c5 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server'] --- import kbnCorePluginsServerObj from './kbn_core_plugins_server.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server_mocks.mdx b/api_docs/kbn_core_plugins_server_mocks.mdx index 34763429d4c37..881b75b3c0ba4 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server-mocks'] --- import kbnCorePluginsServerMocksObj from './kbn_core_plugins_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx index 6141504db19e1..83786433107a6 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server'] --- import kbnCorePrebootServerObj from './kbn_core_preboot_server.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server_mocks.mdx b/api_docs/kbn_core_preboot_server_mocks.mdx index 08f416d93bee2..f9571e232c8f5 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server-mocks'] --- import kbnCorePrebootServerMocksObj from './kbn_core_preboot_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_browser_mocks.mdx b/api_docs/kbn_core_rendering_browser_mocks.mdx index 13e12d1c3875b..780baf319ede9 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-browser-mocks'] --- import kbnCoreRenderingBrowserMocksObj from './kbn_core_rendering_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_internal.mdx b/api_docs/kbn_core_rendering_server_internal.mdx index 46139e9fe95a3..41668db29c66c 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-internal'] --- import kbnCoreRenderingServerInternalObj from './kbn_core_rendering_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_mocks.mdx b/api_docs/kbn_core_rendering_server_mocks.mdx index de23780520c06..37b9d8b2e41c4 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-mocks'] --- import kbnCoreRenderingServerMocksObj from './kbn_core_rendering_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_root_server_internal.mdx b/api_docs/kbn_core_root_server_internal.mdx index 8341b9f87e2e4..aa084b12f807c 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-root-server-internal'] --- import kbnCoreRootServerInternalObj from './kbn_core_root_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index dd01f1487b3a5..3e02046b1357b 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser'] --- import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx index 442ccf75b3928..2f0831fc60a80 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server'] --- import kbnCoreSavedObjectsApiServerObj from './kbn_core_saved_objects_api_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx index abbb9e8af6f6f..12f39b94dea7b 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-mocks'] --- import kbnCoreSavedObjectsApiServerMocksObj from './kbn_core_saved_objects_api_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.mdx b/api_docs/kbn_core_saved_objects_base_server_internal.mdx index 28bb3a238cfec..33656a469b0ab 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-internal'] --- import kbnCoreSavedObjectsBaseServerInternalObj from './kbn_core_saved_objects_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx index 7f05e9ff8da07..f5fcc31816912 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-mocks'] --- import kbnCoreSavedObjectsBaseServerMocksObj from './kbn_core_saved_objects_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser.mdx b/api_docs/kbn_core_saved_objects_browser.mdx index 452383bf473ae..a4769f143bd1b 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser'] --- import kbnCoreSavedObjectsBrowserObj from './kbn_core_saved_objects_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_internal.mdx b/api_docs/kbn_core_saved_objects_browser_internal.mdx index b2478e9f922bf..ef536c8880b75 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-internal'] --- import kbnCoreSavedObjectsBrowserInternalObj from './kbn_core_saved_objects_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_mocks.mdx b/api_docs/kbn_core_saved_objects_browser_mocks.mdx index 7cf4a4d3f8553..b3ab7e1cbda75 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks'] --- import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx index a261eb8076cd7..6333f1dedca09 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-common'] --- import kbnCoreSavedObjectsCommonObj from './kbn_core_saved_objects_common.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx index 33add834bf7d7..bcbd4db3bb21b 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-internal'] --- import kbnCoreSavedObjectsImportExportServerInternalObj from './kbn_core_saved_objects_import_export_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx index d283ce021b57d..6036f54198b69 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-mocks'] --- import kbnCoreSavedObjectsImportExportServerMocksObj from './kbn_core_saved_objects_import_export_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx index c71ec3eaed7db..39092c3945d2d 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-internal'] --- import kbnCoreSavedObjectsMigrationServerInternalObj from './kbn_core_saved_objects_migration_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx index 4343fbe2fbbc7..90dd633a31b43 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks'] --- import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server.devdocs.json b/api_docs/kbn_core_saved_objects_server.devdocs.json index 34e7d62792970..c4635d0fad2e8 100644 --- a/api_docs/kbn_core_saved_objects_server.devdocs.json +++ b/api_docs/kbn_core_saved_objects_server.devdocs.json @@ -10631,7 +10631,7 @@ }, { "plugin": "logsShared", - "path": "x-pack/plugins/logs_shared/server/saved_objects/log_view/log_view_saved_object.ts" + "path": "x-pack/plugins/observability_solution/logs_shared/server/saved_objects/log_view/log_view_saved_object.ts" }, { "plugin": "graph", diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index c9bfcffe35d18..543f972144a73 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server'] --- import kbnCoreSavedObjectsServerObj from './kbn_core_saved_objects_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_internal.mdx b/api_docs/kbn_core_saved_objects_server_internal.mdx index c4929d7cad8d6..1bb245db234cd 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-internal'] --- import kbnCoreSavedObjectsServerInternalObj from './kbn_core_saved_objects_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_mocks.mdx b/api_docs/kbn_core_saved_objects_server_mocks.mdx index 527f0b893df3d..023832d17d8cf 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-mocks'] --- import kbnCoreSavedObjectsServerMocksObj from './kbn_core_saved_objects_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_utils_server.mdx b/api_docs/kbn_core_saved_objects_utils_server.mdx index e604c09eba378..7c105a945e64b 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server'] --- import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx index 276d99965446e..bec9c9aa925c5 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common'] --- import kbnCoreStatusCommonObj from './kbn_core_status_common.devdocs.json'; diff --git a/api_docs/kbn_core_status_common_internal.mdx b/api_docs/kbn_core_status_common_internal.mdx index be9a5bfeeb988..90f092abac763 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common-internal'] --- import kbnCoreStatusCommonInternalObj from './kbn_core_status_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server.mdx b/api_docs/kbn_core_status_server.mdx index 88ceffa0afd3d..aa3fb99c957cb 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server'] --- import kbnCoreStatusServerObj from './kbn_core_status_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_internal.mdx b/api_docs/kbn_core_status_server_internal.mdx index c519fb5d2eafb..bf0fcc0783340 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-internal'] --- import kbnCoreStatusServerInternalObj from './kbn_core_status_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_mocks.mdx b/api_docs/kbn_core_status_server_mocks.mdx index c9f0f7f7b9a51..9063f9373194e 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-mocks'] --- import kbnCoreStatusServerMocksObj from './kbn_core_status_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx index 0f85e21d27859..99373737cab98 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-deprecations-getters'] --- import kbnCoreTestHelpersDeprecationsGettersObj from './kbn_core_test_helpers_deprecations_getters.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx index 9eee855f1c8e4..0094c856da55c 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-http-setup-browser'] --- import kbnCoreTestHelpersHttpSetupBrowserObj from './kbn_core_test_helpers_http_setup_browser.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_kbn_server.mdx b/api_docs/kbn_core_test_helpers_kbn_server.mdx index 7e28715a9ca35..30532bc0071be 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-kbn-server'] --- import kbnCoreTestHelpersKbnServerObj from './kbn_core_test_helpers_kbn_server.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_model_versions.mdx b/api_docs/kbn_core_test_helpers_model_versions.mdx index 637b23c38ba07..680fd172b5892 100644 --- a/api_docs/kbn_core_test_helpers_model_versions.mdx +++ b/api_docs/kbn_core_test_helpers_model_versions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-model-versions title: "@kbn/core-test-helpers-model-versions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-model-versions plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-model-versions'] --- import kbnCoreTestHelpersModelVersionsObj from './kbn_core_test_helpers_model_versions.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx index 7ac2100e0db4f..cdbdae7e5afcc 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-so-type-serializer'] --- import kbnCoreTestHelpersSoTypeSerializerObj from './kbn_core_test_helpers_so_type_serializer.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_test_utils.mdx b/api_docs/kbn_core_test_helpers_test_utils.mdx index 54d204155ae26..1cdb86dd78584 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-test-utils'] --- import kbnCoreTestHelpersTestUtilsObj from './kbn_core_test_helpers_test_utils.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index b23f660057daa..69c9edb3f4c42 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser'] --- import kbnCoreThemeBrowserObj from './kbn_core_theme_browser.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser_mocks.mdx b/api_docs/kbn_core_theme_browser_mocks.mdx index 4df771690ff2e..7b5773c8bca53 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-mocks'] --- import kbnCoreThemeBrowserMocksObj from './kbn_core_theme_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser.mdx b/api_docs/kbn_core_ui_settings_browser.mdx index 53b5bafcb3e9c..3e8c07a6ff50b 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser'] --- import kbnCoreUiSettingsBrowserObj from './kbn_core_ui_settings_browser.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_internal.mdx b/api_docs/kbn_core_ui_settings_browser_internal.mdx index 903c5be599005..ed7d737b7198a 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-internal'] --- import kbnCoreUiSettingsBrowserInternalObj from './kbn_core_ui_settings_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_mocks.mdx b/api_docs/kbn_core_ui_settings_browser_mocks.mdx index ab739b9ba695a..978ad54997bd5 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-mocks'] --- import kbnCoreUiSettingsBrowserMocksObj from './kbn_core_ui_settings_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_common.mdx b/api_docs/kbn_core_ui_settings_common.mdx index 3f706c9756e40..94e6d456850dc 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-common'] --- import kbnCoreUiSettingsCommonObj from './kbn_core_ui_settings_common.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server.devdocs.json b/api_docs/kbn_core_ui_settings_server.devdocs.json index 37732beadfc9a..b75823de22cc1 100644 --- a/api_docs/kbn_core_ui_settings_server.devdocs.json +++ b/api_docs/kbn_core_ui_settings_server.devdocs.json @@ -264,7 +264,7 @@ "\nRemoves multiple uiSettings values by keys." ], "signature": [ - "(keys: string[]) => Promise" + "(keys: string[], options?: { validateKeys?: boolean | undefined; handleWriteErrors?: boolean | undefined; } | undefined) => Promise" ], "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", "deprecated": false, @@ -284,6 +284,47 @@ "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "@kbn/core-ui-settings-server", + "id": "def-common.IUiSettingsClient.removeMany.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-ui-settings-server", + "id": "def-common.IUiSettingsClient.removeMany.$2.validateKeys", + "type": "CompoundType", + "tags": [], + "label": "validateKeys", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-ui-settings-server", + "id": "def-common.IUiSettingsClient.removeMany.$2.handleWriteErrors", + "type": "CompoundType", + "tags": [], + "label": "handleWriteErrors", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts", + "deprecated": false, + "trackAdoption": false + } + ] } ], "returnComment": [] diff --git a/api_docs/kbn_core_ui_settings_server.mdx b/api_docs/kbn_core_ui_settings_server.mdx index 8537bfeefec3a..605d790827443 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server'] --- import kbnCoreUiSettingsServerObj from './kbn_core_ui_settings_server.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sh | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 37 | 1 | 19 | 0 | +| 40 | 1 | 22 | 0 | ## Common diff --git a/api_docs/kbn_core_ui_settings_server_internal.devdocs.json b/api_docs/kbn_core_ui_settings_server_internal.devdocs.json index f78d51ab09830..266a2a84a2b9f 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.devdocs.json +++ b/api_docs/kbn_core_ui_settings_server_internal.devdocs.json @@ -139,7 +139,7 @@ "label": "setMany", "description": [], "signature": [ - "(changes: Record) => Promise" + "(changes: Record, options?: { validateKeys?: boolean | undefined; }) => Promise" ], "path": "packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_global_client.ts", "deprecated": false, @@ -159,6 +159,33 @@ "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "@kbn/core-ui-settings-server-internal", + "id": "def-common.UiSettingsGlobalClient.setMany.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "path": "packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_global_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-ui-settings-server-internal", + "id": "def-common.UiSettingsGlobalClient.setMany.$2.validateKeys", + "type": "CompoundType", + "tags": [], + "label": "validateKeys", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_global_client.ts", + "deprecated": false, + "trackAdoption": false + } + ] } ], "returnComment": [] diff --git a/api_docs/kbn_core_ui_settings_server_internal.mdx b/api_docs/kbn_core_ui_settings_server_internal.mdx index 8a1af989b36f6..601b25746c934 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-internal'] --- import kbnCoreUiSettingsServerInternalObj from './kbn_core_ui_settings_server_internal.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sh | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 18 | 1 | 17 | 3 | +| 20 | 1 | 19 | 3 | ## Common diff --git a/api_docs/kbn_core_ui_settings_server_mocks.mdx b/api_docs/kbn_core_ui_settings_server_mocks.mdx index 32dcb921a08f4..4e7f1b517bde7 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-mocks'] --- import kbnCoreUiSettingsServerMocksObj from './kbn_core_ui_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx index b4853b71bb4d7..e13e99f89728e 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server'] --- import kbnCoreUsageDataServerObj from './kbn_core_usage_data_server.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_internal.mdx b/api_docs/kbn_core_usage_data_server_internal.mdx index bf3482ba56b28..789df005087d0 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-internal'] --- import kbnCoreUsageDataServerInternalObj from './kbn_core_usage_data_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_mocks.mdx b/api_docs/kbn_core_usage_data_server_mocks.mdx index 68050d64615fc..e835d5a3e8f38 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks'] --- import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server.mdx b/api_docs/kbn_core_user_settings_server.mdx index 8996960025f43..4340d57ca7f76 100644 --- a/api_docs/kbn_core_user_settings_server.mdx +++ b/api_docs/kbn_core_user_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server title: "@kbn/core-user-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server'] --- import kbnCoreUserSettingsServerObj from './kbn_core_user_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_internal.mdx b/api_docs/kbn_core_user_settings_server_internal.mdx index c38f362f9d040..1ac513a62742a 100644 --- a/api_docs/kbn_core_user_settings_server_internal.mdx +++ b/api_docs/kbn_core_user_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-internal title: "@kbn/core-user-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server-internal plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-internal'] --- import kbnCoreUserSettingsServerInternalObj from './kbn_core_user_settings_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_mocks.mdx b/api_docs/kbn_core_user_settings_server_mocks.mdx index 58830e64072c9..f5b0aee54a22a 100644 --- a/api_docs/kbn_core_user_settings_server_mocks.mdx +++ b/api_docs/kbn_core_user_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-mocks title: "@kbn/core-user-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-mocks'] --- import kbnCoreUserSettingsServerMocksObj from './kbn_core_user_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx index 498bf433c8bca..5ce0d1082ba7d 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto'] --- import kbnCryptoObj from './kbn_crypto.devdocs.json'; diff --git a/api_docs/kbn_crypto_browser.mdx b/api_docs/kbn_crypto_browser.mdx index ec0e29bdb7795..cb0e6ffdccd6a 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_custom_icons.mdx b/api_docs/kbn_custom_icons.mdx index b11edd5659a49..feeccc3d48d9f 100644 --- a/api_docs/kbn_custom_icons.mdx +++ b/api_docs/kbn_custom_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-icons title: "@kbn/custom-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/custom-icons plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-icons'] --- import kbnCustomIconsObj from './kbn_custom_icons.devdocs.json'; diff --git a/api_docs/kbn_custom_integrations.mdx b/api_docs/kbn_custom_integrations.mdx index 106e8ebb36858..9a7d98e23f32f 100644 --- a/api_docs/kbn_custom_integrations.mdx +++ b/api_docs/kbn_custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-integrations title: "@kbn/custom-integrations" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/custom-integrations plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-integrations'] --- import kbnCustomIntegrationsObj from './kbn_custom_integrations.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index 6461f471cf908..572632ef10b82 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_data_forge.mdx b/api_docs/kbn_data_forge.mdx index ec511e4dd2a5b..ee831ddffba37 100644 --- a/api_docs/kbn_data_forge.mdx +++ b/api_docs/kbn_data_forge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-forge title: "@kbn/data-forge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-forge plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-forge'] --- import kbnDataForgeObj from './kbn_data_forge.devdocs.json'; diff --git a/api_docs/kbn_data_service.mdx b/api_docs/kbn_data_service.mdx index aade649b6d113..861ca7e175bad 100644 --- a/api_docs/kbn_data_service.mdx +++ b/api_docs/kbn_data_service.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-service title: "@kbn/data-service" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-service plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-service'] --- import kbnDataServiceObj from './kbn_data_service.devdocs.json'; diff --git a/api_docs/kbn_data_stream_adapter.mdx b/api_docs/kbn_data_stream_adapter.mdx index 8c49b7b43fef4..743d6ef9ad19e 100644 --- a/api_docs/kbn_data_stream_adapter.mdx +++ b/api_docs/kbn_data_stream_adapter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-stream-adapter title: "@kbn/data-stream-adapter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-stream-adapter plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-stream-adapter'] --- import kbnDataStreamAdapterObj from './kbn_data_stream_adapter.devdocs.json'; diff --git a/api_docs/kbn_data_view_utils.mdx b/api_docs/kbn_data_view_utils.mdx index f7ca82382968e..9f06acbc54ed3 100644 --- a/api_docs/kbn_data_view_utils.mdx +++ b/api_docs/kbn_data_view_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-view-utils title: "@kbn/data-view-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-view-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-view-utils'] --- import kbnDataViewUtilsObj from './kbn_data_view_utils.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 834ff5cb60a76..27deb3bcb3cb4 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/datemath'] --- import kbnDatemathObj from './kbn_datemath.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_analytics.mdx b/api_docs/kbn_deeplinks_analytics.mdx index f021ae32cbc3f..503b4eec691e7 100644 --- a/api_docs/kbn_deeplinks_analytics.mdx +++ b/api_docs/kbn_deeplinks_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-analytics title: "@kbn/deeplinks-analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-analytics plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-analytics'] --- import kbnDeeplinksAnalyticsObj from './kbn_deeplinks_analytics.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_devtools.mdx b/api_docs/kbn_deeplinks_devtools.mdx index 032c5e35f8651..33fa93df600c9 100644 --- a/api_docs/kbn_deeplinks_devtools.mdx +++ b/api_docs/kbn_deeplinks_devtools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-devtools title: "@kbn/deeplinks-devtools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-devtools plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-devtools'] --- import kbnDeeplinksDevtoolsObj from './kbn_deeplinks_devtools.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_management.devdocs.json b/api_docs/kbn_deeplinks_management.devdocs.json index 8807bce4758a3..dee7908b072e0 100644 --- a/api_docs/kbn_deeplinks_management.devdocs.json +++ b/api_docs/kbn_deeplinks_management.devdocs.json @@ -45,7 +45,7 @@ "label": "DeepLinkId", "description": [], "signature": [ - "\"fleet\" | \"monitoring\" | \"management\" | \"integrations\" | \"osquery\" | \"management:transform\" | \"management:watcher\" | \"management:cases\" | \"management:tags\" | \"management:spaces\" | \"management:dataViews\" | \"management:settings\" | \"management:reporting\" | \"management:rollup_jobs\" | \"management:aiAssistantManagementSelection\" | \"management:aiAssistantManagementObservability\" | \"management:api_keys\" | \"management:cross_cluster_replication\" | \"management:index_lifecycle_management\" | \"management:index_management\" | \"management:ingest_pipelines\" | \"management:jobsListLink\" | \"management:objects\" | \"management:pipelines\" | \"management:remote_clusters\" | \"management:snapshot_restore\" | \"management:triggersActions\" | \"management:triggersActionsConnectors\"" + "\"fleet\" | \"monitoring\" | \"management\" | \"integrations\" | \"osquery\" | \"management:transform\" | \"management:watcher\" | \"management:cases\" | \"management:tags\" | \"management:spaces\" | \"management:dataViews\" | \"management:settings\" | \"management:reporting\" | \"management:aiAssistantManagementSelection\" | \"management:aiAssistantManagementObservability\" | \"management:api_keys\" | \"management:cross_cluster_replication\" | \"management:index_lifecycle_management\" | \"management:index_management\" | \"management:ingest_pipelines\" | \"management:jobsListLink\" | \"management:objects\" | \"management:pipelines\" | \"management:remote_clusters\" | \"management:rollup_jobs\" | \"management:snapshot_restore\" | \"management:triggersActions\" | \"management:triggersActionsConnectors\"" ], "path": "packages/deeplinks/management/deep_links.ts", "deprecated": false, @@ -60,7 +60,7 @@ "label": "LinkId", "description": [], "signature": [ - "\"transform\" | \"watcher\" | \"cases\" | \"tags\" | \"spaces\" | \"dataViews\" | \"settings\" | \"reporting\" | \"rollup_jobs\" | \"aiAssistantManagementSelection\" | \"aiAssistantManagementObservability\" | \"api_keys\" | \"cross_cluster_replication\" | \"index_lifecycle_management\" | \"index_management\" | \"ingest_pipelines\" | \"jobsListLink\" | \"objects\" | \"pipelines\" | \"remote_clusters\" | \"snapshot_restore\" | \"triggersActions\" | \"triggersActionsConnectors\"" + "\"transform\" | \"watcher\" | \"cases\" | \"tags\" | \"spaces\" | \"dataViews\" | \"settings\" | \"reporting\" | \"aiAssistantManagementSelection\" | \"aiAssistantManagementObservability\" | \"api_keys\" | \"cross_cluster_replication\" | \"index_lifecycle_management\" | \"index_management\" | \"ingest_pipelines\" | \"jobsListLink\" | \"objects\" | \"pipelines\" | \"remote_clusters\" | \"rollup_jobs\" | \"snapshot_restore\" | \"triggersActions\" | \"triggersActionsConnectors\"" ], "path": "packages/deeplinks/management/deep_links.ts", "deprecated": false, diff --git a/api_docs/kbn_deeplinks_management.mdx b/api_docs/kbn_deeplinks_management.mdx index 9ed1e52d55a38..67f2f83df1e6f 100644 --- a/api_docs/kbn_deeplinks_management.mdx +++ b/api_docs/kbn_deeplinks_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-management title: "@kbn/deeplinks-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-management plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-management'] --- import kbnDeeplinksManagementObj from './kbn_deeplinks_management.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_ml.mdx b/api_docs/kbn_deeplinks_ml.mdx index 26764382f3189..794c74fc95c85 100644 --- a/api_docs/kbn_deeplinks_ml.mdx +++ b/api_docs/kbn_deeplinks_ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-ml title: "@kbn/deeplinks-ml" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-ml plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-ml'] --- import kbnDeeplinksMlObj from './kbn_deeplinks_ml.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_observability.devdocs.json b/api_docs/kbn_deeplinks_observability.devdocs.json index 1bf628668ad77..3647018ce24a5 100644 --- a/api_docs/kbn_deeplinks_observability.devdocs.json +++ b/api_docs/kbn_deeplinks_observability.devdocs.json @@ -606,7 +606,7 @@ "section": "def-common.AppId", "text": "AppId" }, - " | \"logs:settings\" | \"logs:stream\" | \"logs:log-categories\" | \"logs:anomalies\" | \"observability-overview:cases\" | \"observability-overview:rules\" | \"observability-overview:alerts\" | \"observability-overview:cases_create\" | \"observability-overview:cases_configure\" | \"observability-overview:slos\" | \"metrics:settings\" | \"metrics:hosts\" | \"metrics:inventory\" | \"metrics:metrics-explorer\" | \"metrics:assetDetails\" | \"apm:traces\" | \"apm:dependencies\" | \"apm:service-map\" | \"apm:settings\" | \"apm:services\" | \"apm:service-groups-list\" | \"apm:storage-explorer\" | \"synthetics:management\" | \"synthetics:overview\"" + " | \"logs:settings\" | \"logs:stream\" | \"logs:log-categories\" | \"logs:anomalies\" | \"observability-overview:cases\" | \"observability-overview:rules\" | \"observability-overview:alerts\" | \"observability-overview:cases_create\" | \"observability-overview:cases_configure\" | \"observability-overview:slos\" | \"metrics:settings\" | \"metrics:hosts\" | \"metrics:inventory\" | \"metrics:metrics-explorer\" | \"metrics:assetDetails\" | \"apm:traces\" | \"apm:dependencies\" | \"apm:service-map\" | \"apm:settings\" | \"apm:services\" | \"apm:service-groups-list\" | \"apm:storage-explorer\" | \"synthetics:overview\" | \"synthetics:certificates\"" ], "path": "packages/deeplinks/observability/deep_links.ts", "deprecated": false, diff --git a/api_docs/kbn_deeplinks_observability.mdx b/api_docs/kbn_deeplinks_observability.mdx index fd8617620043c..4463083d789d9 100644 --- a/api_docs/kbn_deeplinks_observability.mdx +++ b/api_docs/kbn_deeplinks_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-observability title: "@kbn/deeplinks-observability" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-observability plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-observability'] --- import kbnDeeplinksObservabilityObj from './kbn_deeplinks_observability.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_search.mdx b/api_docs/kbn_deeplinks_search.mdx index 55c76bf25eb35..c6cdfb248a95e 100644 --- a/api_docs/kbn_deeplinks_search.mdx +++ b/api_docs/kbn_deeplinks_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-search title: "@kbn/deeplinks-search" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-search plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-search'] --- import kbnDeeplinksSearchObj from './kbn_deeplinks_search.devdocs.json'; diff --git a/api_docs/kbn_default_nav_analytics.mdx b/api_docs/kbn_default_nav_analytics.mdx index a9e84dd0e36d6..769445ec1e1ef 100644 --- a/api_docs/kbn_default_nav_analytics.mdx +++ b/api_docs/kbn_default_nav_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-analytics title: "@kbn/default-nav-analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-analytics plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-analytics'] --- import kbnDefaultNavAnalyticsObj from './kbn_default_nav_analytics.devdocs.json'; diff --git a/api_docs/kbn_default_nav_devtools.mdx b/api_docs/kbn_default_nav_devtools.mdx index 5d9c2f3cfd2ef..24a087382bd19 100644 --- a/api_docs/kbn_default_nav_devtools.mdx +++ b/api_docs/kbn_default_nav_devtools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-devtools title: "@kbn/default-nav-devtools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-devtools plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-devtools'] --- import kbnDefaultNavDevtoolsObj from './kbn_default_nav_devtools.devdocs.json'; diff --git a/api_docs/kbn_default_nav_management.mdx b/api_docs/kbn_default_nav_management.mdx index 929fcaea84ce7..1d9b42646e2aa 100644 --- a/api_docs/kbn_default_nav_management.mdx +++ b/api_docs/kbn_default_nav_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-management title: "@kbn/default-nav-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-management plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-management'] --- import kbnDefaultNavManagementObj from './kbn_default_nav_management.devdocs.json'; diff --git a/api_docs/kbn_default_nav_ml.mdx b/api_docs/kbn_default_nav_ml.mdx index 759deb2a32d55..26f7f54fe800d 100644 --- a/api_docs/kbn_default_nav_ml.mdx +++ b/api_docs/kbn_default_nav_ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-ml title: "@kbn/default-nav-ml" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-ml plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-ml'] --- import kbnDefaultNavMlObj from './kbn_default_nav_ml.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_errors.mdx b/api_docs/kbn_dev_cli_errors.mdx index f042b5ff1abdc..889d4f8b9f58a 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-errors'] --- import kbnDevCliErrorsObj from './kbn_dev_cli_errors.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_runner.mdx b/api_docs/kbn_dev_cli_runner.mdx index 48b57a335cefd..ecfa0e80de31b 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-runner'] --- import kbnDevCliRunnerObj from './kbn_dev_cli_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_proc_runner.mdx b/api_docs/kbn_dev_proc_runner.mdx index 59f9f4c7ef0a8..772514403e401 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-proc-runner'] --- import kbnDevProcRunnerObj from './kbn_dev_proc_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_utils.mdx b/api_docs/kbn_dev_utils.mdx index 0204e2d1e9db3..4aa062e3312ca 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_discover_utils.mdx b/api_docs/kbn_discover_utils.mdx index 3d2b20bb2c3ee..3f62fc5d48b2a 100644 --- a/api_docs/kbn_discover_utils.mdx +++ b/api_docs/kbn_discover_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-discover-utils title: "@kbn/discover-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/discover-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/discover-utils'] --- import kbnDiscoverUtilsObj from './kbn_discover_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index 4d9609b86d5af..6b803968bf457 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links'] --- import kbnDocLinksObj from './kbn_doc_links.devdocs.json'; diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx index 55fb52cf1c575..1e35f6f8ad6f2 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx index f748fe04847f9..847e65c3ac535 100644 --- a/api_docs/kbn_dom_drag_drop.mdx +++ b/api_docs/kbn_dom_drag_drop.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop title: "@kbn/dom-drag-drop" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dom-drag-drop plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dom-drag-drop'] --- import kbnDomDragDropObj from './kbn_dom_drag_drop.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index f7684070d7258..856631c94f482 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index a95f35c4f63dc..1209e006f71f4 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_elastic_agent_utils.mdx b/api_docs/kbn_elastic_agent_utils.mdx index 80f54323fde45..52cceb86705bd 100644 --- a/api_docs/kbn_elastic_agent_utils.mdx +++ b/api_docs/kbn_elastic_agent_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-agent-utils title: "@kbn/elastic-agent-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-agent-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-agent-utils'] --- import kbnElasticAgentUtilsObj from './kbn_elastic_agent_utils.devdocs.json'; diff --git a/api_docs/kbn_elastic_assistant.mdx b/api_docs/kbn_elastic_assistant.mdx index 11f3ff67d43ce..c38a0d0c1a336 100644 --- a/api_docs/kbn_elastic_assistant.mdx +++ b/api_docs/kbn_elastic_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant title: "@kbn/elastic-assistant" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-assistant plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant'] --- import kbnElasticAssistantObj from './kbn_elastic_assistant.devdocs.json'; diff --git a/api_docs/kbn_elastic_assistant_common.mdx b/api_docs/kbn_elastic_assistant_common.mdx index ff8820b336f64..c39a1a1989930 100644 --- a/api_docs/kbn_elastic_assistant_common.mdx +++ b/api_docs/kbn_elastic_assistant_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant-common title: "@kbn/elastic-assistant-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-assistant-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant-common'] --- import kbnElasticAssistantCommonObj from './kbn_elastic_assistant_common.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index a54675375510f..d85dcec133e94 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es'] --- import kbnEsObj from './kbn_es.devdocs.json'; diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index fbda1bb25ac9c..27929f4707175 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-archiver'] --- import kbnEsArchiverObj from './kbn_es_archiver.devdocs.json'; diff --git a/api_docs/kbn_es_errors.mdx b/api_docs/kbn_es_errors.mdx index 11030fe1e0a44..92759370bad56 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index 9ffa811f1bb3a..3daeae3cf505a 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index 6ecb485f9a012..0fb72accb9a32 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-types'] --- import kbnEsTypesObj from './kbn_es_types.devdocs.json'; diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx index 2d9b554e69e24..734adab3e142f 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_esql_utils.mdx b/api_docs/kbn_esql_utils.mdx index f06b60ffc81ab..6438976ba4c49 100644 --- a/api_docs/kbn_esql_utils.mdx +++ b/api_docs/kbn_esql_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-utils title: "@kbn/esql-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/esql-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-utils'] --- import kbnEsqlUtilsObj from './kbn_esql_utils.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_common.mdx b/api_docs/kbn_event_annotation_common.mdx index 6a64e99057ebd..3e7dd3a5af1d0 100644 --- a/api_docs/kbn_event_annotation_common.mdx +++ b/api_docs/kbn_event_annotation_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-common title: "@kbn/event-annotation-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/event-annotation-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-common'] --- import kbnEventAnnotationCommonObj from './kbn_event_annotation_common.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_components.mdx b/api_docs/kbn_event_annotation_components.mdx index 6388bbb5d3963..98e80721b2f51 100644 --- a/api_docs/kbn_event_annotation_components.mdx +++ b/api_docs/kbn_event_annotation_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-components title: "@kbn/event-annotation-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/event-annotation-components plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-components'] --- import kbnEventAnnotationComponentsObj from './kbn_event_annotation_components.devdocs.json'; diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx index 6fa94930c3272..2fbccd23ea503 100644 --- a/api_docs/kbn_expandable_flyout.mdx +++ b/api_docs/kbn_expandable_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout title: "@kbn/expandable-flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/expandable-flyout plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout'] --- import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index 77e4638a262d1..6ca205e3c2af4 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types'] --- import kbnFieldTypesObj from './kbn_field_types.devdocs.json'; diff --git a/api_docs/kbn_field_utils.mdx b/api_docs/kbn_field_utils.mdx index 9634123070152..b57c6356aa7c5 100644 --- a/api_docs/kbn_field_utils.mdx +++ b/api_docs/kbn_field_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-utils title: "@kbn/field-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-utils'] --- import kbnFieldUtilsObj from './kbn_field_utils.devdocs.json'; diff --git a/api_docs/kbn_find_used_node_modules.mdx b/api_docs/kbn_find_used_node_modules.mdx index ccad173b03b2e..4f33a9e1d4e18 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules'] --- import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json'; diff --git a/api_docs/kbn_formatters.mdx b/api_docs/kbn_formatters.mdx index dd6d6441d8780..1446e212378c4 100644 --- a/api_docs/kbn_formatters.mdx +++ b/api_docs/kbn_formatters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-formatters title: "@kbn/formatters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/formatters plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/formatters'] --- import kbnFormattersObj from './kbn_formatters.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx index 9666bd1f7ebca..f6944fd1455a1 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services'] --- import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_ui_services.mdx b/api_docs/kbn_ftr_common_functional_ui_services.mdx index e17151105566c..3cd62c367fc28 100644 --- a/api_docs/kbn_ftr_common_functional_ui_services.mdx +++ b/api_docs/kbn_ftr_common_functional_ui_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-ui-services title: "@kbn/ftr-common-functional-ui-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-ui-services plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-ui-services'] --- import kbnFtrCommonFunctionalUiServicesObj from './kbn_ftr_common_functional_ui_services.devdocs.json'; diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx index a14f8cfd89a86..c00f7f93d7036 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_generate_console_definitions.mdx b/api_docs/kbn_generate_console_definitions.mdx index 74e2f6c9f624e..f98c64552f5fd 100644 --- a/api_docs/kbn_generate_console_definitions.mdx +++ b/api_docs/kbn_generate_console_definitions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-console-definitions title: "@kbn/generate-console-definitions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-console-definitions plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-console-definitions'] --- import kbnGenerateConsoleDefinitionsObj from './kbn_generate_console_definitions.devdocs.json'; diff --git a/api_docs/kbn_generate_csv.mdx b/api_docs/kbn_generate_csv.mdx index 344e2af29c0fb..439b1143bf75d 100644 --- a/api_docs/kbn_generate_csv.mdx +++ b/api_docs/kbn_generate_csv.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-csv title: "@kbn/generate-csv" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-csv plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv'] --- import kbnGenerateCsvObj from './kbn_generate_csv.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index 0a95e72ed0411..289f59395b095 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/guided-onboarding'] --- import kbnGuidedOnboardingObj from './kbn_guided_onboarding.devdocs.json'; diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index 0d4f44ff027a0..e6d168aa7b4cf 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/handlebars'] --- import kbnHandlebarsObj from './kbn_handlebars.devdocs.json'; diff --git a/api_docs/kbn_hapi_mocks.mdx b/api_docs/kbn_hapi_mocks.mdx index 4884115cfca81..8a6c4dea528c9 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks'] --- import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json'; diff --git a/api_docs/kbn_health_gateway_server.mdx b/api_docs/kbn_health_gateway_server.mdx index 61e91d1048c8e..82f9a5377de55 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/health-gateway-server'] --- import kbnHealthGatewayServerObj from './kbn_health_gateway_server.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx index a56054278ff40..dfb1c1bb1af8e 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-card'] --- import kbnHomeSampleDataCardObj from './kbn_home_sample_data_card.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_tab.mdx b/api_docs/kbn_home_sample_data_tab.mdx index c7a3400a20ac2..765e04299c0f1 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-tab'] --- import kbnHomeSampleDataTabObj from './kbn_home_sample_data_tab.devdocs.json'; diff --git a/api_docs/kbn_i18n.mdx b/api_docs/kbn_i18n.mdx index 1ea6b1b5e87d3..7e2ad0d05061c 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n'] --- import kbnI18nObj from './kbn_i18n.devdocs.json'; diff --git a/api_docs/kbn_i18n_react.mdx b/api_docs/kbn_i18n_react.mdx index 3e15e62e73799..5a7baf4041a5c 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n-react'] --- import kbnI18nReactObj from './kbn_i18n_react.devdocs.json'; diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx index da72467bb15f7..7170366a126b3 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver'] --- import kbnImportResolverObj from './kbn_import_resolver.devdocs.json'; diff --git a/api_docs/kbn_infra_forge.mdx b/api_docs/kbn_infra_forge.mdx index cff95fae8b1a0..6fa3d10434bc6 100644 --- a/api_docs/kbn_infra_forge.mdx +++ b/api_docs/kbn_infra_forge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-infra-forge title: "@kbn/infra-forge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/infra-forge plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/infra-forge'] --- import kbnInfraForgeObj from './kbn_infra_forge.devdocs.json'; diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx index 88d4fe207480d..876f31b98ebef 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index a9d7fda467490..399e5824af387 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index 442d29bb59627..29f69ba14d730 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/jest-serializers'] --- import kbnJestSerializersObj from './kbn_jest_serializers.devdocs.json'; diff --git a/api_docs/kbn_journeys.mdx b/api_docs/kbn_journeys.mdx index 8652c6a158a9d..dd2b07309956f 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx index 735d6d402269e..8d290ab241518 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index 6f2a3031809bc..b71ba32c415a2 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; diff --git a/api_docs/kbn_language_documentation_popover.mdx b/api_docs/kbn_language_documentation_popover.mdx index dc978f9f44205..10a9b8deaa777 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation-popover'] --- import kbnLanguageDocumentationPopoverObj from './kbn_language_documentation_popover.devdocs.json'; diff --git a/api_docs/kbn_lens_embeddable_utils.mdx b/api_docs/kbn_lens_embeddable_utils.mdx index 3495b08a7ad61..75f84afd41e67 100644 --- a/api_docs/kbn_lens_embeddable_utils.mdx +++ b/api_docs/kbn_lens_embeddable_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-embeddable-utils title: "@kbn/lens-embeddable-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/lens-embeddable-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-embeddable-utils'] --- import kbnLensEmbeddableUtilsObj from './kbn_lens_embeddable_utils.devdocs.json'; diff --git a/api_docs/kbn_lens_formula_docs.mdx b/api_docs/kbn_lens_formula_docs.mdx index 5d9028ef2f8e1..47e295a28c314 100644 --- a/api_docs/kbn_lens_formula_docs.mdx +++ b/api_docs/kbn_lens_formula_docs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-formula-docs title: "@kbn/lens-formula-docs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/lens-formula-docs plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-formula-docs'] --- import kbnLensFormulaDocsObj from './kbn_lens_formula_docs.devdocs.json'; diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index 0933059aac0a6..af11a903280b1 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging'] --- import kbnLoggingObj from './kbn_logging.devdocs.json'; diff --git a/api_docs/kbn_logging_mocks.mdx b/api_docs/kbn_logging_mocks.mdx index 5a59ff7115fce..5cb771c1a7937 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks'] --- import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json'; diff --git a/api_docs/kbn_managed_content_badge.mdx b/api_docs/kbn_managed_content_badge.mdx index 8b7366d453785..2fa6906af635e 100644 --- a/api_docs/kbn_managed_content_badge.mdx +++ b/api_docs/kbn_managed_content_badge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-content-badge title: "@kbn/managed-content-badge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-content-badge plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-content-badge'] --- import kbnManagedContentBadgeObj from './kbn_managed_content_badge.devdocs.json'; diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx index 52d3db84930e7..e351a15fe2455 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-vscode-config'] --- import kbnManagedVscodeConfigObj from './kbn_managed_vscode_config.devdocs.json'; diff --git a/api_docs/kbn_management_cards_navigation.mdx b/api_docs/kbn_management_cards_navigation.mdx index 978e32616ed17..857b1942bb4aa 100644 --- a/api_docs/kbn_management_cards_navigation.mdx +++ b/api_docs/kbn_management_cards_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-cards-navigation title: "@kbn/management-cards-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-cards-navigation plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-cards-navigation'] --- import kbnManagementCardsNavigationObj from './kbn_management_cards_navigation.devdocs.json'; diff --git a/api_docs/kbn_management_settings_application.mdx b/api_docs/kbn_management_settings_application.mdx index 98d6d99bd6b98..4e980cf002654 100644 --- a/api_docs/kbn_management_settings_application.mdx +++ b/api_docs/kbn_management_settings_application.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-application title: "@kbn/management-settings-application" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-application plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-application'] --- import kbnManagementSettingsApplicationObj from './kbn_management_settings_application.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_category.mdx b/api_docs/kbn_management_settings_components_field_category.mdx index 5bc3f45b0d45b..2d7b833d1a6b2 100644 --- a/api_docs/kbn_management_settings_components_field_category.mdx +++ b/api_docs/kbn_management_settings_components_field_category.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-category title: "@kbn/management-settings-components-field-category" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-category plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-category'] --- import kbnManagementSettingsComponentsFieldCategoryObj from './kbn_management_settings_components_field_category.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_input.mdx b/api_docs/kbn_management_settings_components_field_input.mdx index c1f7935d8e834..26cbd9053ee56 100644 --- a/api_docs/kbn_management_settings_components_field_input.mdx +++ b/api_docs/kbn_management_settings_components_field_input.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-input title: "@kbn/management-settings-components-field-input" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-input plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-input'] --- import kbnManagementSettingsComponentsFieldInputObj from './kbn_management_settings_components_field_input.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_row.mdx b/api_docs/kbn_management_settings_components_field_row.mdx index 0a26b6ab9801f..884355a7b24bc 100644 --- a/api_docs/kbn_management_settings_components_field_row.mdx +++ b/api_docs/kbn_management_settings_components_field_row.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-row title: "@kbn/management-settings-components-field-row" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-row plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-row'] --- import kbnManagementSettingsComponentsFieldRowObj from './kbn_management_settings_components_field_row.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_form.mdx b/api_docs/kbn_management_settings_components_form.mdx index 1b2674f58b4e8..f352cc25580a9 100644 --- a/api_docs/kbn_management_settings_components_form.mdx +++ b/api_docs/kbn_management_settings_components_form.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-form title: "@kbn/management-settings-components-form" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-form plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-form'] --- import kbnManagementSettingsComponentsFormObj from './kbn_management_settings_components_form.devdocs.json'; diff --git a/api_docs/kbn_management_settings_field_definition.mdx b/api_docs/kbn_management_settings_field_definition.mdx index e28158e5a5254..2c5a8997ea8b7 100644 --- a/api_docs/kbn_management_settings_field_definition.mdx +++ b/api_docs/kbn_management_settings_field_definition.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-field-definition title: "@kbn/management-settings-field-definition" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-field-definition plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-field-definition'] --- import kbnManagementSettingsFieldDefinitionObj from './kbn_management_settings_field_definition.devdocs.json'; diff --git a/api_docs/kbn_management_settings_ids.mdx b/api_docs/kbn_management_settings_ids.mdx index cea59065f3767..4104752f30955 100644 --- a/api_docs/kbn_management_settings_ids.mdx +++ b/api_docs/kbn_management_settings_ids.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-ids title: "@kbn/management-settings-ids" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-ids plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-ids'] --- import kbnManagementSettingsIdsObj from './kbn_management_settings_ids.devdocs.json'; diff --git a/api_docs/kbn_management_settings_section_registry.mdx b/api_docs/kbn_management_settings_section_registry.mdx index ea80c683d6c72..a1b6af22dbeb2 100644 --- a/api_docs/kbn_management_settings_section_registry.mdx +++ b/api_docs/kbn_management_settings_section_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-section-registry title: "@kbn/management-settings-section-registry" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-section-registry plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-section-registry'] --- import kbnManagementSettingsSectionRegistryObj from './kbn_management_settings_section_registry.devdocs.json'; diff --git a/api_docs/kbn_management_settings_types.mdx b/api_docs/kbn_management_settings_types.mdx index 844996b65e692..69b3bbe8120d7 100644 --- a/api_docs/kbn_management_settings_types.mdx +++ b/api_docs/kbn_management_settings_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-types title: "@kbn/management-settings-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-types plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-types'] --- import kbnManagementSettingsTypesObj from './kbn_management_settings_types.devdocs.json'; diff --git a/api_docs/kbn_management_settings_utilities.mdx b/api_docs/kbn_management_settings_utilities.mdx index e7275393de9be..09ce332c3ba97 100644 --- a/api_docs/kbn_management_settings_utilities.mdx +++ b/api_docs/kbn_management_settings_utilities.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-utilities title: "@kbn/management-settings-utilities" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-utilities plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-utilities'] --- import kbnManagementSettingsUtilitiesObj from './kbn_management_settings_utilities.devdocs.json'; diff --git a/api_docs/kbn_management_storybook_config.mdx b/api_docs/kbn_management_storybook_config.mdx index 51ccd571d97e5..c6d3139c12bf4 100644 --- a/api_docs/kbn_management_storybook_config.mdx +++ b/api_docs/kbn_management_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-storybook-config title: "@kbn/management-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-storybook-config plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-storybook-config'] --- import kbnManagementStorybookConfigObj from './kbn_management_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx index 689ca6dc7550d..911c69a55fcf2 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl'] --- import kbnMapboxGlObj from './kbn_mapbox_gl.devdocs.json'; diff --git a/api_docs/kbn_maps_vector_tile_utils.mdx b/api_docs/kbn_maps_vector_tile_utils.mdx index f9eeb1ee041a0..4d4a0b49f878f 100644 --- a/api_docs/kbn_maps_vector_tile_utils.mdx +++ b/api_docs/kbn_maps_vector_tile_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-maps-vector-tile-utils title: "@kbn/maps-vector-tile-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/maps-vector-tile-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/maps-vector-tile-utils'] --- import kbnMapsVectorTileUtilsObj from './kbn_maps_vector_tile_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx index 48118be38c28e..aaafc04e84f51 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_anomaly_utils.mdx b/api_docs/kbn_ml_anomaly_utils.mdx index 691b4890d2dbe..ffe7991829833 100644 --- a/api_docs/kbn_ml_anomaly_utils.mdx +++ b/api_docs/kbn_ml_anomaly_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-anomaly-utils title: "@kbn/ml-anomaly-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-anomaly-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-anomaly-utils'] --- import kbnMlAnomalyUtilsObj from './kbn_ml_anomaly_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_cancellable_search.mdx b/api_docs/kbn_ml_cancellable_search.mdx index 5406905286030..613f7f0d211f9 100644 --- a/api_docs/kbn_ml_cancellable_search.mdx +++ b/api_docs/kbn_ml_cancellable_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-cancellable-search title: "@kbn/ml-cancellable-search" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-cancellable-search plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-cancellable-search'] --- import kbnMlCancellableSearchObj from './kbn_ml_cancellable_search.devdocs.json'; diff --git a/api_docs/kbn_ml_category_validator.mdx b/api_docs/kbn_ml_category_validator.mdx index ce241c4aeba8e..d31ff40027fa1 100644 --- a/api_docs/kbn_ml_category_validator.mdx +++ b/api_docs/kbn_ml_category_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-category-validator title: "@kbn/ml-category-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-category-validator plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-category-validator'] --- import kbnMlCategoryValidatorObj from './kbn_ml_category_validator.devdocs.json'; diff --git a/api_docs/kbn_ml_chi2test.mdx b/api_docs/kbn_ml_chi2test.mdx index 467a4c9412587..65213dcdba5f6 100644 --- a/api_docs/kbn_ml_chi2test.mdx +++ b/api_docs/kbn_ml_chi2test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-chi2test title: "@kbn/ml-chi2test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-chi2test plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-chi2test'] --- import kbnMlChi2testObj from './kbn_ml_chi2test.devdocs.json'; diff --git a/api_docs/kbn_ml_data_frame_analytics_utils.mdx b/api_docs/kbn_ml_data_frame_analytics_utils.mdx index 673b551e79cc0..5da94c2155652 100644 --- a/api_docs/kbn_ml_data_frame_analytics_utils.mdx +++ b/api_docs/kbn_ml_data_frame_analytics_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-frame-analytics-utils title: "@kbn/ml-data-frame-analytics-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-data-frame-analytics-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-frame-analytics-utils'] --- import kbnMlDataFrameAnalyticsUtilsObj from './kbn_ml_data_frame_analytics_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_data_grid.mdx b/api_docs/kbn_ml_data_grid.mdx index 7f12429fa27d8..5ce1b93ddec18 100644 --- a/api_docs/kbn_ml_data_grid.mdx +++ b/api_docs/kbn_ml_data_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-grid title: "@kbn/ml-data-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-data-grid plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-grid'] --- import kbnMlDataGridObj from './kbn_ml_data_grid.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index b167502539f92..ae5c1703ccb37 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_date_utils.mdx b/api_docs/kbn_ml_date_utils.mdx index 6ad39f7d9f1a5..3528dec2be7b8 100644 --- a/api_docs/kbn_ml_date_utils.mdx +++ b/api_docs/kbn_ml_date_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-utils title: "@kbn/ml-date-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-utils'] --- import kbnMlDateUtilsObj from './kbn_ml_date_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_error_utils.mdx b/api_docs/kbn_ml_error_utils.mdx index cf79dba4012c8..fb7af3f9681ed 100644 --- a/api_docs/kbn_ml_error_utils.mdx +++ b/api_docs/kbn_ml_error_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-error-utils title: "@kbn/ml-error-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-error-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-error-utils'] --- import kbnMlErrorUtilsObj from './kbn_ml_error_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_in_memory_table.mdx b/api_docs/kbn_ml_in_memory_table.mdx index 9c3bcc1e0ad09..5e5cbb23382e5 100644 --- a/api_docs/kbn_ml_in_memory_table.mdx +++ b/api_docs/kbn_ml_in_memory_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-in-memory-table title: "@kbn/ml-in-memory-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-in-memory-table plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-in-memory-table'] --- import kbnMlInMemoryTableObj from './kbn_ml_in_memory_table.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index 975b5cf6cf0aa..e6dced8ceb8be 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined'] --- import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json'; diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index 36b532622a21c..3a3d448cba6e7 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_kibana_theme.mdx b/api_docs/kbn_ml_kibana_theme.mdx index 80355d59034a1..8b5ebf7eb53e5 100644 --- a/api_docs/kbn_ml_kibana_theme.mdx +++ b/api_docs/kbn_ml_kibana_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-kibana-theme title: "@kbn/ml-kibana-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-kibana-theme plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-kibana-theme'] --- import kbnMlKibanaThemeObj from './kbn_ml_kibana_theme.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index 06bf75e1effd0..a044a808af7ed 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage'] --- import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json'; diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx index 906e93571f7bd..9320ce7e45ec1 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_number_utils.mdx b/api_docs/kbn_ml_number_utils.mdx index bea712ffff1fd..5a78e33304199 100644 --- a/api_docs/kbn_ml_number_utils.mdx +++ b/api_docs/kbn_ml_number_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-number-utils title: "@kbn/ml-number-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-number-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-number-utils'] --- import kbnMlNumberUtilsObj from './kbn_ml_number_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index f2e1e847a8a54..b7ebb1b9834b5 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_random_sampler_utils.mdx b/api_docs/kbn_ml_random_sampler_utils.mdx index 4b6ad0f589f52..79205676d4de1 100644 --- a/api_docs/kbn_ml_random_sampler_utils.mdx +++ b/api_docs/kbn_ml_random_sampler_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-random-sampler-utils title: "@kbn/ml-random-sampler-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-random-sampler-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-random-sampler-utils'] --- import kbnMlRandomSamplerUtilsObj from './kbn_ml_random_sampler_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_route_utils.mdx b/api_docs/kbn_ml_route_utils.mdx index e412c734a4762..d393c2f2501de 100644 --- a/api_docs/kbn_ml_route_utils.mdx +++ b/api_docs/kbn_ml_route_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils title: "@kbn/ml-route-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-route-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-route-utils'] --- import kbnMlRouteUtilsObj from './kbn_ml_route_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_runtime_field_utils.mdx b/api_docs/kbn_ml_runtime_field_utils.mdx index 4857c3bf594cf..b0a58f66817b9 100644 --- a/api_docs/kbn_ml_runtime_field_utils.mdx +++ b/api_docs/kbn_ml_runtime_field_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-runtime-field-utils title: "@kbn/ml-runtime-field-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-runtime-field-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-runtime-field-utils'] --- import kbnMlRuntimeFieldUtilsObj from './kbn_ml_runtime_field_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 9c9d3c79e581f..e4fabbf23a150 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index 9b67524d020bb..c415e52744c30 100644 --- a/api_docs/kbn_ml_trained_models_utils.mdx +++ b/api_docs/kbn_ml_trained_models_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils title: "@kbn/ml-trained-models-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-trained-models-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils'] --- import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_ui_actions.mdx b/api_docs/kbn_ml_ui_actions.mdx index 63e6feca8426e..5256fb23e133f 100644 --- a/api_docs/kbn_ml_ui_actions.mdx +++ b/api_docs/kbn_ml_ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-ui-actions title: "@kbn/ml-ui-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-ui-actions plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-ui-actions'] --- import kbnMlUiActionsObj from './kbn_ml_ui_actions.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index 22208cd64e79b..dab260ba94df2 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_mock_idp_utils.mdx b/api_docs/kbn_mock_idp_utils.mdx index ef086905a4d78..0b2221bcc0e82 100644 --- a/api_docs/kbn_mock_idp_utils.mdx +++ b/api_docs/kbn_mock_idp_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mock-idp-utils title: "@kbn/mock-idp-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mock-idp-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mock-idp-utils'] --- import kbnMockIdpUtilsObj from './kbn_mock_idp_utils.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index b9b6ba69dca6e..3ac37ec2d8c95 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx index 72f299615d917..5018794cdaeb4 100644 --- a/api_docs/kbn_object_versioning.mdx +++ b/api_docs/kbn_object_versioning.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning title: "@kbn/object-versioning" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/object-versioning plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning'] --- import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json'; diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx index fc3bee58503e5..4d8ca8d06a7f1 100644 --- a/api_docs/kbn_observability_alert_details.mdx +++ b/api_docs/kbn_observability_alert_details.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details title: "@kbn/observability-alert-details" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alert-details plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details'] --- import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json'; diff --git a/api_docs/kbn_observability_alerting_test_data.mdx b/api_docs/kbn_observability_alerting_test_data.mdx index e5118300bb706..d36b14f851a64 100644 --- a/api_docs/kbn_observability_alerting_test_data.mdx +++ b/api_docs/kbn_observability_alerting_test_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alerting-test-data title: "@kbn/observability-alerting-test-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alerting-test-data plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alerting-test-data'] --- import kbnObservabilityAlertingTestDataObj from './kbn_observability_alerting_test_data.devdocs.json'; diff --git a/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx b/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx index d169f220ae850..31c424d84981f 100644 --- a/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx +++ b/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-get-padded-alert-time-range-util title: "@kbn/observability-get-padded-alert-time-range-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-get-padded-alert-time-range-util plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-get-padded-alert-time-range-util'] --- import kbnObservabilityGetPaddedAlertTimeRangeUtilObj from './kbn_observability_get_padded_alert_time_range_util.devdocs.json'; diff --git a/api_docs/kbn_openapi_bundler.mdx b/api_docs/kbn_openapi_bundler.mdx index 3cfa59769e77e..6416a07b59b65 100644 --- a/api_docs/kbn_openapi_bundler.mdx +++ b/api_docs/kbn_openapi_bundler.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-bundler title: "@kbn/openapi-bundler" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/openapi-bundler plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-bundler'] --- import kbnOpenapiBundlerObj from './kbn_openapi_bundler.devdocs.json'; diff --git a/api_docs/kbn_openapi_generator.mdx b/api_docs/kbn_openapi_generator.mdx index 0a257c69d7867..20b29d09bcaeb 100644 --- a/api_docs/kbn_openapi_generator.mdx +++ b/api_docs/kbn_openapi_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-generator title: "@kbn/openapi-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/openapi-generator plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-generator'] --- import kbnOpenapiGeneratorObj from './kbn_openapi_generator.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index e6c71099f8139..b51b5b4ea1804 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer'] --- import kbnOptimizerObj from './kbn_optimizer.devdocs.json'; diff --git a/api_docs/kbn_optimizer_webpack_helpers.mdx b/api_docs/kbn_optimizer_webpack_helpers.mdx index b96cfba8414db..62425b59ecbe3 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer-webpack-helpers'] --- import kbnOptimizerWebpackHelpersObj from './kbn_optimizer_webpack_helpers.devdocs.json'; diff --git a/api_docs/kbn_osquery_io_ts_types.mdx b/api_docs/kbn_osquery_io_ts_types.mdx index 9c7de0cea0782..8ed4d14cead50 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_panel_loader.mdx b/api_docs/kbn_panel_loader.mdx index d05c3560c0a38..420a8b4ae0185 100644 --- a/api_docs/kbn_panel_loader.mdx +++ b/api_docs/kbn_panel_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-panel-loader title: "@kbn/panel-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/panel-loader plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/panel-loader'] --- import kbnPanelLoaderObj from './kbn_panel_loader.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index 25aaf95c38b25..6f701b54b6333 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/performance-testing-dataset-extractor'] --- import kbnPerformanceTestingDatasetExtractorObj from './kbn_performance_testing_dataset_extractor.devdocs.json'; diff --git a/api_docs/kbn_plugin_check.mdx b/api_docs/kbn_plugin_check.mdx index 990e0f980a970..70400c02b8425 100644 --- a/api_docs/kbn_plugin_check.mdx +++ b/api_docs/kbn_plugin_check.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-check title: "@kbn/plugin-check" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-check plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-check'] --- import kbnPluginCheckObj from './kbn_plugin_check.devdocs.json'; diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx index 5ef055835f7ef..d5c96d130a3a3 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-generator'] --- import kbnPluginGeneratorObj from './kbn_plugin_generator.devdocs.json'; diff --git a/api_docs/kbn_plugin_helpers.mdx b/api_docs/kbn_plugin_helpers.mdx index fbdd1ebb62d67..2e2167666c173 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers'] --- import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json'; diff --git a/api_docs/kbn_presentation_containers.mdx b/api_docs/kbn_presentation_containers.mdx index 48a0fceceb1bc..f098157b2ada9 100644 --- a/api_docs/kbn_presentation_containers.mdx +++ b/api_docs/kbn_presentation_containers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-containers title: "@kbn/presentation-containers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/presentation-containers plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-containers'] --- import kbnPresentationContainersObj from './kbn_presentation_containers.devdocs.json'; diff --git a/api_docs/kbn_presentation_library.mdx b/api_docs/kbn_presentation_library.mdx index c6d412e993c11..1ef880e1836fe 100644 --- a/api_docs/kbn_presentation_library.mdx +++ b/api_docs/kbn_presentation_library.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-library title: "@kbn/presentation-library" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/presentation-library plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-library'] --- import kbnPresentationLibraryObj from './kbn_presentation_library.devdocs.json'; diff --git a/api_docs/kbn_presentation_publishing.mdx b/api_docs/kbn_presentation_publishing.mdx index 58f0663731521..efebe80cc9ab3 100644 --- a/api_docs/kbn_presentation_publishing.mdx +++ b/api_docs/kbn_presentation_publishing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-publishing title: "@kbn/presentation-publishing" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/presentation-publishing plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-publishing'] --- import kbnPresentationPublishingObj from './kbn_presentation_publishing.devdocs.json'; diff --git a/api_docs/kbn_profiling_utils.mdx b/api_docs/kbn_profiling_utils.mdx index 5a9a9b398f8f1..f1095eebba32c 100644 --- a/api_docs/kbn_profiling_utils.mdx +++ b/api_docs/kbn_profiling_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-profiling-utils title: "@kbn/profiling-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/profiling-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/profiling-utils'] --- import kbnProfilingUtilsObj from './kbn_profiling_utils.devdocs.json'; diff --git a/api_docs/kbn_random_sampling.mdx b/api_docs/kbn_random_sampling.mdx index aade3b90aed8c..a421faacb254e 100644 --- a/api_docs/kbn_random_sampling.mdx +++ b/api_docs/kbn_random_sampling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-random-sampling title: "@kbn/random-sampling" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/random-sampling plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/random-sampling'] --- import kbnRandomSamplingObj from './kbn_random_sampling.devdocs.json'; diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx index 24e9a01e5a369..4e5fec78cea73 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_common.mdx b/api_docs/kbn_react_kibana_context_common.mdx index 14fe9c93577cc..27e0a890c5cb1 100644 --- a/api_docs/kbn_react_kibana_context_common.mdx +++ b/api_docs/kbn_react_kibana_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-common title: "@kbn/react-kibana-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-common'] --- import kbnReactKibanaContextCommonObj from './kbn_react_kibana_context_common.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_render.mdx b/api_docs/kbn_react_kibana_context_render.mdx index 965ea87707a7c..d1191bb8adb08 100644 --- a/api_docs/kbn_react_kibana_context_render.mdx +++ b/api_docs/kbn_react_kibana_context_render.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-render title: "@kbn/react-kibana-context-render" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-render plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-render'] --- import kbnReactKibanaContextRenderObj from './kbn_react_kibana_context_render.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_root.mdx b/api_docs/kbn_react_kibana_context_root.mdx index a215030333a5f..ef7d51f2f2bbd 100644 --- a/api_docs/kbn_react_kibana_context_root.mdx +++ b/api_docs/kbn_react_kibana_context_root.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-root title: "@kbn/react-kibana-context-root" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-root plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-root'] --- import kbnReactKibanaContextRootObj from './kbn_react_kibana_context_root.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_styled.mdx b/api_docs/kbn_react_kibana_context_styled.mdx index 8a598c2273fc8..52dc277ce49b6 100644 --- a/api_docs/kbn_react_kibana_context_styled.mdx +++ b/api_docs/kbn_react_kibana_context_styled.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-styled title: "@kbn/react-kibana-context-styled" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-styled plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-styled'] --- import kbnReactKibanaContextStyledObj from './kbn_react_kibana_context_styled.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_theme.mdx b/api_docs/kbn_react_kibana_context_theme.mdx index 253dcc780a89d..632f043c4e5e9 100644 --- a/api_docs/kbn_react_kibana_context_theme.mdx +++ b/api_docs/kbn_react_kibana_context_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-theme title: "@kbn/react-kibana-context-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-theme plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-theme'] --- import kbnReactKibanaContextThemeObj from './kbn_react_kibana_context_theme.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_mount.mdx b/api_docs/kbn_react_kibana_mount.mdx index 77ad21e87f6d1..1ce9fcb3f0dbc 100644 --- a/api_docs/kbn_react_kibana_mount.mdx +++ b/api_docs/kbn_react_kibana_mount.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-mount title: "@kbn/react-kibana-mount" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-mount plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-mount'] --- import kbnReactKibanaMountObj from './kbn_react_kibana_mount.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 0eaffbdb37842..569deb019088e 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps'] --- import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json'; diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx index 598c629b0ffb0..d3213b466c9cd 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter'] --- import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json'; diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx index 03c572e10400e..18dd1f15a7fea 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path'] --- import kbnRepoPathObj from './kbn_repo_path.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index 3e1611d8c8e0c..2bd4b2221c4c5 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_reporting_common.mdx b/api_docs/kbn_reporting_common.mdx index 307191a2e9bff..2b22ab4ededa1 100644 --- a/api_docs/kbn_reporting_common.mdx +++ b/api_docs/kbn_reporting_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-common title: "@kbn/reporting-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-common'] --- import kbnReportingCommonObj from './kbn_reporting_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_csv.mdx b/api_docs/kbn_reporting_export_types_csv.mdx index beea4b6b6cb0e..f560e4e92bc9d 100644 --- a/api_docs/kbn_reporting_export_types_csv.mdx +++ b/api_docs/kbn_reporting_export_types_csv.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv title: "@kbn/reporting-export-types-csv" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-csv plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv'] --- import kbnReportingExportTypesCsvObj from './kbn_reporting_export_types_csv.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_csv_common.mdx b/api_docs/kbn_reporting_export_types_csv_common.mdx index 1fee17c749d0d..5a3f5ccc52fe5 100644 --- a/api_docs/kbn_reporting_export_types_csv_common.mdx +++ b/api_docs/kbn_reporting_export_types_csv_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv-common title: "@kbn/reporting-export-types-csv-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-csv-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv-common'] --- import kbnReportingExportTypesCsvCommonObj from './kbn_reporting_export_types_csv_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_pdf.mdx b/api_docs/kbn_reporting_export_types_pdf.mdx index 90b48da444d20..a4c288a369923 100644 --- a/api_docs/kbn_reporting_export_types_pdf.mdx +++ b/api_docs/kbn_reporting_export_types_pdf.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf title: "@kbn/reporting-export-types-pdf" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-pdf plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf'] --- import kbnReportingExportTypesPdfObj from './kbn_reporting_export_types_pdf.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_pdf_common.mdx b/api_docs/kbn_reporting_export_types_pdf_common.mdx index dc831e1eea602..d9bc633eb4d26 100644 --- a/api_docs/kbn_reporting_export_types_pdf_common.mdx +++ b/api_docs/kbn_reporting_export_types_pdf_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf-common title: "@kbn/reporting-export-types-pdf-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-pdf-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf-common'] --- import kbnReportingExportTypesPdfCommonObj from './kbn_reporting_export_types_pdf_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_png.mdx b/api_docs/kbn_reporting_export_types_png.mdx index 3626e54f71c29..c807bc05ca181 100644 --- a/api_docs/kbn_reporting_export_types_png.mdx +++ b/api_docs/kbn_reporting_export_types_png.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png title: "@kbn/reporting-export-types-png" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-png plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png'] --- import kbnReportingExportTypesPngObj from './kbn_reporting_export_types_png.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_png_common.mdx b/api_docs/kbn_reporting_export_types_png_common.mdx index 543849d3e4ee0..ec96fff29a991 100644 --- a/api_docs/kbn_reporting_export_types_png_common.mdx +++ b/api_docs/kbn_reporting_export_types_png_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png-common title: "@kbn/reporting-export-types-png-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-png-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png-common'] --- import kbnReportingExportTypesPngCommonObj from './kbn_reporting_export_types_png_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_mocks_server.mdx b/api_docs/kbn_reporting_mocks_server.mdx index b56861b66cc21..ac7f0bad9cfd7 100644 --- a/api_docs/kbn_reporting_mocks_server.mdx +++ b/api_docs/kbn_reporting_mocks_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-mocks-server title: "@kbn/reporting-mocks-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-mocks-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-mocks-server'] --- import kbnReportingMocksServerObj from './kbn_reporting_mocks_server.devdocs.json'; diff --git a/api_docs/kbn_reporting_public.mdx b/api_docs/kbn_reporting_public.mdx index 6bb9805ad60a5..4c5e732fd3b9a 100644 --- a/api_docs/kbn_reporting_public.mdx +++ b/api_docs/kbn_reporting_public.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-public title: "@kbn/reporting-public" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-public plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-public'] --- import kbnReportingPublicObj from './kbn_reporting_public.devdocs.json'; diff --git a/api_docs/kbn_reporting_server.mdx b/api_docs/kbn_reporting_server.mdx index 95266e2ee488f..551d1f3164421 100644 --- a/api_docs/kbn_reporting_server.mdx +++ b/api_docs/kbn_reporting_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-server title: "@kbn/reporting-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-server'] --- import kbnReportingServerObj from './kbn_reporting_server.devdocs.json'; diff --git a/api_docs/kbn_resizable_layout.mdx b/api_docs/kbn_resizable_layout.mdx index d39f4b1f025e0..8d1e3b621116b 100644 --- a/api_docs/kbn_resizable_layout.mdx +++ b/api_docs/kbn_resizable_layout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-resizable-layout title: "@kbn/resizable-layout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/resizable-layout plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/resizable-layout'] --- import kbnResizableLayoutObj from './kbn_resizable_layout.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index 55ac1147b51a4..33e461b27b0f8 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_router_utils.mdx b/api_docs/kbn_router_utils.mdx index 7b04959e908a1..0fbc45c7f4abb 100644 --- a/api_docs/kbn_router_utils.mdx +++ b/api_docs/kbn_router_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-router-utils title: "@kbn/router-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/router-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/router-utils'] --- import kbnRouterUtilsObj from './kbn_router_utils.devdocs.json'; diff --git a/api_docs/kbn_rrule.mdx b/api_docs/kbn_rrule.mdx index 18ae36e9d9422..bae6ca9882c76 100644 --- a/api_docs/kbn_rrule.mdx +++ b/api_docs/kbn_rrule.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rrule title: "@kbn/rrule" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rrule plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rrule'] --- import kbnRruleObj from './kbn_rrule.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 68f1e7d9ce9d4..ec80158543146 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_saved_objects_settings.mdx b/api_docs/kbn_saved_objects_settings.mdx index 6eccdc83531ee..27e195f19ebe9 100644 --- a/api_docs/kbn_saved_objects_settings.mdx +++ b/api_docs/kbn_saved_objects_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-saved-objects-settings title: "@kbn/saved-objects-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/saved-objects-settings plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/saved-objects-settings'] --- import kbnSavedObjectsSettingsObj from './kbn_saved_objects_settings.devdocs.json'; diff --git a/api_docs/kbn_search_api_panels.mdx b/api_docs/kbn_search_api_panels.mdx index afee8dad0a02f..467158cffc0a3 100644 --- a/api_docs/kbn_search_api_panels.mdx +++ b/api_docs/kbn_search_api_panels.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-api-panels title: "@kbn/search-api-panels" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-api-panels plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-api-panels'] --- import kbnSearchApiPanelsObj from './kbn_search_api_panels.devdocs.json'; diff --git a/api_docs/kbn_search_connectors.devdocs.json b/api_docs/kbn_search_connectors.devdocs.json index cb032bcdaef13..ed7d7b937ae4b 100644 --- a/api_docs/kbn_search_connectors.devdocs.json +++ b/api_docs/kbn_search_connectors.devdocs.json @@ -81,6 +81,61 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.collectConnectorStats", + "type": "Function", + "tags": [], + "label": "collectConnectorStats", + "description": [], + "signature": [ + "(client: ", + { + "pluginId": "@kbn/core-elasticsearch-server", + "scope": "common", + "docId": "kibKbnCoreElasticsearchServerPluginApi", + "section": "def-common.ElasticsearchClient", + "text": "ElasticsearchClient" + }, + ") => Promise<", + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.ConnectorStats", + "text": "ConnectorStats" + }, + "[]>" + ], + "path": "packages/kbn-search-connectors/lib/collect_connector_stats.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.collectConnectorStats.$1", + "type": "Object", + "tags": [], + "label": "client", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-elasticsearch-server", + "scope": "common", + "docId": "kibKbnCoreElasticsearchServerPluginApi", + "section": "def-common.ElasticsearchClient", + "text": "ElasticsearchClient" + } + ], + "path": "packages/kbn-search-connectors/lib/collect_connector_stats.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/search-connectors", "id": "def-common.ConnectorConfigurationComponent", @@ -3166,6 +3221,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.Connector.last_deleted_document_count", + "type": "CompoundType", + "tags": [], + "label": "last_deleted_document_count", + "description": [], + "signature": [ + "number | null" + ], + "path": "packages/kbn-search-connectors/types/connectors.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/search-connectors", "id": "def-common.Connector.last_incremental_sync_scheduled_at", @@ -3180,6 +3249,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.Connector.last_indexed_document_count", + "type": "CompoundType", + "tags": [], + "label": "last_indexed_document_count", + "description": [], + "signature": [ + "number | null" + ], + "path": "packages/kbn-search-connectors/types/connectors.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/search-connectors", "id": "def-common.Connector.last_seen", @@ -3956,6 +4039,266 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorStats", + "type": "Interface", + "tags": [], + "label": "ConnectorStats", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorStats.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorStats.serviceType", + "type": "CompoundType", + "tags": [], + "label": "serviceType", + "description": [], + "signature": [ + "string | null | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorStats.isNative", + "type": "CompoundType", + "tags": [], + "label": "isNative", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorStats.isDeleted", + "type": "boolean", + "tags": [], + "label": "isDeleted", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorStats.status", + "type": "CompoundType", + "tags": [], + "label": "status", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.ConnectorStatus", + "text": "ConnectorStatus" + }, + " | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorStats.indexName", + "type": "CompoundType", + "tags": [], + "label": "indexName", + "description": [], + "signature": [ + "string | null | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorStats.dlsEnabled", + "type": "CompoundType", + "tags": [], + "label": "dlsEnabled", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorStats.sslEnabled", + "type": "CompoundType", + "tags": [], + "label": "sslEnabled", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorStats.fetchSelectively", + "type": "CompoundType", + "tags": [], + "label": "fetchSelectively", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorStats.textExtractionServiceEnabled", + "type": "CompoundType", + "tags": [], + "label": "textExtractionServiceEnabled", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorStats.documents", + "type": "Object", + "tags": [], + "label": "documents", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DocumentsStats", + "text": "DocumentsStats" + }, + " | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorStats.dataSourceSpecific", + "type": "Object", + "tags": [], + "label": "dataSourceSpecific", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DataSourceSpecificStats", + "text": "DataSourceSpecificStats" + }, + " | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorStats.scheduling", + "type": "Object", + "tags": [], + "label": "scheduling", + "description": [], + "signature": [ + "{ accessControl: Scheduling; full: Scheduling; incremental: Scheduling; } | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorStats.syncRules", + "type": "Object", + "tags": [], + "label": "syncRules", + "description": [], + "signature": [ + "{ active: { withBasicRules: boolean; withAdvancedRules: boolean; }; draft: { withBasicRules: boolean; withAdvancedRules: boolean; }; } | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorStats.ingestPipeline", + "type": "Object", + "tags": [], + "label": "ingestPipeline", + "description": [], + "signature": [ + "{ name: string; extractBinaryContent: boolean; reduceWhitespace: boolean; runMLInference: boolean; } | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorStats.syncJobs", + "type": "Object", + "tags": [], + "label": "syncJobs", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.SyncJobStats", + "text": "SyncJobStats" + }, + " | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/search-connectors", "id": "def-common.ConnectorSyncJob", @@ -4332,6 +4675,160 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.DataSourceSpecificStats", + "type": "Interface", + "tags": [], + "label": "DataSourceSpecificStats", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.DataSourceSpecificStats.confluence", + "type": "Object", + "tags": [], + "label": "confluence", + "description": [], + "signature": [ + "{ dataSourceType: string; } | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.DataSourceSpecificStats.github", + "type": "Object", + "tags": [], + "label": "github", + "description": [], + "signature": [ + "{ isCloud: boolean; } | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.DataSourceSpecificStats.jira", + "type": "Object", + "tags": [], + "label": "jira", + "description": [], + "signature": [ + "{ dataSourceType: string; } | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.DataSourceSpecificStats.mongodb", + "type": "Object", + "tags": [], + "label": "mongodb", + "description": [], + "signature": [ + "{ directConnect: boolean; } | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.DataSourceSpecificStats.mssql", + "type": "Object", + "tags": [], + "label": "mssql", + "description": [], + "signature": [ + "{ validateHost: boolean; tables: number; } | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.DataSourceSpecificStats.mysql", + "type": "Object", + "tags": [], + "label": "mysql", + "description": [], + "signature": [ + "{ tables: number; } | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.DataSourceSpecificStats.oracle", + "type": "Object", + "tags": [], + "label": "oracle", + "description": [], + "signature": [ + "{ tables: number; } | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.DataSourceSpecificStats.postgresql", + "type": "Object", + "tags": [], + "label": "postgresql", + "description": [], + "signature": [ + "{ tables: number; } | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.DataSourceSpecificStats.slack", + "type": "Object", + "tags": [], + "label": "slack", + "description": [], + "signature": [ + "{ autoJoinChannelsEnabled: boolean; syncUsersEnabled: boolean; fetchLastNDays: number; } | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.DataSourceSpecificStats.zoom", + "type": "Object", + "tags": [], + "label": "zoom", + "description": [], + "signature": [ + "{ recordingAge: number; } | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/search-connectors", "id": "def-common.Dependency", @@ -4371,6 +4868,53 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.DocumentsStats", + "type": "Interface", + "tags": [], + "label": "DocumentsStats", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.DocumentsStats.total", + "type": "number", + "tags": [], + "label": "total", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.DocumentsStats.volume", + "type": "number", + "tags": [], + "label": "volume", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.DocumentsStats.inLastSync", + "type": "number", + "tags": [], + "label": "inLastSync", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/search-connectors", "id": "def-common.ElasticsearchIndex", @@ -5349,6 +5893,349 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStats", + "type": "Interface", + "tags": [], + "label": "SyncJobStats", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStats.overall", + "type": "Object", + "tags": [], + "label": "overall", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.SyncJobStatsDetails", + "text": "SyncJobStatsDetails" + } + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStats.withTextExtractionServiceEnabled", + "type": "Object", + "tags": [], + "label": "withTextExtractionServiceEnabled", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.SyncJobStatsDetails", + "text": "SyncJobStatsDetails" + }, + " | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsByState", + "type": "Interface", + "tags": [], + "label": "SyncJobStatsByState", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsByState.total", + "type": "number", + "tags": [], + "label": "total", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsByState.manual", + "type": "number", + "tags": [], + "label": "manual", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsByState.scheduled", + "type": "number", + "tags": [], + "label": "scheduled", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsByState.completed", + "type": "number", + "tags": [], + "label": "completed", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsByState.errored", + "type": "number", + "tags": [], + "label": "errored", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsByState.canceled", + "type": "number", + "tags": [], + "label": "canceled", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsByState.suspended", + "type": "number", + "tags": [], + "label": "suspended", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsByState.idle", + "type": "number", + "tags": [], + "label": "idle", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsByState.running", + "type": "number", + "tags": [], + "label": "running", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsByState.totalDurationSeconds", + "type": "number", + "tags": [], + "label": "totalDurationSeconds", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsByType", + "type": "Interface", + "tags": [], + "label": "SyncJobStatsByType", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsByType.overall", + "type": "Object", + "tags": [], + "label": "overall", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.SyncJobStatsByState", + "text": "SyncJobStatsByState" + } + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsByType.accessControl", + "type": "Object", + "tags": [], + "label": "accessControl", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.SyncJobStatsByState", + "text": "SyncJobStatsByState" + }, + " | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsByType.full", + "type": "Object", + "tags": [], + "label": "full", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.SyncJobStatsByState", + "text": "SyncJobStatsByState" + }, + " | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsByType.incremental", + "type": "Object", + "tags": [], + "label": "incremental", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.SyncJobStatsByState", + "text": "SyncJobStatsByState" + }, + " | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsDetails", + "type": "Interface", + "tags": [], + "label": "SyncJobStatsDetails", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsDetails.total", + "type": "number", + "tags": [], + "label": "total", + "description": [], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsDetails.last30Days", + "type": "Object", + "tags": [], + "label": "last30Days", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.SyncJobStatsByType", + "text": "SyncJobStatsByType" + }, + " | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.SyncJobStatsDetails.last7Days", + "type": "Object", + "tags": [], + "label": "last7Days", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.SyncJobStatsByType", + "text": "SyncJobStatsByType" + }, + " | undefined" + ], + "path": "packages/kbn-search-connectors/types/connector_stats.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/search-connectors", "id": "def-common.Validation", @@ -5668,7 +6555,7 @@ "section": "def-common.SyncStatus", "text": "SyncStatus" }, - " | null; last_incremental_sync_scheduled_at: string | null; last_seen: string | null; last_sync_error: string | null; last_sync_scheduled_at: string | null; last_sync_status: ", + " | null; last_deleted_document_count: number | null; last_incremental_sync_scheduled_at: string | null; last_indexed_document_count: number | null; last_seen: string | null; last_sync_error: string | null; last_sync_scheduled_at: string | null; last_sync_status: ", { "pluginId": "@kbn/search-connectors", "scope": "common", @@ -40437,7 +41324,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, diff --git a/api_docs/kbn_search_connectors.mdx b/api_docs/kbn_search_connectors.mdx index 9ee14bcd733fd..5bdab6c83d9eb 100644 --- a/api_docs/kbn_search_connectors.mdx +++ b/api_docs/kbn_search_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-connectors title: "@kbn/search-connectors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-connectors plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-connectors'] --- import kbnSearchConnectorsObj from './kbn_search_connectors.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/te | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3090 | 0 | 3090 | 0 | +| 3149 | 0 | 3149 | 0 | ## Common diff --git a/api_docs/kbn_search_errors.mdx b/api_docs/kbn_search_errors.mdx index f5d5ae017a048..aabf892cb1563 100644 --- a/api_docs/kbn_search_errors.mdx +++ b/api_docs/kbn_search_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-errors title: "@kbn/search-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-errors plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-errors'] --- import kbnSearchErrorsObj from './kbn_search_errors.devdocs.json'; diff --git a/api_docs/kbn_search_index_documents.mdx b/api_docs/kbn_search_index_documents.mdx index 0222f554308b0..93eac277208a4 100644 --- a/api_docs/kbn_search_index_documents.mdx +++ b/api_docs/kbn_search_index_documents.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-index-documents title: "@kbn/search-index-documents" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-index-documents plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-index-documents'] --- import kbnSearchIndexDocumentsObj from './kbn_search_index_documents.devdocs.json'; diff --git a/api_docs/kbn_search_response_warnings.mdx b/api_docs/kbn_search_response_warnings.mdx index 560caa6697c16..768adb3738b99 100644 --- a/api_docs/kbn_search_response_warnings.mdx +++ b/api_docs/kbn_search_response_warnings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-response-warnings title: "@kbn/search-response-warnings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-response-warnings plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-response-warnings'] --- import kbnSearchResponseWarningsObj from './kbn_search_response_warnings.devdocs.json'; diff --git a/api_docs/kbn_security_hardening.mdx b/api_docs/kbn_security_hardening.mdx index 349f9b1063951..7505aaf4ac086 100644 --- a/api_docs/kbn_security_hardening.mdx +++ b/api_docs/kbn_security_hardening.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-hardening title: "@kbn/security-hardening" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-hardening plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-hardening'] --- import kbnSecurityHardeningObj from './kbn_security_hardening.devdocs.json'; diff --git a/api_docs/kbn_security_plugin_types_common.mdx b/api_docs/kbn_security_plugin_types_common.mdx index e2e29cc5b29fb..8dc2f0d26cfdb 100644 --- a/api_docs/kbn_security_plugin_types_common.mdx +++ b/api_docs/kbn_security_plugin_types_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-common title: "@kbn/security-plugin-types-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-plugin-types-common plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-common'] --- import kbnSecurityPluginTypesCommonObj from './kbn_security_plugin_types_common.devdocs.json'; diff --git a/api_docs/kbn_security_plugin_types_public.mdx b/api_docs/kbn_security_plugin_types_public.mdx index 664dd944ae21a..1d2df559232c8 100644 --- a/api_docs/kbn_security_plugin_types_public.mdx +++ b/api_docs/kbn_security_plugin_types_public.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-public title: "@kbn/security-plugin-types-public" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-plugin-types-public plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-public'] --- import kbnSecurityPluginTypesPublicObj from './kbn_security_plugin_types_public.devdocs.json'; diff --git a/api_docs/kbn_security_plugin_types_server.mdx b/api_docs/kbn_security_plugin_types_server.mdx index ad833e2c9f656..db53d5ffaf3f2 100644 --- a/api_docs/kbn_security_plugin_types_server.mdx +++ b/api_docs/kbn_security_plugin_types_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-server title: "@kbn/security-plugin-types-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-plugin-types-server plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-server'] --- import kbnSecurityPluginTypesServerObj from './kbn_security_plugin_types_server.devdocs.json'; diff --git a/api_docs/kbn_security_solution_features.mdx b/api_docs/kbn_security_solution_features.mdx index f1ec84baf5ccc..a190a0487aa92 100644 --- a/api_docs/kbn_security_solution_features.mdx +++ b/api_docs/kbn_security_solution_features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-features title: "@kbn/security-solution-features" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-features plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-features'] --- import kbnSecuritySolutionFeaturesObj from './kbn_security_solution_features.devdocs.json'; diff --git a/api_docs/kbn_security_solution_navigation.mdx b/api_docs/kbn_security_solution_navigation.mdx index 1abe05ed0507d..9d983ac1619d3 100644 --- a/api_docs/kbn_security_solution_navigation.mdx +++ b/api_docs/kbn_security_solution_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-navigation title: "@kbn/security-solution-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-navigation plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-navigation'] --- import kbnSecuritySolutionNavigationObj from './kbn_security_solution_navigation.devdocs.json'; diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx index 2f939d07b9a2f..3c853db2263bf 100644 --- a/api_docs/kbn_security_solution_side_nav.mdx +++ b/api_docs/kbn_security_solution_side_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav title: "@kbn/security-solution-side-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-side-nav plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav'] --- import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json'; diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx index 3deb343eb2cfa..d8d877b3d8b50 100644 --- a/api_docs/kbn_security_solution_storybook_config.mdx +++ b/api_docs/kbn_security_solution_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config title: "@kbn/security-solution-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-storybook-config plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config'] --- import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index a68df6da04e57..40a6ffcdc94f2 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_data_table.mdx b/api_docs/kbn_securitysolution_data_table.mdx index 93093a9b10f52..01ea2bd841b05 100644 --- a/api_docs/kbn_securitysolution_data_table.mdx +++ b/api_docs/kbn_securitysolution_data_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-data-table title: "@kbn/securitysolution-data-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-data-table plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-data-table'] --- import kbnSecuritysolutionDataTableObj from './kbn_securitysolution_data_table.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index a5c9f8ca26f51..efe7932700ff3 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index abb1f0fd3d0af..0f0d6703145d8 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils'] --- import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx index fbd45fbe1a0bc..55a718cbe4771 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx index b4e352d8ac015..aaac56942641f 100644 --- a/api_docs/kbn_securitysolution_grouping.mdx +++ b/api_docs/kbn_securitysolution_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping title: "@kbn/securitysolution-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-grouping plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping'] --- import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 6d0702b9556d4..43ffcaedbb661 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-hook-utils'] --- import kbnSecuritysolutionHookUtilsObj from './kbn_securitysolution_hook_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx index 83d5cff66c501..064715f2e90f0 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-alerting-types'] --- import kbnSecuritysolutionIoTsAlertingTypesObj from './kbn_securitysolution_io_ts_alerting_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.mdx b/api_docs/kbn_securitysolution_io_ts_list_types.mdx index 4f6e9df94d9fd..ebecedb97cd37 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-list-types'] --- import kbnSecuritysolutionIoTsListTypesObj from './kbn_securitysolution_io_ts_list_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_types.mdx b/api_docs/kbn_securitysolution_io_ts_types.mdx index 2ff9691ca6b61..9dd3fb5ccfd5c 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-types'] --- import kbnSecuritysolutionIoTsTypesObj from './kbn_securitysolution_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_utils.mdx b/api_docs/kbn_securitysolution_io_ts_utils.mdx index 230d3f19c5e4a..d2ca00797160d 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-utils'] --- import kbnSecuritysolutionIoTsUtilsObj from './kbn_securitysolution_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_api.mdx b/api_docs/kbn_securitysolution_list_api.mdx index 9ac858267c266..9bc2946960467 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-api'] --- import kbnSecuritysolutionListApiObj from './kbn_securitysolution_list_api.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_constants.mdx b/api_docs/kbn_securitysolution_list_constants.mdx index 667af27f439ec..31f8d0a472df8 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-constants'] --- import kbnSecuritysolutionListConstantsObj from './kbn_securitysolution_list_constants.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_hooks.devdocs.json b/api_docs/kbn_securitysolution_list_hooks.devdocs.json index a16b45f6a1c79..72be883878841 100644 --- a/api_docs/kbn_securitysolution_list_hooks.devdocs.json +++ b/api_docs/kbn_securitysolution_list_hooks.devdocs.json @@ -309,36 +309,74 @@ "label": "useCreateListIndex", "description": [], "signature": [ - "() => ", - { - "pluginId": "@kbn/securitysolution-hook-utils", - "scope": "common", - "docId": "kibKbnSecuritysolutionHookUtilsPluginApi", - "section": "def-common.Task", - "text": "Task" - }, - "<[args: ", - { - "pluginId": "@kbn/securitysolution-hook-utils", - "scope": "common", - "docId": "kibKbnSecuritysolutionHookUtilsPluginApi", - "section": "def-common.OptionalSignalArgs", - "text": "OptionalSignalArgs" - }, - "<", - { - "pluginId": "@kbn/securitysolution-list-api", - "scope": "common", - "docId": "kibKbnSecuritysolutionListApiPluginApi", - "section": "def-common.ApiParams", - "text": "ApiParams" - }, - ">], { acknowledged: boolean; }>" + "({ http, onError, }: { http: HttpStart; onError?: ((err: unknown) => void) | undefined; }) => { start: ", + "UseMutateFunction", + "<{ acknowledged: boolean; }, unknown, void, unknown>; loading: boolean; error: unknown; }" ], "path": "packages/kbn-securitysolution-list-hooks/src/use_create_list_index/index.ts", "deprecated": false, "trackAdoption": false, - "children": [], + "children": [ + { + "parentPluginId": "@kbn/securitysolution-list-hooks", + "id": "def-common.useCreateListIndex.$1", + "type": "Object", + "tags": [], + "label": "{\n http,\n onError,\n}", + "description": [], + "path": "packages/kbn-securitysolution-list-hooks/src/use_create_list_index/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-list-hooks", + "id": "def-common.useCreateListIndex.$1.http", + "type": "Object", + "tags": [], + "label": "http", + "description": [], + "signature": [ + "HttpStart" + ], + "path": "packages/kbn-securitysolution-list-hooks/src/use_create_list_index/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-list-hooks", + "id": "def-common.useCreateListIndex.$1.onError", + "type": "Function", + "tags": [], + "label": "onError", + "description": [], + "signature": [ + "((err: unknown) => void) | undefined" + ], + "path": "packages/kbn-securitysolution-list-hooks/src/use_create_list_index/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-list-hooks", + "id": "def-common.useCreateListIndex.$1.onError.$1", + "type": "Unknown", + "tags": [], + "label": "err", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/kbn-securitysolution-list-hooks/src/use_create_list_index/index.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ] + } + ], "returnComment": [], "initialIsOpen": false }, @@ -770,36 +808,83 @@ "label": "useReadListIndex", "description": [], "signature": [ - "() => ", - { - "pluginId": "@kbn/securitysolution-hook-utils", - "scope": "common", - "docId": "kibKbnSecuritysolutionHookUtilsPluginApi", - "section": "def-common.Task", - "text": "Task" - }, - "<[args: ", - { - "pluginId": "@kbn/securitysolution-hook-utils", - "scope": "common", - "docId": "kibKbnSecuritysolutionHookUtilsPluginApi", - "section": "def-common.OptionalSignalArgs", - "text": "OptionalSignalArgs" - }, - "<", - { - "pluginId": "@kbn/securitysolution-list-api", - "scope": "common", - "docId": "kibKbnSecuritysolutionListApiPluginApi", - "section": "def-common.ApiParams", - "text": "ApiParams" - }, - ">], { list_index: boolean; list_item_index: boolean; }>" + "({ http, isEnabled, onError, }: { isEnabled: boolean; http: HttpStart; onError?: ((err: unknown) => void) | undefined; }) => { result: { list_index: boolean; list_item_index: boolean; } | null | undefined; loading: boolean; error: unknown; }" ], "path": "packages/kbn-securitysolution-list-hooks/src/use_read_list_index/index.ts", "deprecated": false, "trackAdoption": false, - "children": [], + "children": [ + { + "parentPluginId": "@kbn/securitysolution-list-hooks", + "id": "def-common.useReadListIndex.$1", + "type": "Object", + "tags": [], + "label": "{\n http,\n isEnabled,\n onError,\n}", + "description": [], + "path": "packages/kbn-securitysolution-list-hooks/src/use_read_list_index/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-list-hooks", + "id": "def-common.useReadListIndex.$1.isEnabled", + "type": "boolean", + "tags": [], + "label": "isEnabled", + "description": [], + "path": "packages/kbn-securitysolution-list-hooks/src/use_read_list_index/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-list-hooks", + "id": "def-common.useReadListIndex.$1.http", + "type": "Object", + "tags": [], + "label": "http", + "description": [], + "signature": [ + "HttpStart" + ], + "path": "packages/kbn-securitysolution-list-hooks/src/use_read_list_index/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-list-hooks", + "id": "def-common.useReadListIndex.$1.onError", + "type": "Function", + "tags": [], + "label": "onError", + "description": [], + "signature": [ + "((err: unknown) => void) | undefined" + ], + "path": "packages/kbn-securitysolution-list-hooks/src/use_read_list_index/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-list-hooks", + "id": "def-common.useReadListIndex.$1.onError.$1", + "type": "Unknown", + "tags": [], + "label": "err", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/kbn-securitysolution-list-hooks/src/use_read_list_index/index.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ] + } + ], "returnComment": [], "initialIsOpen": false }, diff --git a/api_docs/kbn_securitysolution_list_hooks.mdx b/api_docs/kbn_securitysolution_list_hooks.mdx index 33215d29c0e8d..944743d6e0a88 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-hooks'] --- import kbnSecuritysolutionListHooksObj from './kbn_securitysolution_list_hooks.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/security-detection-engine](https://github.com/orgs/elastic/tea | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 62 | 0 | 49 | 0 | +| 71 | 0 | 58 | 0 | ## Common diff --git a/api_docs/kbn_securitysolution_list_utils.mdx b/api_docs/kbn_securitysolution_list_utils.mdx index f4341ad02fdde..cf5cc983efb9b 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-utils'] --- import kbnSecuritysolutionListUtilsObj from './kbn_securitysolution_list_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_rules.mdx b/api_docs/kbn_securitysolution_rules.mdx index fa0eec3d30c46..94a94cbec5194 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-rules'] --- import kbnSecuritysolutionRulesObj from './kbn_securitysolution_rules.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_t_grid.mdx b/api_docs/kbn_securitysolution_t_grid.mdx index 08150e8c6d261..d6fc9e6f78ab6 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-t-grid'] --- import kbnSecuritysolutionTGridObj from './kbn_securitysolution_t_grid.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_utils.mdx b/api_docs/kbn_securitysolution_utils.mdx index b998dac4874d9..50a1be3d4bbc2 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-utils'] --- import kbnSecuritysolutionUtilsObj from './kbn_securitysolution_utils.devdocs.json'; diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx index ca5b1bf6430fc..8028920544b03 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-http-tools'] --- import kbnServerHttpToolsObj from './kbn_server_http_tools.devdocs.json'; diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx index 878649cf2125e..2e55ee4765ef7 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; diff --git a/api_docs/kbn_serverless_common_settings.mdx b/api_docs/kbn_serverless_common_settings.mdx index 564001e80f3f7..5067b73cb7174 100644 --- a/api_docs/kbn_serverless_common_settings.mdx +++ b/api_docs/kbn_serverless_common_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-common-settings title: "@kbn/serverless-common-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-common-settings plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-common-settings'] --- import kbnServerlessCommonSettingsObj from './kbn_serverless_common_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_observability_settings.mdx b/api_docs/kbn_serverless_observability_settings.mdx index 1ec61b750451c..6c1b89530c721 100644 --- a/api_docs/kbn_serverless_observability_settings.mdx +++ b/api_docs/kbn_serverless_observability_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-observability-settings title: "@kbn/serverless-observability-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-observability-settings plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-observability-settings'] --- import kbnServerlessObservabilitySettingsObj from './kbn_serverless_observability_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_project_switcher.mdx b/api_docs/kbn_serverless_project_switcher.mdx index 2be6fcebdfdd2..24b9b6b32c2cd 100644 --- a/api_docs/kbn_serverless_project_switcher.mdx +++ b/api_docs/kbn_serverless_project_switcher.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-project-switcher title: "@kbn/serverless-project-switcher" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-project-switcher plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-project-switcher'] --- import kbnServerlessProjectSwitcherObj from './kbn_serverless_project_switcher.devdocs.json'; diff --git a/api_docs/kbn_serverless_search_settings.mdx b/api_docs/kbn_serverless_search_settings.mdx index 707719e69a9bf..0ea9c1c0acfaf 100644 --- a/api_docs/kbn_serverless_search_settings.mdx +++ b/api_docs/kbn_serverless_search_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-search-settings title: "@kbn/serverless-search-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-search-settings plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-search-settings'] --- import kbnServerlessSearchSettingsObj from './kbn_serverless_search_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_security_settings.mdx b/api_docs/kbn_serverless_security_settings.mdx index 67a73374de2d3..d7d8bf1350eb2 100644 --- a/api_docs/kbn_serverless_security_settings.mdx +++ b/api_docs/kbn_serverless_security_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-security-settings title: "@kbn/serverless-security-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-security-settings plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-security-settings'] --- import kbnServerlessSecuritySettingsObj from './kbn_serverless_security_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_storybook_config.mdx b/api_docs/kbn_serverless_storybook_config.mdx index 86f135cafc10b..bfbcc556f6d82 100644 --- a/api_docs/kbn_serverless_storybook_config.mdx +++ b/api_docs/kbn_serverless_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-storybook-config title: "@kbn/serverless-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-storybook-config plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-storybook-config'] --- import kbnServerlessStorybookConfigObj from './kbn_serverless_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_shared_svg.mdx b/api_docs/kbn_shared_svg.mdx index f8689e28d96d3..c5b644a61e8fd 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-svg'] --- import kbnSharedSvgObj from './kbn_shared_svg.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_avatar_solution.mdx b/api_docs/kbn_shared_ux_avatar_solution.mdx index 8790337a72aaf..320794e4ebf50 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-solution'] --- import kbnSharedUxAvatarSolutionObj from './kbn_shared_ux_avatar_solution.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx index 6d18ceda97a14..e981d5f2637bf 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen'] --- import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx index 902a45d434ebb..4e0e8bedb7d83 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-toolbar'] --- import kbnSharedUxButtonToolbarObj from './kbn_shared_ux_button_toolbar.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data.mdx b/api_docs/kbn_shared_ux_card_no_data.mdx index 7afcfedfc3026..e8b746e8773de 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data'] --- import kbnSharedUxCardNoDataObj from './kbn_shared_ux_card_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx index 4fb3ba1a4676e..78b18e2b1f59f 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks'] --- import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_chrome_navigation.mdx b/api_docs/kbn_shared_ux_chrome_navigation.mdx index 5269d40043653..ae97e531cb5dc 100644 --- a/api_docs/kbn_shared_ux_chrome_navigation.mdx +++ b/api_docs/kbn_shared_ux_chrome_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-chrome-navigation title: "@kbn/shared-ux-chrome-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-chrome-navigation plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-chrome-navigation'] --- import kbnSharedUxChromeNavigationObj from './kbn_shared_ux_chrome_navigation.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_error_boundary.mdx b/api_docs/kbn_shared_ux_error_boundary.mdx index 8eb2f29403df9..7057b379ee70d 100644 --- a/api_docs/kbn_shared_ux_error_boundary.mdx +++ b/api_docs/kbn_shared_ux_error_boundary.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-error-boundary title: "@kbn/shared-ux-error-boundary" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-error-boundary plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-error-boundary'] --- import kbnSharedUxErrorBoundaryObj from './kbn_shared_ux_error_boundary.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx index 9ae8350cd6cc8..45e0b26532920 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-context'] --- import kbnSharedUxFileContextObj from './kbn_shared_ux_file_context.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image.mdx b/api_docs/kbn_shared_ux_file_image.mdx index cd9989d16d50a..e6bbaa49ff47b 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image'] --- import kbnSharedUxFileImageObj from './kbn_shared_ux_file_image.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image_mocks.mdx b/api_docs/kbn_shared_ux_file_image_mocks.mdx index 2d22f4d3093c4..8400cf258edac 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image-mocks'] --- import kbnSharedUxFileImageMocksObj from './kbn_shared_ux_file_image_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_mocks.mdx b/api_docs/kbn_shared_ux_file_mocks.mdx index 75a7f7403b3de..d5170efc14dce 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks'] --- import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx index 5067e2a6e7c28..7a29e0a8de29b 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx index 5dd2818aed6f0..81a93f3f143ed 100644 --- a/api_docs/kbn_shared_ux_file_types.mdx +++ b/api_docs/kbn_shared_ux_file_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types title: "@kbn/shared-ux-file-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-types plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types'] --- import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index 30fc1ad190486..d163b6f45f1d7 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload'] --- import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index 3f4ef94f1d839..bdf4e2b613ac7 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-util'] --- import kbnSharedUxFileUtilObj from './kbn_shared_ux_file_util.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app.mdx b/api_docs/kbn_shared_ux_link_redirect_app.mdx index 9a7cfc8a3d894..233406dc46272 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app'] --- import kbnSharedUxLinkRedirectAppObj from './kbn_shared_ux_link_redirect_app.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx index f9f1f3840e7d6..ba77c60a189d0 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app-mocks'] --- import kbnSharedUxLinkRedirectAppMocksObj from './kbn_shared_ux_link_redirect_app_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown.mdx b/api_docs/kbn_shared_ux_markdown.mdx index 8da70bb76c36e..ac51a877b6383 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown'] --- import kbnSharedUxMarkdownObj from './kbn_shared_ux_markdown.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown_mocks.mdx b/api_docs/kbn_shared_ux_markdown_mocks.mdx index 5b2decd4d8523..f3555ed903e7b 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown-mocks'] --- import kbnSharedUxMarkdownMocksObj from './kbn_shared_ux_markdown_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx index 38463ab7a042d..ab4568220e0fe 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data'] --- import kbnSharedUxPageAnalyticsNoDataObj from './kbn_shared_ux_page_analytics_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx index fb0e475e0ecdc..42433b044d246 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data-mocks'] --- import kbnSharedUxPageAnalyticsNoDataMocksObj from './kbn_shared_ux_page_analytics_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx index 544cd2ff082a9..c48118d980cec 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data'] --- import kbnSharedUxPageKibanaNoDataObj from './kbn_shared_ux_page_kibana_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx index 302ea69a4accb..7394bb7ca85eb 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data-mocks'] --- import kbnSharedUxPageKibanaNoDataMocksObj from './kbn_shared_ux_page_kibana_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template.mdx b/api_docs/kbn_shared_ux_page_kibana_template.mdx index b88eb949451ab..99267fd936430 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template'] --- import kbnSharedUxPageKibanaTemplateObj from './kbn_shared_ux_page_kibana_template.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx index 12a82eb513e9a..48a3b14131163 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template-mocks'] --- import kbnSharedUxPageKibanaTemplateMocksObj from './kbn_shared_ux_page_kibana_template_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data.mdx b/api_docs/kbn_shared_ux_page_no_data.mdx index 15966201d137e..08e2111514f90 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data'] --- import kbnSharedUxPageNoDataObj from './kbn_shared_ux_page_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config.mdx b/api_docs/kbn_shared_ux_page_no_data_config.mdx index 6acf556408963..d80782a5b72b4 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config'] --- import kbnSharedUxPageNoDataConfigObj from './kbn_shared_ux_page_no_data_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx index 47361048bd0af..37a450a273534 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config-mocks'] --- import kbnSharedUxPageNoDataConfigMocksObj from './kbn_shared_ux_page_no_data_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx index ed21d4de34ad3..d8ac5c73b38ba 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-mocks'] --- import kbnSharedUxPageNoDataMocksObj from './kbn_shared_ux_page_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_solution_nav.mdx b/api_docs/kbn_shared_ux_page_solution_nav.mdx index fa1f22f041fd8..6ce02de626363 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-solution-nav'] --- import kbnSharedUxPageSolutionNavObj from './kbn_shared_ux_page_solution_nav.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx index 90b0700bdaa03..b8b055c90c610 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views'] --- import kbnSharedUxPromptNoDataViewsObj from './kbn_shared_ux_prompt_no_data_views.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx index cee6f7a9da8ae..f559680adadfb 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx index 7a39e104c26b2..accb66c24eb3b 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found'] --- import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index f2a9192fc983d..3df4518bc6be9 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router'] --- import kbnSharedUxRouterObj from './kbn_shared_ux_router.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router_mocks.mdx b/api_docs/kbn_shared_ux_router_mocks.mdx index f9cfa17e81f74..79f21f745563d 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router-mocks'] --- import kbnSharedUxRouterMocksObj from './kbn_shared_ux_router_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_config.mdx b/api_docs/kbn_shared_ux_storybook_config.mdx index f85c7172f946f..9d28400181581 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-config'] --- import kbnSharedUxStorybookConfigObj from './kbn_shared_ux_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_mock.mdx b/api_docs/kbn_shared_ux_storybook_mock.mdx index d6260c0e8e6a2..b323411cb581e 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock'] --- import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx index 4c0eca8502c5e..92f113ad07a17 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index bd2926f1a8cb5..a195e72d8fb67 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index c7ad605927b8f..e1d67888029d4 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_sort_predicates.mdx b/api_docs/kbn_sort_predicates.mdx index 8e290dc8b371d..c3c723748ec13 100644 --- a/api_docs/kbn_sort_predicates.mdx +++ b/api_docs/kbn_sort_predicates.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sort-predicates title: "@kbn/sort-predicates" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/sort-predicates plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sort-predicates'] --- import kbnSortPredicatesObj from './kbn_sort_predicates.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index a1190745d65e0..093a3ff24d1f8 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/std'] --- import kbnStdObj from './kbn_std.devdocs.json'; diff --git a/api_docs/kbn_stdio_dev_helpers.mdx b/api_docs/kbn_stdio_dev_helpers.mdx index 6f96447502062..6bff01f034498 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/stdio-dev-helpers'] --- import kbnStdioDevHelpersObj from './kbn_stdio_dev_helpers.devdocs.json'; diff --git a/api_docs/kbn_storybook.mdx b/api_docs/kbn_storybook.mdx index 2d04ae874dc1b..d51ba7b84aa33 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook'] --- import kbnStorybookObj from './kbn_storybook.devdocs.json'; diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx index bcc8e99631256..8b6f40efb3a9b 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools'] --- import kbnTelemetryToolsObj from './kbn_telemetry_tools.devdocs.json'; diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx index dd611c5d3ed80..9c187f963a377 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test'] --- import kbnTestObj from './kbn_test.devdocs.json'; diff --git a/api_docs/kbn_test_eui_helpers.mdx b/api_docs/kbn_test_eui_helpers.mdx index 375d9c9a77613..6c4e2649f8c17 100644 --- a/api_docs/kbn_test_eui_helpers.mdx +++ b/api_docs/kbn_test_eui_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-eui-helpers title: "@kbn/test-eui-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-eui-helpers plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-eui-helpers'] --- import kbnTestEuiHelpersObj from './kbn_test_eui_helpers.devdocs.json'; diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx index 4d58020a3028b..d4c658323524c 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-jest-helpers'] --- import kbnTestJestHelpersObj from './kbn_test_jest_helpers.devdocs.json'; diff --git a/api_docs/kbn_test_subj_selector.mdx b/api_docs/kbn_test_subj_selector.mdx index 00c73362ba2dc..4e6f3215a0cda 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector'] --- import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json'; diff --git a/api_docs/kbn_text_based_editor.mdx b/api_docs/kbn_text_based_editor.mdx index 16e5134d63dd4..e0671667a6f21 100644 --- a/api_docs/kbn_text_based_editor.mdx +++ b/api_docs/kbn_text_based_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-text-based-editor title: "@kbn/text-based-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/text-based-editor plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/text-based-editor'] --- import kbnTextBasedEditorObj from './kbn_text_based_editor.devdocs.json'; diff --git a/api_docs/kbn_timerange.mdx b/api_docs/kbn_timerange.mdx index 0f34665be1d78..d1d144efb5c28 100644 --- a/api_docs/kbn_timerange.mdx +++ b/api_docs/kbn_timerange.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-timerange title: "@kbn/timerange" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/timerange plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/timerange'] --- import kbnTimerangeObj from './kbn_timerange.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index 645893f69796d..1d793a92f2479 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_triggers_actions_ui_types.mdx b/api_docs/kbn_triggers_actions_ui_types.mdx index 59786b9fc5639..606e72673cdbc 100644 --- a/api_docs/kbn_triggers_actions_ui_types.mdx +++ b/api_docs/kbn_triggers_actions_ui_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-triggers-actions-ui-types title: "@kbn/triggers-actions-ui-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/triggers-actions-ui-types plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/triggers-actions-ui-types'] --- import kbnTriggersActionsUiTypesObj from './kbn_triggers_actions_ui_types.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index 3b5d57e6f8979..6565e1febbaf8 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index cacc2a956cfd4..63741958c25c6 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx index 08cf3eda438d3..c073d50f9d5f7 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index 428bfc61ffd83..d38d7923ce131 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-shared-deps-src'] --- import kbnUiSharedDepsSrcObj from './kbn_ui_shared_deps_src.devdocs.json'; diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx index 35f8e9fb3c907..f1226d0c64f98 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme'] --- import kbnUiThemeObj from './kbn_ui_theme.devdocs.json'; diff --git a/api_docs/kbn_unified_data_table.mdx b/api_docs/kbn_unified_data_table.mdx index 5bd96e6e3431a..589965f3c543e 100644 --- a/api_docs/kbn_unified_data_table.mdx +++ b/api_docs/kbn_unified_data_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-data-table title: "@kbn/unified-data-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-data-table plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-data-table'] --- import kbnUnifiedDataTableObj from './kbn_unified_data_table.devdocs.json'; diff --git a/api_docs/kbn_unified_doc_viewer.mdx b/api_docs/kbn_unified_doc_viewer.mdx index 6b9c674b6002b..c99bebf7d7ecf 100644 --- a/api_docs/kbn_unified_doc_viewer.mdx +++ b/api_docs/kbn_unified_doc_viewer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-doc-viewer title: "@kbn/unified-doc-viewer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-doc-viewer plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-doc-viewer'] --- import kbnUnifiedDocViewerObj from './kbn_unified_doc_viewer.devdocs.json'; diff --git a/api_docs/kbn_unified_field_list.mdx b/api_docs/kbn_unified_field_list.mdx index 9d578d7f125f8..a8af405ca3bc4 100644 --- a/api_docs/kbn_unified_field_list.mdx +++ b/api_docs/kbn_unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-field-list title: "@kbn/unified-field-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-field-list plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-field-list'] --- import kbnUnifiedFieldListObj from './kbn_unified_field_list.devdocs.json'; diff --git a/api_docs/kbn_unsaved_changes_badge.mdx b/api_docs/kbn_unsaved_changes_badge.mdx index 0d46ab8796a5c..2b7b8b1c93c83 100644 --- a/api_docs/kbn_unsaved_changes_badge.mdx +++ b/api_docs/kbn_unsaved_changes_badge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unsaved-changes-badge title: "@kbn/unsaved-changes-badge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unsaved-changes-badge plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unsaved-changes-badge'] --- import kbnUnsavedChangesBadgeObj from './kbn_unsaved_changes_badge.devdocs.json'; diff --git a/api_docs/kbn_use_tracked_promise.mdx b/api_docs/kbn_use_tracked_promise.mdx index 5be06ef2ba3eb..e0d16fc4cc23d 100644 --- a/api_docs/kbn_use_tracked_promise.mdx +++ b/api_docs/kbn_use_tracked_promise.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-use-tracked-promise title: "@kbn/use-tracked-promise" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/use-tracked-promise plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/use-tracked-promise'] --- import kbnUseTrackedPromiseObj from './kbn_use_tracked_promise.devdocs.json'; diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx index 69c13d087433b..465c5deb16fe7 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/user-profile-components'] --- import kbnUserProfileComponentsObj from './kbn_user_profile_components.devdocs.json'; diff --git a/api_docs/kbn_utility_types.mdx b/api_docs/kbn_utility_types.mdx index b46e14a4a22a7..c16fe4d60681f 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types'] --- import kbnUtilityTypesObj from './kbn_utility_types.devdocs.json'; diff --git a/api_docs/kbn_utility_types_jest.mdx b/api_docs/kbn_utility_types_jest.mdx index 2e2fa750dac9a..66fc9efb25b8f 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types-jest'] --- import kbnUtilityTypesJestObj from './kbn_utility_types_jest.devdocs.json'; diff --git a/api_docs/kbn_utils.mdx b/api_docs/kbn_utils.mdx index dd07cd2ae3461..73d2faed9788d 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils'] --- import kbnUtilsObj from './kbn_utils.devdocs.json'; diff --git a/api_docs/kbn_visualization_ui_components.mdx b/api_docs/kbn_visualization_ui_components.mdx index a1bcbb68ca4dc..2bf5defcf0216 100644 --- a/api_docs/kbn_visualization_ui_components.mdx +++ b/api_docs/kbn_visualization_ui_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-ui-components title: "@kbn/visualization-ui-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/visualization-ui-components plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-ui-components'] --- import kbnVisualizationUiComponentsObj from './kbn_visualization_ui_components.devdocs.json'; diff --git a/api_docs/kbn_visualization_utils.mdx b/api_docs/kbn_visualization_utils.mdx index d300290491106..16efbb5975057 100644 --- a/api_docs/kbn_visualization_utils.mdx +++ b/api_docs/kbn_visualization_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-utils title: "@kbn/visualization-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/visualization-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-utils'] --- import kbnVisualizationUtilsObj from './kbn_visualization_utils.devdocs.json'; diff --git a/api_docs/kbn_xstate_utils.mdx b/api_docs/kbn_xstate_utils.mdx index 9fe7a7a6acaf9..859c5992e1176 100644 --- a/api_docs/kbn_xstate_utils.mdx +++ b/api_docs/kbn_xstate_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-xstate-utils title: "@kbn/xstate-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/xstate-utils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/xstate-utils'] --- import kbnXstateUtilsObj from './kbn_xstate_utils.devdocs.json'; diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx index d1764ac5285c8..7d0d0dc066d9b 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator'] --- import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json'; diff --git a/api_docs/kbn_zod_helpers.mdx b/api_docs/kbn_zod_helpers.mdx index 86a224a626742..ca95d2532adf7 100644 --- a/api_docs/kbn_zod_helpers.mdx +++ b/api_docs/kbn_zod_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-zod-helpers title: "@kbn/zod-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/zod-helpers plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/zod-helpers'] --- import kbnZodHelpersObj from './kbn_zod_helpers.devdocs.json'; diff --git a/api_docs/kibana_overview.mdx b/api_docs/kibana_overview.mdx index c89d27703714a..37ab332dd5298 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] --- import kibanaOverviewObj from './kibana_overview.devdocs.json'; diff --git a/api_docs/kibana_react.devdocs.json b/api_docs/kibana_react.devdocs.json index 32bb219a3f3e9..b7aff2e5df3b7 100644 --- a/api_docs/kibana_react.devdocs.json +++ b/api_docs/kibana_react.devdocs.json @@ -41,7 +41,9 @@ "tags": [], "label": "allowEmptyRange", "description": [], - "signature": ["true"], + "signature": [ + "true" + ], "path": "src/plugins/kibana_react/public/validated_range/validated_dual_range.tsx", "deprecated": false, "trackAdoption": false @@ -53,7 +55,9 @@ "tags": [], "label": "fullWidth", "description": [], - "signature": ["false"], + "signature": [ + "false" + ], "path": "src/plugins/kibana_react/public/validated_range/validated_dual_range.tsx", "deprecated": false, "trackAdoption": false @@ -65,7 +69,9 @@ "tags": [], "label": "compressed", "description": [], - "signature": ["false"], + "signature": [ + "false" + ], "path": "src/plugins/kibana_react/public/validated_range/validated_dual_range.tsx", "deprecated": false, "trackAdoption": false @@ -93,7 +99,9 @@ "tags": [], "label": "nextProps", "description": [], - "signature": ["Props"], + "signature": [ + "Props" + ], "path": "src/plugins/kibana_react/public/validated_range/validated_dual_range.tsx", "deprecated": false, "trackAdoption": false, @@ -106,7 +114,9 @@ "tags": [], "label": "prevState", "description": [], - "signature": ["State"], + "signature": [ + "State" + ], "path": "src/plugins/kibana_react/public/validated_range/validated_dual_range.tsx", "deprecated": false, "trackAdoption": false, @@ -134,7 +144,9 @@ "tags": [], "label": "_onChange", "description": [], - "signature": ["(value: [string | number, string | number]) => void"], + "signature": [ + "(value: [string | number, string | number]) => void" + ], "path": "src/plugins/kibana_react/public/validated_range/validated_dual_range.tsx", "deprecated": false, "trackAdoption": false, @@ -146,7 +158,9 @@ "tags": [], "label": "value", "description": [], - "signature": ["[string | number, string | number]"], + "signature": [ + "[string | number, string | number]" + ], "path": "src/plugins/kibana_react/public/validated_range/validated_dual_range.tsx", "deprecated": false, "trackAdoption": false, @@ -162,7 +176,9 @@ "tags": [], "label": "render", "description": [], - "signature": ["() => JSX.Element"], + "signature": [ + "() => JSX.Element" + ], "path": "src/plugins/kibana_react/public/validated_range/validated_dual_range.tsx", "deprecated": false, "trackAdoption": false, @@ -211,7 +227,9 @@ "tags": [], "label": "services", "description": [], - "signature": ["Services"], + "signature": [ + "Services" + ], "path": "src/plugins/kibana_react/public/context/context.tsx", "deprecated": false, "trackAdoption": false, @@ -339,7 +357,9 @@ "type": "Function", "tags": [], "label": "ElasticAgentCard", - "description": ["\nApplies extra styling to a typical EuiAvatar"], + "description": [ + "\nApplies extra styling to a typical EuiAvatar" + ], "signature": [ "({ solution, recommended, title, href, button, layout, category, ...cardRest }: React.PropsWithChildren<", { @@ -389,7 +409,9 @@ "tags": [], "label": "KibanaContextProvider", "description": [], - "signature": ["React.FunctionComponent<{ services?: {} | undefined; }>"], + "signature": [ + "React.FunctionComponent<{ services?: {} | undefined; }>" + ], "path": "src/plugins/kibana_react/public/context/context.tsx", "deprecated": false, "trackAdoption": false, @@ -402,7 +424,9 @@ "tags": [], "label": "props", "description": [], - "signature": ["P & { children?: React.ReactNode; }"], + "signature": [ + "P & { children?: React.ReactNode; }" + ], "path": "node_modules/@types/react/index.d.ts", "deprecated": false, "trackAdoption": false @@ -414,7 +438,9 @@ "tags": [], "label": "context", "description": [], - "signature": ["any"], + "signature": [ + "any" + ], "path": "node_modules/@types/react/index.d.ts", "deprecated": false, "trackAdoption": false @@ -428,7 +454,9 @@ "type": "Function", "tags": [], "label": "KibanaPageTemplateSolutionNavAvatar", - "description": ["\nApplies extra styling to a typical EuiAvatar"], + "description": [ + "\nApplies extra styling to a typical EuiAvatar" + ], "signature": [ "({ className, size, ...rest }: React.PropsWithChildren<", "KibanaPageTemplateSolutionNavAvatarProps", @@ -463,7 +491,9 @@ "parentPluginId": "kibanaReact", "id": "def-public.KibanaThemeProvider", "type": "Function", - "tags": ["deprecated"], + "tags": [ + "deprecated" + ], "label": "KibanaThemeProvider", "description": [], "signature": [ @@ -1923,7 +1953,11 @@ "tags": [], "label": "Markdown", "description": [], - "signature": ["(props: ", "MarkdownProps", ") => JSX.Element"], + "signature": [ + "(props: ", + "MarkdownProps", + ") => JSX.Element" + ], "path": "src/plugins/kibana_react/public/markdown/index.tsx", "deprecated": false, "trackAdoption": false, @@ -1935,7 +1969,9 @@ "tags": [], "label": "props", "description": [], - "signature": ["MarkdownProps"], + "signature": [ + "MarkdownProps" + ], "path": "src/plugins/kibana_react/public/markdown/index.tsx", "deprecated": false, "trackAdoption": false, @@ -1952,7 +1988,11 @@ "tags": [], "label": "MarkdownSimple", "description": [], - "signature": ["(props: ", "MarkdownSimpleProps", ") => JSX.Element"], + "signature": [ + "(props: ", + "MarkdownSimpleProps", + ") => JSX.Element" + ], "path": "src/plugins/kibana_react/public/markdown/index.tsx", "deprecated": false, "trackAdoption": false, @@ -1964,7 +2004,9 @@ "tags": [], "label": "props", "description": [], - "signature": ["MarkdownSimpleProps"], + "signature": [ + "MarkdownSimpleProps" + ], "path": "src/plugins/kibana_react/public/markdown/index.tsx", "deprecated": false, "trackAdoption": false, @@ -2093,7 +2135,9 @@ "tags": [], "label": "{\n addDataHref,\n application,\n devToolsHref,\n hidden,\n managementHref,\n showDevToolsLink,\n showManagementLink,\n}", "description": [], - "signature": ["Props"], + "signature": [ + "Props" + ], "path": "src/plugins/kibana_react/public/overview_page/overview_page_actions/overview_page_actions.tsx", "deprecated": false, "trackAdoption": false, @@ -2124,7 +2168,9 @@ "tags": [], "label": "{\n addBasePath,\n path,\n onSetDefaultRoute,\n onChangeDefaultRoute,\n}", "description": [], - "signature": ["React.PropsWithChildren"], + "signature": [ + "React.PropsWithChildren" + ], "path": "src/plugins/kibana_react/public/overview_page/overview_page_footer/overview_page_footer.tsx", "deprecated": false, "trackAdoption": false, @@ -2189,7 +2235,9 @@ "tags": [], "label": "to", "description": [], - "signature": ["string | LocationObject"], + "signature": [ + "string | LocationObject" + ], "path": "src/plugins/kibana_react/public/react_router_navigate/react_router_navigate.tsx", "deprecated": false, "trackAdoption": false, @@ -2202,7 +2250,9 @@ "tags": [], "label": "onClickCallback", "description": [], - "signature": ["Function | undefined"], + "signature": [ + "Function | undefined" + ], "path": "src/plugins/kibana_react/public/react_router_navigate/react_router_navigate.tsx", "deprecated": false, "trackAdoption": false, @@ -2267,7 +2317,9 @@ "tags": [], "label": "to", "description": [], - "signature": ["string | LocationObject"], + "signature": [ + "string | LocationObject" + ], "path": "src/plugins/kibana_react/public/react_router_navigate/react_router_navigate.tsx", "deprecated": false, "trackAdoption": false, @@ -2280,7 +2332,9 @@ "tags": [], "label": "onClickCallback", "description": [], - "signature": ["Function | undefined"], + "signature": [ + "Function | undefined" + ], "path": "src/plugins/kibana_react/public/react_router_navigate/react_router_navigate.tsx", "deprecated": false, "trackAdoption": false, @@ -2294,7 +2348,9 @@ "parentPluginId": "kibanaReact", "id": "def-public.toMountPoint", "type": "Function", - "tags": ["deprecated"], + "tags": [ + "deprecated" + ], "label": "toMountPoint", "description": [], "signature": [ @@ -3241,7 +3297,9 @@ "tags": [], "label": "node", "description": [], - "signature": ["React.ReactNode"], + "signature": [ + "React.ReactNode" + ], "path": "src/plugins/kibana_react/public/util/index.tsx", "deprecated": false, "trackAdoption": false, @@ -3328,7 +3386,9 @@ "tags": [], "label": "useDarkMode", "description": [], - "signature": ["(defaultValue?: boolean | undefined) => boolean"], + "signature": [ + "(defaultValue?: boolean | undefined) => boolean" + ], "path": "src/plugins/kibana_react/public/dark_mode/use_dark_mode.ts", "deprecated": false, "trackAdoption": false, @@ -3340,7 +3400,9 @@ "tags": [], "label": "defaultValue", "description": [], - "signature": ["boolean | undefined"], + "signature": [ + "boolean | undefined" + ], "path": "src/plugins/kibana_react/public/dark_mode/use_dark_mode.ts", "deprecated": false, "trackAdoption": false, @@ -3356,7 +3418,9 @@ "type": "Function", "tags": [], "label": "useExecutionContext", - "description": ["\nSet and clean up application level execution context"], + "description": [ + "\nSet and clean up application level execution context" + ], "signature": [ "(executionContext: ", { @@ -3436,7 +3500,9 @@ "description": [ "\nReturns the current global UI-settings value.\n\nUsage:\n\n```js\nconst customBranding = useGlobalUiSetting('customBranding:pageTitle');\n```" ], - "signature": ["(key: string, defaultValue?: T | undefined) => T"], + "signature": [ + "(key: string, defaultValue?: T | undefined) => T" + ], "path": "src/plugins/kibana_react/public/ui_settings/use_ui_setting.ts", "deprecated": false, "trackAdoption": false, @@ -3448,7 +3514,9 @@ "tags": [], "label": "key", "description": [], - "signature": ["string"], + "signature": [ + "string" + ], "path": "src/plugins/kibana_react/public/ui_settings/use_ui_setting.ts", "deprecated": false, "trackAdoption": false, @@ -3461,7 +3529,9 @@ "tags": [], "label": "defaultValue", "description": [], - "signature": ["T | undefined"], + "signature": [ + "T | undefined" + ], "path": "src/plugins/kibana_react/public/ui_settings/use_ui_setting.ts", "deprecated": false, "trackAdoption": false, @@ -3480,7 +3550,9 @@ "description": [ "\nReturns a 2-tuple, where first entry is the setting value and second is a\nfunction to update the setting value.\n\nSynchronously returns the most current value of the setting and subscribes\nto all subsequent updates, which will re-render your component on new values.\n\nUsage:\n\n```js\nconst [customBranding, setCustomBranding] = useGlobalUiSetting$('customBranding:pageTitle');\n```" ], - "signature": ["(key: string, defaultValue?: T | undefined) => [T, Setter]"], + "signature": [ + "(key: string, defaultValue?: T | undefined) => [T, Setter]" + ], "path": "src/plugins/kibana_react/public/ui_settings/use_ui_setting.ts", "deprecated": false, "trackAdoption": false, @@ -3492,7 +3564,9 @@ "tags": [], "label": "key", "description": [], - "signature": ["string"], + "signature": [ + "string" + ], "path": "src/plugins/kibana_react/public/ui_settings/use_ui_setting.ts", "deprecated": false, "trackAdoption": false, @@ -3505,7 +3579,9 @@ "tags": [], "label": "defaultValue", "description": [], - "signature": ["T | undefined"], + "signature": [ + "T | undefined" + ], "path": "src/plugins/kibana_react/public/ui_settings/use_ui_setting.ts", "deprecated": false, "trackAdoption": false, @@ -3557,7 +3633,9 @@ "description": [ "\nReturns the current UI-settings value.\n\nUsage:\n\n```js\nconst darkMode = useUiSetting('theme:darkMode');\n```" ], - "signature": ["(key: string, defaultValue?: T | undefined) => T"], + "signature": [ + "(key: string, defaultValue?: T | undefined) => T" + ], "path": "src/plugins/kibana_react/public/ui_settings/use_ui_setting.ts", "deprecated": false, "trackAdoption": false, @@ -3569,7 +3647,9 @@ "tags": [], "label": "key", "description": [], - "signature": ["string"], + "signature": [ + "string" + ], "path": "src/plugins/kibana_react/public/ui_settings/use_ui_setting.ts", "deprecated": false, "trackAdoption": false, @@ -3582,7 +3662,9 @@ "tags": [], "label": "defaultValue", "description": [], - "signature": ["T | undefined"], + "signature": [ + "T | undefined" + ], "path": "src/plugins/kibana_react/public/ui_settings/use_ui_setting.ts", "deprecated": false, "trackAdoption": false, @@ -3601,7 +3683,9 @@ "description": [ "\nReturns a 2-tuple, where first entry is the setting value and second is a\nfunction to update the setting value.\n\nSynchronously returns the most current value of the setting and subscribes\nto all subsequent updates, which will re-render your component on new values.\n\nUsage:\n\n```js\nconst [darkMode, setDarkMode] = useUiSetting$('theme:darkMode');\n```" ], - "signature": ["(key: string, defaultValue?: T | undefined) => [T, Setter]"], + "signature": [ + "(key: string, defaultValue?: T | undefined) => [T, Setter]" + ], "path": "src/plugins/kibana_react/public/ui_settings/use_ui_setting.ts", "deprecated": false, "trackAdoption": false, @@ -3613,7 +3697,9 @@ "tags": [], "label": "key", "description": [], - "signature": ["string"], + "signature": [ + "string" + ], "path": "src/plugins/kibana_react/public/ui_settings/use_ui_setting.ts", "deprecated": false, "trackAdoption": false, @@ -3626,7 +3712,9 @@ "tags": [], "label": "defaultValue", "description": [], - "signature": ["T | undefined"], + "signature": [ + "T | undefined" + ], "path": "src/plugins/kibana_react/public/ui_settings/use_ui_setting.ts", "deprecated": false, "trackAdoption": false, @@ -3665,7 +3753,9 @@ "tags": [], "label": "type", "description": [], - "signature": ["React.ComponentType"], + "signature": [ + "React.ComponentType" + ], "path": "src/plugins/kibana_react/public/context/context.tsx", "deprecated": false, "trackAdoption": false, @@ -3706,7 +3796,9 @@ "tags": [], "label": "node", "description": [], - "signature": ["React.ReactNode"], + "signature": [ + "React.ReactNode" + ], "path": "src/plugins/kibana_react/public/theme.tsx", "deprecated": false, "trackAdoption": false, @@ -3791,7 +3883,9 @@ "tags": [], "label": "Provider", "description": [], - "signature": ["React.FunctionComponent<{ services?: T | undefined; }>"], + "signature": [ + "React.FunctionComponent<{ services?: T | undefined; }>" + ], "path": "src/plugins/kibana_react/public/context/types.ts", "deprecated": false, "trackAdoption": false, @@ -3804,7 +3898,9 @@ "tags": [], "label": "props", "description": [], - "signature": ["P & { children?: React.ReactNode; }"], + "signature": [ + "P & { children?: React.ReactNode; }" + ], "path": "node_modules/@types/react/index.d.ts", "deprecated": false, "trackAdoption": false @@ -3816,7 +3912,9 @@ "tags": [], "label": "context", "description": [], - "signature": ["any"], + "signature": [ + "any" + ], "path": "node_modules/@types/react/index.d.ts", "deprecated": false, "trackAdoption": false @@ -3853,7 +3951,9 @@ "tags": [], "label": "props", "description": [], - "signature": ["P"], + "signature": [ + "P" + ], "path": "node_modules/@types/react/index.d.ts", "deprecated": false, "trackAdoption": false @@ -3891,7 +3991,9 @@ "tags": [], "label": "services", "description": [], - "signature": ["Services"], + "signature": [ + "Services" + ], "path": "src/plugins/kibana_react/public/context/types.ts", "deprecated": false, "trackAdoption": false @@ -4046,7 +4148,9 @@ "tags": [], "label": "node", "description": [], - "signature": ["React.ReactNode"], + "signature": [ + "React.ReactNode" + ], "path": "src/plugins/kibana_react/public/overlays/types.ts", "deprecated": false, "trackAdoption": false, @@ -4113,7 +4217,9 @@ "tags": [], "label": "node", "description": [], - "signature": ["React.ReactNode"], + "signature": [ + "React.ReactNode" + ], "path": "src/plugins/kibana_react/public/overlays/types.ts", "deprecated": false, "trackAdoption": false, @@ -4188,8 +4294,12 @@ "type": "string", "tags": [], "label": "logo", - "description": ["\nOptionally replace the auto-generated logo"], - "signature": ["string | undefined"], + "description": [ + "\nOptionally replace the auto-generated logo" + ], + "signature": [ + "string | undefined" + ], "path": "src/plugins/kibana_react/public/page_template/no_data_page/no_data_page.tsx", "deprecated": false, "trackAdoption": false @@ -4200,7 +4310,9 @@ "type": "string", "tags": [], "label": "docsLink", - "description": ["\nRequired to set the docs link for the whole solution"], + "description": [ + "\nRequired to set the docs link for the whole solution" + ], "path": "src/plugins/kibana_react/public/page_template/no_data_page/no_data_page.tsx", "deprecated": false, "trackAdoption": false @@ -4211,8 +4323,12 @@ "type": "string", "tags": [], "label": "pageTitle", - "description": ["\nOptionally replace the auto-generated page title (h1)"], - "signature": ["string | undefined"], + "description": [ + "\nOptionally replace the auto-generated page title (h1)" + ], + "signature": [ + "string | undefined" + ], "path": "src/plugins/kibana_react/public/page_template/no_data_page/no_data_page.tsx", "deprecated": false, "trackAdoption": false @@ -4290,7 +4406,9 @@ "tags": [], "label": "color", "description": [], - "signature": ["\"warning\" | \"success\" | \"primary\" | \"danger\" | undefined"], + "signature": [ + "\"warning\" | \"success\" | \"primary\" | \"danger\" | undefined" + ], "path": "src/plugins/kibana_react/public/notifications/types.ts", "deprecated": false, "trackAdoption": false @@ -4302,7 +4420,10 @@ "tags": [], "label": "iconType", "description": [], - "signature": ["IconType", " | undefined"], + "signature": [ + "IconType", + " | undefined" + ], "path": "src/plugins/kibana_react/public/notifications/types.ts", "deprecated": false, "trackAdoption": false @@ -4314,7 +4435,9 @@ "tags": [], "label": "toastLifeTimeMs", "description": [], - "signature": ["number | undefined"], + "signature": [ + "number | undefined" + ], "path": "src/plugins/kibana_react/public/notifications/types.ts", "deprecated": false, "trackAdoption": false @@ -4326,7 +4449,9 @@ "tags": [], "label": "onClose", "description": [], - "signature": ["(() => void) | undefined"], + "signature": [ + "(() => void) | undefined" + ], "path": "src/plugins/kibana_react/public/notifications/types.ts", "deprecated": false, "trackAdoption": false @@ -4338,7 +4463,9 @@ "parentPluginId": "kibanaReact", "id": "def-public.ToMountPointOptions", "type": "Interface", - "tags": ["deprecated"], + "tags": [ + "deprecated" + ], "label": "ToMountPointOptions", "description": [], "path": "src/plugins/kibana_react/public/util/index.tsx", @@ -4422,7 +4549,9 @@ "tags": [], "label": "height", "description": [], - "signature": ["string | number | undefined"], + "signature": [ + "string | number | undefined" + ], "path": "src/plugins/kibana_react/public/url_template_editor/url_template_editor.tsx", "deprecated": false, "trackAdoption": false @@ -4485,7 +4614,11 @@ "tags": [], "label": "onEditor", "description": [], - "signature": ["((editor: ", "editor", ".IStandaloneCodeEditor) => void) | undefined"], + "signature": [ + "((editor: ", + "editor", + ".IStandaloneCodeEditor) => void) | undefined" + ], "path": "src/plugins/kibana_react/public/url_template_editor/url_template_editor.tsx", "deprecated": false, "trackAdoption": false, @@ -4497,7 +4630,10 @@ "tags": [], "label": "editor", "description": [], - "signature": ["editor", ".IStandaloneCodeEditor"], + "signature": [ + "editor", + ".IStandaloneCodeEditor" + ], "path": "src/plugins/kibana_react/public/url_template_editor/url_template_editor.tsx", "deprecated": false, "trackAdoption": false, @@ -4513,7 +4649,9 @@ "tags": [], "label": "placeholder", "description": [], - "signature": ["string | undefined"], + "signature": [ + "string | undefined" + ], "path": "src/plugins/kibana_react/public/url_template_editor/url_template_editor.tsx", "deprecated": false, "trackAdoption": false @@ -4572,7 +4710,9 @@ "tags": [], "label": "title", "description": [], - "signature": ["string | undefined"], + "signature": [ + "string | undefined" + ], "path": "src/plugins/kibana_react/public/url_template_editor/url_template_editor.tsx", "deprecated": false, "trackAdoption": false @@ -4584,7 +4724,9 @@ "tags": [], "label": "documentation", "description": [], - "signature": ["string | undefined"], + "signature": [ + "string | undefined" + ], "path": "src/plugins/kibana_react/public/url_template_editor/url_template_editor.tsx", "deprecated": false, "trackAdoption": false @@ -4596,7 +4738,10 @@ "tags": [], "label": "kind", "description": [], - "signature": ["languages", ".CompletionItemKind | undefined"], + "signature": [ + "languages", + ".CompletionItemKind | undefined" + ], "path": "src/plugins/kibana_react/public/url_template_editor/url_template_editor.tsx", "deprecated": false, "trackAdoption": false @@ -4608,7 +4753,9 @@ "tags": [], "label": "sortText", "description": [], - "signature": ["string | undefined"], + "signature": [ + "string | undefined" + ], "path": "src/plugins/kibana_react/public/url_template_editor/url_template_editor.tsx", "deprecated": false, "trackAdoption": false @@ -4796,7 +4943,9 @@ "parentPluginId": "kibanaReact", "id": "def-public.KibanaThemeProviderProps", "type": "Type", - "tags": ["deprecated"], + "tags": [ + "deprecated" + ], "label": "KibanaThemeProviderProps", "description": [], "signature": [ @@ -4882,7 +5031,9 @@ "tags": [], "label": "Value", "description": [], - "signature": ["[string | number, string | number]"], + "signature": [ + "[string | number, string | number]" + ], "path": "src/plugins/kibana_react/public/validated_range/validated_dual_range.tsx", "deprecated": false, "trackAdoption": false, @@ -4940,7 +5091,9 @@ "type": "Function", "tags": [], "label": "createGlobalStyle", - "description": ["/** see https://styled-components.com/docs/api#createglobalstyle */"], + "description": [ + "/** see https://styled-components.com/docs/api#createglobalstyle */" + ], "signature": [ "

(first: TemplateStringsArray | ", "CSSObject", @@ -5012,7 +5165,12 @@ "tags": [], "label": "interpolations", "description": [], - "signature": ["Interpolation", "<", "ThemedStyledProps", ">[]"], + "signature": [ + "Interpolation", + "<", + "ThemedStyledProps", + ">[]" + ], "path": "node_modules/@types/styled-components/ts3.7/index.d.ts", "deprecated": false, "trackAdoption": false @@ -5026,7 +5184,9 @@ "type": "Function", "tags": [], "label": "css", - "description": ["/** see https://styled-components.com/docs/api#css-prop */"], + "description": [ + "/** see https://styled-components.com/docs/api#css-prop */" + ], "signature": [ "BaseThemedCssFunction", "<", @@ -5050,7 +5210,9 @@ "type": "Function", "tags": [], "label": "euiStyled", - "description": ["/** see https://styled-components.com/docs/api#styled */"], + "description": [ + "/** see https://styled-components.com/docs/api#styled */" + ], "signature": [ "ThemedBaseStyledInterface", "<", @@ -5074,7 +5236,9 @@ "type": "Function", "tags": [], "label": "keyframes", - "description": ["/** see https://styled-components.com/docs/api#keyframes */"], + "description": [ + "/** see https://styled-components.com/docs/api#keyframes */" + ], "signature": [ "(strings: TemplateStringsArray | ", "CSSKeyframes", @@ -5095,7 +5259,10 @@ "tags": [], "label": "strings", "description": [], - "signature": ["TemplateStringsArray | ", "CSSKeyframes"], + "signature": [ + "TemplateStringsArray | ", + "CSSKeyframes" + ], "path": "node_modules/@types/styled-components/ts3.7/index.d.ts", "deprecated": false, "trackAdoption": false @@ -5107,7 +5274,10 @@ "tags": [], "label": "interpolations", "description": [], - "signature": ["SimpleInterpolation", "[]"], + "signature": [ + "SimpleInterpolation", + "[]" + ], "path": "node_modules/@types/styled-components/ts3.7/index.d.ts", "deprecated": false, "trackAdoption": false @@ -5121,7 +5291,9 @@ "type": "Function", "tags": [], "label": "KibanaStyledComponentsThemeProvider", - "description": ["\nA `styled-components` `ThemeProvider` that incorporates EUI dark mode."], + "description": [ + "\nA `styled-components` `ThemeProvider` that incorporates EUI dark mode." + ], "signature": [ ">(component: React.ComponentProps extends { theme?: ", { @@ -5288,7 +5464,9 @@ "tags": [], "label": "component", "description": [], - "signature": ["React.ComponentProps extends { theme?: T | undefined; } ? C : never"], + "signature": [ + "React.ComponentProps extends { theme?: T | undefined; } ? C : never" + ], "path": "node_modules/@types/styled-components/ts3.7/index.d.ts", "deprecated": false, "trackAdoption": false @@ -5317,7 +5495,9 @@ "type": "Object", "tags": [], "label": "eui", - "description": ["EUI theme vars that automaticall adjust to light and dark mode."], + "description": [ + "EUI theme vars that automaticall adjust to light and dark mode." + ], "signature": [ "{ euiZDataGrid: number; euiZHeaderBelowDataGrid: number; euiZDataGridCellPopover: number; euiDataGridCellPaddingS: string; euiDataGridCellPaddingM: string; euiDataGridCellPaddingL: string; euiTableHoverColor: string; euiTableSelectedColor: string; euiTableHoverSelectedColor: string; euiTableActionsBorderColor: string; euiTableHoverClickableColor: string; euiTableFocusClickableColor: string; euiContrastRatioText: number; euiContrastRatioGraphic: number; euiContrastRatioDisabled: number; euiAnimSlightBounce: string; euiAnimSlightResistance: string; euiAnimSpeedExtraFast: string; euiAnimSpeedFast: string; euiAnimSpeedNormal: string; euiAnimSpeedSlow: string; euiAnimSpeedExtraSlow: string; euiBorderWidthThin: string; euiBorderWidthThick: string; euiBorderColor: string; euiBorderRadius: string; euiBorderRadiusSmall: string; euiBorderThick: string; euiBorderThin: string; euiBorderEditable: string; euiButtonHeight: string; euiButtonHeightSmall: string; euiButtonHeightXSmall: string; euiButtonColorDisabled: string; euiButtonColorDisabledText: string; euiButtonColorGhostDisabled: string; euiButtonTypes: { primary: string; accent: string; success: string; warning: string; danger: string; ghost: string; text: string; }; euiPaletteColorBlind: { euiColorVis0: { graphic: string; behindText: string; }; euiColorVis1: { graphic: string; behindText: string; }; euiColorVis2: { graphic: string; behindText: string; }; euiColorVis3: { graphic: string; behindText: string; }; euiColorVis4: { graphic: string; behindText: string; }; euiColorVis5: { graphic: string; behindText: string; }; euiColorVis6: { graphic: string; behindText: string; }; euiColorVis7: { graphic: string; behindText: string; }; euiColorVis8: { graphic: string; behindText: string; }; euiColorVis9: { graphic: string; behindText: string; }; }; euiPaletteColorBlindKeys: string; euiColorVis0: string; euiColorVis1: string; euiColorVis2: string; euiColorVis3: string; euiColorVis4: string; euiColorVis5: string; euiColorVis6: string; euiColorVis7: string; euiColorVis8: string; euiColorVis9: string; euiColorVis0_behindText: string; euiColorVis1_behindText: string; euiColorVis2_behindText: string; euiColorVis3_behindText: string; euiColorVis4_behindText: string; euiColorVis5_behindText: string; euiColorVis6_behindText: string; euiColorVis7_behindText: string; euiColorVis8_behindText: string; euiColorVis9_behindText: string; euiFontWeightLight: number; euiFontWeightRegular: number; euiFontWeightMedium: number; euiFontWeightSemiBold: number; euiFontWeightBold: number; euiCodeFontWeightRegular: number; euiCodeFontWeightBold: number; euiFormMaxWidth: string; euiFormControlHeight: string; euiFormControlCompressedHeight: string; euiFormControlPadding: string; euiFormControlCompressedPadding: string; euiFormControlBorderRadius: string; euiFormControlCompressedBorderRadius: string; euiRadioSize: string; euiCheckBoxSize: string; euiCheckboxBorderRadius: string; euiSwitchHeight: string; euiSwitchWidth: string; euiSwitchThumbSize: string; euiSwitchIconHeight: string; euiSwitchHeightCompressed: string; euiSwitchWidthCompressed: string; euiSwitchThumbSizeCompressed: string; euiSwitchHeightMini: string; euiSwitchWidthMini: string; euiSwitchThumbSizeMini: string; euiFormBackgroundColor: string; euiFormBackgroundDisabledColor: string; euiFormBackgroundReadOnlyColor: string; euiFormBorderOpaqueColor: string; euiFormBorderColor: string; euiFormBorderDisabledColor: string; euiFormCustomControlDisabledIconColor: string; euiFormCustomControlBorderColor: string; euiFormControlDisabledColor: string; euiFormControlBoxShadow: string; euiFormControlPlaceholderText: string; euiFormInputGroupLabelBackground: string; euiFormInputGroupBorder: string; euiSwitchOffColor: string; euiFormControlIconSizes: { small: string; medium: string; large: string; xLarge: string; xxLarge: string; }; euiFormControlLayoutGroupInputHeight: string; euiFormControlLayoutGroupInputCompressedHeight: string; euiFormControlLayoutGroupInputCompressedBorderRadius: string; euiHeaderBackgroundColor: string; euiHeaderDarkBackgroundColor: string; euiHeaderBorderColor: string; euiHeaderBreadcrumbColor: string; euiHeaderHeight: string; euiHeaderChildSize: string; euiHeaderHeightCompensation: string; euiPageDefaultMaxWidth: string; euiPageSidebarMinWidth: string; euiPanelPaddingModifiers: { paddingSmall: string; paddingMedium: string; paddingLarge: string; }; euiPanelBorderRadiusModifiers: { borderRadiusNone: number; borderRadiusMedium: string; }; euiPanelBackgroundColorModifiers: { transparent: string; plain: string; subdued: string; accent: string; primary: string; success: string; warning: string; danger: string; }; euiBreakpoints: { xs: number; s: string; m: string; l: string; xl: string; }; euiBreakpointKeys: string; euiShadowColor: string; euiSize: string; euiSizeXS: string; euiSizeS: string; euiSizeM: string; euiSizeL: string; euiSizeXL: string; euiSizeXXL: string; euiScrollBar: string; euiScrollBarCorner: string; euiScrollBarCornerThin: string; euiFocusRingColor: string; euiFocusRingAnimStartColor: string; euiFocusRingAnimStartSize: string; euiFocusRingAnimStartSizeLarge: string; euiFocusRingSizeLarge: string; euiFocusRingSize: string; euiFocusTransparency: number; euiFocusTransparencyPercent: string; euiFocusBackgroundColor: string; euiFontFamily: string; euiCodeFontFamily: string; euiFontFeatureSettings: string; euiTextScale: string; euiFontSize: string; euiFontSizeXS: string; euiFontSizeS: string; euiFontSizeM: string; euiFontSizeL: string; euiFontSizeXL: string; euiFontSizeXXL: string; euiLineHeight: number; euiBodyLineHeight: number; euiTitles: { xxxs: { 'font-size': string; 'line-height': string; 'font-weight': number; }; xxs: { 'font-size': string; 'line-height': string; 'font-weight': number; }; xs: { 'font-size': string; 'line-height': string; 'font-weight': number; }; s: { 'font-size': string; 'line-height': string; 'font-weight': number; }; m: { 'font-size': string; 'line-height': string; 'font-weight': number; }; l: { 'font-size': string; 'line-height': string; 'font-weight': number; }; }; euiZLevel0: number; euiZLevel1: number; euiZLevel2: number; euiZLevel3: number; euiZLevel4: number; euiZLevel5: number; euiZLevel6: number; euiZLevel7: number; euiZLevel8: number; euiZLevel9: number; euiZToastList: number; euiZModal: number; euiZMask: number; euiZNavigation: number; euiZContentMenu: number; euiZHeader: number; euiZFlyout: number; euiZMaskBelowHeader: number; euiZContent: number; euiColorGhost: string; euiColorInk: string; euiColorPrimary: string; euiColorAccent: string; euiColorSuccess: string; euiColorWarning: string; euiColorDanger: string; euiColorEmptyShade: string; euiColorLightestShade: string; euiColorLightShade: string; euiColorMediumShade: string; euiColorDarkShade: string; euiColorDarkestShade: string; euiColorFullShade: string; euiPageBackgroundColor: string; euiColorHighlight: string; euiTextColor: string; euiTitleColor: string; euiTextSubduedColor: string; euiColorDisabled: string; euiColorPrimaryText: string; euiColorSuccessText: string; euiColorAccentText: string; euiColorWarningText: string; euiColorDangerText: string; euiColorDisabledText: string; euiLinkColor: string; euiColorChartLines: string; euiColorChartBand: string; }" ], @@ -5331,7 +5511,9 @@ "type": "boolean", "tags": [], "label": "darkMode", - "description": ["True if the theme is in \"dark\" mode, false otherwise."], + "description": [ + "True if the theme is in \"dark\" mode, false otherwise." + ], "path": "packages/react/kibana_context/styled/styled_provider.tsx", "deprecated": false, "trackAdoption": false @@ -5344,4 +5526,4 @@ "misc": [], "objects": [] } -} +} \ No newline at end of file diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index d4fc88e1a2e75..70188334aa5f7 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaReact'] --- import kibanaReactObj from './kibana_react.devdocs.json'; diff --git a/api_docs/kibana_utils.mdx b/api_docs/kibana_utils.mdx index ad9d6d2179f88..7dcdb19259926 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaUtils'] --- import kibanaUtilsObj from './kibana_utils.devdocs.json'; diff --git a/api_docs/kubernetes_security.mdx b/api_docs/kubernetes_security.mdx index 1c2aeb76e82c4..cddc108112040 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index 495be93c41db5..21738a33547ab 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index 8485903554629..fbe6c407ee6c5 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseApiGuard'] --- import licenseApiGuardObj from './license_api_guard.devdocs.json'; diff --git a/api_docs/license_management.mdx b/api_docs/license_management.mdx index 313ae23f2dab3..735671a9a2962 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseManagement'] --- import licenseManagementObj from './license_management.devdocs.json'; diff --git a/api_docs/licensing.mdx b/api_docs/licensing.mdx index 25e90e58561f8..a353bf08d35bf 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licensing'] --- import licensingObj from './licensing.devdocs.json'; diff --git a/api_docs/links.devdocs.json b/api_docs/links.devdocs.json index 24744659d4731..7c7b0305e6bdc 100644 --- a/api_docs/links.devdocs.json +++ b/api_docs/links.devdocs.json @@ -464,7 +464,15 @@ "section": "def-public.EmbeddableOutput", "text": "EmbeddableOutput" }, - ", any>, unknown>,", + ", any>, ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.FinderAttributes", + "text": "FinderAttributes" + }, + ">,", "IProvidesPanelPlacementSettings", "<", "LinksInput", @@ -1120,7 +1128,15 @@ "section": "def-public.EmbeddableOutput", "text": "EmbeddableOutput" }, - ", any>, unknown>" + ", any>, ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.FinderAttributes", + "text": "FinderAttributes" + }, + ">" ], "path": "src/plugins/links/public/embeddable/links_embeddable_factory.ts", "deprecated": false, diff --git a/api_docs/links.mdx b/api_docs/links.mdx index 826d1a3d4cad5..4d752f98fd691 100644 --- a/api_docs/links.mdx +++ b/api_docs/links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/links title: "links" image: https://source.unsplash.com/400x175/?github description: API docs for the links plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'links'] --- import linksObj from './links.devdocs.json'; diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx index ab810030f57e6..1ec0cfeab2b2a 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists'] --- import listsObj from './lists.devdocs.json'; diff --git a/api_docs/logs_explorer.mdx b/api_docs/logs_explorer.mdx index 77b271afd6185..7d9433ccf7f55 100644 --- a/api_docs/logs_explorer.mdx +++ b/api_docs/logs_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsExplorer title: "logsExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the logsExplorer plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsExplorer'] --- import logsExplorerObj from './logs_explorer.devdocs.json'; diff --git a/api_docs/logs_shared.devdocs.json b/api_docs/logs_shared.devdocs.json index 23079d587996f..240de8934f12d 100644 --- a/api_docs/logs_shared.devdocs.json +++ b/api_docs/logs_shared.devdocs.json @@ -13,7 +13,7 @@ "signature": [ "({ logViewKey, sourceIdKey, toastsService, urlStateStorage, }: LogViewUrlStateDependencies) => { logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; } | null" ], - "path": "x-pack/plugins/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -27,7 +27,7 @@ "signature": [ "LogViewUrlStateDependencies" ], - "path": "x-pack/plugins/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -106,7 +106,7 @@ "LogViewEvent", ">" ], - "path": "x-pack/plugins/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -120,7 +120,7 @@ "signature": [ "LogViewUrlStateDependencies" ], - "path": "x-pack/plugins/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -207,7 +207,7 @@ "LogViewEvent", ">" ], - "path": "x-pack/plugins/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -218,7 +218,7 @@ "tags": [], "label": "{\n urlStateStorage,\n logViewKey = defaultLogViewKey,\n }", "description": [], - "path": "x-pack/plugins/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -238,7 +238,7 @@ "text": "IKbnUrlStateStorage" } ], - "path": "x-pack/plugins/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", "deprecated": false, "trackAdoption": false }, @@ -252,7 +252,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/plugins/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", "deprecated": false, "trackAdoption": false } @@ -280,7 +280,7 @@ }, " & React.RefAttributes<{}>>" ], - "path": "x-pack/plugins/logs_shared/public/index.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/index.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -314,7 +314,7 @@ "LogEntryColumnWidth", "; 'data-test-subj'?: string | undefined; } & { children?: React.ReactNode; } & React.RefAttributes<{}>>" ], - "path": "x-pack/plugins/logs_shared/public/index.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/index.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -362,7 +362,7 @@ }, " | undefined; } & { children?: React.ReactNode; } & { as?: keyof JSX.IntrinsicElements | React.ComponentType | undefined; forwardedAs?: keyof JSX.IntrinsicElements | React.ComponentType | undefined; }, string | number | symbol>) & React.RefAttributes<{}>>" ], - "path": "x-pack/plugins/logs_shared/public/index.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/index.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -410,7 +410,7 @@ }, " | undefined; } & { children?: React.ReactNode; } & { as?: keyof JSX.IntrinsicElements | React.ComponentType | undefined; forwardedAs?: keyof JSX.IntrinsicElements | React.ComponentType | undefined; }, string | number | symbol>) & React.RefAttributes<{}>>" ], - "path": "x-pack/plugins/logs_shared/public/index.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/index.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -444,7 +444,7 @@ "LogEntryContextMenuProps", " & { children?: React.ReactNode; } & React.RefAttributes<{}>>" ], - "path": "x-pack/plugins/logs_shared/public/index.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/index.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -478,7 +478,7 @@ "LogEntryFieldColumnProps", " & { children?: React.ReactNode; } & React.RefAttributes<{}>>" ], - "path": "x-pack/plugins/logs_shared/public/index.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/index.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -512,7 +512,7 @@ "LogEntryFlyoutProps", ") => JSX.Element" ], - "path": "x-pack/plugins/logs_shared/public/components/logging/log_entry_flyout/log_entry_flyout.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_entry_flyout/log_entry_flyout.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -526,7 +526,7 @@ "signature": [ "LogEntryFlyoutProps" ], - "path": "x-pack/plugins/logs_shared/public/components/logging/log_entry_flyout/log_entry_flyout.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_entry_flyout/log_entry_flyout.tsx", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -547,7 +547,7 @@ "LogEntryMessageColumnProps", " & React.RefAttributes<{}>>" ], - "path": "x-pack/plugins/logs_shared/public/index.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/index.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -595,7 +595,7 @@ }, " | undefined; } & { children?: React.ReactNode; } & { as?: keyof JSX.IntrinsicElements | React.ComponentType | undefined; forwardedAs?: keyof JSX.IntrinsicElements | React.ComponentType | undefined; }, string | number | symbol>) & React.RefAttributes<{}>>" ], - "path": "x-pack/plugins/logs_shared/public/index.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/index.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -629,7 +629,7 @@ "LogEntryTimestampColumnProps", " & React.RefAttributes<{}>>" ], - "path": "x-pack/plugins/logs_shared/public/index.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/index.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -661,7 +661,7 @@ "signature": [ "React.FunctionComponent>" ], - "path": "x-pack/plugins/logs_shared/public/containers/logs/log_highlights/log_highlights.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/containers/logs/log_highlights/log_highlights.tsx", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -711,7 +711,7 @@ "LogStreamPageCallbacks", "; }>>" ], - "path": "x-pack/plugins/logs_shared/public/containers/logs/log_position/use_log_position.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/containers/logs/log_position/use_log_position.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -765,7 +765,7 @@ }, " & React.RefAttributes<{}>>" ], - "path": "x-pack/plugins/logs_shared/public/index.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/index.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -797,7 +797,7 @@ "signature": [ "React.FunctionComponent>" ], - "path": "x-pack/plugins/logs_shared/public/containers/logs/log_stream/index.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/containers/logs/log_stream/index.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -1021,7 +1021,7 @@ "LogViewEvent", "> | undefined; }>>" ], - "path": "x-pack/plugins/logs_shared/public/hooks/use_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/hooks/use_log_view.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -1079,7 +1079,7 @@ "ScrollableLogTextStreamViewProps", "> & React.RefAttributes<{}>>" ], - "path": "x-pack/plugins/logs_shared/public/index.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/index.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -1167,7 +1167,7 @@ "LogViewEvent", ") => void" ], - "path": "x-pack/plugins/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -1181,7 +1181,7 @@ "signature": [ "LogViewUrlStateDependencies" ], - "path": "x-pack/plugins/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/observability_logs/log_view_state/src/url_state_storage_service.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -1216,7 +1216,7 @@ }, "; CharacterDimensionsProbe: () => JSX.Element; }" ], - "path": "x-pack/plugins/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -1227,7 +1227,7 @@ "tags": [], "label": "{\n columnConfigurations,\n scale,\n timeFormat = 'time',\n}", "description": [], - "path": "x-pack/plugins/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -1242,7 +1242,7 @@ "LogColumnRenderConfiguration", "[]" ], - "path": "x-pack/plugins/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", "deprecated": false, "trackAdoption": false }, @@ -1256,7 +1256,7 @@ "signature": [ "\"small\" | \"medium\" | \"large\"" ], - "path": "x-pack/plugins/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", "deprecated": false, "trackAdoption": false }, @@ -1271,7 +1271,7 @@ "TimeFormat", " | undefined" ], - "path": "x-pack/plugins/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", "deprecated": false, "trackAdoption": false } @@ -1291,7 +1291,7 @@ "signature": [ "(logViewReference: { logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; }) => { openLogEntryFlyout: (logEntryId: any) => void; closeLogEntryFlyout: () => void; }" ], - "path": "x-pack/plugins/logs_shared/public/components/logging/log_entry_flyout/log_entry_flyout.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_entry_flyout/log_entry_flyout.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -1305,7 +1305,7 @@ "signature": [ "{ logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; }" ], - "path": "x-pack/plugins/logs_shared/public/components/logging/log_entry_flyout/log_entry_flyout.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_entry_flyout/log_entry_flyout.tsx", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -1416,7 +1416,7 @@ }, " | null; hasPreviousHighlight: boolean; hasNextHighlight: boolean; goToPreviousHighlight: () => void; goToNextHighlight: () => void; }" ], - "path": "x-pack/plugins/logs_shared/public/containers/logs/log_highlights/log_highlights.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/containers/logs/log_highlights/log_highlights.tsx", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -1434,7 +1434,7 @@ "() => DateRange & { targetPosition: TimeKeyOrNull; isStreaming: boolean; firstVisiblePosition: TimeKeyOrNull; pagesBeforeStart: number; pagesAfterEnd: number; visibleMidpoint: TimeKeyOrNull; visibleMidpointTime: number | null; visibleTimeInterval: { start: number; end: number; } | null; } & ", "LogPositionCallbacks" ], - "path": "x-pack/plugins/logs_shared/public/containers/logs/log_position/use_log_position.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/containers/logs/log_position/use_log_position.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -1467,7 +1467,7 @@ }, "; highlights: string[]; })[]; })[]; context: {} | { 'container.id': string; } | { 'host.name': string; 'log.file.path': string; }; }[]; topCursor: { time: string; tiebreaker: number; } | null; bottomCursor: { time: string; tiebreaker: number; } | null; hasMoreBefore: boolean; hasMoreAfter: boolean; lastLoadedTime?: Date | undefined; }" ], - "path": "x-pack/plugins/logs_shared/public/containers/logs/log_stream/index.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/containers/logs/log_stream/index.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -1484,7 +1484,7 @@ "signature": [ "(logViewReference: { logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; }, startTimestamp: number | null, endTimestamp: number | null, filterQuery: string | null) => { buckets: { start: number; end: number; entriesCount: number; }[]; start: number | null; end: number | null; }" ], - "path": "x-pack/plugins/logs_shared/public/containers/logs/log_summary/log_summary.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/containers/logs/log_summary/log_summary.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -1498,7 +1498,7 @@ "signature": [ "{ logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; }" ], - "path": "x-pack/plugins/logs_shared/public/containers/logs/log_summary/log_summary.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/containers/logs/log_summary/log_summary.tsx", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -1513,7 +1513,7 @@ "signature": [ "number | null" ], - "path": "x-pack/plugins/logs_shared/public/containers/logs/log_summary/log_summary.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/containers/logs/log_summary/log_summary.tsx", "deprecated": false, "trackAdoption": false, "isRequired": false @@ -1528,7 +1528,7 @@ "signature": [ "number | null" ], - "path": "x-pack/plugins/logs_shared/public/containers/logs/log_summary/log_summary.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/containers/logs/log_summary/log_summary.tsx", "deprecated": false, "trackAdoption": false, "isRequired": false @@ -1543,7 +1543,7 @@ "signature": [ "string | null" ], - "path": "x-pack/plugins/logs_shared/public/containers/logs/log_summary/log_summary.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/containers/logs/log_summary/log_summary.tsx", "deprecated": false, "trackAdoption": false, "isRequired": false @@ -2032,7 +2032,7 @@ "ServiceMap", ">>; update: (logViewAttributes: Partial<{ name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }>) => Promise; changeLogViewReference: (logViewReference: { logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; }) => void; revertToDefaultLogView: () => void; }" ], - "path": "x-pack/plugins/logs_shared/public/hooks/use_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/hooks/use_log_view.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -2043,7 +2043,7 @@ "tags": [], "label": "{\n initialLogViewReference,\n logViews,\n useDevTools = isDevMode(),\n initializeFromUrl,\n updateContextInUrl,\n listenForUrlChanges,\n}", "description": [], - "path": "x-pack/plugins/logs_shared/public/hooks/use_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/hooks/use_log_view.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -2057,7 +2057,7 @@ "signature": [ "{ logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; } | undefined" ], - "path": "x-pack/plugins/logs_shared/public/hooks/use_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/hooks/use_log_view.ts", "deprecated": false, "trackAdoption": false }, @@ -2071,7 +2071,7 @@ "signature": [ "ILogViewsClient" ], - "path": "x-pack/plugins/logs_shared/public/hooks/use_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/hooks/use_log_view.ts", "deprecated": false, "trackAdoption": false }, @@ -2085,7 +2085,7 @@ "signature": [ "boolean | undefined" ], - "path": "x-pack/plugins/logs_shared/public/hooks/use_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/hooks/use_log_view.ts", "deprecated": false, "trackAdoption": false }, @@ -2158,7 +2158,7 @@ "LogViewEvent", "> | undefined" ], - "path": "x-pack/plugins/logs_shared/public/hooks/use_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/hooks/use_log_view.ts", "deprecated": false, "trackAdoption": false }, @@ -2228,7 +2228,7 @@ "LogViewEvent", ") => void) | undefined" ], - "path": "x-pack/plugins/logs_shared/public/hooks/use_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/hooks/use_log_view.ts", "deprecated": false, "trackAdoption": false }, @@ -2301,7 +2301,7 @@ "LogViewEvent", "> | undefined" ], - "path": "x-pack/plugins/logs_shared/public/hooks/use_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/hooks/use_log_view.ts", "deprecated": false, "trackAdoption": false } @@ -2613,7 +2613,7 @@ "ServiceMap", ">>; update: (logViewAttributes: Partial<{ name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }>) => Promise; changeLogViewReference: (logViewReference: { logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; }) => void; revertToDefaultLogView: () => void; }" ], - "path": "x-pack/plugins/logs_shared/public/hooks/use_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/hooks/use_log_view.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -2639,7 +2639,7 @@ ") => ", "RendererResult" ], - "path": "x-pack/plugins/logs_shared/public/containers/logs/log_summary/with_summary.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/containers/logs/log_summary/with_summary.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -2659,7 +2659,7 @@ "text": "WithSummaryProps" } ], - "path": "x-pack/plugins/logs_shared/public/containers/logs/log_summary/with_summary.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/containers/logs/log_summary/with_summary.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -2677,7 +2677,7 @@ "tags": [], "label": "LogAIAssistantDocument", "description": [], - "path": "x-pack/plugins/logs_shared/public/components/log_ai_assistant/log_ai_assistant.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/log_ai_assistant/log_ai_assistant.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -2699,7 +2699,7 @@ }, "; }[]" ], - "path": "x-pack/plugins/logs_shared/public/components/log_ai_assistant/log_ai_assistant.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/log_ai_assistant/log_ai_assistant.tsx", "deprecated": false, "trackAdoption": false } @@ -2713,7 +2713,7 @@ "tags": [], "label": "LogAIAssistantProps", "description": [], - "path": "x-pack/plugins/logs_shared/public/components/log_ai_assistant/log_ai_assistant.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/log_ai_assistant/log_ai_assistant.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -2733,7 +2733,7 @@ "text": "ObservabilityAIAssistantPluginStart" } ], - "path": "x-pack/plugins/logs_shared/public/components/log_ai_assistant/log_ai_assistant.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/log_ai_assistant/log_ai_assistant.tsx", "deprecated": false, "trackAdoption": false }, @@ -2754,7 +2754,7 @@ }, " | undefined" ], - "path": "x-pack/plugins/logs_shared/public/components/log_ai_assistant/log_ai_assistant.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/log_ai_assistant/log_ai_assistant.tsx", "deprecated": false, "trackAdoption": false } @@ -2768,7 +2768,7 @@ "tags": [], "label": "LogEntryColumnWidths", "description": [], - "path": "x-pack/plugins/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -2783,7 +2783,7 @@ "[columnId: string]: ", "LogEntryColumnWidth" ], - "path": "x-pack/plugins/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", "deprecated": false, "trackAdoption": false }, @@ -2797,7 +2797,7 @@ "signature": [ "{ baseWidth: string; growWeight: number; shrinkWeight: number; }" ], - "path": "x-pack/plugins/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", "deprecated": false, "trackAdoption": false } @@ -2811,7 +2811,7 @@ "tags": [], "label": "LogEntryStreamItem", "description": [], - "path": "x-pack/plugins/logs_shared/public/components/logging/log_text_stream/item.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/item.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -2825,7 +2825,7 @@ "signature": [ "\"logEntry\"" ], - "path": "x-pack/plugins/logs_shared/public/components/logging/log_text_stream/item.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/item.ts", "deprecated": false, "trackAdoption": false }, @@ -2855,7 +2855,7 @@ }, "; highlights: string[]; })[]; })[]; context: {} | { 'container.id': string; } | { 'host.name': string; 'log.file.path': string; }; }" ], - "path": "x-pack/plugins/logs_shared/public/components/logging/log_text_stream/item.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/item.ts", "deprecated": false, "trackAdoption": false }, @@ -2885,7 +2885,7 @@ }, "; highlights: string[]; })[]; })[]; context: {} | { 'container.id': string; } | { 'host.name': string; 'log.file.path': string; }; }[]" ], - "path": "x-pack/plugins/logs_shared/public/components/logging/log_text_stream/item.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/item.ts", "deprecated": false, "trackAdoption": false } @@ -2899,7 +2899,7 @@ "tags": [], "label": "LogsSharedClientSetupDeps", "description": [], - "path": "x-pack/plugins/logs_shared/public/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -2947,7 +2947,7 @@ }, ") => void; }" ], - "path": "x-pack/plugins/logs_shared/public/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/types.ts", "deprecated": false, "trackAdoption": false } @@ -2961,7 +2961,7 @@ "tags": [], "label": "LogsSharedClientStartDeps", "description": [], - "path": "x-pack/plugins/logs_shared/public/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -2981,7 +2981,7 @@ "text": "DataPublicPluginStart" } ], - "path": "x-pack/plugins/logs_shared/public/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/types.ts", "deprecated": false, "trackAdoption": false }, @@ -3001,7 +3001,7 @@ "text": "DataViewsServicePublic" } ], - "path": "x-pack/plugins/logs_shared/public/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/types.ts", "deprecated": false, "trackAdoption": false }, @@ -3021,7 +3021,7 @@ "text": "ObservabilityAIAssistantPluginStart" } ], - "path": "x-pack/plugins/logs_shared/public/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/types.ts", "deprecated": false, "trackAdoption": false }, @@ -3109,7 +3109,7 @@ }, "; }" ], - "path": "x-pack/plugins/logs_shared/public/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/types.ts", "deprecated": false, "trackAdoption": false } @@ -3133,7 +3133,7 @@ }, " extends LogStreamContentProps" ], - "path": "x-pack/plugins/logs_shared/public/components/log_stream/log_stream.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/log_stream/log_stream.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -3147,7 +3147,7 @@ "signature": [ "string | number | undefined" ], - "path": "x-pack/plugins/logs_shared/public/components/log_stream/log_stream.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/log_stream/log_stream.tsx", "deprecated": false, "trackAdoption": false } @@ -3161,7 +3161,7 @@ "tags": [], "label": "LogViewContextWithError", "description": [], - "path": "x-pack/plugins/logs_shared/public/observability_logs/log_view_state/src/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/observability_logs/log_view_state/src/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -3175,7 +3175,7 @@ "signature": [ "Error" ], - "path": "x-pack/plugins/logs_shared/public/observability_logs/log_view_state/src/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/observability_logs/log_view_state/src/types.ts", "deprecated": false, "trackAdoption": false } @@ -3189,7 +3189,7 @@ "tags": [], "label": "LogViewContextWithResolvedLogView", "description": [], - "path": "x-pack/plugins/logs_shared/public/observability_logs/log_view_state/src/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/observability_logs/log_view_state/src/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -3209,7 +3209,7 @@ "text": "ResolvedLogView" } ], - "path": "x-pack/plugins/logs_shared/public/observability_logs/log_view_state/src/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/observability_logs/log_view_state/src/types.ts", "deprecated": false, "trackAdoption": false } @@ -3223,7 +3223,7 @@ "tags": [], "label": "WithSummaryProps", "description": [], - "path": "x-pack/plugins/logs_shared/public/containers/logs/log_summary/with_summary.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/containers/logs/log_summary/with_summary.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -3237,7 +3237,7 @@ "signature": [ "string | null" ], - "path": "x-pack/plugins/logs_shared/public/containers/logs/log_summary/with_summary.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/containers/logs/log_summary/with_summary.ts", "deprecated": false, "trackAdoption": false }, @@ -3252,7 +3252,7 @@ "(args: { buckets: { start: number; end: number; entriesCount: number; }[]; start: number | null; end: number | null; }) => ", "RendererResult" ], - "path": "x-pack/plugins/logs_shared/public/containers/logs/log_summary/with_summary.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/containers/logs/log_summary/with_summary.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -3267,7 +3267,7 @@ "signature": [ "RenderArgs" ], - "path": "x-pack/plugins/logs_shared/public/utils/typed_react.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/utils/typed_react.tsx", "deprecated": false, "trackAdoption": false } @@ -3296,7 +3296,7 @@ "text": "iconColumnId" } ], - "path": "x-pack/plugins/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/log_entry_column.tsx", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -3311,7 +3311,7 @@ "signature": [ "{ start: number; end: number; entriesCount: number; }[]" ], - "path": "x-pack/plugins/logs_shared/public/containers/logs/log_summary/log_summary.tsx", + "path": "x-pack/plugins/observability_solution/logs_shared/public/containers/logs/log_summary/log_summary.tsx", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -3391,7 +3391,7 @@ }, ">" ], - "path": "x-pack/plugins/logs_shared/public/observability_logs/log_view_state/src/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/observability_logs/log_view_state/src/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -3414,7 +3414,7 @@ }, "; status: { index: \"missing\" | \"unknown\" | \"empty\" | \"available\"; }; } | { type: \"LOADING_LOG_VIEW_FAILED\"; error: Error; }" ], - "path": "x-pack/plugins/logs_shared/public/observability_logs/log_view_state/src/notifications.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/observability_logs/log_view_state/src/notifications.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -3428,7 +3428,7 @@ "tags": [], "label": "LogsSharedClientSetupExports", "description": [], - "path": "x-pack/plugins/logs_shared/public/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -3442,7 +3442,7 @@ "signature": [ "LogViewsServiceSetup" ], - "path": "x-pack/plugins/logs_shared/public/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/types.ts", "deprecated": false, "trackAdoption": false }, @@ -3456,7 +3456,7 @@ "signature": [ "LogsSharedLocators" ], - "path": "x-pack/plugins/logs_shared/public/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/types.ts", "deprecated": false, "trackAdoption": false } @@ -3471,7 +3471,7 @@ "tags": [], "label": "LogsSharedClientStartExports", "description": [], - "path": "x-pack/plugins/logs_shared/public/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -3485,7 +3485,7 @@ "signature": [ "LogViewsServiceStart" ], - "path": "x-pack/plugins/logs_shared/public/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/types.ts", "deprecated": false, "trackAdoption": false }, @@ -3507,7 +3507,7 @@ }, ", \"observabilityAIAssistant\">) => JSX.Element" ], - "path": "x-pack/plugins/logs_shared/public/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -3529,7 +3529,7 @@ }, ", \"observabilityAIAssistant\">" ], - "path": "x-pack/plugins/logs_shared/public/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/public/types.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -3568,7 +3568,7 @@ "text": "ILogsSharedLogEntriesDomain" } ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -3582,7 +3582,7 @@ "signature": [ "any" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -3596,7 +3596,7 @@ "signature": [ "LogEntriesAdapter" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -3613,7 +3613,7 @@ "LogsSharedBackendLibs", ", \"framework\" | \"getStartServices\">" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -3657,7 +3657,7 @@ }, "; highlights: string[]; })[]; })[]; context: {} | { 'container.id': string; } | { 'host.name': string; 'log.file.path': string; }; }[]; hasMoreBefore?: boolean | undefined; hasMoreAfter?: boolean | undefined; }>" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -3677,7 +3677,7 @@ "text": "RequestHandlerContext" } ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -3692,7 +3692,7 @@ "signature": [ "{ logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; }" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -3707,7 +3707,7 @@ "signature": [ "LogEntriesAroundParams" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -3722,7 +3722,7 @@ "signature": [ "({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[] | undefined" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": false @@ -3766,7 +3766,7 @@ }, "; highlights: string[]; })[]; })[]; context: {} | { 'container.id': string; } | { 'host.name': string; 'log.file.path': string; }; }[]; hasMoreBefore?: boolean | undefined; hasMoreAfter?: boolean | undefined; }>" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -3786,7 +3786,7 @@ "text": "RequestHandlerContext" } ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -3801,7 +3801,7 @@ "signature": [ "{ logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; }" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -3816,7 +3816,7 @@ "signature": [ "LogEntriesParams" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -3831,7 +3831,7 @@ "signature": [ "({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[] | undefined" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": false @@ -3865,7 +3865,7 @@ }, " | undefined) => Promise<{ start: number; end: number; entriesCount: number; }[]>" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -3885,7 +3885,7 @@ "text": "RequestHandlerContext" } ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -3900,7 +3900,7 @@ "signature": [ "{ logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; }" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -3915,7 +3915,7 @@ "signature": [ "number" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -3930,7 +3930,7 @@ "signature": [ "number" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -3945,7 +3945,7 @@ "signature": [ "number" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -3967,7 +3967,7 @@ }, " | undefined" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": false @@ -4001,7 +4001,7 @@ }, " | undefined) => Promise<({ start: number; end: number; entriesCount: number; } & { representativeKey: { time: string; tiebreaker: number; }; })[][]>" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -4021,7 +4021,7 @@ "text": "RequestHandlerContext" } ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4036,7 +4036,7 @@ "signature": [ "{ logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; }" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4051,7 +4051,7 @@ "signature": [ "number" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4066,7 +4066,7 @@ "signature": [ "number" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4081,7 +4081,7 @@ "signature": [ "number" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4096,7 +4096,7 @@ "signature": [ "string[]" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4118,7 +4118,7 @@ }, " | undefined" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": false @@ -4146,7 +4146,7 @@ "MappingRuntimeFields", ") => Promise" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -4166,7 +4166,7 @@ "text": "RequestHandlerContext" } ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4181,7 +4181,7 @@ "signature": [ "string" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4196,7 +4196,7 @@ "signature": [ "string" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4211,7 +4211,7 @@ "signature": [ "number" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4226,7 +4226,7 @@ "signature": [ "number" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4241,7 +4241,7 @@ "signature": [ "MappingRuntimeFields" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4262,7 +4262,7 @@ "tags": [], "label": "ILogsSharedLogEntriesDomain", "description": [], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -4302,7 +4302,7 @@ }, "; highlights: string[]; })[]; })[]; context: {} | { 'container.id': string; } | { 'host.name': string; 'log.file.path': string; }; }[]; hasMoreBefore?: boolean | undefined; hasMoreAfter?: boolean | undefined; }>" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -4322,7 +4322,7 @@ "text": "RequestHandlerContext" } ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4337,7 +4337,7 @@ "signature": [ "{ logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; }" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4352,7 +4352,7 @@ "signature": [ "LogEntriesAroundParams" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4367,7 +4367,7 @@ "signature": [ "({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[] | undefined" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": false @@ -4411,7 +4411,7 @@ }, "; highlights: string[]; })[]; })[]; context: {} | { 'container.id': string; } | { 'host.name': string; 'log.file.path': string; }; }[]; hasMoreBefore?: boolean | undefined; hasMoreAfter?: boolean | undefined; }>" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -4431,7 +4431,7 @@ "text": "RequestHandlerContext" } ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4446,7 +4446,7 @@ "signature": [ "{ logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; }" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4461,7 +4461,7 @@ "signature": [ "LogEntriesParams" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4476,7 +4476,7 @@ "signature": [ "({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[] | undefined" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": false @@ -4510,7 +4510,7 @@ }, " | undefined) => Promise<{ start: number; end: number; entriesCount: number; }[]>" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -4530,7 +4530,7 @@ "text": "RequestHandlerContext" } ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4545,7 +4545,7 @@ "signature": [ "{ logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; }" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4560,7 +4560,7 @@ "signature": [ "number" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4575,7 +4575,7 @@ "signature": [ "number" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4590,7 +4590,7 @@ "signature": [ "number" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4612,7 +4612,7 @@ }, " | undefined" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": false @@ -4646,7 +4646,7 @@ }, " | undefined) => Promise<({ start: number; end: number; entriesCount: number; } & { representativeKey: { time: string; tiebreaker: number; }; })[][]>" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -4666,7 +4666,7 @@ "text": "RequestHandlerContext" } ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4681,7 +4681,7 @@ "signature": [ "{ logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; }" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4696,7 +4696,7 @@ "signature": [ "number" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4711,7 +4711,7 @@ "signature": [ "number" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4726,7 +4726,7 @@ "signature": [ "number" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4741,7 +4741,7 @@ "signature": [ "string[]" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4763,7 +4763,7 @@ }, " | undefined" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": false @@ -4791,7 +4791,7 @@ "MappingRuntimeFields", ") => Promise" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -4811,7 +4811,7 @@ "text": "RequestHandlerContext" } ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4826,7 +4826,7 @@ "signature": [ "string" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4841,7 +4841,7 @@ "signature": [ "string" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4856,7 +4856,7 @@ "signature": [ "number" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4871,7 +4871,7 @@ "signature": [ "number" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4886,7 +4886,7 @@ "signature": [ "MappingRuntimeFields" ], - "path": "x-pack/plugins/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/lib/domains/log_entries_domain/log_entries_domain.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4910,7 +4910,7 @@ "signature": [ "\"infrastructure-monitoring-log-view\"" ], - "path": "x-pack/plugins/logs_shared/server/saved_objects/log_view/log_view_saved_object.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/saved_objects/log_view/log_view_saved_object.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -4935,7 +4935,7 @@ " extends ", "LogsSharedDomainLibs" ], - "path": "x-pack/plugins/logs_shared/server/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -4949,7 +4949,7 @@ "signature": [ "LogViewsServiceSetup" ], - "path": "x-pack/plugins/logs_shared/server/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/types.ts", "deprecated": false, "trackAdoption": false }, @@ -4965,7 +4965,7 @@ "UsageCollector", ") => void" ], - "path": "x-pack/plugins/logs_shared/server/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -4979,7 +4979,7 @@ "signature": [ "UsageCollector" ], - "path": "x-pack/plugins/logs_shared/server/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/types.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4998,7 +4998,7 @@ "tags": [], "label": "LogsSharedPluginStart", "description": [], - "path": "x-pack/plugins/logs_shared/server/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -5012,7 +5012,7 @@ "signature": [ "LogViewsServiceStart" ], - "path": "x-pack/plugins/logs_shared/server/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/server/types.ts", "deprecated": false, "trackAdoption": false } @@ -5040,7 +5040,7 @@ }, " extends Error" ], - "path": "x-pack/plugins/logs_shared/common/log_views/errors.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/errors.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -5054,7 +5054,7 @@ "signature": [ "any" ], - "path": "x-pack/plugins/logs_shared/common/log_views/errors.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/errors.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -5068,7 +5068,7 @@ "signature": [ "string" ], - "path": "x-pack/plugins/logs_shared/common/log_views/errors.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/errors.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -5083,7 +5083,7 @@ "signature": [ "Error | undefined" ], - "path": "x-pack/plugins/logs_shared/common/log_views/errors.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/errors.ts", "deprecated": false, "trackAdoption": false, "isRequired": false @@ -5111,7 +5111,7 @@ }, " extends Error" ], - "path": "x-pack/plugins/logs_shared/common/log_views/errors.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/errors.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -5125,7 +5125,7 @@ "signature": [ "any" ], - "path": "x-pack/plugins/logs_shared/common/log_views/errors.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/errors.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -5139,7 +5139,7 @@ "signature": [ "string" ], - "path": "x-pack/plugins/logs_shared/common/log_views/errors.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/errors.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -5154,7 +5154,7 @@ "signature": [ "Error | undefined" ], - "path": "x-pack/plugins/logs_shared/common/log_views/errors.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/errors.ts", "deprecated": false, "trackAdoption": false, "isRequired": false @@ -5182,7 +5182,7 @@ }, " extends Error" ], - "path": "x-pack/plugins/logs_shared/common/log_views/errors.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/errors.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -5196,7 +5196,7 @@ "signature": [ "any" ], - "path": "x-pack/plugins/logs_shared/common/log_views/errors.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/errors.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -5210,7 +5210,7 @@ "signature": [ "string" ], - "path": "x-pack/plugins/logs_shared/common/log_views/errors.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/errors.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -5225,7 +5225,7 @@ "signature": [ "Error | undefined" ], - "path": "x-pack/plugins/logs_shared/common/log_views/errors.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/errors.ts", "deprecated": false, "trackAdoption": false, "isRequired": false @@ -5248,7 +5248,7 @@ "signature": [ "(date: string) => string" ], - "path": "x-pack/plugins/logs_shared/common/utils/date_helpers.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/utils/date_helpers.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -5262,7 +5262,7 @@ "signature": [ "string" ], - "path": "x-pack/plugins/logs_shared/common/utils/date_helpers.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/utils/date_helpers.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -5289,7 +5289,7 @@ }, ") => string" ], - "path": "x-pack/plugins/logs_shared/common/locators/helpers.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/helpers.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -5309,7 +5309,7 @@ "text": "NodeLogsLocatorParams" } ], - "path": "x-pack/plugins/logs_shared/common/locators/helpers.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/helpers.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -5328,7 +5328,7 @@ "signature": [ "(hit: { sort: [string, number]; }) => { time: string; tiebreaker: number; }" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry_cursor.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry_cursor.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -5339,7 +5339,7 @@ "tags": [], "label": "hit", "description": [], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry_cursor.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry_cursor.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -5353,7 +5353,7 @@ "signature": [ "[string, number]" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry_cursor.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry_cursor.ts", "deprecated": false, "trackAdoption": false } @@ -5425,7 +5425,7 @@ }, ">; }" ], - "path": "x-pack/plugins/logs_shared/common/locators/get_logs_locators.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/get_logs_locators.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -5442,7 +5442,7 @@ "IShortUrlClient", ">" ], - "path": "x-pack/plugins/logs_shared/common/locators/get_logs_locators.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/get_logs_locators.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -5477,7 +5477,7 @@ "text": "SerializableRecord" } ], - "path": "x-pack/plugins/logs_shared/common/locators/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -5493,7 +5493,7 @@ "signature": [ "number | undefined" ], - "path": "x-pack/plugins/logs_shared/common/locators/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false }, @@ -5509,7 +5509,7 @@ "signature": [ "{ startTime: number; endTime: number; } | undefined" ], - "path": "x-pack/plugins/logs_shared/common/locators/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false }, @@ -5523,7 +5523,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/plugins/logs_shared/common/locators/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false }, @@ -5537,7 +5537,7 @@ "signature": [ "{ logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; } | undefined" ], - "path": "x-pack/plugins/logs_shared/common/locators/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false } @@ -5568,7 +5568,7 @@ "text": "LogsLocatorParams" } ], - "path": "x-pack/plugins/logs_shared/common/locators/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -5579,7 +5579,7 @@ "tags": [], "label": "nodeField", "description": [], - "path": "x-pack/plugins/logs_shared/common/locators/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false }, @@ -5590,7 +5590,7 @@ "tags": [], "label": "nodeId", "description": [], - "path": "x-pack/plugins/logs_shared/common/locators/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false } @@ -5604,7 +5604,7 @@ "tags": [], "label": "ResolvedLogView", "description": [], - "path": "x-pack/plugins/logs_shared/common/log_views/resolved_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/resolved_log_view.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -5615,7 +5615,7 @@ "tags": [], "label": "name", "description": [], - "path": "x-pack/plugins/logs_shared/common/log_views/resolved_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/resolved_log_view.ts", "deprecated": false, "trackAdoption": false }, @@ -5626,7 +5626,7 @@ "tags": [], "label": "description", "description": [], - "path": "x-pack/plugins/logs_shared/common/log_views/resolved_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/resolved_log_view.ts", "deprecated": false, "trackAdoption": false }, @@ -5637,7 +5637,7 @@ "tags": [], "label": "indices", "description": [], - "path": "x-pack/plugins/logs_shared/common/log_views/resolved_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/resolved_log_view.ts", "deprecated": false, "trackAdoption": false }, @@ -5648,7 +5648,7 @@ "tags": [], "label": "timestampField", "description": [], - "path": "x-pack/plugins/logs_shared/common/log_views/resolved_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/resolved_log_view.ts", "deprecated": false, "trackAdoption": false }, @@ -5659,7 +5659,7 @@ "tags": [], "label": "tiebreakerField", "description": [], - "path": "x-pack/plugins/logs_shared/common/log_views/resolved_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/resolved_log_view.ts", "deprecated": false, "trackAdoption": false }, @@ -5673,7 +5673,7 @@ "signature": [ "string[]" ], - "path": "x-pack/plugins/logs_shared/common/log_views/resolved_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/resolved_log_view.ts", "deprecated": false, "trackAdoption": false }, @@ -5694,7 +5694,7 @@ }, "[]" ], - "path": "x-pack/plugins/logs_shared/common/log_views/resolved_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/resolved_log_view.ts", "deprecated": false, "trackAdoption": false }, @@ -5710,7 +5710,7 @@ "MappingRuntimeField", "; }" ], - "path": "x-pack/plugins/logs_shared/common/log_views/resolved_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/resolved_log_view.ts", "deprecated": false, "trackAdoption": false }, @@ -5724,7 +5724,7 @@ "signature": [ "({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]" ], - "path": "x-pack/plugins/logs_shared/common/log_views/resolved_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/resolved_log_view.ts", "deprecated": false, "trackAdoption": false }, @@ -5744,7 +5744,7 @@ "text": "DataView" } ], - "path": "x-pack/plugins/logs_shared/common/log_views/resolved_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/resolved_log_view.ts", "deprecated": false, "trackAdoption": false } @@ -5775,7 +5775,7 @@ "text": "LogsLocatorParams" } ], - "path": "x-pack/plugins/logs_shared/common/locators/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -5786,7 +5786,7 @@ "tags": [], "label": "traceId", "description": [], - "path": "x-pack/plugins/logs_shared/common/locators/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false } @@ -5806,7 +5806,7 @@ "signature": [ "\"logFilter\"" ], - "path": "x-pack/plugins/logs_shared/common/log_views/defaults.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/defaults.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -5821,7 +5821,7 @@ "signature": [ "\"logPosition\"" ], - "path": "x-pack/plugins/logs_shared/common/log_views/defaults.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/defaults.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -5836,7 +5836,7 @@ "signature": [ "\"INFRA_LOGS_LOCATOR\"" ], - "path": "x-pack/plugins/logs_shared/common/locators/infra.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/infra.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -5851,7 +5851,7 @@ "signature": [ "\"INFRA_NODE_LOGS_LOCATOR\"" ], - "path": "x-pack/plugins/logs_shared/common/locators/infra.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/infra.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -5866,7 +5866,7 @@ "signature": [ "\"/api/log_entries/highlights\"" ], - "path": "x-pack/plugins/logs_shared/common/http_api/log_entries/v1/highlights.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/http_api/log_entries/v1/highlights.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -5881,7 +5881,7 @@ "signature": [ "\"/api/log_entries/summary\"" ], - "path": "x-pack/plugins/logs_shared/common/http_api/log_entries/v1/summary.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/http_api/log_entries/v1/summary.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -5912,7 +5912,7 @@ }, "; highlights: string[]; })[]; }" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -5927,7 +5927,7 @@ "signature": [ "{ type: \"data_view\"; dataViewId: string; }" ], - "path": "x-pack/plugins/logs_shared/common/log_views/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -5942,7 +5942,7 @@ "signature": [ "{ start: number; end: number; entriesCount: number; }" ], - "path": "x-pack/plugins/logs_shared/common/http_api/log_entries/v1/summary.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/http_api/log_entries/v1/summary.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -5957,7 +5957,7 @@ "signature": [ "{ start: number; end: number; entriesCount: number; } & { representativeKey: { time: string; tiebreaker: number; }; }" ], - "path": "x-pack/plugins/logs_shared/common/http_api/log_entries/v1/summary_highlights.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/http_api/log_entries/v1/summary_highlights.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -5988,7 +5988,7 @@ }, "; highlights: string[]; })[]; })[]; context: {} | { 'container.id': string; } | { 'host.name': string; 'log.file.path': string; }; }" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6003,7 +6003,7 @@ "signature": [ "{ after: { time: string; tiebreaker: number; } | \"first\"; }" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry_cursor.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry_cursor.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6018,7 +6018,7 @@ "signature": [ "{ center: { time: string; tiebreaker: number; }; }" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry_cursor.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry_cursor.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6033,7 +6033,7 @@ "signature": [ "{ before: { time: string; tiebreaker: number; } | \"last\"; }" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry_cursor.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry_cursor.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6048,7 +6048,7 @@ "signature": [ "{} | { 'container.id': string; } | { 'host.name': string; 'log.file.path': string; }" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6063,7 +6063,7 @@ "signature": [ "{ time: string; tiebreaker: number; }" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry_cursor.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry_cursor.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6086,7 +6086,7 @@ }, "; }" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6101,7 +6101,7 @@ "signature": [ "{ time: string; tiebreaker: number; } & { gid?: string | undefined; fromAutoReload?: boolean | undefined; }" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6124,7 +6124,7 @@ }, "; highlights: string[]; }" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6139,7 +6139,7 @@ "signature": [ "{ type: \"index_name\"; indexName: string; }" ], - "path": "x-pack/plugins/logs_shared/common/log_views/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6154,7 +6154,7 @@ "signature": [ "{ type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }" ], - "path": "x-pack/plugins/logs_shared/common/log_views/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6177,7 +6177,7 @@ }, "; highlights: string[]; })[]; }" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6192,7 +6192,7 @@ "signature": [ "{ constant: string; }" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6215,7 +6215,7 @@ }, "; highlights: string[]; }" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6238,7 +6238,7 @@ }, "; highlights: string[]; }" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6253,7 +6253,7 @@ "signature": [ "\"LOGS_LOCATOR\"" ], - "path": "x-pack/plugins/logs_shared/common/locators/logs_locator.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/logs_locator.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6268,7 +6268,7 @@ "signature": [ "{ columnId: string; time: string; }" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6283,7 +6283,7 @@ "signature": [ "{ id: string; origin: \"internal\" | \"inline\" | \"stored\" | \"infra-source-stored\" | \"infra-source-internal\" | \"infra-source-fallback\"; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; } & { updatedAt?: number | undefined; version?: string | undefined; }" ], - "path": "x-pack/plugins/logs_shared/common/log_views/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6298,7 +6298,7 @@ "signature": [ "{ name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }" ], - "path": "x-pack/plugins/logs_shared/common/log_views/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6313,7 +6313,7 @@ "signature": [ "{ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; }" ], - "path": "x-pack/plugins/logs_shared/common/log_views/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6328,7 +6328,7 @@ "signature": [ "{ logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; }" ], - "path": "x-pack/plugins/logs_shared/common/log_views/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6343,7 +6343,7 @@ "signature": [ "{ index: \"missing\" | \"unknown\" | \"empty\" | \"available\"; }" ], - "path": "x-pack/plugins/logs_shared/common/log_views/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6358,7 +6358,7 @@ "signature": [ "\"NODE_LOGS_LOCATOR\"" ], - "path": "x-pack/plugins/logs_shared/common/locators/node_logs_locator.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/node_logs_locator.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6373,7 +6373,7 @@ "signature": [ "{ logViewId: string; type: \"log-view-reference\"; }" ], - "path": "x-pack/plugins/logs_shared/common/log_views/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6421,7 +6421,7 @@ "MappingTimeSeriesMetricType", " | undefined; shortDotsEnable?: boolean | undefined; isMapped?: boolean | undefined; parentName?: string | undefined; defaultFormatter?: string | undefined; }" ], - "path": "x-pack/plugins/logs_shared/common/log_views/resolved_log_view.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/resolved_log_view.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6436,7 +6436,7 @@ "signature": [ "\"TRACE_LOGS_LOCATOR\"" ], - "path": "x-pack/plugins/logs_shared/common/locators/trace_logs_locator.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/locators/trace_logs_locator.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6450,7 +6450,7 @@ "tags": [], "label": "DEFAULT_LOG_VIEW", "description": [], - "path": "x-pack/plugins/logs_shared/common/log_views/defaults.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/defaults.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -6464,7 +6464,7 @@ "signature": [ "\"log-view-reference\"" ], - "path": "x-pack/plugins/logs_shared/common/log_views/defaults.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/defaults.ts", "deprecated": false, "trackAdoption": false }, @@ -6475,7 +6475,7 @@ "tags": [], "label": "logViewId", "description": [], - "path": "x-pack/plugins/logs_shared/common/log_views/defaults.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/defaults.ts", "deprecated": false, "trackAdoption": false } @@ -6489,7 +6489,7 @@ "tags": [], "label": "DEFAULT_REFRESH_INTERVAL", "description": [], - "path": "x-pack/plugins/logs_shared/common/log_views/defaults.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/defaults.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -6500,7 +6500,7 @@ "tags": [], "label": "pause", "description": [], - "path": "x-pack/plugins/logs_shared/common/log_views/defaults.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/defaults.ts", "deprecated": false, "trackAdoption": false }, @@ -6511,7 +6511,7 @@ "tags": [], "label": "value", "description": [], - "path": "x-pack/plugins/logs_shared/common/log_views/defaults.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/defaults.ts", "deprecated": false, "trackAdoption": false } @@ -6525,7 +6525,7 @@ "tags": [], "label": "defaultLogViewAttributes", "description": [], - "path": "x-pack/plugins/logs_shared/common/log_views/defaults.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/defaults.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -6536,7 +6536,7 @@ "tags": [], "label": "name", "description": [], - "path": "x-pack/plugins/logs_shared/common/log_views/defaults.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/defaults.ts", "deprecated": false, "trackAdoption": false }, @@ -6547,7 +6547,7 @@ "tags": [], "label": "description", "description": [], - "path": "x-pack/plugins/logs_shared/common/log_views/defaults.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/defaults.ts", "deprecated": false, "trackAdoption": false }, @@ -6558,7 +6558,7 @@ "tags": [], "label": "logIndices", "description": [], - "path": "x-pack/plugins/logs_shared/common/log_views/defaults.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/defaults.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -6572,7 +6572,7 @@ "signature": [ "\"index_name\"" ], - "path": "x-pack/plugins/logs_shared/common/log_views/defaults.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/defaults.ts", "deprecated": false, "trackAdoption": false }, @@ -6583,7 +6583,7 @@ "tags": [], "label": "indexName", "description": [], - "path": "x-pack/plugins/logs_shared/common/log_views/defaults.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/defaults.ts", "deprecated": false, "trackAdoption": false } @@ -6599,7 +6599,7 @@ "signature": [ "({ timestampColumn: { id: string; }; } | { fieldColumn: { id: string; field: string; }; } | { messageColumn: { id: string; }; })[]" ], - "path": "x-pack/plugins/logs_shared/common/log_views/defaults.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/defaults.ts", "deprecated": false, "trackAdoption": false } @@ -6689,7 +6689,7 @@ "StringC", ">; }>]>>; }>]>" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6709,7 +6709,7 @@ "StringC", "; }>" ], - "path": "x-pack/plugins/logs_shared/common/log_views/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -7331,7 +7331,7 @@ "NumberC", "; }>; }>]>]>" ], - "path": "x-pack/plugins/logs_shared/common/http_api/log_entries/v1/highlights.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/http_api/log_entries/v1/highlights.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -7579,7 +7579,7 @@ "StringC", "; }>]>; }>>; }>]>>; }>" ], - "path": "x-pack/plugins/logs_shared/common/http_api/log_entries/v1/highlights.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/http_api/log_entries/v1/highlights.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -7687,7 +7687,7 @@ "NullC", "]>; }>" ], - "path": "x-pack/plugins/logs_shared/common/http_api/log_entries/v1/summary.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/http_api/log_entries/v1/summary.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -7719,7 +7719,7 @@ "NumberC", "; }>>; }>; }>" ], - "path": "x-pack/plugins/logs_shared/common/http_api/log_entries/v1/summary.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/http_api/log_entries/v1/summary.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -7745,7 +7745,7 @@ "LiteralC", "<\"first\">]>; }>" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry_cursor.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry_cursor.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -7767,7 +7767,7 @@ "NumberC", "; }>; }>" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry_cursor.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry_cursor.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -7793,7 +7793,7 @@ "LiteralC", "<\"last\">]>; }>" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry_cursor.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry_cursor.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -7823,7 +7823,7 @@ "StringC", "; }>]>" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -7843,7 +7843,7 @@ "NumberC", "; }>" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry_cursor.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry_cursor.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -7879,7 +7879,7 @@ }, ", unknown>; }>" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -7997,7 +7997,7 @@ "StringC", "; }>]>; }>" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -8039,7 +8039,7 @@ "StringC", ">; }>" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -8059,7 +8059,7 @@ "StringC", "; }>" ], - "path": "x-pack/plugins/logs_shared/common/log_views/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -8111,7 +8111,7 @@ "StringC", ">; }>]>>; }>" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -8131,7 +8131,7 @@ "StringC", "; }>" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -8171,7 +8171,7 @@ "StringC", ">; }>" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -8217,7 +8217,7 @@ "StringC", ">; }>]>" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -8239,7 +8239,7 @@ "StringC", "; }>" ], - "path": "x-pack/plugins/logs_shared/common/log_entry/log_entry.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_entry/log_entry.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -8293,7 +8293,7 @@ "StringC", "; }>>]>; }>>]>" ], - "path": "x-pack/plugins/logs_shared/common/log_views/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -8385,7 +8385,7 @@ "StringC", "; }>>]>; }>>]>>; }>>; }>]>" ], - "path": "x-pack/plugins/logs_shared/common/log_views/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -8405,7 +8405,7 @@ "LiteralC", "<\"log-view-reference\">; }>" ], - "path": "x-pack/plugins/logs_shared/common/log_views/types.ts", + "path": "x-pack/plugins/observability_solution/logs_shared/common/log_views/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false diff --git a/api_docs/logs_shared.mdx b/api_docs/logs_shared.mdx index 78eb17f7a338b..f935778cea8e3 100644 --- a/api_docs/logs_shared.mdx +++ b/api_docs/logs_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsShared title: "logsShared" image: https://source.unsplash.com/400x175/?github description: API docs for the logsShared plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsShared'] --- import logsSharedObj from './logs_shared.devdocs.json'; diff --git a/api_docs/management.mdx b/api_docs/management.mdx index 6e1fc2efc326b..155aa8e3ac3de 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management'] --- import managementObj from './management.devdocs.json'; diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx index 6a61ff2182dc5..7e425fbb82b6d 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'maps'] --- import mapsObj from './maps.devdocs.json'; diff --git a/api_docs/maps_ems.mdx b/api_docs/maps_ems.mdx index 51f9a0ae0b6e4..7932703732f2d 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms'] --- import mapsEmsObj from './maps_ems.devdocs.json'; diff --git a/api_docs/metrics_data_access.mdx b/api_docs/metrics_data_access.mdx index b7131eef3ea7b..45794d6384e64 100644 --- a/api_docs/metrics_data_access.mdx +++ b/api_docs/metrics_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/metricsDataAccess title: "metricsDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the metricsDataAccess plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'metricsDataAccess'] --- import metricsDataAccessObj from './metrics_data_access.devdocs.json'; diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index 30c434399241e..21d2198d4a562 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml'] --- import mlObj from './ml.devdocs.json'; diff --git a/api_docs/mock_idp_plugin.mdx b/api_docs/mock_idp_plugin.mdx index 43199509f1d41..2e4d91f9e4afb 100644 --- a/api_docs/mock_idp_plugin.mdx +++ b/api_docs/mock_idp_plugin.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mockIdpPlugin title: "mockIdpPlugin" image: https://source.unsplash.com/400x175/?github description: API docs for the mockIdpPlugin plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mockIdpPlugin'] --- import mockIdpPluginObj from './mock_idp_plugin.devdocs.json'; diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx index 22ba1c8ab0ace..f87a66139bc73 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring'] --- import monitoringObj from './monitoring.devdocs.json'; diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx index 717bf83027ff6..68571bca7f83b 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection'] --- import monitoringCollectionObj from './monitoring_collection.devdocs.json'; diff --git a/api_docs/navigation.devdocs.json b/api_docs/navigation.devdocs.json index 245711ed0a0e7..ecc60820f0485 100644 --- a/api_docs/navigation.devdocs.json +++ b/api_docs/navigation.devdocs.json @@ -70,7 +70,7 @@ "id": "def-public.NavigationPublicPlugin.Unnamed.$1", "type": "Object", "tags": [], - "label": "_initializerContext", + "label": "initializerContext", "description": [], "signature": [ { @@ -80,7 +80,9 @@ "section": "def-common.PluginInitializerContext", "text": "PluginInitializerContext" }, - "" + "<", + "ConfigSchema", + ">" ], "path": "src/plugins/navigation/public/plugin.ts", "deprecated": false, @@ -152,7 +154,7 @@ "label": "start", "description": [], "signature": [ - "(_core: ", + "(core: ", { "pluginId": "@kbn/core-lifecycle-browser", "scope": "common", @@ -160,7 +162,7 @@ "section": "def-common.CoreStart", "text": "CoreStart" }, - ", { unifiedSearch }: ", + ", { unifiedSearch, cloud }: ", "NavigationPublicStartDependencies", ") => ", { @@ -180,7 +182,7 @@ "id": "def-public.NavigationPublicPlugin.start.$1", "type": "Object", "tags": [], - "label": "_core", + "label": "core", "description": [], "signature": [ { @@ -201,7 +203,7 @@ "id": "def-public.NavigationPublicPlugin.start.$2", "type": "Object", "tags": [], - "label": "{ unifiedSearch }", + "label": "{ unifiedSearch, cloud }", "description": [], "signature": [ "NavigationPublicStartDependencies" @@ -810,6 +812,36 @@ ], "enums": [], "misc": [ + { + "parentPluginId": "navigation", + "id": "def-public.SolutionNavigationOptInStatus", + "type": "Type", + "tags": [], + "label": "SolutionNavigationOptInStatus", + "description": [], + "signature": [ + "\"hidden\" | \"visible\" | \"ask\"" + ], + "path": "src/plugins/navigation/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "navigation", + "id": "def-public.SolutionType", + "type": "Type", + "tags": [], + "label": "SolutionType", + "description": [], + "signature": [ + "\"security\" | \"es\" | \"oblt\"" + ], + "path": "src/plugins/navigation/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "navigation", "id": "def-public.TopNavMenuBadgeProps", @@ -1031,6 +1063,42 @@ "path": "src/plugins/navigation/public/types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "navigation", + "id": "def-public.NavigationPublicStart.addSolutionNavigation", + "type": "Function", + "tags": [], + "label": "addSolutionNavigation", + "description": [ + "Add a solution navigation to the header nav switcher." + ], + "signature": [ + "(solutionNavigation: ", + "SolutionNavigation", + ") => void" + ], + "path": "src/plugins/navigation/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "navigation", + "id": "def-public.NavigationPublicStart.addSolutionNavigation.$1", + "type": "Object", + "tags": [], + "label": "solutionNavigation", + "description": [], + "signature": [ + "SolutionNavigation" + ], + "path": "src/plugins/navigation/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] } ], "lifecycle": "start", @@ -1050,7 +1118,53 @@ "functions": [], "interfaces": [], "enums": [], - "misc": [], + "misc": [ + { + "parentPluginId": "navigation", + "id": "def-common.DEFAULT_SOLUTION_NAV_UI_SETTING_ID", + "type": "string", + "tags": [], + "label": "DEFAULT_SOLUTION_NAV_UI_SETTING_ID", + "description": [], + "signature": [ + "\"solutionNav:default\"" + ], + "path": "src/plugins/navigation/common/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "navigation", + "id": "def-common.ENABLE_SOLUTION_NAV_UI_SETTING_ID", + "type": "string", + "tags": [], + "label": "ENABLE_SOLUTION_NAV_UI_SETTING_ID", + "description": [], + "signature": [ + "\"solutionNav:enable\"" + ], + "path": "src/plugins/navigation/common/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "navigation", + "id": "def-common.OPT_IN_STATUS_SOLUTION_NAV_UI_SETTING_ID", + "type": "string", + "tags": [], + "label": "OPT_IN_STATUS_SOLUTION_NAV_UI_SETTING_ID", + "description": [], + "signature": [ + "\"solutionNav:optInStatus\"" + ], + "path": "src/plugins/navigation/common/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], "objects": [] } } \ No newline at end of file diff --git a/api_docs/navigation.mdx b/api_docs/navigation.mdx index de2b847e9f4bf..d210bb2dd91f4 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'navigation'] --- import navigationObj from './navigation.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sh | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 42 | 0 | 42 | 3 | +| 49 | 0 | 48 | 5 | ## Client @@ -43,3 +43,8 @@ Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sh ### Consts, variables and types +## Common + +### Consts, variables and types + + diff --git a/api_docs/newsfeed.mdx b/api_docs/newsfeed.mdx index 76103d823fd27..ffcb3e83c47b9 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] --- import newsfeedObj from './newsfeed.devdocs.json'; diff --git a/api_docs/no_data_page.mdx b/api_docs/no_data_page.mdx index b76e9e3137b9e..2aa2d8dd35b32 100644 --- a/api_docs/no_data_page.mdx +++ b/api_docs/no_data_page.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/noDataPage title: "noDataPage" image: https://source.unsplash.com/400x175/?github description: API docs for the noDataPage plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'noDataPage'] --- import noDataPageObj from './no_data_page.devdocs.json'; diff --git a/api_docs/notifications.mdx b/api_docs/notifications.mdx index c6a2995a509a9..339f60e9a4389 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications'] --- import notificationsObj from './notifications.devdocs.json'; diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index aa7eb5d9313a3..01fb9d1c3eb59 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; diff --git a/api_docs/observability_a_i_assistant.mdx b/api_docs/observability_a_i_assistant.mdx index a667fcf2f3ac5..d87741b6418c4 100644 --- a/api_docs/observability_a_i_assistant.mdx +++ b/api_docs/observability_a_i_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistant title: "observabilityAIAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityAIAssistant plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistant'] --- import observabilityAIAssistantObj from './observability_a_i_assistant.devdocs.json'; diff --git a/api_docs/observability_logs_explorer.mdx b/api_docs/observability_logs_explorer.mdx index 03590483c90d1..dfd4af53da381 100644 --- a/api_docs/observability_logs_explorer.mdx +++ b/api_docs/observability_logs_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityLogsExplorer title: "observabilityLogsExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityLogsExplorer plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityLogsExplorer'] --- import observabilityLogsExplorerObj from './observability_logs_explorer.devdocs.json'; diff --git a/api_docs/observability_onboarding.mdx b/api_docs/observability_onboarding.mdx index 82e704a038df3..7a55c884169cd 100644 --- a/api_docs/observability_onboarding.mdx +++ b/api_docs/observability_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityOnboarding title: "observabilityOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityOnboarding plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityOnboarding'] --- import observabilityOnboardingObj from './observability_onboarding.devdocs.json'; diff --git a/api_docs/observability_shared.devdocs.json b/api_docs/observability_shared.devdocs.json index a9ff4fe8d1163..6daa53d59e9a6 100644 --- a/api_docs/observability_shared.devdocs.json +++ b/api_docs/observability_shared.devdocs.json @@ -38,7 +38,9 @@ "tags": [], "label": "Constructor", "description": [], - "signature": ["any"], + "signature": [ + "any" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/plugin.ts", "deprecated": false, "trackAdoption": false, @@ -108,7 +110,9 @@ "tags": [], "label": "pluginsSetup", "description": [], - "signature": ["ObservabilitySharedSetup"], + "signature": [ + "ObservabilitySharedSetup" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/plugin.ts", "deprecated": false, "trackAdoption": false, @@ -199,7 +203,9 @@ "tags": [], "label": "plugins", "description": [], - "signature": ["ObservabilitySharedStart"], + "signature": [ + "ObservabilitySharedStart" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/plugin.ts", "deprecated": false, "trackAdoption": false, @@ -215,7 +221,9 @@ "tags": [], "label": "stop", "description": [], - "signature": ["() => void"], + "signature": [ + "() => void" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/plugin.ts", "deprecated": false, "trackAdoption": false, @@ -234,7 +242,9 @@ "tags": [], "label": "ActionMenu", "description": [], - "signature": ["(props: Props) => JSX.Element"], + "signature": [ + "(props: Props) => JSX.Element" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/action_menu/action_menu.tsx", "deprecated": false, "trackAdoption": false, @@ -246,7 +256,9 @@ "tags": [], "label": "props", "description": [], - "signature": ["Props"], + "signature": [ + "Props" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/action_menu/action_menu.tsx", "deprecated": false, "trackAdoption": false, @@ -263,7 +275,9 @@ "tags": [], "label": "ActionMenuDivider", "description": [], - "signature": ["() => JSX.Element"], + "signature": [ + "() => JSX.Element" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/action_menu/action_menu.tsx", "deprecated": false, "trackAdoption": false, @@ -309,7 +323,9 @@ "tags": [], "label": "{\n isLoading,\n onDiscardChanges,\n onSave,\n unsavedChangesCount,\n saveLabel,\n appTestSubj,\n areChangesInvalid = false,\n}", "description": [], - "signature": ["Props"], + "signature": [ + "Props" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/bottom_bar_actions/bottom_bar_actions.tsx", "deprecated": false, "trackAdoption": false, @@ -326,7 +342,9 @@ "tags": [], "label": "createEsParams", "description": [], - "signature": ["(params: T) => T"], + "signature": [ + "(params: T) => T" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_es_search.ts", "deprecated": false, "trackAdoption": false, @@ -338,7 +356,9 @@ "tags": [], "label": "params", "description": [], - "signature": ["T"], + "signature": [ + "T" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_es_search.ts", "deprecated": false, "trackAdoption": false, @@ -355,7 +375,9 @@ "tags": [], "label": "EmbeddableFlamegraph", "description": [], - "signature": ["(props: Props) => JSX.Element"], + "signature": [ + "(props: Props) => JSX.Element" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/profiling/embeddables/embeddable_flamegraph.tsx", "deprecated": false, "trackAdoption": false, @@ -367,7 +389,9 @@ "tags": [], "label": "props", "description": [], - "signature": ["Props"], + "signature": [ + "Props" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/profiling/embeddables/embeddable_flamegraph.tsx", "deprecated": false, "trackAdoption": false, @@ -384,7 +408,9 @@ "tags": [], "label": "EmbeddableFunctions", "description": [], - "signature": ["(props: Props) => JSX.Element"], + "signature": [ + "(props: Props) => JSX.Element" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/profiling/embeddables/embeddable_functions.tsx", "deprecated": false, "trackAdoption": false, @@ -396,7 +422,9 @@ "tags": [], "label": "props", "description": [], - "signature": ["Props"], + "signature": [ + "Props" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/profiling/embeddables/embeddable_functions.tsx", "deprecated": false, "trackAdoption": false, @@ -460,7 +488,9 @@ "tags": [], "label": "EmbeddableStackTraces", "description": [], - "signature": ["(props: Props) => JSX.Element"], + "signature": [ + "(props: Props) => JSX.Element" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/profiling/embeddables/embeddable_stack_traces.tsx", "deprecated": false, "trackAdoption": false, @@ -472,7 +502,9 @@ "tags": [], "label": "props", "description": [], - "signature": ["Props"], + "signature": [ + "Props" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/profiling/embeddables/embeddable_stack_traces.tsx", "deprecated": false, "trackAdoption": false, @@ -503,7 +535,9 @@ "tags": [], "label": "{\n formUrl,\n formConfig,\n 'data-test-subj': dts,\n onClickCapture,\n defaultButton,\n kibanaVersion,\n isCloudEnv,\n isServerlessEnv,\n sanitizedPath,\n nodeType,\n surveyButtonText = (\n \n ),\n}", "description": [], - "signature": ["FeatureFeedbackButtonProps"], + "signature": [ + "FeatureFeedbackButtonProps" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/feature_feedback_button/feature_feedback_button.tsx", "deprecated": false, "trackAdoption": false, @@ -520,7 +554,11 @@ "tags": [], "label": "FieldValueSelection", "description": [], - "signature": ["(props: ", "FieldValueSelectionProps", ") => JSX.Element"], + "signature": [ + "(props: ", + "FieldValueSelectionProps", + ") => JSX.Element" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/index.tsx", "deprecated": false, "trackAdoption": false, @@ -532,7 +570,9 @@ "tags": [], "label": "props", "description": [], - "signature": ["FieldValueSelectionProps"], + "signature": [ + "FieldValueSelectionProps" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/index.tsx", "deprecated": false, "trackAdoption": false, @@ -549,7 +589,11 @@ "tags": [], "label": "FieldValueSuggestions", "description": [], - "signature": ["(props: ", "FieldValueSuggestionsProps", ") => JSX.Element"], + "signature": [ + "(props: ", + "FieldValueSuggestionsProps", + ") => JSX.Element" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/index.tsx", "deprecated": false, "trackAdoption": false, @@ -561,7 +605,9 @@ "tags": [], "label": "props", "description": [], - "signature": ["FieldValueSuggestionsProps"], + "signature": [ + "FieldValueSuggestionsProps" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/index.tsx", "deprecated": false, "trackAdoption": false, @@ -735,7 +781,9 @@ "tags": [], "label": "context", "description": [], - "signature": ["{ [x: string]: any; }"], + "signature": [ + "{ [x: string]: any; }" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/services/get_context_menu_items_from_actions.ts", "deprecated": false, "trackAdoption": false @@ -753,7 +801,11 @@ "tags": [], "label": "HeaderMenuPortal", "description": [], - "signature": ["(props: ", "HeaderMenuPortalProps", ") => JSX.Element"], + "signature": [ + "(props: ", + "HeaderMenuPortalProps", + ") => JSX.Element" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/header_menu/index.tsx", "deprecated": false, "trackAdoption": false, @@ -765,7 +817,9 @@ "tags": [], "label": "props", "description": [], - "signature": ["HeaderMenuPortalProps"], + "signature": [ + "HeaderMenuPortalProps" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/header_menu/index.tsx", "deprecated": false, "trackAdoption": false, @@ -782,7 +836,9 @@ "tags": [], "label": "InspectorContextProvider", "description": [], - "signature": ["({ children }: { children: React.ReactNode; }) => JSX.Element"], + "signature": [ + "({ children }: { children: React.ReactNode; }) => JSX.Element" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/contexts/inspector/inspector_context.tsx", "deprecated": false, "trackAdoption": false, @@ -825,7 +881,11 @@ "tags": [], "label": "LoadWhenInView", "description": [], - "signature": ["(props: ", "LoadWhenInViewProps", ") => JSX.Element"], + "signature": [ + "(props: ", + "LoadWhenInViewProps", + ") => JSX.Element" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/load_when_in_view/get_load_when_in_view_lazy.tsx", "deprecated": false, "trackAdoption": false, @@ -837,7 +897,9 @@ "tags": [], "label": "props", "description": [], - "signature": ["LoadWhenInViewProps"], + "signature": [ + "LoadWhenInViewProps" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/load_when_in_view/get_load_when_in_view_lazy.tsx", "deprecated": false, "trackAdoption": false, @@ -854,7 +916,9 @@ "tags": [], "label": "NavigationWarningPromptProvider", "description": [], - "signature": ["({ children }: { children?: React.ReactNode; }) => JSX.Element"], + "signature": [ + "({ children }: { children?: React.ReactNode; }) => JSX.Element" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/navigation_warning_prompt/context.tsx", "deprecated": false, "trackAdoption": false, @@ -866,7 +930,9 @@ "tags": [], "label": "{ children }", "description": [], - "signature": ["{ children?: React.ReactNode; }"], + "signature": [ + "{ children?: React.ReactNode; }" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/navigation_warning_prompt/context.tsx", "deprecated": false, "trackAdoption": false, @@ -900,7 +966,9 @@ "tags": [], "label": "ProfilingEmptyState", "description": [], - "signature": ["() => JSX.Element"], + "signature": [ + "() => JSX.Element" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/profiling/profiling_empty_state.tsx", "deprecated": false, "trackAdoption": false, @@ -915,7 +983,9 @@ "tags": [], "label": "Prompt", "description": [], - "signature": ["({ prompt }: React.PropsWithChildren) => null"], + "signature": [ + "({ prompt }: React.PropsWithChildren) => null" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/navigation_warning_prompt/prompt.tsx", "deprecated": false, "trackAdoption": false, @@ -927,7 +997,9 @@ "tags": [], "label": "{ prompt }", "description": [], - "signature": ["React.PropsWithChildren"], + "signature": [ + "React.PropsWithChildren" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/navigation_warning_prompt/prompt.tsx", "deprecated": false, "trackAdoption": false, @@ -963,7 +1035,11 @@ "tags": [], "label": "SectionLink", "description": [], - "signature": ["({ ...props }: ", "EuiListGroupItemProps", ") => JSX.Element"], + "signature": [ + "({ ...props }: ", + "EuiListGroupItemProps", + ") => JSX.Element" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/section/section.tsx", "deprecated": false, "trackAdoption": false, @@ -975,7 +1051,9 @@ "tags": [], "label": "{ ...props }", "description": [], - "signature": ["EuiListGroupItemProps"], + "signature": [ + "EuiListGroupItemProps" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/section/section.tsx", "deprecated": false, "trackAdoption": false, @@ -1037,7 +1115,9 @@ "tags": [], "label": "SectionSpacer", "description": [], - "signature": ["() => JSX.Element"], + "signature": [ + "() => JSX.Element" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/section/section.tsx", "deprecated": false, "trackAdoption": false, @@ -1052,7 +1132,9 @@ "tags": [], "label": "SectionSubtitle", "description": [], - "signature": ["({ children }: { children?: React.ReactNode; }) => JSX.Element"], + "signature": [ + "({ children }: { children?: React.ReactNode; }) => JSX.Element" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/section/section.tsx", "deprecated": false, "trackAdoption": false, @@ -1095,7 +1177,9 @@ "tags": [], "label": "SectionTitle", "description": [], - "signature": ["({ children }: { children?: React.ReactNode; }) => JSX.Element"], + "signature": [ + "({ children }: { children?: React.ReactNode; }) => JSX.Element" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/section/section.tsx", "deprecated": false, "trackAdoption": false, @@ -1218,7 +1302,9 @@ "tags": [], "label": "TechnicalPreviewBadge", "description": [], - "signature": ["({ icon = 'beaker', size, style }: Props) => JSX.Element"], + "signature": [ + "({ icon = 'beaker', size, style }: Props) => JSX.Element" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/technical_preview_badge/technical_preview_badge.tsx", "deprecated": false, "trackAdoption": false, @@ -1230,7 +1316,9 @@ "tags": [], "label": "{ icon = 'beaker', size, style }", "description": [], - "signature": ["Props"], + "signature": [ + "Props" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/technical_preview_badge/technical_preview_badge.tsx", "deprecated": false, "trackAdoption": false, @@ -1447,7 +1535,9 @@ "tags": [], "label": "app", "description": [], - "signature": ["ObservabilityApp"], + "signature": [ + "ObservabilityApp" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_editable_settings.tsx", "deprecated": false, "trackAdoption": false, @@ -1460,7 +1550,9 @@ "tags": [], "label": "settingsKeys", "description": [], - "signature": ["string[]"], + "signature": [ + "string[]" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_editable_settings.tsx", "deprecated": false, "trackAdoption": false, @@ -1509,7 +1601,9 @@ "tags": [], "label": "params", "description": [], - "signature": ["TParams"], + "signature": [ + "TParams" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_es_search.ts", "deprecated": false, "trackAdoption": false, @@ -1522,7 +1616,9 @@ "tags": [], "label": "fnDeps", "description": [], - "signature": ["any[]"], + "signature": [ + "any[]" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_es_search.ts", "deprecated": false, "trackAdoption": false, @@ -1606,7 +1702,9 @@ "tags": [], "label": "fn", "description": [], - "signature": ["({}: { signal: AbortSignal; }) => TReturn"], + "signature": [ + "({}: { signal: AbortSignal; }) => TReturn" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_fetcher.tsx", "deprecated": false, "trackAdoption": false, @@ -1619,7 +1717,9 @@ "tags": [], "label": "fnDeps", "description": [], - "signature": ["any[]"], + "signature": [ + "any[]" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_fetcher.tsx", "deprecated": false, "trackAdoption": false, @@ -1643,7 +1743,9 @@ "tags": [], "label": "preservePreviousData", "description": [], - "signature": ["boolean | undefined"], + "signature": [ + "boolean | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_fetcher.tsx", "deprecated": false, "trackAdoption": false @@ -1661,7 +1763,10 @@ "tags": [], "label": "useInspectorContext", "description": [], - "signature": ["() => ", "InspectorContextValue"], + "signature": [ + "() => ", + "InspectorContextValue" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/contexts/inspector/use_inspector_context.tsx", "deprecated": false, "trackAdoption": false, @@ -1778,7 +1883,10 @@ "tags": [], "label": "useObservabilityTourContext", "description": [], - "signature": ["() => ", "ObservabilityTourContextValue"], + "signature": [ + "() => ", + "ObservabilityTourContextValue" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/tour/tour.tsx", "deprecated": false, "trackAdoption": false, @@ -1793,7 +1901,9 @@ "tags": [], "label": "useQuickTimeRanges", "description": [], - "signature": ["() => { start: string; end: string; label: string; }[]"], + "signature": [ + "() => { start: string; end: string; label: string; }[]" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_quick_time_ranges.tsx", "deprecated": false, "trackAdoption": false, @@ -1832,7 +1942,9 @@ "tags": [], "label": "useTimeZone", "description": [], - "signature": ["() => string"], + "signature": [ + "() => string" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_time_zone.ts", "deprecated": false, "trackAdoption": false, @@ -1863,7 +1975,9 @@ "tags": [], "label": "{ app, metric, metricType = METRIC_TYPE.COUNT, delay = 0 }", "description": [], - "signature": ["TrackMetricOptions"], + "signature": [ + "TrackMetricOptions" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_track_metric.tsx", "deprecated": false, "trackAdoption": false, @@ -1876,7 +1990,9 @@ "tags": [], "label": "effectDependencies", "description": [], - "signature": ["EffectDeps"], + "signature": [ + "EffectDeps" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_track_metric.tsx", "deprecated": false, "trackAdoption": false, @@ -1907,7 +2023,9 @@ "tags": [], "label": "{ path, ...rest }", "description": [], - "signature": ["TrackPageviewProps"], + "signature": [ + "TrackPageviewProps" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_track_metric.tsx", "deprecated": false, "trackAdoption": false, @@ -1920,7 +2038,9 @@ "tags": [], "label": "effectDependencies", "description": [], - "signature": ["EffectDeps"], + "signature": [ + "EffectDeps" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_track_metric.tsx", "deprecated": false, "trackAdoption": false, @@ -1971,7 +2091,10 @@ "tags": [], "label": "app", "description": [], - "signature": ["ObservabilityApp", " | undefined"], + "signature": [ + "ObservabilityApp", + " | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_track_metric.tsx", "deprecated": false, "trackAdoption": false @@ -2007,7 +2130,9 @@ "tags": [], "label": "{\n sourceField,\n dataViewTitle,\n query = '',\n filters,\n time,\n label,\n keepHistory,\n cardinalityField,\n}", "description": [], - "signature": ["Props"], + "signature": [ + "Props" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_values_list.ts", "deprecated": false, "trackAdoption": false, @@ -2117,7 +2242,9 @@ "tags": [], "label": "showDatePicker", "description": [], - "signature": ["boolean | undefined"], + "signature": [ + "boolean | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/profiling/embeddables/embeddable_profiling_search_bar.tsx", "deprecated": false, "trackAdoption": false @@ -2184,7 +2311,9 @@ "tags": [], "label": "onRefresh", "description": [], - "signature": ["() => void"], + "signature": [ + "() => void" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/profiling/embeddables/embeddable_profiling_search_bar.tsx", "deprecated": false, "trackAdoption": false, @@ -2244,7 +2373,9 @@ "tags": [], "label": "data", "description": [], - "signature": ["Data | undefined"], + "signature": [ + "Data | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_fetcher.tsx", "deprecated": false, "trackAdoption": false @@ -2276,7 +2407,9 @@ "tags": [], "label": "error", "description": [], - "signature": ["Error | undefined"], + "signature": [ + "Error | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_fetcher.tsx", "deprecated": false, "trackAdoption": false @@ -2288,7 +2421,9 @@ "tags": [], "label": "loading", "description": [], - "signature": ["boolean | undefined"], + "signature": [ + "boolean | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_fetcher.tsx", "deprecated": false, "trackAdoption": false @@ -2325,7 +2460,9 @@ "tags": [], "label": "pathname", "description": [], - "signature": ["string | undefined"], + "signature": [ + "string | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_link_props.ts", "deprecated": false, "trackAdoption": false @@ -2337,7 +2474,9 @@ "tags": [], "label": "hash", "description": [], - "signature": ["string | undefined"], + "signature": [ + "string | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_link_props.ts", "deprecated": false, "trackAdoption": false @@ -2349,7 +2488,9 @@ "tags": [], "label": "search", "description": [], - "signature": ["Search | undefined"], + "signature": [ + "Search | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_link_props.ts", "deprecated": false, "trackAdoption": false @@ -2361,7 +2502,9 @@ "tags": [], "label": "state", "description": [], - "signature": ["unknown"], + "signature": [ + "unknown" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_link_props.ts", "deprecated": false, "trackAdoption": false @@ -2420,7 +2563,9 @@ "tags": [], "label": "matchFullPath", "description": [], - "signature": ["boolean | undefined"], + "signature": [ + "boolean | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/page_template/page_template.tsx", "deprecated": false, "trackAdoption": false @@ -2432,7 +2577,9 @@ "tags": [], "label": "ignoreTrailingSlash", "description": [], - "signature": ["boolean | undefined"], + "signature": [ + "boolean | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/page_template/page_template.tsx", "deprecated": false, "trackAdoption": false @@ -2458,7 +2605,9 @@ "tags": [], "label": "event", "description": [], - "signature": ["React.MouseEvent"], + "signature": [ + "React.MouseEvent" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/page_template/page_template.tsx", "deprecated": false, "trackAdoption": false, @@ -2474,7 +2623,9 @@ "tags": [], "label": "isNewFeature", "description": [], - "signature": ["boolean | undefined"], + "signature": [ + "boolean | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/page_template/page_template.tsx", "deprecated": false, "trackAdoption": false @@ -2486,7 +2637,9 @@ "tags": [], "label": "isTechnicalPreview", "description": [], - "signature": ["boolean | undefined"], + "signature": [ + "boolean | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/page_template/page_template.tsx", "deprecated": false, "trackAdoption": false @@ -2498,7 +2651,9 @@ "tags": [], "label": "isBetaFeature", "description": [], - "signature": ["boolean | undefined"], + "signature": [ + "boolean | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/page_template/page_template.tsx", "deprecated": false, "trackAdoption": false @@ -2510,7 +2665,9 @@ "tags": [], "label": "matchPath", "description": [], - "signature": ["((path: string) => boolean) | undefined"], + "signature": [ + "((path: string) => boolean) | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/page_template/page_template.tsx", "deprecated": false, "trackAdoption": false, @@ -2522,7 +2679,9 @@ "tags": [], "label": "path", "description": [], - "signature": ["string"], + "signature": [ + "string" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/page_template/page_template.tsx", "deprecated": false, "trackAdoption": false, @@ -2552,7 +2711,9 @@ "tags": [], "label": "label", "description": [], - "signature": ["string | undefined"], + "signature": [ + "string | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/page_template/page_template.tsx", "deprecated": false, "trackAdoption": false @@ -2596,7 +2757,9 @@ "tags": [], "label": "isBetaFeature", "description": [], - "signature": ["boolean | undefined"], + "signature": [ + "boolean | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/page_template/page_template.tsx", "deprecated": false, "trackAdoption": false @@ -2622,7 +2785,9 @@ "tags": [], "label": "hrefOnly", "description": [], - "signature": ["boolean | undefined"], + "signature": [ + "boolean | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_link_props.ts", "deprecated": false, "trackAdoption": false @@ -2648,7 +2813,9 @@ "tags": [], "label": "onClick", "description": [], - "signature": ["((tag: string) => void) | undefined"], + "signature": [ + "((tag: string) => void) | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/tags_list/tags_list.tsx", "deprecated": false, "trackAdoption": false, @@ -2660,7 +2827,9 @@ "tags": [], "label": "tag", "description": [], - "signature": ["string"], + "signature": [ + "string" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/tags_list/tags_list.tsx", "deprecated": false, "trackAdoption": false, @@ -2676,7 +2845,9 @@ "tags": [], "label": "tags", "description": [], - "signature": ["string[] | undefined"], + "signature": [ + "string[] | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/tags_list/tags_list.tsx", "deprecated": false, "trackAdoption": false @@ -2688,7 +2859,9 @@ "tags": [], "label": "numberOfTagsToDisplay", "description": [], - "signature": ["number | undefined"], + "signature": [ + "number | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/tags_list/tags_list.tsx", "deprecated": false, "trackAdoption": false @@ -2700,7 +2873,9 @@ "tags": [], "label": "color", "description": [], - "signature": ["string | undefined"], + "signature": [ + "string | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/tags_list/tags_list.tsx", "deprecated": false, "trackAdoption": false @@ -2712,7 +2887,9 @@ "tags": [], "label": "ignoreEmpty", "description": [], - "signature": ["boolean | undefined"], + "signature": [ + "boolean | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/tags_list/tags_list.tsx", "deprecated": false, "trackAdoption": false @@ -2738,7 +2915,9 @@ "tags": [], "label": "cls", "description": [], - "signature": ["number | null | undefined"], + "signature": [ + "number | null | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/types.ts", "deprecated": false, "trackAdoption": false @@ -2750,7 +2929,9 @@ "tags": [], "label": "lcp", "description": [], - "signature": ["number | null | undefined"], + "signature": [ + "number | null | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/types.ts", "deprecated": false, "trackAdoption": false @@ -2762,7 +2943,9 @@ "tags": [], "label": "tbt", "description": [], - "signature": ["number | undefined"], + "signature": [ + "number | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/types.ts", "deprecated": false, "trackAdoption": false @@ -2774,7 +2957,9 @@ "tags": [], "label": "fcp", "description": [], - "signature": ["number | null | undefined"], + "signature": [ + "number | null | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/types.ts", "deprecated": false, "trackAdoption": false @@ -2786,7 +2971,9 @@ "tags": [], "label": "coreVitalPages", "description": [], - "signature": ["number | undefined"], + "signature": [ + "number | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/types.ts", "deprecated": false, "trackAdoption": false @@ -2798,7 +2985,9 @@ "tags": [], "label": "lcpRanks", "description": [], - "signature": ["number[] | undefined"], + "signature": [ + "number[] | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/types.ts", "deprecated": false, "trackAdoption": false @@ -2810,7 +2999,9 @@ "tags": [], "label": "clsRanks", "description": [], - "signature": ["number[] | undefined"], + "signature": [ + "number[] | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/types.ts", "deprecated": false, "trackAdoption": false @@ -2822,7 +3013,9 @@ "tags": [], "label": "inp", "description": [], - "signature": ["number | null | undefined"], + "signature": [ + "number | null | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/types.ts", "deprecated": false, "trackAdoption": false @@ -2834,7 +3027,9 @@ "tags": [], "label": "hasINP", "description": [], - "signature": ["boolean | undefined"], + "signature": [ + "boolean | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/types.ts", "deprecated": false, "trackAdoption": false @@ -2846,7 +3041,9 @@ "tags": [], "label": "inpRanks", "description": [], - "signature": ["number[] | undefined"], + "signature": [ + "number[] | undefined" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/types.ts", "deprecated": false, "trackAdoption": false @@ -2940,7 +3137,9 @@ "tags": [], "label": "casesFeatureId", "description": [], - "signature": ["\"observabilityCases\""], + "signature": [ + "\"observabilityCases\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/index.ts", "deprecated": false, "trackAdoption": false, @@ -2952,8 +3151,12 @@ "type": "string", "tags": [], "label": "EMBEDDABLE_FLAMEGRAPH", - "description": ["Profiling flamegraph embeddable key"], - "signature": ["\"EMBEDDABLE_FLAMEGRAPH\""], + "description": [ + "Profiling flamegraph embeddable key" + ], + "signature": [ + "\"EMBEDDABLE_FLAMEGRAPH\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/profiling/embeddables/index.ts", "deprecated": false, "trackAdoption": false, @@ -2965,8 +3168,12 @@ "type": "string", "tags": [], "label": "EMBEDDABLE_FUNCTIONS", - "description": ["Profiling functions embeddable key"], - "signature": ["\"EMBEDDABLE_FUNCTIONS\""], + "description": [ + "Profiling functions embeddable key" + ], + "signature": [ + "\"EMBEDDABLE_FUNCTIONS\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/profiling/embeddables/index.ts", "deprecated": false, "trackAdoption": false, @@ -2978,8 +3185,12 @@ "type": "string", "tags": [], "label": "EMBEDDABLE_PROFILING_SEARCH_BAR", - "description": ["Profiling search bar embeddable key"], - "signature": ["\"EMBEDDABLE_PROFILING_SEARCH_BAR\""], + "description": [ + "Profiling search bar embeddable key" + ], + "signature": [ + "\"EMBEDDABLE_PROFILING_SEARCH_BAR\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/profiling/embeddables/index.ts", "deprecated": false, "trackAdoption": false, @@ -2991,8 +3202,12 @@ "type": "string", "tags": [], "label": "EMBEDDABLE_STACK_TRACES", - "description": ["Profiling threads embeddable key"], - "signature": ["\"EMBEDDABLE_STACK_TRACES\""], + "description": [ + "Profiling threads embeddable key" + ], + "signature": [ + "\"EMBEDDABLE_STACK_TRACES\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/profiling/embeddables/index.ts", "deprecated": false, "trackAdoption": false, @@ -3042,7 +3257,9 @@ "tags": [], "label": "observabilityAppId", "description": [], - "signature": ["\"observability-overview\""], + "signature": [ + "\"observability-overview\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/index.ts", "deprecated": false, "trackAdoption": false, @@ -3055,7 +3272,9 @@ "tags": [], "label": "observabilityFeatureId", "description": [], - "signature": ["\"observability\""], + "signature": [ + "\"observability\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/index.ts", "deprecated": false, "trackAdoption": false, @@ -3161,7 +3380,9 @@ "tags": [], "label": "observTourStepStorageKey", "description": [], - "signature": ["\"guidedOnboarding.observability.tourStep\""], + "signature": [ + "\"guidedOnboarding.observability.tourStep\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/components/tour/tour.tsx", "deprecated": false, "trackAdoption": false, @@ -3235,7 +3456,9 @@ "tags": [], "label": "sloFeatureId", "description": [], - "signature": ["\"slo\""], + "signature": [ + "\"slo\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/index.ts", "deprecated": false, "trackAdoption": false, @@ -3248,7 +3471,11 @@ "tags": [], "label": "TrackEvent", "description": [], - "signature": ["(options: ", "TrackMetricOptions", ") => void"], + "signature": [ + "(options: ", + "TrackMetricOptions", + ") => void" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_track_metric.tsx", "deprecated": false, "trackAdoption": false, @@ -3261,7 +3488,9 @@ "tags": [], "label": "options", "description": [], - "signature": ["TrackOptions & { metric: string; }"], + "signature": [ + "TrackOptions & { metric: string; }" + ], "path": "x-pack/plugins/observability_solution/observability_shared/public/hooks/use_track_metric.tsx", "deprecated": false, "trackAdoption": false @@ -3342,7 +3571,10 @@ "tags": [], "label": "esError", "description": [], - "signature": ["WrappedElasticsearchClientError", " | null"], + "signature": [ + "WrappedElasticsearchClientError", + " | null" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", "deprecated": false, "trackAdoption": false @@ -3354,7 +3586,9 @@ "tags": [], "label": "esRequestParams", "description": [], - "signature": ["{ [x: string]: any; }"], + "signature": [ + "{ [x: string]: any; }" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", "deprecated": false, "trackAdoption": false @@ -3386,7 +3620,9 @@ "tags": [], "label": "esResponse", "description": [], - "signature": ["any"], + "signature": [ + "any" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/utils/get_inspect_response.ts", "deprecated": false, "trackAdoption": false @@ -3464,7 +3700,9 @@ "tags": [], "label": "AGENT", "description": [], - "signature": ["\"agent\""], + "signature": [ + "\"agent\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3477,7 +3715,9 @@ "tags": [], "label": "AGENT_NAME", "description": [], - "signature": ["\"agent.name\""], + "signature": [ + "\"agent.name\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3490,7 +3730,9 @@ "tags": [], "label": "AGENT_VERSION", "description": [], - "signature": ["\"agent.version\""], + "signature": [ + "\"agent.version\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3503,7 +3745,9 @@ "tags": [], "label": "casesFeatureId", "description": [], - "signature": ["\"observabilityCases\""], + "signature": [ + "\"observabilityCases\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/index.ts", "deprecated": false, "trackAdoption": false, @@ -3516,7 +3760,9 @@ "tags": [], "label": "CLIENT_GEO", "description": [], - "signature": ["\"client.geo\""], + "signature": [ + "\"client.geo\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3529,7 +3775,9 @@ "tags": [], "label": "CLIENT_GEO_COUNTRY_ISO_CODE", "description": [], - "signature": ["\"client.geo.country_iso_code\""], + "signature": [ + "\"client.geo.country_iso_code\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3542,7 +3790,9 @@ "tags": [], "label": "CLIENT_GEO_COUNTRY_NAME", "description": [], - "signature": ["\"client.geo.country_name\""], + "signature": [ + "\"client.geo.country_name\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3555,7 +3805,9 @@ "tags": [], "label": "CLOUD", "description": [], - "signature": ["\"cloud\""], + "signature": [ + "\"cloud\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3568,7 +3820,9 @@ "tags": [], "label": "CLOUD_AVAILABILITY_ZONE", "description": [], - "signature": ["\"cloud.availability_zone\""], + "signature": [ + "\"cloud.availability_zone\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3581,7 +3835,9 @@ "tags": [], "label": "CLOUD_MACHINE_TYPE", "description": [], - "signature": ["\"cloud.machine.type\""], + "signature": [ + "\"cloud.machine.type\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3594,7 +3850,9 @@ "tags": [], "label": "CLOUD_PROVIDER", "description": [], - "signature": ["\"cloud.provider\""], + "signature": [ + "\"cloud.provider\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3607,7 +3865,9 @@ "tags": [], "label": "CLOUD_REGION", "description": [], - "signature": ["\"cloud.region\""], + "signature": [ + "\"cloud.region\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3620,7 +3880,9 @@ "tags": [], "label": "CLS_FIELD", "description": [], - "signature": ["\"transaction.experience.cls\""], + "signature": [ + "\"transaction.experience.cls\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3633,7 +3895,9 @@ "tags": [], "label": "CONTAINER_ID", "description": [], - "signature": ["\"container.id\""], + "signature": [ + "\"container.id\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3646,7 +3910,9 @@ "tags": [], "label": "DESTINATION_ADDRESS", "description": [], - "signature": ["\"destination.address\""], + "signature": [ + "\"destination.address\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3659,7 +3925,9 @@ "tags": [], "label": "ERROR_CULPRIT", "description": [], - "signature": ["\"error.culprit\""], + "signature": [ + "\"error.culprit\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3672,7 +3940,9 @@ "tags": [], "label": "ERROR_EXC_HANDLED", "description": [], - "signature": ["\"error.exception.handled\""], + "signature": [ + "\"error.exception.handled\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3685,7 +3955,9 @@ "tags": [], "label": "ERROR_EXC_MESSAGE", "description": [], - "signature": ["\"error.exception.message\""], + "signature": [ + "\"error.exception.message\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3698,7 +3970,9 @@ "tags": [], "label": "ERROR_EXC_TYPE", "description": [], - "signature": ["\"error.exception.type\""], + "signature": [ + "\"error.exception.type\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3711,7 +3985,9 @@ "tags": [], "label": "ERROR_GROUP_ID", "description": [], - "signature": ["\"error.grouping_key\""], + "signature": [ + "\"error.grouping_key\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3724,7 +4000,9 @@ "tags": [], "label": "ERROR_LOG_LEVEL", "description": [], - "signature": ["\"error.log.level\""], + "signature": [ + "\"error.log.level\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3737,7 +4015,9 @@ "tags": [], "label": "ERROR_LOG_MESSAGE", "description": [], - "signature": ["\"error.log.message\""], + "signature": [ + "\"error.log.message\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3750,7 +4030,9 @@ "tags": [], "label": "ERROR_PAGE_URL", "description": [], - "signature": ["\"error.page.url\""], + "signature": [ + "\"error.page.url\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3763,7 +4045,9 @@ "tags": [], "label": "EVENT_OUTCOME", "description": [], - "signature": ["\"event.outcome\""], + "signature": [ + "\"event.outcome\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3776,7 +4060,9 @@ "tags": [], "label": "FCP_FIELD", "description": [], - "signature": ["\"transaction.marks.agent.firstContentfulPaint\""], + "signature": [ + "\"transaction.marks.agent.firstContentfulPaint\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3789,7 +4075,9 @@ "tags": [], "label": "FID_FIELD", "description": [], - "signature": ["\"transaction.experience.fid\""], + "signature": [ + "\"transaction.experience.fid\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3802,7 +4090,9 @@ "tags": [], "label": "HOST", "description": [], - "signature": ["\"host\""], + "signature": [ + "\"host\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3815,7 +4105,9 @@ "tags": [], "label": "HOST_HOSTNAME", "description": [], - "signature": ["\"host.hostname\""], + "signature": [ + "\"host.hostname\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3828,7 +4120,9 @@ "tags": [], "label": "HOST_OS_PLATFORM", "description": [], - "signature": ["\"host.os.platform\""], + "signature": [ + "\"host.os.platform\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3841,7 +4135,9 @@ "tags": [], "label": "HTTP_REQUEST_METHOD", "description": [], - "signature": ["\"http.request.method\""], + "signature": [ + "\"http.request.method\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3854,7 +4150,9 @@ "tags": [], "label": "HTTP_RESPONSE_STATUS_CODE", "description": [], - "signature": ["\"http.response.status_code\""], + "signature": [ + "\"http.response.status_code\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3867,7 +4165,9 @@ "tags": [], "label": "KUBERNETES", "description": [], - "signature": ["\"kubernetes\""], + "signature": [ + "\"kubernetes\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3880,7 +4180,9 @@ "tags": [], "label": "LABEL_NAME", "description": [], - "signature": ["\"labels.name\""], + "signature": [ + "\"labels.name\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3893,7 +4195,9 @@ "tags": [], "label": "LCP_FIELD", "description": [], - "signature": ["\"transaction.marks.agent.largestContentfulPaint\""], + "signature": [ + "\"transaction.marks.agent.largestContentfulPaint\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3906,7 +4210,9 @@ "tags": [], "label": "LOGS_EXPLORER_FEEDBACK_LINK", "description": [], - "signature": ["\"https://ela.st/explorer-feedback\""], + "signature": [ + "\"https://ela.st/explorer-feedback\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/index.ts", "deprecated": false, "trackAdoption": false, @@ -3919,7 +4225,9 @@ "tags": [], "label": "LOGS_ONBOARDING_FEEDBACK_LINK", "description": [], - "signature": ["\"https://ela.st/logs-onboarding-feedback\""], + "signature": [ + "\"https://ela.st/logs-onboarding-feedback\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/index.ts", "deprecated": false, "trackAdoption": false, @@ -3932,7 +4240,9 @@ "tags": [], "label": "METRIC_CGROUP_MEMORY_LIMIT_BYTES", "description": [], - "signature": ["\"system.process.cgroup.memory.mem.limit.bytes\""], + "signature": [ + "\"system.process.cgroup.memory.mem.limit.bytes\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3945,7 +4255,9 @@ "tags": [], "label": "METRIC_CGROUP_MEMORY_USAGE_BYTES", "description": [], - "signature": ["\"system.process.cgroup.memory.mem.usage.bytes\""], + "signature": [ + "\"system.process.cgroup.memory.mem.usage.bytes\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3958,7 +4270,9 @@ "tags": [], "label": "METRIC_JAVA_GC_COUNT", "description": [], - "signature": ["\"jvm.gc.count\""], + "signature": [ + "\"jvm.gc.count\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3971,7 +4285,9 @@ "tags": [], "label": "METRIC_JAVA_GC_TIME", "description": [], - "signature": ["\"jvm.gc.time\""], + "signature": [ + "\"jvm.gc.time\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3984,7 +4300,9 @@ "tags": [], "label": "METRIC_JAVA_HEAP_MEMORY_COMMITTED", "description": [], - "signature": ["\"jvm.memory.heap.committed\""], + "signature": [ + "\"jvm.memory.heap.committed\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -3997,7 +4315,9 @@ "tags": [], "label": "METRIC_JAVA_HEAP_MEMORY_MAX", "description": [], - "signature": ["\"jvm.memory.heap.max\""], + "signature": [ + "\"jvm.memory.heap.max\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4010,7 +4330,9 @@ "tags": [], "label": "METRIC_JAVA_HEAP_MEMORY_USED", "description": [], - "signature": ["\"jvm.memory.heap.used\""], + "signature": [ + "\"jvm.memory.heap.used\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4023,7 +4345,9 @@ "tags": [], "label": "METRIC_JAVA_NON_HEAP_MEMORY_COMMITTED", "description": [], - "signature": ["\"jvm.memory.non_heap.committed\""], + "signature": [ + "\"jvm.memory.non_heap.committed\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4036,7 +4360,9 @@ "tags": [], "label": "METRIC_JAVA_NON_HEAP_MEMORY_MAX", "description": [], - "signature": ["\"jvm.memory.non_heap.max\""], + "signature": [ + "\"jvm.memory.non_heap.max\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4049,7 +4375,9 @@ "tags": [], "label": "METRIC_JAVA_NON_HEAP_MEMORY_USED", "description": [], - "signature": ["\"jvm.memory.non_heap.used\""], + "signature": [ + "\"jvm.memory.non_heap.used\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4062,7 +4390,9 @@ "tags": [], "label": "METRIC_JAVA_THREAD_COUNT", "description": [], - "signature": ["\"jvm.thread.count\""], + "signature": [ + "\"jvm.thread.count\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4075,7 +4405,9 @@ "tags": [], "label": "METRIC_PROCESS_CPU_PERCENT", "description": [], - "signature": ["\"system.process.cpu.total.norm.pct\""], + "signature": [ + "\"system.process.cpu.total.norm.pct\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4088,7 +4420,9 @@ "tags": [], "label": "METRIC_SYSTEM_CPU_PERCENT", "description": [], - "signature": ["\"system.cpu.total.norm.pct\""], + "signature": [ + "\"system.cpu.total.norm.pct\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4101,7 +4435,9 @@ "tags": [], "label": "METRIC_SYSTEM_CPU_USAGE", "description": [], - "signature": ["\"system.cpu.usage\""], + "signature": [ + "\"system.cpu.usage\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4114,7 +4450,9 @@ "tags": [], "label": "METRIC_SYSTEM_FREE_MEMORY", "description": [], - "signature": ["\"system.memory.actual.free\""], + "signature": [ + "\"system.memory.actual.free\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4127,7 +4465,9 @@ "tags": [], "label": "METRIC_SYSTEM_MEMORY_USAGE", "description": [], - "signature": ["\"system.memory.usage\""], + "signature": [ + "\"system.memory.usage\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4140,7 +4480,9 @@ "tags": [], "label": "METRIC_SYSTEM_TOTAL_MEMORY", "description": [], - "signature": ["\"system.memory.total\""], + "signature": [ + "\"system.memory.total\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4153,7 +4495,9 @@ "tags": [], "label": "NETWORK_TIMINGS_FIELDS", "description": [], - "signature": ["string[]"], + "signature": [ + "string[]" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/synthetics.ts", "deprecated": false, "trackAdoption": false, @@ -4166,7 +4510,9 @@ "tags": [], "label": "observabilityAppId", "description": [], - "signature": ["\"observability-overview\""], + "signature": [ + "\"observability-overview\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/index.ts", "deprecated": false, "trackAdoption": false, @@ -4179,7 +4525,9 @@ "tags": [], "label": "observabilityFeatureId", "description": [], - "signature": ["\"observability\""], + "signature": [ + "\"observability\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/index.ts", "deprecated": false, "trackAdoption": false, @@ -4192,7 +4540,9 @@ "tags": [], "label": "OBSERVER_HOSTNAME", "description": [], - "signature": ["\"observer.hostname\""], + "signature": [ + "\"observer.hostname\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4205,7 +4555,9 @@ "tags": [], "label": "OBSERVER_LISTENING", "description": [], - "signature": ["\"observer.listening\""], + "signature": [ + "\"observer.listening\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4218,7 +4570,9 @@ "tags": [], "label": "OBSERVER_VERSION_MAJOR", "description": [], - "signature": ["\"observer.version_major\""], + "signature": [ + "\"observer.version_major\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4231,7 +4585,9 @@ "tags": [], "label": "PARENT_ID", "description": [], - "signature": ["\"parent.id\""], + "signature": [ + "\"parent.id\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4244,7 +4600,9 @@ "tags": [], "label": "POD_NAME", "description": [], - "signature": ["\"kubernetes.pod.name\""], + "signature": [ + "\"kubernetes.pod.name\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4257,7 +4615,9 @@ "tags": [], "label": "PROCESSOR_EVENT", "description": [], - "signature": ["\"processor.event\""], + "signature": [ + "\"processor.event\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4270,7 +4630,9 @@ "tags": [], "label": "PROFILE_ALLOC_OBJECTS", "description": [], - "signature": ["\"profile.alloc_objects.count\""], + "signature": [ + "\"profile.alloc_objects.count\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4283,7 +4645,9 @@ "tags": [], "label": "PROFILE_ALLOC_SPACE", "description": [], - "signature": ["\"profile.alloc_space.bytes\""], + "signature": [ + "\"profile.alloc_space.bytes\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4296,7 +4660,9 @@ "tags": [], "label": "PROFILE_CPU_NS", "description": [], - "signature": ["\"profile.cpu.ns\""], + "signature": [ + "\"profile.cpu.ns\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4309,7 +4675,9 @@ "tags": [], "label": "PROFILE_DURATION", "description": [], - "signature": ["\"profile.duration\""], + "signature": [ + "\"profile.duration\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4322,7 +4690,9 @@ "tags": [], "label": "PROFILE_ID", "description": [], - "signature": ["\"profile.id\""], + "signature": [ + "\"profile.id\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4335,7 +4705,9 @@ "tags": [], "label": "PROFILE_INUSE_OBJECTS", "description": [], - "signature": ["\"profile.inuse_objects.count\""], + "signature": [ + "\"profile.inuse_objects.count\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4348,7 +4720,9 @@ "tags": [], "label": "PROFILE_INUSE_SPACE", "description": [], - "signature": ["\"profile.inuse_space.bytes\""], + "signature": [ + "\"profile.inuse_space.bytes\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4361,7 +4735,9 @@ "tags": [], "label": "PROFILE_SAMPLES_COUNT", "description": [], - "signature": ["\"profile.samples.count\""], + "signature": [ + "\"profile.samples.count\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4374,7 +4750,9 @@ "tags": [], "label": "PROFILE_STACK", "description": [], - "signature": ["\"profile.stack\""], + "signature": [ + "\"profile.stack\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4387,7 +4765,9 @@ "tags": [], "label": "PROFILE_TOP_ID", "description": [], - "signature": ["\"profile.top.id\""], + "signature": [ + "\"profile.top.id\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4400,7 +4780,9 @@ "tags": [], "label": "PROFILE_WALL_US", "description": [], - "signature": ["\"profile.wall.us\""], + "signature": [ + "\"profile.wall.us\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4413,7 +4795,9 @@ "tags": [], "label": "SERVICE", "description": [], - "signature": ["\"service\""], + "signature": [ + "\"service\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4426,7 +4810,9 @@ "tags": [], "label": "SERVICE_ENVIRONMENT", "description": [], - "signature": ["\"service.environment\""], + "signature": [ + "\"service.environment\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4439,7 +4825,9 @@ "tags": [], "label": "SERVICE_FRAMEWORK_NAME", "description": [], - "signature": ["\"service.framework.name\""], + "signature": [ + "\"service.framework.name\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4452,7 +4840,9 @@ "tags": [], "label": "SERVICE_FRAMEWORK_VERSION", "description": [], - "signature": ["\"service.framework.version\""], + "signature": [ + "\"service.framework.version\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4465,7 +4855,9 @@ "tags": [], "label": "SERVICE_LANGUAGE_NAME", "description": [], - "signature": ["\"service.language.name\""], + "signature": [ + "\"service.language.name\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4478,7 +4870,9 @@ "tags": [], "label": "SERVICE_LANGUAGE_VERSION", "description": [], - "signature": ["\"service.language.version\""], + "signature": [ + "\"service.language.version\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4491,7 +4885,9 @@ "tags": [], "label": "SERVICE_NAME", "description": [], - "signature": ["\"service.name\""], + "signature": [ + "\"service.name\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4504,7 +4900,9 @@ "tags": [], "label": "SERVICE_NODE_NAME", "description": [], - "signature": ["\"service.node.name\""], + "signature": [ + "\"service.node.name\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4517,7 +4915,9 @@ "tags": [], "label": "SERVICE_RUNTIME_NAME", "description": [], - "signature": ["\"service.runtime.name\""], + "signature": [ + "\"service.runtime.name\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4530,7 +4930,9 @@ "tags": [], "label": "SERVICE_RUNTIME_VERSION", "description": [], - "signature": ["\"service.runtime.version\""], + "signature": [ + "\"service.runtime.version\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4543,7 +4945,9 @@ "tags": [], "label": "SERVICE_VERSION", "description": [], - "signature": ["\"service.version\""], + "signature": [ + "\"service.version\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4556,7 +4960,9 @@ "tags": [], "label": "sloFeatureId", "description": [], - "signature": ["\"slo\""], + "signature": [ + "\"slo\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/index.ts", "deprecated": false, "trackAdoption": false, @@ -4569,7 +4975,9 @@ "tags": [], "label": "SPAN_ACTION", "description": [], - "signature": ["\"span.action\""], + "signature": [ + "\"span.action\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4582,7 +4990,9 @@ "tags": [], "label": "SPAN_DESTINATION_SERVICE_RESOURCE", "description": [], - "signature": ["\"span.destination.service.resource\""], + "signature": [ + "\"span.destination.service.resource\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4595,7 +5005,9 @@ "tags": [], "label": "SPAN_DESTINATION_SERVICE_RESPONSE_TIME_COUNT", "description": [], - "signature": ["\"span.destination.service.response_time.count\""], + "signature": [ + "\"span.destination.service.response_time.count\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4608,7 +5020,9 @@ "tags": [], "label": "SPAN_DESTINATION_SERVICE_RESPONSE_TIME_SUM", "description": [], - "signature": ["\"span.destination.service.response_time.sum.us\""], + "signature": [ + "\"span.destination.service.response_time.sum.us\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4621,7 +5035,9 @@ "tags": [], "label": "SPAN_DURATION", "description": [], - "signature": ["\"span.duration.us\""], + "signature": [ + "\"span.duration.us\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4634,7 +5050,9 @@ "tags": [], "label": "SPAN_ID", "description": [], - "signature": ["\"span.id\""], + "signature": [ + "\"span.id\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4647,7 +5065,9 @@ "tags": [], "label": "SPAN_NAME", "description": [], - "signature": ["\"span.name\""], + "signature": [ + "\"span.name\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4660,7 +5080,9 @@ "tags": [], "label": "SPAN_SELF_TIME_SUM", "description": [], - "signature": ["\"span.self_time.sum.us\""], + "signature": [ + "\"span.self_time.sum.us\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4673,7 +5095,9 @@ "tags": [], "label": "SPAN_SUBTYPE", "description": [], - "signature": ["\"span.subtype\""], + "signature": [ + "\"span.subtype\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4686,7 +5110,9 @@ "tags": [], "label": "SPAN_TYPE", "description": [], - "signature": ["\"span.type\""], + "signature": [ + "\"span.type\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4699,7 +5125,9 @@ "tags": [], "label": "SYNTHETICS_BLOCKED_TIMINGS", "description": [], - "signature": ["\"synthetics.payload.timings.blocked\""], + "signature": [ + "\"synthetics.payload.timings.blocked\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/synthetics.ts", "deprecated": false, "trackAdoption": false, @@ -4712,7 +5140,9 @@ "tags": [], "label": "SYNTHETICS_CONNECT_TIMINGS", "description": [], - "signature": ["\"synthetics.payload.timings.connect\""], + "signature": [ + "\"synthetics.payload.timings.connect\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/synthetics.ts", "deprecated": false, "trackAdoption": false, @@ -4725,7 +5155,9 @@ "tags": [], "label": "SYNTHETICS_DNS_TIMINGS", "description": [], - "signature": ["\"synthetics.payload.timings.dns\""], + "signature": [ + "\"synthetics.payload.timings.dns\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/synthetics.ts", "deprecated": false, "trackAdoption": false, @@ -4738,7 +5170,9 @@ "tags": [], "label": "SYNTHETICS_RECEIVE_TIMINGS", "description": [], - "signature": ["\"synthetics.payload.timings.receive\""], + "signature": [ + "\"synthetics.payload.timings.receive\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/synthetics.ts", "deprecated": false, "trackAdoption": false, @@ -4751,7 +5185,9 @@ "tags": [], "label": "SYNTHETICS_SEND_TIMINGS", "description": [], - "signature": ["\"synthetics.payload.timings.send\""], + "signature": [ + "\"synthetics.payload.timings.send\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/synthetics.ts", "deprecated": false, "trackAdoption": false, @@ -4764,7 +5200,9 @@ "tags": [], "label": "SYNTHETICS_SSL_TIMINGS", "description": [], - "signature": ["\"synthetics.payload.timings.ssl\""], + "signature": [ + "\"synthetics.payload.timings.ssl\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/synthetics.ts", "deprecated": false, "trackAdoption": false, @@ -4777,7 +5215,9 @@ "tags": [], "label": "SYNTHETICS_TOTAL_TIMINGS", "description": [], - "signature": ["\"synthetics.payload.timings.total\""], + "signature": [ + "\"synthetics.payload.timings.total\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/synthetics.ts", "deprecated": false, "trackAdoption": false, @@ -4790,7 +5230,9 @@ "tags": [], "label": "SYNTHETICS_WAIT_TIMINGS", "description": [], - "signature": ["\"synthetics.payload.timings.wait\""], + "signature": [ + "\"synthetics.payload.timings.wait\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/synthetics.ts", "deprecated": false, "trackAdoption": false, @@ -4803,7 +5245,9 @@ "tags": [], "label": "TBT_FIELD", "description": [], - "signature": ["\"transaction.experience.tbt\""], + "signature": [ + "\"transaction.experience.tbt\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4816,7 +5260,9 @@ "tags": [], "label": "TRACE_ID", "description": [], - "signature": ["\"trace.id\""], + "signature": [ + "\"trace.id\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4829,7 +5275,9 @@ "tags": [], "label": "TRANSACTION_DOM_INTERACTIVE", "description": [], - "signature": ["\"transaction.marks.agent.domInteractive\""], + "signature": [ + "\"transaction.marks.agent.domInteractive\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4842,7 +5290,9 @@ "tags": [], "label": "TRANSACTION_DURATION", "description": [], - "signature": ["\"transaction.duration.us\""], + "signature": [ + "\"transaction.duration.us\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4855,7 +5305,9 @@ "tags": [], "label": "TRANSACTION_DURATION_HISTOGRAM", "description": [], - "signature": ["\"transaction.duration.histogram\""], + "signature": [ + "\"transaction.duration.histogram\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4868,7 +5320,9 @@ "tags": [], "label": "TRANSACTION_ID", "description": [], - "signature": ["\"transaction.id\""], + "signature": [ + "\"transaction.id\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4881,7 +5335,9 @@ "tags": [], "label": "TRANSACTION_NAME", "description": [], - "signature": ["\"transaction.name\""], + "signature": [ + "\"transaction.name\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4894,7 +5350,9 @@ "tags": [], "label": "TRANSACTION_PAGE_URL", "description": [], - "signature": ["\"transaction.page.url\""], + "signature": [ + "\"transaction.page.url\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4907,7 +5365,9 @@ "tags": [], "label": "TRANSACTION_RESULT", "description": [], - "signature": ["\"transaction.result\""], + "signature": [ + "\"transaction.result\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4920,7 +5380,9 @@ "tags": [], "label": "TRANSACTION_ROOT", "description": [], - "signature": ["\"transaction.root\""], + "signature": [ + "\"transaction.root\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4933,7 +5395,9 @@ "tags": [], "label": "TRANSACTION_SAMPLED", "description": [], - "signature": ["\"transaction.sampled\""], + "signature": [ + "\"transaction.sampled\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4946,7 +5410,9 @@ "tags": [], "label": "TRANSACTION_TIME_TO_FIRST_BYTE", "description": [], - "signature": ["\"transaction.marks.agent.timeToFirstByte\""], + "signature": [ + "\"transaction.marks.agent.timeToFirstByte\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4959,7 +5425,9 @@ "tags": [], "label": "TRANSACTION_TYPE", "description": [], - "signature": ["\"transaction.type\""], + "signature": [ + "\"transaction.type\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4972,7 +5440,9 @@ "tags": [], "label": "TRANSACTION_URL", "description": [], - "signature": ["\"url.full\""], + "signature": [ + "\"url.full\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4985,7 +5455,9 @@ "tags": [], "label": "URL_FULL", "description": [], - "signature": ["\"url.full\""], + "signature": [ + "\"url.full\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -4998,7 +5470,9 @@ "tags": [], "label": "USER_AGENT_DEVICE", "description": [], - "signature": ["\"user_agent.device.name\""], + "signature": [ + "\"user_agent.device.name\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -5011,7 +5485,9 @@ "tags": [], "label": "USER_AGENT_NAME", "description": [], - "signature": ["\"user_agent.name\""], + "signature": [ + "\"user_agent.name\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -5024,7 +5500,9 @@ "tags": [], "label": "USER_AGENT_ORIGINAL", "description": [], - "signature": ["\"user_agent.original\""], + "signature": [ + "\"user_agent.original\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -5037,7 +5515,9 @@ "tags": [], "label": "USER_AGENT_OS", "description": [], - "signature": ["\"user_agent.os.name\""], + "signature": [ + "\"user_agent.os.name\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -5050,7 +5530,9 @@ "tags": [], "label": "USER_AGENT_OS_VERSION", "description": [], - "signature": ["\"user_agent.os.version\""], + "signature": [ + "\"user_agent.os.version\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -5063,7 +5545,9 @@ "tags": [], "label": "USER_AGENT_VERSION", "description": [], - "signature": ["\"user_agent.version\""], + "signature": [ + "\"user_agent.version\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -5076,7 +5560,9 @@ "tags": [], "label": "USER_ID", "description": [], - "signature": ["\"user.id\""], + "signature": [ + "\"user.id\"" + ], "path": "x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts", "deprecated": false, "trackAdoption": false, @@ -5085,4 +5571,4 @@ ], "objects": [] } -} +} \ No newline at end of file diff --git a/api_docs/observability_shared.mdx b/api_docs/observability_shared.mdx index dde9cad6a5fe8..309abeec90d5a 100644 --- a/api_docs/observability_shared.mdx +++ b/api_docs/observability_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityShared title: "observabilityShared" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityShared plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityShared'] --- import observabilitySharedObj from './observability_shared.devdocs.json'; diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index 5317d2f9c2ea0..ec35c4caf6b05 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery'] --- import osqueryObj from './osquery.devdocs.json'; diff --git a/api_docs/painless_lab.mdx b/api_docs/painless_lab.mdx index 50c25c89d0c39..af913f61b5375 100644 --- a/api_docs/painless_lab.mdx +++ b/api_docs/painless_lab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/painlessLab title: "painlessLab" image: https://source.unsplash.com/400x175/?github description: API docs for the painlessLab plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'painlessLab'] --- import painlessLabObj from './painless_lab.devdocs.json'; diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx index 8f023b2fc32bf..51924bb9dfe43 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -21,7 +21,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 45264 | 232 | 34206 | 1754 | +| 45352 | 232 | 34289 | 1756 | ## Plugin Directory @@ -136,7 +136,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 2 | 0 | 2 | 0 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 15 | 3 | 13 | 1 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 9 | 0 | 9 | 0 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 42 | 0 | 42 | 3 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 49 | 0 | 48 | 5 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 17 | 0 | 17 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 3 | 0 | 3 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 1 | @@ -287,7 +287,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 5 | 0 | 0 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 20 | 0 | 7 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 6 | 0 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 192 | 0 | 93 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 200 | 0 | 97 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 3 | 0 | 3 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 8 | 0 | 8 | 0 | @@ -416,8 +416,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 11 | 1 | 11 | 3 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 8 | 0 | 8 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 30 | 0 | 6 | 0 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 37 | 1 | 19 | 0 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 18 | 1 | 17 | 3 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 40 | 1 | 22 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 20 | 1 | 19 | 3 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 6 | 0 | 6 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 155 | 0 | 144 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 8 | 0 | 8 | 2 | @@ -588,7 +588,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/security-detections-response](https://github.com/orgs/elastic/teams/security-detections-response) | - | 122 | 0 | 119 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 0 | | | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 76 | 0 | 76 | 0 | -| | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 3090 | 0 | 3090 | 0 | +| | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 3149 | 0 | 3149 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 18 | 1 | 17 | 1 | | | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 25 | 0 | 25 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 20 | 0 | 18 | 1 | @@ -613,7 +613,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/security-detection-engine](https://github.com/orgs/elastic/teams/security-detection-engine) | - | 28 | 0 | 21 | 0 | | | [@elastic/security-detection-engine](https://github.com/orgs/elastic/teams/security-detection-engine) | - | 69 | 0 | 65 | 0 | | | [@elastic/security-detection-engine](https://github.com/orgs/elastic/teams/security-detection-engine) | - | 35 | 0 | 23 | 0 | -| | [@elastic/security-detection-engine](https://github.com/orgs/elastic/teams/security-detection-engine) | - | 62 | 0 | 49 | 0 | +| | [@elastic/security-detection-engine](https://github.com/orgs/elastic/teams/security-detection-engine) | - | 71 | 0 | 58 | 0 | | | [@elastic/security-detection-engine](https://github.com/orgs/elastic/teams/security-detection-engine) | - | 207 | 0 | 160 | 0 | | | [@elastic/security-detection-engine](https://github.com/orgs/elastic/teams/security-detection-engine) | - | 28 | 0 | 25 | 0 | | | [@elastic/security-detection-engine](https://github.com/orgs/elastic/teams/security-detection-engine) | - | 120 | 0 | 116 | 0 | diff --git a/api_docs/presentation_panel.mdx b/api_docs/presentation_panel.mdx index 28457c595e94b..9089c79ae7e50 100644 --- a/api_docs/presentation_panel.mdx +++ b/api_docs/presentation_panel.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationPanel title: "presentationPanel" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationPanel plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationPanel'] --- import presentationPanelObj from './presentation_panel.devdocs.json'; diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index 937a9824a2745..7ce1a9050283d 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil'] --- import presentationUtilObj from './presentation_util.devdocs.json'; diff --git a/api_docs/profiling.mdx b/api_docs/profiling.mdx index c1aba848616db..f5dc9469426ce 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profiling'] --- import profilingObj from './profiling.devdocs.json'; diff --git a/api_docs/profiling_data_access.mdx b/api_docs/profiling_data_access.mdx index 7856006c363bb..abc9fa22b302c 100644 --- a/api_docs/profiling_data_access.mdx +++ b/api_docs/profiling_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profilingDataAccess title: "profilingDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the profilingDataAccess plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profilingDataAccess'] --- import profilingDataAccessObj from './profiling_data_access.devdocs.json'; diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx index 74d074556ac33..ef61e9667baf9 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'remoteClusters'] --- import remoteClustersObj from './remote_clusters.devdocs.json'; diff --git a/api_docs/reporting.mdx b/api_docs/reporting.mdx index 8522d61bf0b2d..1b16bd1ea8a0a 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'reporting'] --- import reportingObj from './reporting.devdocs.json'; diff --git a/api_docs/rollup.mdx b/api_docs/rollup.mdx index 7be3004edbce3..f5cfed5c9471a 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index 0c776db1e36d0..8552a3d47f81d 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry'] --- import ruleRegistryObj from './rule_registry.devdocs.json'; diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx index 7d6d9b9ea381b..f174c47251b14 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields'] --- import runtimeFieldsObj from './runtime_fields.devdocs.json'; diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx index 485d72d0aa7ba..4d6756905b313 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects'] --- import savedObjectsObj from './saved_objects.devdocs.json'; diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx index 52b81430d38a4..3ec80b5a83159 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder'] --- import savedObjectsFinderObj from './saved_objects_finder.devdocs.json'; diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx index a4c10e6afa6a2..3ab4647a318a5 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsManagement'] --- import savedObjectsManagementObj from './saved_objects_management.devdocs.json'; diff --git a/api_docs/saved_objects_tagging.mdx b/api_docs/saved_objects_tagging.mdx index 5ab64f67d6140..69a409e67cbe8 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTagging'] --- import savedObjectsTaggingObj from './saved_objects_tagging.devdocs.json'; diff --git a/api_docs/saved_objects_tagging_oss.mdx b/api_docs/saved_objects_tagging_oss.mdx index 6d16b61bdb7be..e54d5c9f4bd6d 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss'] --- import savedObjectsTaggingOssObj from './saved_objects_tagging_oss.devdocs.json'; diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx index 63f037dc1b1b3..87f8a7c60d035 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedSearch'] --- import savedSearchObj from './saved_search.devdocs.json'; diff --git a/api_docs/screenshot_mode.mdx b/api_docs/screenshot_mode.mdx index 5c305d83c4824..2884d8dcb6125 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotMode'] --- import screenshotModeObj from './screenshot_mode.devdocs.json'; diff --git a/api_docs/screenshotting.mdx b/api_docs/screenshotting.mdx index 9c11eaff31568..3f2458df02d9c 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; diff --git a/api_docs/security.mdx b/api_docs/security.mdx index 778898f0925fe..6a3e334d06ff1 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] --- import securityObj from './security.devdocs.json'; diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx index b5869b3afaa22..59499f1ec5c78 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution'] --- import securitySolutionObj from './security_solution.devdocs.json'; diff --git a/api_docs/security_solution_ess.mdx b/api_docs/security_solution_ess.mdx index ca9bd79fa0d10..0f165d94731f5 100644 --- a/api_docs/security_solution_ess.mdx +++ b/api_docs/security_solution_ess.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionEss title: "securitySolutionEss" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolutionEss plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionEss'] --- import securitySolutionEssObj from './security_solution_ess.devdocs.json'; diff --git a/api_docs/security_solution_serverless.mdx b/api_docs/security_solution_serverless.mdx index 177e4a6827a97..044aab37eec47 100644 --- a/api_docs/security_solution_serverless.mdx +++ b/api_docs/security_solution_serverless.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionServerless title: "securitySolutionServerless" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolutionServerless plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionServerless'] --- import securitySolutionServerlessObj from './security_solution_serverless.devdocs.json'; diff --git a/api_docs/serverless.mdx b/api_docs/serverless.mdx index afe87c04624d0..dd3b150e8359a 100644 --- a/api_docs/serverless.mdx +++ b/api_docs/serverless.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverless title: "serverless" image: https://source.unsplash.com/400x175/?github description: API docs for the serverless plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverless'] --- import serverlessObj from './serverless.devdocs.json'; diff --git a/api_docs/serverless_observability.mdx b/api_docs/serverless_observability.mdx index 8cdd04e29c597..136ee44176994 100644 --- a/api_docs/serverless_observability.mdx +++ b/api_docs/serverless_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessObservability title: "serverlessObservability" image: https://source.unsplash.com/400x175/?github description: API docs for the serverlessObservability plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessObservability'] --- import serverlessObservabilityObj from './serverless_observability.devdocs.json'; diff --git a/api_docs/serverless_search.mdx b/api_docs/serverless_search.mdx index 7b88b594dd87b..63df854bf4534 100644 --- a/api_docs/serverless_search.mdx +++ b/api_docs/serverless_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessSearch title: "serverlessSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the serverlessSearch plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessSearch'] --- import serverlessSearchObj from './serverless_search.devdocs.json'; diff --git a/api_docs/session_view.mdx b/api_docs/session_view.mdx index d21f4554b567d..dd6c66299aea3 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'sessionView'] --- import sessionViewObj from './session_view.devdocs.json'; diff --git a/api_docs/share.mdx b/api_docs/share.mdx index 8c1d1bce8a04d..5d24ea6ea39a4 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share'] --- import shareObj from './share.devdocs.json'; diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx index 5a4fa449b4dfa..73a8dbdadaf32 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'snapshotRestore'] --- import snapshotRestoreObj from './snapshot_restore.devdocs.json'; diff --git a/api_docs/spaces.mdx b/api_docs/spaces.mdx index ee0d0418cdd52..2d781efe5c1eb 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'spaces'] --- import spacesObj from './spaces.devdocs.json'; diff --git a/api_docs/stack_alerts.mdx b/api_docs/stack_alerts.mdx index f5c3e71e03fd7..c6a5bc5c4c3e1 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackAlerts'] --- import stackAlertsObj from './stack_alerts.devdocs.json'; diff --git a/api_docs/stack_connectors.mdx b/api_docs/stack_connectors.mdx index 8865f532c805c..d6c5f21fc542f 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackConnectors'] --- import stackConnectorsObj from './stack_connectors.devdocs.json'; diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx index 6e4123240f40f..25ec41a228e59 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'taskManager'] --- import taskManagerObj from './task_manager.devdocs.json'; diff --git a/api_docs/telemetry.mdx b/api_docs/telemetry.mdx index 0a117a998020a..647ac50b3db96 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetry'] --- import telemetryObj from './telemetry.devdocs.json'; diff --git a/api_docs/telemetry_collection_manager.mdx b/api_docs/telemetry_collection_manager.mdx index 2390c2b16dcb0..3768254fcc1fd 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionManager'] --- import telemetryCollectionManagerObj from './telemetry_collection_manager.devdocs.json'; diff --git a/api_docs/telemetry_collection_xpack.mdx b/api_docs/telemetry_collection_xpack.mdx index 14c7d5cf74ce3..6ad841768666c 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionXpack'] --- import telemetryCollectionXpackObj from './telemetry_collection_xpack.devdocs.json'; diff --git a/api_docs/telemetry_management_section.mdx b/api_docs/telemetry_management_section.mdx index a3082359bb17b..ff9ededd56031 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; diff --git a/api_docs/text_based_languages.mdx b/api_docs/text_based_languages.mdx index c06633f5569f3..6e5f6c6e39921 100644 --- a/api_docs/text_based_languages.mdx +++ b/api_docs/text_based_languages.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/textBasedLanguages title: "textBasedLanguages" image: https://source.unsplash.com/400x175/?github description: API docs for the textBasedLanguages plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'textBasedLanguages'] --- import textBasedLanguagesObj from './text_based_languages.devdocs.json'; diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index ef99276243d26..01fbcb17cdc6e 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence'] --- import threatIntelligenceObj from './threat_intelligence.devdocs.json'; diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx index f2d455038fe91..1bcf92ae0e4a9 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'timelines'] --- import timelinesObj from './timelines.devdocs.json'; diff --git a/api_docs/transform.mdx b/api_docs/transform.mdx index 59afd4b2f00f3..53afc8bb3e501 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index 47aaaa94da789..373359312d1db 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index a1810e640bf9d..2175d351dc9f8 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActions'] --- import uiActionsObj from './ui_actions.devdocs.json'; diff --git a/api_docs/ui_actions_enhanced.mdx b/api_docs/ui_actions_enhanced.mdx index d1d36afc151cd..e3da085bff954 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced'] --- import uiActionsEnhancedObj from './ui_actions_enhanced.devdocs.json'; diff --git a/api_docs/unified_doc_viewer.mdx b/api_docs/unified_doc_viewer.mdx index 14e8322cf61e1..9944f5c010e21 100644 --- a/api_docs/unified_doc_viewer.mdx +++ b/api_docs/unified_doc_viewer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedDocViewer title: "unifiedDocViewer" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedDocViewer plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedDocViewer'] --- import unifiedDocViewerObj from './unified_doc_viewer.devdocs.json'; diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx index a435ef3b10971..00c4d0e9be227 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram'] --- import unifiedHistogramObj from './unified_histogram.devdocs.json'; diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index dd5c057c72d9f..8a4d55e4b12b6 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch'] --- import unifiedSearchObj from './unified_search.devdocs.json'; diff --git a/api_docs/unified_search_autocomplete.mdx b/api_docs/unified_search_autocomplete.mdx index 3b4837039100d..3a32288270317 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete'] --- import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json'; diff --git a/api_docs/uptime.mdx b/api_docs/uptime.mdx index 9aa220e61e7e8..030c4cafc59e6 100644 --- a/api_docs/uptime.mdx +++ b/api_docs/uptime.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uptime title: "uptime" image: https://source.unsplash.com/400x175/?github description: API docs for the uptime plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uptime'] --- import uptimeObj from './uptime.devdocs.json'; diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx index 7443c696cc20b..39b4dcb0c59f0 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding'] --- import urlForwardingObj from './url_forwarding.devdocs.json'; diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx index ea789ae7120ca..24f1dd5031366 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'usageCollection'] --- import usageCollectionObj from './usage_collection.devdocs.json'; diff --git a/api_docs/ux.mdx b/api_docs/ux.mdx index 4843e1913406f..7ca41918f8a45 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ux'] --- import uxObj from './ux.devdocs.json'; diff --git a/api_docs/vis_default_editor.mdx b/api_docs/vis_default_editor.mdx index 8fad9762925fa..fb54c012de0b8 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visDefaultEditor'] --- import visDefaultEditorObj from './vis_default_editor.devdocs.json'; diff --git a/api_docs/vis_type_gauge.mdx b/api_docs/vis_type_gauge.mdx index 4211bce136452..622a82b29b7e6 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeGauge'] --- import visTypeGaugeObj from './vis_type_gauge.devdocs.json'; diff --git a/api_docs/vis_type_heatmap.mdx b/api_docs/vis_type_heatmap.mdx index 0b19454fd123f..6c81ceac69115 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeHeatmap'] --- import visTypeHeatmapObj from './vis_type_heatmap.devdocs.json'; diff --git a/api_docs/vis_type_pie.mdx b/api_docs/vis_type_pie.mdx index 3a50ff7873ad2..636fb23044f43 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypePie'] --- import visTypePieObj from './vis_type_pie.devdocs.json'; diff --git a/api_docs/vis_type_table.mdx b/api_docs/vis_type_table.mdx index 25f6d0e22bb34..a65350736c38e 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTable'] --- import visTypeTableObj from './vis_type_table.devdocs.json'; diff --git a/api_docs/vis_type_timelion.mdx b/api_docs/vis_type_timelion.mdx index c9bedc60130bd..6681ccb2c8a76 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimelion'] --- import visTypeTimelionObj from './vis_type_timelion.devdocs.json'; diff --git a/api_docs/vis_type_timeseries.mdx b/api_docs/vis_type_timeseries.mdx index 1833f2148c307..2561d0984c592 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimeseries'] --- import visTypeTimeseriesObj from './vis_type_timeseries.devdocs.json'; diff --git a/api_docs/vis_type_vega.mdx b/api_docs/vis_type_vega.mdx index 01dd997255ddb..d8ed177bf1a55 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVega'] --- import visTypeVegaObj from './vis_type_vega.devdocs.json'; diff --git a/api_docs/vis_type_vislib.mdx b/api_docs/vis_type_vislib.mdx index 376bfd191dc5d..0a95379e6fcd8 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVislib'] --- import visTypeVislibObj from './vis_type_vislib.devdocs.json'; diff --git a/api_docs/vis_type_xy.mdx b/api_docs/vis_type_xy.mdx index 9b67b3ff5ef98..4b0ce3f857b66 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy'] --- import visTypeXyObj from './vis_type_xy.devdocs.json'; diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index 2fb1b48b7e938..d667586e12294 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2024-03-05 +date: 2024-03-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; diff --git a/docs/setup/access.asciidoc b/docs/setup/access.asciidoc index 631fa22d711dd..f0bb75621c040 100644 --- a/docs/setup/access.asciidoc +++ b/docs/setup/access.asciidoc @@ -63,3 +63,5 @@ For example: * When {kib} is unable to connect to a healthy {es} cluster, errors like `master_not_discovered_exception` or `unable to revive connection` or `license is not available` errors appear. * When one or more {kib}-backing indices are unhealthy, the `index_not_green_timeout` error appears. + +For more information, refer to our https://www.elastic.co/blog/troubleshooting-kibana-health[walkthrough on troubleshooting Kibana Health]. diff --git a/package.json b/package.json index 0dfe190744415..7892acb575498 100644 --- a/package.json +++ b/package.json @@ -905,7 +905,7 @@ "adm-zip": "^0.5.9", "ajv": "^8.12.0", "ansi-regex": "^6.0.1", - "antlr4ts": "^0.5.0-alpha.3", + "antlr4": "^4.13.1-patch-1", "archiver": "^5.3.1", "async": "^3.2.3", "aws4": "^1.12.0", @@ -1512,7 +1512,6 @@ "@yarnpkg/lockfile": "^1.1.0", "abab": "^2.0.4", "aggregate-error": "^3.1.0", - "antlr4ts-cli": "^0.5.0-alpha.3", "apidoc-markdown": "^7.3.0", "argsplit": "^1.0.5", "autoprefixer": "^10.4.7", diff --git a/packages/core/chrome/core-chrome-browser-internal/src/chrome_service.tsx b/packages/core/chrome/core-chrome-browser-internal/src/chrome_service.tsx index 5b35a58e39416..e00afdf7ee833 100644 --- a/packages/core/chrome/core-chrome-browser-internal/src/chrome_service.tsx +++ b/packages/core/chrome/core-chrome-browser-internal/src/chrome_service.tsx @@ -212,6 +212,10 @@ export class ChromeService { return `kbnVersion-${formattedVersionClass}`; }; + const setChromeStyle = (style: ChromeStyle) => { + chromeStyle$.next(style); + }; + const headerBanner$ = new BehaviorSubject(undefined); const bodyClasses$ = combineLatest([ headerBanner$, @@ -238,6 +242,7 @@ export class ChromeService { http, chromeBreadcrumbs$: breadcrumbs$, logger: this.logger, + setChromeStyle, }); const recentlyAccessed = await this.recentlyAccessed.start({ http }); const docTitle = this.docTitle.start(); @@ -259,10 +264,6 @@ export class ChromeService { const getIsNavDrawerLocked$ = isNavDrawerLocked$.pipe(takeUntil(this.stop$)); - const setChromeStyle = (style: ChromeStyle) => { - chromeStyle$.next(style); - }; - const validateChromeStyle = () => { const chromeStyle = chromeStyle$.getValue(); if (chromeStyle !== 'project') { @@ -358,8 +359,11 @@ export class ChromeService { } const getHeaderComponent = () => { + const defaultChromeStyle = chromeStyle$.getValue(); + const HeaderComponent = () => { const isVisible = useObservable(this.isVisible$); + const chromeStyle = useObservable(chromeStyle$, defaultChromeStyle); if (!isVisible) { return ( @@ -371,7 +375,7 @@ export class ChromeService { } // render header - if (chromeStyle$.getValue() === 'project') { + if (chromeStyle === 'project') { const projectNavigationComponent$ = projectNavigation.getProjectSideNavComponent$(); const projectBreadcrumbs$ = projectNavigation .getProjectBreadcrumbs$() @@ -547,6 +551,8 @@ export class ChromeService { setSideNavComponent: setProjectSideNavComponent, setBreadcrumbs: setProjectBreadcrumbs, getActiveNavigationNodes$: () => projectNavigation.getActiveNodes$(), + updateSolutionNavigations: projectNavigation.updateSolutionNavigations, + changeActiveSolutionNavigation: projectNavigation.changeActiveSolutionNavigation, }, }; } diff --git a/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/project_navigation_service.test.ts b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/project_navigation_service.test.ts index 633c15ca5fd57..ffb8a87b06c5f 100644 --- a/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/project_navigation_service.test.ts +++ b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/project_navigation_service.test.ts @@ -19,6 +19,7 @@ import type { ChromeProjectNavigationNode, NavigationTreeDefinition, GroupDefinition, + SolutionNavigationDefinition, } from '@kbn/core-chrome-browser'; import { ProjectNavigationService } from './project_navigation_service'; @@ -51,7 +52,12 @@ const logger = loggerMock.create(); const setup = ({ locationPathName = '/', navLinkIds, -}: { locationPathName?: string; navLinkIds?: Readonly } = {}) => { + setChromeStyle = jest.fn(), +}: { + locationPathName?: string; + navLinkIds?: Readonly; + setChromeStyle?: () => void; +} = {}) => { const history = createMemoryHistory(); history.replace(locationPathName); @@ -68,6 +74,7 @@ const setup = ({ http: httpServiceMock.createStartContract(), chromeBreadcrumbs$, logger, + setChromeStyle, }); return { projectNavigation, history, chromeBreadcrumbs$ }; @@ -868,3 +875,146 @@ describe('getActiveNodes$()', () => { ]); }); }); + +describe('solution navigations', () => { + const solution1: SolutionNavigationDefinition = { + id: 'solution1', + title: 'Solution 1', + icon: 'logoSolution1', + homePage: 'discover', + }; + + const solution2: SolutionNavigationDefinition = { + id: 'solution2', + title: 'Solution 2', + icon: 'logoSolution2', + homePage: 'discover', + sideNavComponentGetter: () => () => null, + }; + + const solution3: SolutionNavigationDefinition = { + id: 'solution3', + title: 'Solution 3', + icon: 'logoSolution3', + homePage: 'discover', + }; + + const localStorageGetItem = jest.fn(); + const originalLocalStorage = window.localStorage; + + beforeAll(() => { + Object.defineProperty(window, 'localStorage', { + value: { + getItem: localStorageGetItem, + }, + writable: true, + }); + }); + + afterAll(() => { + Object.defineProperty(window, 'localStorage', { + value: originalLocalStorage, + writable: true, + }); + }); + + it('should update the solution navigation definition', async () => { + const { projectNavigation } = setup(); + + { + const solutionNavs = await lastValueFrom( + projectNavigation.getSolutionsNavDefinitions$().pipe(take(1)) + ); + expect(solutionNavs).toEqual({}); + } + + { + projectNavigation.updateSolutionNavigations({ 1: solution1, 2: solution2 }); + + const solutionNavs = await lastValueFrom( + projectNavigation.getSolutionsNavDefinitions$().pipe(take(1)) + ); + expect(solutionNavs).toEqual({ 1: solution1, 2: solution2 }); + } + + { + // Test partial update + projectNavigation.updateSolutionNavigations({ 3: solution3 }, false); + const solutionNavs = await lastValueFrom( + projectNavigation.getSolutionsNavDefinitions$().pipe(take(1)) + ); + expect(solutionNavs).toEqual({ 1: solution1, 2: solution2, 3: solution3 }); + } + + { + // Test full replacement + projectNavigation.updateSolutionNavigations({ 4: solution3 }, true); + const solutionNavs = await lastValueFrom( + projectNavigation.getSolutionsNavDefinitions$().pipe(take(1)) + ); + expect(solutionNavs).toEqual({ 4: solution3 }); + } + }); + + it('should return the active solution navigation', async () => { + const { projectNavigation } = setup(); + + { + const activeSolution = await lastValueFrom( + projectNavigation.getActiveSolutionNavDefinition$().pipe(take(1)) + ); + expect(activeSolution).toBeNull(); + } + + projectNavigation.changeActiveSolutionNavigation('2'); // Set **before** the navs are registered + projectNavigation.updateSolutionNavigations({ 1: solution1, 2: solution2 }); + + { + const activeSolution = await lastValueFrom( + projectNavigation.getActiveSolutionNavDefinition$().pipe(take(1)) + ); + // sideNavComponentGetter should not be exposed to consumers + expect('sideNavComponentGetter' in activeSolution!).toBe(false); + const { sideNavComponentGetter, ...rest } = solution2; + expect(activeSolution).toEqual(rest); + } + + projectNavigation.changeActiveSolutionNavigation('1'); // Set **after** the navs are registered + + { + const activeSolution = await lastValueFrom( + projectNavigation.getActiveSolutionNavDefinition$().pipe(take(1)) + ); + expect(activeSolution).toEqual(solution1); + } + }); + + it('should throw if the active solution navigation is not registered', async () => { + const { projectNavigation } = setup(); + + projectNavigation.updateSolutionNavigations({ 1: solution1, 2: solution2 }); + projectNavigation.changeActiveSolutionNavigation('3'); + + expect(() => { + return lastValueFrom(projectNavigation.getActiveSolutionNavDefinition$().pipe(take(1))); + }).rejects.toThrowErrorMatchingInlineSnapshot( + `"Solution navigation definition with id \\"3\\" does not exist."` + ); + }); + + it('should set the Chrome style when the active solution navigation changes', async () => { + const setChromeStyle = jest.fn(); + const { projectNavigation } = setup({ setChromeStyle }); + + expect(setChromeStyle).not.toHaveBeenCalled(); + + projectNavigation.updateSolutionNavigations({ 1: solution1, 2: solution2 }); + expect(setChromeStyle).toHaveBeenCalledWith('classic'); // No active solution yet, we are still on classic Kibana + + projectNavigation.changeActiveSolutionNavigation('2'); + expect(setChromeStyle).toHaveBeenCalledWith('project'); // We have an active solution nav, we should switch to project style + + projectNavigation.changeActiveSolutionNavigation(null); + expect(setChromeStyle).toHaveBeenCalledWith('classic'); // No active solution, we should switch back to classic Kibana + }); +}); diff --git a/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/project_navigation_service.ts b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/project_navigation_service.ts index 6d55f1b9ea40e..b25df903d7ee4 100644 --- a/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/project_navigation_service.ts +++ b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/project_navigation_service.ts @@ -15,6 +15,8 @@ import type { ChromeSetProjectBreadcrumbsParams, ChromeProjectNavigationNode, NavigationTreeDefinition, + SolutionNavigationDefinitions, + ChromeStyle, } from '@kbn/core-chrome-browser'; import type { InternalHttpStart } from '@kbn/core-http-browser-internal'; import { @@ -37,7 +39,7 @@ import { ChromeNavLink, CloudURLs, NavigationTreeDefinitionUI, -} from '@kbn/core-chrome-browser/src'; +} from '@kbn/core-chrome-browser'; import type { Logger } from '@kbn/logging'; import { findActiveNodes, flattenNav, parseNavigationTree, stripQueryParams } from './utils'; @@ -50,6 +52,7 @@ interface StartDeps { http: InternalHttpStart; chromeBreadcrumbs$: Observable; logger: Logger; + setChromeStyle: (style: ChromeStyle) => void; } export class ProjectNavigationService { @@ -75,36 +78,30 @@ export class ProjectNavigationService { params: ChromeSetProjectBreadcrumbsParams; }>({ breadcrumbs: [], params: { absolute: false } }); private readonly stop$ = new ReplaySubject(1); + private readonly solutionNavDefinitions$ = new BehaviorSubject({}); + private readonly activeSolutionNavDefinitionId$ = new BehaviorSubject(null); private application?: InternalApplicationStart; private http?: InternalHttpStart; private unlistenHistory?: () => void; + private setChromeStyle: StartDeps['setChromeStyle'] = () => {}; - public start({ application, navLinksService, http, chromeBreadcrumbs$, logger }: StartDeps) { + public start({ + application, + navLinksService, + http, + chromeBreadcrumbs$, + logger, + setChromeStyle, + }: StartDeps) { this.application = application; this.http = http; this.logger = logger; this.onHistoryLocationChange(application.history.location); this.unlistenHistory = application.history.listen(this.onHistoryLocationChange.bind(this)); + this.setChromeStyle = setChromeStyle; - this.activeNodes$ - .pipe( - takeUntil(this.stop$), - // skip while the project navigation is not set - skipWhile(() => !this.navigationTree$.getValue()), - // only reset when the active breadcrumb path changes, use ids to get more stable reference - distinctUntilChanged((prevNodes, nextNodes) => - deepEqual( - prevNodes?.[0]?.map((node) => node.id), - nextNodes?.[0]?.map((node) => node.id) - ) - ), - // skip the initial state, we only want to reset the breadcrumbs when the active nodes change - skip(1) - ) - .subscribe(() => { - // reset the breadcrumbs when the active nodes change - this.projectBreadcrumbs$.next({ breadcrumbs: [], params: { absolute: false } }); - }); + this.handleActiveNodesChange(); + this.handleSolutionNavDefinitionsChange(); return { setProjectHome: (homeHref: string) => { @@ -138,9 +135,7 @@ export class ProjectNavigationService { getActiveNodes$: () => { return this.activeNodes$.pipe(takeUntil(this.stop$)); }, - setSideNavComponent: (component: SideNavComponent | null) => { - this.customProjectSideNavComponent$.next({ current: component }); - }, + setSideNavComponent: this.setSideNavComponent.bind(this), getProjectSideNavComponent$: () => { return this.customProjectSideNavComponent$.asObservable(); }, @@ -183,6 +178,14 @@ export class ProjectNavigationService { ) ); }, + /** In stateful Kibana, get the registered solution navigations */ + getSolutionsNavDefinitions$: this.getSolutionsNavDefinitions$.bind(this), + /** In stateful Kibana, update the registered solution navigations */ + updateSolutionNavigations: this.updateSolutionNavigations.bind(this), + /** In stateful Kibana, change the active solution navigation */ + changeActiveSolutionNavigation: this.changeActiveSolutionNavigation.bind(this), + /** In stateful Kibana, get the active solution navigation definition */ + getActiveSolutionNavDefinition$: this.getActiveSolutionNavDefinition$.bind(this), }; } @@ -267,6 +270,106 @@ export class ProjectNavigationService { this.setActiveProjectNavigationNodes(location); } + private handleActiveNodesChange() { + this.activeNodes$ + .pipe( + takeUntil(this.stop$), + // skip while the project navigation is not set + skipWhile(() => !this.navigationTree$.getValue()), + // only reset when the active breadcrumb path changes, use ids to get more stable reference + distinctUntilChanged((prevNodes, nextNodes) => + deepEqual( + prevNodes?.[0]?.map((node) => node.id), + nextNodes?.[0]?.map((node) => node.id) + ) + ), + // skip the initial state, we only want to reset the breadcrumbs when the active nodes change + skip(1) + ) + .subscribe(() => { + // reset the breadcrumbs when the active nodes change + this.projectBreadcrumbs$.next({ breadcrumbs: [], params: { absolute: false } }); + }); + } + + private handleSolutionNavDefinitionsChange() { + combineLatest([this.solutionNavDefinitions$, this.activeSolutionNavDefinitionId$]) + .pipe(takeUntil(this.stop$)) + .subscribe(this.onSolutionNavDefinitionsChange.bind(this)); + } + + private setSideNavComponent(component: SideNavComponent | null) { + this.customProjectSideNavComponent$.next({ current: component }); + } + + private changeActiveSolutionNavigation(id: string | null, { onlyIfNotSet = false } = {}) { + if (onlyIfNotSet && this.activeSolutionNavDefinitionId$.getValue() !== null) { + return; + } + this.activeSolutionNavDefinitionId$.next(id); + } + + private getSolutionsNavDefinitions$() { + return this.solutionNavDefinitions$.asObservable(); + } + + private getActiveSolutionNavDefinition$() { + return combineLatest([this.solutionNavDefinitions$, this.activeSolutionNavDefinitionId$]).pipe( + takeUntil(this.stop$), + map(([definitions, id]) => { + if (id === null) return null; + if (Object.keys(definitions).length === 0) return null; + if (!definitions[id]) { + throw new Error(`Solution navigation definition with id "${id}" does not exist.`); + } + // We strip out the sideNavComponentGetter from the definition as it should only be used internally + const { sideNavComponentGetter, ...definition } = definitions[id]; + return definition; + }) + ); + } + + private updateSolutionNavigations( + solutionNavs: SolutionNavigationDefinitions, + replace: boolean = false + ) { + if (replace) { + this.solutionNavDefinitions$.next(solutionNavs); + } else { + this.solutionNavDefinitions$.next({ + ...this.solutionNavDefinitions$.getValue(), + ...solutionNavs, + }); + } + } + + private onSolutionNavDefinitionsChange([definitions, id]: [ + SolutionNavigationDefinitions, + string | null + ]) { + // We don't want to change to "classic" if `id` is `null` when we haven't received + // any definitions yet. Serverless Kibana could be impacted by this. + // When we do have definitions, then passing `null` does mean we should change to "classic". + if (Object.keys(definitions).length === 0) return; + + if (id === null) { + this.setChromeStyle('classic'); + this.navigationTree$.next(undefined); + } else { + const definition = definitions[id]; + if (!definition) { + throw new Error(`Solution navigation definition with id "${id}" does not exist.`); + } + + this.setChromeStyle('project'); + const { sideNavComponentGetter } = definition; + + if (sideNavComponentGetter) { + this.setSideNavComponent(sideNavComponentGetter()); + } + } + } + public stop() { this.stop$.next(); this.unlistenHistory?.(); diff --git a/packages/core/chrome/core-chrome-browser-internal/src/types.ts b/packages/core/chrome/core-chrome-browser-internal/src/types.ts index 72f33a0faba73..f1947e05c5301 100644 --- a/packages/core/chrome/core-chrome-browser-internal/src/types.ts +++ b/packages/core/chrome/core-chrome-browser-internal/src/types.ts @@ -16,6 +16,7 @@ import type { NavigationTreeDefinition, NavigationTreeDefinitionUI, CloudURLs, + SolutionNavigationDefinitions, } from '@kbn/core-chrome-browser'; import type { Observable } from 'rxjs'; @@ -102,5 +103,22 @@ export interface InternalChromeStart extends ChromeStart { breadcrumbs: ChromeProjectBreadcrumb[] | ChromeProjectBreadcrumb, params?: Partial ): void; + + /** + * Update the solution navigation definitions. + * + * @param solutionNavs The solution navigation definitions to update. + * @param replace Flag to indicate if the previous solution navigation definitions should be replaced. + * If `false`, the new solution navigation definitions will be merged with the existing ones. + */ + updateSolutionNavigations(solutionNavs: SolutionNavigationDefinitions, replace?: boolean): void; + + /** + * Change the active solution navigation. + * + * @param id The id of the active solution navigation. If `null` is provided, the solution navigation + * will be replaced with the legacy Kibana navigation. + */ + changeActiveSolutionNavigation(id: string | null, options?: { onlyIfNotSet?: boolean }): void; }; } diff --git a/packages/core/chrome/core-chrome-browser-mocks/src/chrome_service.mock.ts b/packages/core/chrome/core-chrome-browser-mocks/src/chrome_service.mock.ts index b32314e5c203b..68fbd2c92a65b 100644 --- a/packages/core/chrome/core-chrome-browser-mocks/src/chrome_service.mock.ts +++ b/packages/core/chrome/core-chrome-browser-mocks/src/chrome_service.mock.ts @@ -78,6 +78,8 @@ const createStartContractMock = () => { setBreadcrumbs: jest.fn(), getActiveNavigationNodes$: jest.fn(), getNavigationTreeUi$: jest.fn(), + changeActiveSolutionNavigation: jest.fn(), + updateSolutionNavigations: jest.fn(), }, }; startContract.navLinks.getAll.mockReturnValue([]); diff --git a/packages/core/chrome/core-chrome-browser/index.ts b/packages/core/chrome/core-chrome-browser/index.ts index 245362cb3b6d8..431e83db04afa 100644 --- a/packages/core/chrome/core-chrome-browser/index.ts +++ b/packages/core/chrome/core-chrome-browser/index.ts @@ -54,4 +54,6 @@ export type { NavigationGroupPreset, RootNavigationItemDefinition, NavigationTreeDefinitionUI, + SolutionNavigationDefinition, + SolutionNavigationDefinitions, } from './src'; diff --git a/packages/core/chrome/core-chrome-browser/src/index.ts b/packages/core/chrome/core-chrome-browser/src/index.ts index 616804896c373..4c0ca3f12a506 100644 --- a/packages/core/chrome/core-chrome-browser/src/index.ts +++ b/packages/core/chrome/core-chrome-browser/src/index.ts @@ -53,4 +53,6 @@ export type { NavigationGroupPreset, RootNavigationItemDefinition, NavigationTreeDefinitionUI, + SolutionNavigationDefinition, + SolutionNavigationDefinitions, } from './project_navigation'; diff --git a/packages/core/chrome/core-chrome-browser/src/project_navigation.ts b/packages/core/chrome/core-chrome-browser/src/project_navigation.ts index e0ee4c0a4d4ca..78d169d4c41fb 100644 --- a/packages/core/chrome/core-chrome-browser/src/project_navigation.ts +++ b/packages/core/chrome/core-chrome-browser/src/project_navigation.ts @@ -373,3 +373,28 @@ export interface NavigationTreeDefinitionUI { body: Array; footer?: Array; } + +/** + * @public + * + * Definition for a solution navigation in stateful Kibana. + * + * This definition is used to register a solution navigation in the Chrome service + * for the side navigation evolution to align with the Serverless UX. + */ + +export interface SolutionNavigationDefinition { + /** Unique id for the solution navigation. */ + id: string; + /** Title for the solution navigation. */ + title: string; + /** Optional icon for the solution navigation. */ + icon?: IconType; + sideNavComponentGetter?: () => SideNavComponent; + /** The page to navigate to when switching to this solution navigation. */ + homePage?: AppDeepLinkId; +} + +export interface SolutionNavigationDefinitions { + [id: string]: SolutionNavigationDefinition; +} diff --git a/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_client_common.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_client_common.ts index d52644a0e8bfe..c923feaf9da92 100644 --- a/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_client_common.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_client_common.ts @@ -64,10 +64,13 @@ export abstract class UiSettingsClientCommon extends BaseUiSettingsClient { return userProvided; } - async setMany(changes: Record) { + async setMany( + changes: Record, + { handleWriteErrors }: { validateKeys?: boolean; handleWriteErrors?: boolean } = {} + ) { this.cache.del(); this.onWriteHook(changes); - await this.write({ changes }); + await this.write({ changes, handleWriteErrors }); } async set(key: string, value: any) { @@ -78,12 +81,15 @@ export abstract class UiSettingsClientCommon extends BaseUiSettingsClient { await this.set(key, null); } - async removeMany(keys: string[]) { + async removeMany( + keys: string[], + options?: { validateKeys?: boolean; handleWriteErrors?: boolean } + ) { const changes: Record = {}; keys.forEach((key) => { changes[key] = null; }); - await this.setMany(changes); + await this.setMany(changes, options); } private assertUpdateAllowed(key: string) { @@ -124,9 +130,11 @@ export abstract class UiSettingsClientCommon extends BaseUiSettingsClient { private async write({ changes, autoCreateOrUpgradeIfMissing = true, + handleWriteErrors = false, }: { changes: Record; autoCreateOrUpgradeIfMissing?: boolean; + handleWriteErrors?: boolean; }) { try { await this.savedObjectsClient.update(this.type, this.id, changes, { refresh: false }); @@ -140,7 +148,7 @@ export abstract class UiSettingsClientCommon extends BaseUiSettingsClient { version: this.id, buildNum: this.buildNum, log: this.log, - handleWriteErrors: false, + handleWriteErrors, type: this.type, }); diff --git a/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_global_client.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_global_client.test.ts index 56c3d53e2109f..4639adb3117ca 100644 --- a/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_global_client.test.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_global_client.test.ts @@ -108,5 +108,41 @@ describe('ui settings global client', () => { ); expect(savedObjectsClient.update).not.toHaveBeenCalled(); }); + + it('does not throws if validateKeys option is set to "false"', async () => { + const { uiSettingsClient, savedObjectsClient } = setup(); + const setSettings = async () => { + await uiSettingsClient.setMany( + { settingZ: 'cde', settingC: true }, + { validateKeys: false } + ); + return 'done'; + }; + expect(setSettings()).resolves.toBe('done'); + expect(savedObjectsClient.update).toHaveBeenCalled(); + }); + }); + + describe('#remove many()', () => { + it('throws an error if any of the settings are not registered', async () => { + const { uiSettingsClient, savedObjectsClient } = setup(); + const setSettings = async () => { + await uiSettingsClient.removeMany(['foo']); + }; + expect(setSettings).rejects.toThrow( + 'Global setting foo is not registered. Global settings need to be registered before they can be set' + ); + expect(savedObjectsClient.update).not.toHaveBeenCalled(); + }); + + it('does not throws if validateKeys option is set to "false"', async () => { + const { uiSettingsClient, savedObjectsClient } = setup(); + const setSettings = async () => { + await uiSettingsClient.removeMany(['foo'], { validateKeys: false }); + return 'done'; + }; + expect(setSettings()).resolves.toBe('done'); + expect(savedObjectsClient.update).toHaveBeenCalled(); + }); }); }); diff --git a/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_global_client.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_global_client.ts index 71899467006bc..f43ddf631c145 100644 --- a/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_global_client.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/clients/ui_settings_global_client.ts @@ -18,14 +18,20 @@ export class UiSettingsGlobalClient extends UiSettingsClientCommon { super(options); } - async setMany(changes: Record) { + async setMany( + changes: Record, + options: { validateKeys?: boolean } = { validateKeys: true } + ) { const registeredSettings = super.getRegistered(); - Object.keys(changes).forEach((key) => { - if (!registeredSettings[key]) { - throw new SettingNotRegisteredError(key); - } - }); - return super.setMany(changes); + if (options.validateKeys) { + Object.keys(changes).forEach((key) => { + if (!registeredSettings[key]) { + throw new SettingNotRegisteredError(key); + } + }); + } + + return super.setMany(changes, options); } async set(key: string, value: any) { diff --git a/packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts b/packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts index d4b16ae6ffe1c..daf6bf43271b6 100644 --- a/packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts +++ b/packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts @@ -53,7 +53,10 @@ export interface IUiSettingsClient { /** * Removes multiple uiSettings values by keys. */ - removeMany: (keys: string[]) => Promise; + removeMany: ( + keys: string[], + options?: { validateKeys?: boolean; handleWriteErrors?: boolean } + ) => Promise; /** * Shows whether the uiSettings value set by the user. */ diff --git a/packages/deeplinks/observability/deep_links.ts b/packages/deeplinks/observability/deep_links.ts index 0dee18d5b0ae5..305e9c0c56c28 100644 --- a/packages/deeplinks/observability/deep_links.ts +++ b/packages/deeplinks/observability/deep_links.ts @@ -59,7 +59,7 @@ export type ApmLinkId = | 'settings' | 'storage-explorer'; -export type SyntheticsLinkId = 'overview' | 'management'; +export type SyntheticsLinkId = 'certificates' | 'overview'; export type LinkId = | LogsLinkId diff --git a/packages/kbn-management/settings/application/application.tsx b/packages/kbn-management/settings/application/application.tsx index 90d28f8e5af1b..2109d4acc8173 100644 --- a/packages/kbn-management/settings/application/application.tsx +++ b/packages/kbn-management/settings/application/application.tsx @@ -128,9 +128,10 @@ export const SettingsApplication = () => { {globalTabEnabled && ( <> - {Object.keys(tabs).map((id) => ( + {Object.keys(tabs).map((id, i) => ( setSelectedTabId(id)} isSelected={id === selectedTabId} diff --git a/packages/kbn-management/settings/components/field_input/input/code_editor_input.tsx b/packages/kbn-management/settings/components/field_input/input/code_editor_input.tsx index 101ac8897bb28..295425006d8ca 100644 --- a/packages/kbn-management/settings/components/field_input/input/code_editor_input.tsx +++ b/packages/kbn-management/settings/components/field_input/input/code_editor_input.tsx @@ -90,14 +90,17 @@ export const CodeEditorInput = ({ ); const debouncedUpdateValue = useMemo(() => { - // Trigger update 1000 ms after the user stopped typing to reduce validation requests to the server - return debounce(updateValue, 1000); + // Trigger update 500 ms after the user stopped typing to reduce validation requests to the server + return debounce(updateValue, 500); }, [updateValue]); const onChange: CodeEditorProps['onChange'] = async (newValue) => { - // @ts-expect-error - setValue(newValue); - await debouncedUpdateValue(newValue, onUpdate); + // Only update the value when the onChange handler is called with a different value from the current one + if (newValue !== value) { + // @ts-expect-error + setValue(newValue); + await debouncedUpdateValue(newValue, onUpdate); + } }; useEffect(() => { diff --git a/packages/kbn-monaco/BUILD.bazel b/packages/kbn-monaco/BUILD.bazel index 95833afd585b8..05616f813e937 100644 --- a/packages/kbn-monaco/BUILD.bazel +++ b/packages/kbn-monaco/BUILD.bazel @@ -26,7 +26,7 @@ SRCS = glob( SHARED_DEPS = [ "//packages/kbn-i18n", "//packages/kbn-ui-theme", - "@npm//antlr4ts", + "@npm//antlr4", "@npm//monaco-editor", "@npm//monaco-yaml", "@npm//js-levenshtein", diff --git a/packages/kbn-monaco/package.json b/packages/kbn-monaco/package.json index a20980d11864e..3f700e2abd369 100644 --- a/packages/kbn-monaco/package.json +++ b/packages/kbn-monaco/package.json @@ -4,8 +4,9 @@ "private": true, "license": "SSPL-1.0 OR Elastic License 2.0", "scripts": { - "build:antlr4ts:painless": "../../node_modules/antlr4ts-cli/antlr4ts ./src/painless/antlr/painless_lexer.g4 ./src/painless/antlr/painless_parser.g4 && node ./scripts/fix_generated_antlr.js painless", - "build:antlr4ts:esql": "../../node_modules/antlr4ts-cli/antlr4ts src/esql/antlr/esql_lexer.g4 src/esql/antlr/esql_parser.g4 && node ./scripts/fix_generated_antlr.js esql && node ./scripts/esql_update_ast_script.js", - "build:antlr4ts": "npm run build:antlr4ts:painless && npm run build:antlr4ts:esql" + "build:antlr4:painless": "antlr -Dlanguage=TypeScript ./src/painless/antlr/painless_lexer.g4 ./src/painless/antlr/painless_parser.g4 && node ./scripts/fix_generated_antlr.js painless", + "build:antlr4:esql": "antlr -Dlanguage=TypeScript src/esql/antlr/esql_lexer.g4 src/esql/antlr/esql_parser.g4 && node ./scripts/fix_generated_antlr.js esql && node ./scripts/esql_update_ast_script.js", + "prebuild:antlr4": "brew bundle --file=./scripts/antlr4_tools/brewfile", + "build:antlr4": "yarn run build:antlr4:painless && npm run build:antlr4:esql" } } diff --git a/packages/kbn-monaco/scripts/antlr4_tools/.gitignore b/packages/kbn-monaco/scripts/antlr4_tools/.gitignore new file mode 100644 index 0000000000000..e4d4e606cb87a --- /dev/null +++ b/packages/kbn-monaco/scripts/antlr4_tools/.gitignore @@ -0,0 +1 @@ +brewfile.lock.json diff --git a/packages/kbn-monaco/scripts/antlr4_tools/README.md b/packages/kbn-monaco/scripts/antlr4_tools/README.md new file mode 100644 index 0000000000000..8bdba8e8d711b --- /dev/null +++ b/packages/kbn-monaco/scripts/antlr4_tools/README.md @@ -0,0 +1,3 @@ +## antlr4-tools + +defines a fairly quick way to get [antlr](https://github.com/antlr/antlr4) setup on any machine with brew support, simply run `brew bundle` within this directory. On running the aforementioned command, `antlr` should be become available in your path as a valid executable. diff --git a/packages/kbn-monaco/scripts/antlr4_tools/brewfile b/packages/kbn-monaco/scripts/antlr4_tools/brewfile new file mode 100644 index 0000000000000..47f89b17dbb10 --- /dev/null +++ b/packages/kbn-monaco/scripts/antlr4_tools/brewfile @@ -0,0 +1,2 @@ +brew "openjdk" +brew "antlr" diff --git a/packages/kbn-monaco/scripts/esql_update_ast_script.js b/packages/kbn-monaco/scripts/esql_update_ast_script.js index 1cee3d7024b7c..670768ccab959 100644 --- a/packages/kbn-monaco/scripts/esql_update_ast_script.js +++ b/packages/kbn-monaco/scripts/esql_update_ast_script.js @@ -13,11 +13,11 @@ const { readdirSync, readFileSync, writeFileSync } = require('fs'); const ora = require('ora'); const log = ora('Updating ES|QL AST walker from antlr grammar').start(); /* - * This script will read from the parser file generated by the "build:antlr4ts:esql" task + * This script will read from the parser file generated by the "build:antlr4:esql" task * and extract all quoted/unquoted tokens to update their ids * into the "ast_helper" file. * This prevents the bundle size to increase by ~500 kb ("esql_parser" size). - * This script is run at the end of "build:antlr4ts:esql" task, so no need to call it manually. + * This script is run at the end of "build:antlr4:esql" task, so no need to call it manually. */ async function execute(folder) { const generatedAntlrFolder = join(__dirname, '..', 'src', folder, 'antlr'); @@ -60,7 +60,7 @@ function getQuotedText(ctx: ParserRuleContext) { return [ ${quotedList.map(({ name, value }) => `${value} /* esql_parser.${name} */`).join(', ')} ] - .map((keyCode) => ctx.tryGetToken(keyCode, 0)) + .map((keyCode) => ctx.getToken(keyCode, 0)) .filter(nonNullable)[0]; } @@ -69,7 +69,7 @@ function getUnquotedText(ctx: ParserRuleContext) { ${unquotedList.map(({ name, value }) => `${value} /* esql_parser.${name} */`).join(', ')} ] - .map((keyCode) => ctx.tryGetToken(keyCode, 0)) + .map((keyCode) => ctx.getToken(keyCode, 0)) .filter(nonNullable)[0]; } /* SCRIPT_MARKER_END */ diff --git a/packages/kbn-monaco/scripts/fix_generated_antlr.js b/packages/kbn-monaco/scripts/fix_generated_antlr.js index bdb246703d04b..f1f616651e88c 100644 --- a/packages/kbn-monaco/scripts/fix_generated_antlr.js +++ b/packages/kbn-monaco/scripts/fix_generated_antlr.js @@ -32,7 +32,9 @@ function execute(folder) { .toString() .split('\n'); - fileContentRows.unshift('// @ts-nocheck'); + if (!/\@ts-nocheck/.test(fileContentRows[0])) { + fileContentRows.unshift('// @ts-nocheck'); + } const filePath = join(generatedAntlrFolder, file); const fileContent = fileContentRows.join('\n'); @@ -44,7 +46,7 @@ function execute(folder) { }); // Rename generated parserListener file to snakecase to satisfy file casing check - // There doesn't appear to be a way to fix this OOTB with antlr4ts-cli + // There doesn't appear to be a way to fix this OOTB with antlr4 try { renameSync( join(generatedAntlrFolder, `${folder}_parserListener.ts`), diff --git a/packages/kbn-monaco/src/common/error_listener.ts b/packages/kbn-monaco/src/common/error_listener.ts index efcacb88d2c2a..d1d0db4310544 100644 --- a/packages/kbn-monaco/src/common/error_listener.ts +++ b/packages/kbn-monaco/src/common/error_listener.ts @@ -6,18 +6,20 @@ * Side Public License, v 1. */ -import { ANTLRErrorListener, Recognizer } from 'antlr4ts'; +import type { Recognizer, RecognitionException } from 'antlr4'; +import { ErrorListener } from 'antlr4'; import type { EditorError } from '../types'; -export class ANTLREErrorListener implements ANTLRErrorListener { - private errors: EditorError[] = []; +export class ANTLRErrorListener extends ErrorListener { + protected errors: EditorError[] = []; syntaxError( - recognizer: Recognizer, + recognizer: Recognizer, offendingSymbol: any, line: number, column: number, - message: string + message: string, + error: RecognitionException | undefined ): void { let endColumn = column + 1; diff --git a/packages/kbn-monaco/src/esql/antlr/esql_lexer.interp b/packages/kbn-monaco/src/esql/antlr/esql_lexer.interp index 6c2e53ac67cdc..65cd96a218a88 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_lexer.interp +++ b/packages/kbn-monaco/src/esql/antlr/esql_lexer.interp @@ -410,4 +410,4 @@ SHOW_MODE SETTING_MODE atn: -[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 2, 106, 1253, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 6, 19, 514, 10, 19, 13, 19, 14, 19, 515, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 524, 10, 20, 12, 20, 14, 20, 527, 11, 20, 3, 20, 5, 20, 530, 10, 20, 3, 20, 5, 20, 533, 10, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 7, 21, 542, 10, 21, 12, 21, 14, 21, 545, 11, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 6, 22, 553, 10, 22, 13, 22, 14, 22, 554, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 33, 3, 33, 5, 33, 596, 10, 33, 3, 33, 6, 33, 599, 10, 33, 13, 33, 14, 33, 600, 3, 34, 3, 34, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 5, 36, 610, 10, 36, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 5, 38, 617, 10, 38, 3, 39, 3, 39, 3, 39, 7, 39, 622, 10, 39, 12, 39, 14, 39, 625, 11, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 7, 39, 633, 10, 39, 12, 39, 14, 39, 636, 11, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 5, 39, 643, 10, 39, 3, 39, 5, 39, 646, 10, 39, 5, 39, 648, 10, 39, 3, 40, 6, 40, 651, 10, 40, 13, 40, 14, 40, 652, 3, 41, 6, 41, 656, 10, 41, 13, 41, 14, 41, 657, 3, 41, 3, 41, 7, 41, 662, 10, 41, 12, 41, 14, 41, 665, 11, 41, 3, 41, 3, 41, 6, 41, 669, 10, 41, 13, 41, 14, 41, 670, 3, 41, 6, 41, 674, 10, 41, 13, 41, 14, 41, 675, 3, 41, 3, 41, 7, 41, 680, 10, 41, 12, 41, 14, 41, 683, 11, 41, 5, 41, 685, 10, 41, 3, 41, 3, 41, 3, 41, 3, 41, 6, 41, 691, 10, 41, 13, 41, 14, 41, 692, 3, 41, 3, 41, 5, 41, 697, 10, 41, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 72, 3, 72, 3, 73, 3, 73, 3, 74, 3, 74, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 78, 3, 78, 7, 78, 825, 10, 78, 12, 78, 14, 78, 828, 11, 78, 3, 78, 3, 78, 5, 78, 832, 10, 78, 3, 78, 6, 78, 835, 10, 78, 13, 78, 14, 78, 836, 5, 78, 839, 10, 78, 3, 79, 3, 79, 6, 79, 843, 10, 79, 13, 79, 14, 79, 844, 3, 79, 3, 79, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 90, 3, 90, 3, 90, 5, 90, 896, 10, 90, 3, 91, 6, 91, 899, 10, 91, 13, 91, 14, 91, 900, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 99, 5, 99, 936, 10, 99, 3, 100, 3, 100, 5, 100, 940, 10, 100, 3, 100, 7, 100, 943, 10, 100, 12, 100, 14, 100, 946, 11, 100, 3, 100, 3, 100, 5, 100, 950, 10, 100, 3, 100, 6, 100, 953, 10, 100, 13, 100, 14, 100, 954, 5, 100, 957, 10, 100, 3, 101, 3, 101, 6, 101, 961, 10, 101, 13, 101, 14, 101, 962, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 118, 3, 118, 3, 119, 6, 119, 1038, 10, 119, 13, 119, 14, 119, 1039, 3, 119, 3, 119, 5, 119, 1044, 10, 119, 3, 119, 6, 119, 1047, 10, 119, 13, 119, 14, 119, 1048, 3, 120, 3, 120, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 126, 3, 126, 3, 126, 3, 126, 3, 127, 3, 127, 3, 127, 3, 127, 3, 128, 3, 128, 3, 128, 3, 128, 3, 129, 3, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 141, 3, 141, 3, 141, 3, 141, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 3, 146, 3, 146, 3, 146, 3, 146, 3, 147, 3, 147, 3, 147, 3, 147, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 149, 3, 149, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 6, 150, 1186, 10, 150, 13, 150, 14, 150, 1187, 3, 151, 3, 151, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 3, 153, 3, 154, 3, 154, 3, 155, 3, 155, 3, 156, 3, 156, 3, 157, 3, 157, 3, 158, 3, 158, 3, 159, 3, 159, 3, 160, 3, 160, 3, 161, 3, 161, 3, 162, 3, 162, 3, 163, 3, 163, 3, 164, 3, 164, 3, 165, 3, 165, 3, 166, 3, 166, 3, 167, 3, 167, 3, 168, 3, 168, 3, 169, 3, 169, 3, 170, 3, 170, 3, 171, 3, 171, 3, 172, 3, 172, 3, 173, 3, 173, 3, 174, 3, 174, 3, 175, 3, 175, 3, 176, 3, 176, 3, 177, 3, 177, 3, 178, 3, 178, 3, 179, 3, 179, 4, 543, 634, 2, 2, 180, 13, 2, 3, 15, 2, 4, 17, 2, 5, 19, 2, 6, 21, 2, 7, 23, 2, 8, 25, 2, 9, 27, 2, 10, 29, 2, 11, 31, 2, 12, 33, 2, 13, 35, 2, 14, 37, 2, 15, 39, 2, 16, 41, 2, 17, 43, 2, 18, 45, 2, 19, 47, 2, 20, 49, 2, 21, 51, 2, 22, 53, 2, 23, 55, 2, 2, 57, 2, 2, 59, 2, 24, 61, 2, 25, 63, 2, 26, 65, 2, 27, 67, 2, 2, 69, 2, 2, 71, 2, 2, 73, 2, 2, 75, 2, 2, 77, 2, 2, 79, 2, 2, 81, 2, 2, 83, 2, 2, 85, 2, 2, 87, 2, 28, 89, 2, 29, 91, 2, 30, 93, 2, 31, 95, 2, 32, 97, 2, 33, 99, 2, 34, 101, 2, 35, 103, 2, 36, 105, 2, 37, 107, 2, 38, 109, 2, 39, 111, 2, 40, 113, 2, 41, 115, 2, 42, 117, 2, 43, 119, 2, 44, 121, 2, 45, 123, 2, 46, 125, 2, 47, 127, 2, 48, 129, 2, 49, 131, 2, 50, 133, 2, 51, 135, 2, 52, 137, 2, 53, 139, 2, 54, 141, 2, 55, 143, 2, 56, 145, 2, 57, 147, 2, 58, 149, 2, 59, 151, 2, 60, 153, 2, 61, 155, 2, 62, 157, 2, 63, 159, 2, 64, 161, 2, 65, 163, 2, 66, 165, 2, 67, 167, 2, 2, 169, 2, 68, 171, 2, 69, 173, 2, 70, 175, 2, 71, 177, 2, 2, 179, 2, 2, 181, 2, 2, 183, 2, 2, 185, 2, 2, 187, 2, 72, 189, 2, 2, 191, 2, 73, 193, 2, 2, 195, 2, 74, 197, 2, 75, 199, 2, 76, 201, 2, 2, 203, 2, 2, 205, 2, 2, 207, 2, 2, 209, 2, 2, 211, 2, 77, 213, 2, 78, 215, 2, 79, 217, 2, 80, 219, 2, 2, 221, 2, 2, 223, 2, 2, 225, 2, 2, 227, 2, 81, 229, 2, 2, 231, 2, 82, 233, 2, 83, 235, 2, 84, 237, 2, 2, 239, 2, 2, 241, 2, 85, 243, 2, 86, 245, 2, 2, 247, 2, 87, 249, 2, 2, 251, 2, 2, 253, 2, 88, 255, 2, 89, 257, 2, 90, 259, 2, 2, 261, 2, 2, 263, 2, 2, 265, 2, 2, 267, 2, 2, 269, 2, 2, 271, 2, 2, 273, 2, 91, 275, 2, 92, 277, 2, 93, 279, 2, 2, 281, 2, 2, 283, 2, 2, 285, 2, 2, 287, 2, 94, 289, 2, 95, 291, 2, 96, 293, 2, 2, 295, 2, 97, 297, 2, 98, 299, 2, 99, 301, 2, 100, 303, 2, 101, 305, 2, 2, 307, 2, 102, 309, 2, 103, 311, 2, 104, 313, 2, 105, 315, 2, 106, 317, 2, 2, 319, 2, 2, 321, 2, 2, 323, 2, 2, 325, 2, 2, 327, 2, 2, 329, 2, 2, 331, 2, 2, 333, 2, 2, 335, 2, 2, 337, 2, 2, 339, 2, 2, 341, 2, 2, 343, 2, 2, 345, 2, 2, 347, 2, 2, 349, 2, 2, 351, 2, 2, 353, 2, 2, 355, 2, 2, 357, 2, 2, 359, 2, 2, 361, 2, 2, 363, 2, 2, 365, 2, 2, 367, 2, 2, 13, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 40, 8, 2, 11, 12, 15, 15, 34, 34, 49, 49, 93, 93, 95, 95, 4, 2, 12, 12, 15, 15, 5, 2, 11, 12, 15, 15, 34, 34, 3, 2, 50, 59, 4, 2, 67, 92, 99, 124, 7, 2, 36, 36, 94, 94, 112, 112, 116, 116, 118, 118, 6, 2, 12, 12, 15, 15, 36, 36, 94, 94, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 3, 2, 98, 98, 12, 2, 11, 12, 15, 15, 34, 34, 46, 46, 49, 49, 63, 63, 93, 93, 95, 95, 98, 98, 126, 126, 4, 2, 44, 44, 49, 49, 13, 2, 11, 12, 15, 15, 34, 34, 36, 37, 46, 46, 49, 49, 60, 60, 62, 62, 64, 65, 94, 94, 126, 126, 4, 2, 67, 67, 99, 99, 4, 2, 68, 68, 100, 100, 4, 2, 69, 69, 101, 101, 4, 2, 70, 70, 102, 102, 4, 2, 72, 72, 104, 104, 4, 2, 73, 73, 105, 105, 4, 2, 74, 74, 106, 106, 4, 2, 75, 75, 107, 107, 4, 2, 76, 76, 108, 108, 4, 2, 77, 77, 109, 109, 4, 2, 78, 78, 110, 110, 4, 2, 79, 79, 111, 111, 4, 2, 80, 80, 112, 112, 4, 2, 81, 81, 113, 113, 4, 2, 82, 82, 114, 114, 4, 2, 83, 83, 115, 115, 4, 2, 84, 84, 116, 116, 4, 2, 85, 85, 117, 117, 4, 2, 86, 86, 118, 118, 4, 2, 87, 87, 119, 119, 4, 2, 88, 88, 120, 120, 4, 2, 89, 89, 121, 121, 4, 2, 90, 90, 122, 122, 4, 2, 91, 91, 123, 123, 4, 2, 92, 92, 124, 124, 2, 1255, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 3, 55, 3, 2, 2, 2, 3, 57, 3, 2, 2, 2, 3, 59, 3, 2, 2, 2, 3, 61, 3, 2, 2, 2, 3, 63, 3, 2, 2, 2, 4, 65, 3, 2, 2, 2, 4, 87, 3, 2, 2, 2, 4, 89, 3, 2, 2, 2, 4, 91, 3, 2, 2, 2, 4, 93, 3, 2, 2, 2, 4, 95, 3, 2, 2, 2, 4, 97, 3, 2, 2, 2, 4, 99, 3, 2, 2, 2, 4, 101, 3, 2, 2, 2, 4, 103, 3, 2, 2, 2, 4, 105, 3, 2, 2, 2, 4, 107, 3, 2, 2, 2, 4, 109, 3, 2, 2, 2, 4, 111, 3, 2, 2, 2, 4, 113, 3, 2, 2, 2, 4, 115, 3, 2, 2, 2, 4, 117, 3, 2, 2, 2, 4, 119, 3, 2, 2, 2, 4, 121, 3, 2, 2, 2, 4, 123, 3, 2, 2, 2, 4, 125, 3, 2, 2, 2, 4, 127, 3, 2, 2, 2, 4, 129, 3, 2, 2, 2, 4, 131, 3, 2, 2, 2, 4, 133, 3, 2, 2, 2, 4, 135, 3, 2, 2, 2, 4, 137, 3, 2, 2, 2, 4, 139, 3, 2, 2, 2, 4, 141, 3, 2, 2, 2, 4, 143, 3, 2, 2, 2, 4, 145, 3, 2, 2, 2, 4, 147, 3, 2, 2, 2, 4, 149, 3, 2, 2, 2, 4, 151, 3, 2, 2, 2, 4, 153, 3, 2, 2, 2, 4, 155, 3, 2, 2, 2, 4, 157, 3, 2, 2, 2, 4, 159, 3, 2, 2, 2, 4, 161, 3, 2, 2, 2, 4, 163, 3, 2, 2, 2, 4, 165, 3, 2, 2, 2, 4, 169, 3, 2, 2, 2, 4, 171, 3, 2, 2, 2, 4, 173, 3, 2, 2, 2, 4, 175, 3, 2, 2, 2, 5, 177, 3, 2, 2, 2, 5, 179, 3, 2, 2, 2, 5, 181, 3, 2, 2, 2, 5, 183, 3, 2, 2, 2, 5, 185, 3, 2, 2, 2, 5, 187, 3, 2, 2, 2, 5, 191, 3, 2, 2, 2, 5, 193, 3, 2, 2, 2, 5, 195, 3, 2, 2, 2, 5, 197, 3, 2, 2, 2, 5, 199, 3, 2, 2, 2, 6, 201, 3, 2, 2, 2, 6, 203, 3, 2, 2, 2, 6, 205, 3, 2, 2, 2, 6, 211, 3, 2, 2, 2, 6, 213, 3, 2, 2, 2, 6, 215, 3, 2, 2, 2, 6, 217, 3, 2, 2, 2, 7, 219, 3, 2, 2, 2, 7, 221, 3, 2, 2, 2, 7, 223, 3, 2, 2, 2, 7, 225, 3, 2, 2, 2, 7, 227, 3, 2, 2, 2, 7, 229, 3, 2, 2, 2, 7, 231, 3, 2, 2, 2, 7, 233, 3, 2, 2, 2, 7, 235, 3, 2, 2, 2, 8, 237, 3, 2, 2, 2, 8, 239, 3, 2, 2, 2, 8, 241, 3, 2, 2, 2, 8, 243, 3, 2, 2, 2, 8, 247, 3, 2, 2, 2, 8, 249, 3, 2, 2, 2, 8, 251, 3, 2, 2, 2, 8, 253, 3, 2, 2, 2, 8, 255, 3, 2, 2, 2, 8, 257, 3, 2, 2, 2, 9, 259, 3, 2, 2, 2, 9, 261, 3, 2, 2, 2, 9, 263, 3, 2, 2, 2, 9, 265, 3, 2, 2, 2, 9, 267, 3, 2, 2, 2, 9, 269, 3, 2, 2, 2, 9, 271, 3, 2, 2, 2, 9, 273, 3, 2, 2, 2, 9, 275, 3, 2, 2, 2, 9, 277, 3, 2, 2, 2, 10, 279, 3, 2, 2, 2, 10, 281, 3, 2, 2, 2, 10, 283, 3, 2, 2, 2, 10, 285, 3, 2, 2, 2, 10, 287, 3, 2, 2, 2, 10, 289, 3, 2, 2, 2, 10, 291, 3, 2, 2, 2, 11, 293, 3, 2, 2, 2, 11, 295, 3, 2, 2, 2, 11, 297, 3, 2, 2, 2, 11, 299, 3, 2, 2, 2, 11, 301, 3, 2, 2, 2, 11, 303, 3, 2, 2, 2, 12, 305, 3, 2, 2, 2, 12, 307, 3, 2, 2, 2, 12, 309, 3, 2, 2, 2, 12, 311, 3, 2, 2, 2, 12, 313, 3, 2, 2, 2, 12, 315, 3, 2, 2, 2, 13, 369, 3, 2, 2, 2, 15, 379, 3, 2, 2, 2, 17, 386, 3, 2, 2, 2, 19, 395, 3, 2, 2, 2, 21, 402, 3, 2, 2, 2, 23, 412, 3, 2, 2, 2, 25, 419, 3, 2, 2, 2, 27, 426, 3, 2, 2, 2, 29, 440, 3, 2, 2, 2, 31, 447, 3, 2, 2, 2, 33, 455, 3, 2, 2, 2, 35, 467, 3, 2, 2, 2, 37, 476, 3, 2, 2, 2, 39, 482, 3, 2, 2, 2, 41, 489, 3, 2, 2, 2, 43, 496, 3, 2, 2, 2, 45, 504, 3, 2, 2, 2, 47, 513, 3, 2, 2, 2, 49, 519, 3, 2, 2, 2, 51, 536, 3, 2, 2, 2, 53, 552, 3, 2, 2, 2, 55, 558, 3, 2, 2, 2, 57, 563, 3, 2, 2, 2, 59, 568, 3, 2, 2, 2, 61, 572, 3, 2, 2, 2, 63, 576, 3, 2, 2, 2, 65, 580, 3, 2, 2, 2, 67, 584, 3, 2, 2, 2, 69, 586, 3, 2, 2, 2, 71, 588, 3, 2, 2, 2, 73, 591, 3, 2, 2, 2, 75, 593, 3, 2, 2, 2, 77, 602, 3, 2, 2, 2, 79, 604, 3, 2, 2, 2, 81, 609, 3, 2, 2, 2, 83, 611, 3, 2, 2, 2, 85, 616, 3, 2, 2, 2, 87, 647, 3, 2, 2, 2, 89, 650, 3, 2, 2, 2, 91, 696, 3, 2, 2, 2, 93, 698, 3, 2, 2, 2, 95, 701, 3, 2, 2, 2, 97, 705, 3, 2, 2, 2, 99, 709, 3, 2, 2, 2, 101, 711, 3, 2, 2, 2, 103, 713, 3, 2, 2, 2, 105, 718, 3, 2, 2, 2, 107, 720, 3, 2, 2, 2, 109, 726, 3, 2, 2, 2, 111, 732, 3, 2, 2, 2, 113, 737, 3, 2, 2, 2, 115, 739, 3, 2, 2, 2, 117, 742, 3, 2, 2, 2, 119, 745, 3, 2, 2, 2, 121, 750, 3, 2, 2, 2, 123, 754, 3, 2, 2, 2, 125, 759, 3, 2, 2, 2, 127, 765, 3, 2, 2, 2, 129, 768, 3, 2, 2, 2, 131, 770, 3, 2, 2, 2, 133, 776, 3, 2, 2, 2, 135, 778, 3, 2, 2, 2, 137, 783, 3, 2, 2, 2, 139, 786, 3, 2, 2, 2, 141, 789, 3, 2, 2, 2, 143, 792, 3, 2, 2, 2, 145, 794, 3, 2, 2, 2, 147, 797, 3, 2, 2, 2, 149, 799, 3, 2, 2, 2, 151, 802, 3, 2, 2, 2, 153, 804, 3, 2, 2, 2, 155, 806, 3, 2, 2, 2, 157, 808, 3, 2, 2, 2, 159, 810, 3, 2, 2, 2, 161, 812, 3, 2, 2, 2, 163, 817, 3, 2, 2, 2, 165, 838, 3, 2, 2, 2, 167, 840, 3, 2, 2, 2, 169, 848, 3, 2, 2, 2, 171, 850, 3, 2, 2, 2, 173, 854, 3, 2, 2, 2, 175, 858, 3, 2, 2, 2, 177, 862, 3, 2, 2, 2, 179, 867, 3, 2, 2, 2, 181, 871, 3, 2, 2, 2, 183, 875, 3, 2, 2, 2, 185, 879, 3, 2, 2, 2, 187, 883, 3, 2, 2, 2, 189, 895, 3, 2, 2, 2, 191, 898, 3, 2, 2, 2, 193, 902, 3, 2, 2, 2, 195, 906, 3, 2, 2, 2, 197, 910, 3, 2, 2, 2, 199, 914, 3, 2, 2, 2, 201, 918, 3, 2, 2, 2, 203, 923, 3, 2, 2, 2, 205, 927, 3, 2, 2, 2, 207, 935, 3, 2, 2, 2, 209, 956, 3, 2, 2, 2, 211, 960, 3, 2, 2, 2, 213, 964, 3, 2, 2, 2, 215, 968, 3, 2, 2, 2, 217, 972, 3, 2, 2, 2, 219, 976, 3, 2, 2, 2, 221, 981, 3, 2, 2, 2, 223, 985, 3, 2, 2, 2, 225, 989, 3, 2, 2, 2, 227, 993, 3, 2, 2, 2, 229, 996, 3, 2, 2, 2, 231, 1000, 3, 2, 2, 2, 233, 1004, 3, 2, 2, 2, 235, 1008, 3, 2, 2, 2, 237, 1012, 3, 2, 2, 2, 239, 1017, 3, 2, 2, 2, 241, 1022, 3, 2, 2, 2, 243, 1027, 3, 2, 2, 2, 245, 1034, 3, 2, 2, 2, 247, 1043, 3, 2, 2, 2, 249, 1050, 3, 2, 2, 2, 251, 1054, 3, 2, 2, 2, 253, 1058, 3, 2, 2, 2, 255, 1062, 3, 2, 2, 2, 257, 1066, 3, 2, 2, 2, 259, 1070, 3, 2, 2, 2, 261, 1076, 3, 2, 2, 2, 263, 1080, 3, 2, 2, 2, 265, 1084, 3, 2, 2, 2, 267, 1088, 3, 2, 2, 2, 269, 1092, 3, 2, 2, 2, 271, 1096, 3, 2, 2, 2, 273, 1100, 3, 2, 2, 2, 275, 1104, 3, 2, 2, 2, 277, 1108, 3, 2, 2, 2, 279, 1112, 3, 2, 2, 2, 281, 1117, 3, 2, 2, 2, 283, 1121, 3, 2, 2, 2, 285, 1125, 3, 2, 2, 2, 287, 1129, 3, 2, 2, 2, 289, 1133, 3, 2, 2, 2, 291, 1137, 3, 2, 2, 2, 293, 1141, 3, 2, 2, 2, 295, 1146, 3, 2, 2, 2, 297, 1151, 3, 2, 2, 2, 299, 1161, 3, 2, 2, 2, 301, 1165, 3, 2, 2, 2, 303, 1169, 3, 2, 2, 2, 305, 1173, 3, 2, 2, 2, 307, 1178, 3, 2, 2, 2, 309, 1185, 3, 2, 2, 2, 311, 1189, 3, 2, 2, 2, 313, 1193, 3, 2, 2, 2, 315, 1197, 3, 2, 2, 2, 317, 1201, 3, 2, 2, 2, 319, 1203, 3, 2, 2, 2, 321, 1205, 3, 2, 2, 2, 323, 1207, 3, 2, 2, 2, 325, 1209, 3, 2, 2, 2, 327, 1211, 3, 2, 2, 2, 329, 1213, 3, 2, 2, 2, 331, 1215, 3, 2, 2, 2, 333, 1217, 3, 2, 2, 2, 335, 1219, 3, 2, 2, 2, 337, 1221, 3, 2, 2, 2, 339, 1223, 3, 2, 2, 2, 341, 1225, 3, 2, 2, 2, 343, 1227, 3, 2, 2, 2, 345, 1229, 3, 2, 2, 2, 347, 1231, 3, 2, 2, 2, 349, 1233, 3, 2, 2, 2, 351, 1235, 3, 2, 2, 2, 353, 1237, 3, 2, 2, 2, 355, 1239, 3, 2, 2, 2, 357, 1241, 3, 2, 2, 2, 359, 1243, 3, 2, 2, 2, 361, 1245, 3, 2, 2, 2, 363, 1247, 3, 2, 2, 2, 365, 1249, 3, 2, 2, 2, 367, 1251, 3, 2, 2, 2, 369, 370, 5, 323, 157, 2, 370, 371, 5, 333, 162, 2, 371, 372, 5, 353, 172, 2, 372, 373, 5, 353, 172, 2, 373, 374, 5, 325, 158, 2, 374, 375, 5, 321, 156, 2, 375, 376, 5, 355, 173, 2, 376, 377, 3, 2, 2, 2, 377, 378, 8, 2, 2, 2, 378, 14, 3, 2, 2, 2, 379, 380, 5, 323, 157, 2, 380, 381, 5, 351, 171, 2, 381, 382, 5, 345, 168, 2, 382, 383, 5, 347, 169, 2, 383, 384, 3, 2, 2, 2, 384, 385, 8, 3, 3, 2, 385, 16, 3, 2, 2, 2, 386, 387, 5, 325, 158, 2, 387, 388, 5, 343, 167, 2, 388, 389, 5, 351, 171, 2, 389, 390, 5, 333, 162, 2, 390, 391, 5, 321, 156, 2, 391, 392, 5, 331, 161, 2, 392, 393, 3, 2, 2, 2, 393, 394, 8, 4, 4, 2, 394, 18, 3, 2, 2, 2, 395, 396, 5, 325, 158, 2, 396, 397, 5, 359, 175, 2, 397, 398, 5, 317, 154, 2, 398, 399, 5, 339, 165, 2, 399, 400, 3, 2, 2, 2, 400, 401, 8, 5, 2, 2, 401, 20, 3, 2, 2, 2, 402, 403, 5, 325, 158, 2, 403, 404, 5, 363, 177, 2, 404, 405, 5, 347, 169, 2, 405, 406, 5, 339, 165, 2, 406, 407, 5, 317, 154, 2, 407, 408, 5, 333, 162, 2, 408, 409, 5, 343, 167, 2, 409, 410, 3, 2, 2, 2, 410, 411, 8, 6, 5, 2, 411, 22, 3, 2, 2, 2, 412, 413, 5, 327, 159, 2, 413, 414, 5, 351, 171, 2, 414, 415, 5, 345, 168, 2, 415, 416, 5, 341, 166, 2, 416, 417, 3, 2, 2, 2, 417, 418, 8, 7, 6, 2, 418, 24, 3, 2, 2, 2, 419, 420, 5, 329, 160, 2, 420, 421, 5, 351, 171, 2, 421, 422, 5, 345, 168, 2, 422, 423, 5, 337, 164, 2, 423, 424, 3, 2, 2, 2, 424, 425, 8, 8, 2, 2, 425, 26, 3, 2, 2, 2, 426, 427, 5, 333, 162, 2, 427, 428, 5, 343, 167, 2, 428, 429, 5, 339, 165, 2, 429, 430, 5, 333, 162, 2, 430, 431, 5, 343, 167, 2, 431, 432, 5, 325, 158, 2, 432, 433, 5, 353, 172, 2, 433, 434, 5, 355, 173, 2, 434, 435, 5, 317, 154, 2, 435, 436, 5, 355, 173, 2, 436, 437, 5, 353, 172, 2, 437, 438, 3, 2, 2, 2, 438, 439, 8, 9, 2, 2, 439, 28, 3, 2, 2, 2, 440, 441, 5, 337, 164, 2, 441, 442, 5, 325, 158, 2, 442, 443, 5, 325, 158, 2, 443, 444, 5, 347, 169, 2, 444, 445, 3, 2, 2, 2, 445, 446, 8, 10, 3, 2, 446, 30, 3, 2, 2, 2, 447, 448, 5, 339, 165, 2, 448, 449, 5, 333, 162, 2, 449, 450, 5, 341, 166, 2, 450, 451, 5, 333, 162, 2, 451, 452, 5, 355, 173, 2, 452, 453, 3, 2, 2, 2, 453, 454, 8, 11, 2, 2, 454, 32, 3, 2, 2, 2, 455, 456, 5, 341, 166, 2, 456, 457, 5, 359, 175, 2, 457, 458, 5, 83, 37, 2, 458, 459, 5, 325, 158, 2, 459, 460, 5, 363, 177, 2, 460, 461, 5, 347, 169, 2, 461, 462, 5, 317, 154, 2, 462, 463, 5, 343, 167, 2, 463, 464, 5, 323, 157, 2, 464, 465, 3, 2, 2, 2, 465, 466, 8, 12, 7, 2, 466, 34, 3, 2, 2, 2, 467, 468, 5, 351, 171, 2, 468, 469, 5, 325, 158, 2, 469, 470, 5, 343, 167, 2, 470, 471, 5, 317, 154, 2, 471, 472, 5, 341, 166, 2, 472, 473, 5, 325, 158, 2, 473, 474, 3, 2, 2, 2, 474, 475, 8, 13, 8, 2, 475, 36, 3, 2, 2, 2, 476, 477, 5, 351, 171, 2, 477, 478, 5, 345, 168, 2, 478, 479, 5, 361, 176, 2, 479, 480, 3, 2, 2, 2, 480, 481, 8, 14, 2, 2, 481, 38, 3, 2, 2, 2, 482, 483, 5, 353, 172, 2, 483, 484, 5, 331, 161, 2, 484, 485, 5, 345, 168, 2, 485, 486, 5, 361, 176, 2, 486, 487, 3, 2, 2, 2, 487, 488, 8, 15, 9, 2, 488, 40, 3, 2, 2, 2, 489, 490, 5, 353, 172, 2, 490, 491, 5, 345, 168, 2, 491, 492, 5, 351, 171, 2, 492, 493, 5, 355, 173, 2, 493, 494, 3, 2, 2, 2, 494, 495, 8, 16, 2, 2, 495, 42, 3, 2, 2, 2, 496, 497, 5, 353, 172, 2, 497, 498, 5, 355, 173, 2, 498, 499, 5, 317, 154, 2, 499, 500, 5, 355, 173, 2, 500, 501, 5, 353, 172, 2, 501, 502, 3, 2, 2, 2, 502, 503, 8, 17, 2, 2, 503, 44, 3, 2, 2, 2, 504, 505, 5, 361, 176, 2, 505, 506, 5, 331, 161, 2, 506, 507, 5, 325, 158, 2, 507, 508, 5, 351, 171, 2, 508, 509, 5, 325, 158, 2, 509, 510, 3, 2, 2, 2, 510, 511, 8, 18, 2, 2, 511, 46, 3, 2, 2, 2, 512, 514, 10, 2, 2, 2, 513, 512, 3, 2, 2, 2, 514, 515, 3, 2, 2, 2, 515, 513, 3, 2, 2, 2, 515, 516, 3, 2, 2, 2, 516, 517, 3, 2, 2, 2, 517, 518, 8, 19, 2, 2, 518, 48, 3, 2, 2, 2, 519, 520, 7, 49, 2, 2, 520, 521, 7, 49, 2, 2, 521, 525, 3, 2, 2, 2, 522, 524, 10, 3, 2, 2, 523, 522, 3, 2, 2, 2, 524, 527, 3, 2, 2, 2, 525, 523, 3, 2, 2, 2, 525, 526, 3, 2, 2, 2, 526, 529, 3, 2, 2, 2, 527, 525, 3, 2, 2, 2, 528, 530, 7, 15, 2, 2, 529, 528, 3, 2, 2, 2, 529, 530, 3, 2, 2, 2, 530, 532, 3, 2, 2, 2, 531, 533, 7, 12, 2, 2, 532, 531, 3, 2, 2, 2, 532, 533, 3, 2, 2, 2, 533, 534, 3, 2, 2, 2, 534, 535, 8, 20, 10, 2, 535, 50, 3, 2, 2, 2, 536, 537, 7, 49, 2, 2, 537, 538, 7, 44, 2, 2, 538, 543, 3, 2, 2, 2, 539, 542, 5, 51, 21, 2, 540, 542, 11, 2, 2, 2, 541, 539, 3, 2, 2, 2, 541, 540, 3, 2, 2, 2, 542, 545, 3, 2, 2, 2, 543, 544, 3, 2, 2, 2, 543, 541, 3, 2, 2, 2, 544, 546, 3, 2, 2, 2, 545, 543, 3, 2, 2, 2, 546, 547, 7, 44, 2, 2, 547, 548, 7, 49, 2, 2, 548, 549, 3, 2, 2, 2, 549, 550, 8, 21, 10, 2, 550, 52, 3, 2, 2, 2, 551, 553, 9, 4, 2, 2, 552, 551, 3, 2, 2, 2, 553, 554, 3, 2, 2, 2, 554, 552, 3, 2, 2, 2, 554, 555, 3, 2, 2, 2, 555, 556, 3, 2, 2, 2, 556, 557, 8, 22, 10, 2, 557, 54, 3, 2, 2, 2, 558, 559, 5, 161, 76, 2, 559, 560, 3, 2, 2, 2, 560, 561, 8, 23, 11, 2, 561, 562, 8, 23, 12, 2, 562, 56, 3, 2, 2, 2, 563, 564, 5, 65, 28, 2, 564, 565, 3, 2, 2, 2, 565, 566, 8, 24, 13, 2, 566, 567, 8, 24, 14, 2, 567, 58, 3, 2, 2, 2, 568, 569, 5, 53, 22, 2, 569, 570, 3, 2, 2, 2, 570, 571, 8, 25, 10, 2, 571, 60, 3, 2, 2, 2, 572, 573, 5, 49, 20, 2, 573, 574, 3, 2, 2, 2, 574, 575, 8, 26, 10, 2, 575, 62, 3, 2, 2, 2, 576, 577, 5, 51, 21, 2, 577, 578, 3, 2, 2, 2, 578, 579, 8, 27, 10, 2, 579, 64, 3, 2, 2, 2, 580, 581, 7, 126, 2, 2, 581, 582, 3, 2, 2, 2, 582, 583, 8, 28, 14, 2, 583, 66, 3, 2, 2, 2, 584, 585, 9, 5, 2, 2, 585, 68, 3, 2, 2, 2, 586, 587, 9, 6, 2, 2, 587, 70, 3, 2, 2, 2, 588, 589, 7, 94, 2, 2, 589, 590, 9, 7, 2, 2, 590, 72, 3, 2, 2, 2, 591, 592, 10, 8, 2, 2, 592, 74, 3, 2, 2, 2, 593, 595, 9, 9, 2, 2, 594, 596, 9, 10, 2, 2, 595, 594, 3, 2, 2, 2, 595, 596, 3, 2, 2, 2, 596, 598, 3, 2, 2, 2, 597, 599, 5, 67, 29, 2, 598, 597, 3, 2, 2, 2, 599, 600, 3, 2, 2, 2, 600, 598, 3, 2, 2, 2, 600, 601, 3, 2, 2, 2, 601, 76, 3, 2, 2, 2, 602, 603, 7, 66, 2, 2, 603, 78, 3, 2, 2, 2, 604, 605, 7, 98, 2, 2, 605, 80, 3, 2, 2, 2, 606, 610, 10, 11, 2, 2, 607, 608, 7, 98, 2, 2, 608, 610, 7, 98, 2, 2, 609, 606, 3, 2, 2, 2, 609, 607, 3, 2, 2, 2, 610, 82, 3, 2, 2, 2, 611, 612, 7, 97, 2, 2, 612, 84, 3, 2, 2, 2, 613, 617, 5, 69, 30, 2, 614, 617, 5, 67, 29, 2, 615, 617, 5, 83, 37, 2, 616, 613, 3, 2, 2, 2, 616, 614, 3, 2, 2, 2, 616, 615, 3, 2, 2, 2, 617, 86, 3, 2, 2, 2, 618, 623, 7, 36, 2, 2, 619, 622, 5, 71, 31, 2, 620, 622, 5, 73, 32, 2, 621, 619, 3, 2, 2, 2, 621, 620, 3, 2, 2, 2, 622, 625, 3, 2, 2, 2, 623, 621, 3, 2, 2, 2, 623, 624, 3, 2, 2, 2, 624, 626, 3, 2, 2, 2, 625, 623, 3, 2, 2, 2, 626, 648, 7, 36, 2, 2, 627, 628, 7, 36, 2, 2, 628, 629, 7, 36, 2, 2, 629, 630, 7, 36, 2, 2, 630, 634, 3, 2, 2, 2, 631, 633, 10, 3, 2, 2, 632, 631, 3, 2, 2, 2, 633, 636, 3, 2, 2, 2, 634, 635, 3, 2, 2, 2, 634, 632, 3, 2, 2, 2, 635, 637, 3, 2, 2, 2, 636, 634, 3, 2, 2, 2, 637, 638, 7, 36, 2, 2, 638, 639, 7, 36, 2, 2, 639, 640, 7, 36, 2, 2, 640, 642, 3, 2, 2, 2, 641, 643, 7, 36, 2, 2, 642, 641, 3, 2, 2, 2, 642, 643, 3, 2, 2, 2, 643, 645, 3, 2, 2, 2, 644, 646, 7, 36, 2, 2, 645, 644, 3, 2, 2, 2, 645, 646, 3, 2, 2, 2, 646, 648, 3, 2, 2, 2, 647, 618, 3, 2, 2, 2, 647, 627, 3, 2, 2, 2, 648, 88, 3, 2, 2, 2, 649, 651, 5, 67, 29, 2, 650, 649, 3, 2, 2, 2, 651, 652, 3, 2, 2, 2, 652, 650, 3, 2, 2, 2, 652, 653, 3, 2, 2, 2, 653, 90, 3, 2, 2, 2, 654, 656, 5, 67, 29, 2, 655, 654, 3, 2, 2, 2, 656, 657, 3, 2, 2, 2, 657, 655, 3, 2, 2, 2, 657, 658, 3, 2, 2, 2, 658, 659, 3, 2, 2, 2, 659, 663, 5, 105, 48, 2, 660, 662, 5, 67, 29, 2, 661, 660, 3, 2, 2, 2, 662, 665, 3, 2, 2, 2, 663, 661, 3, 2, 2, 2, 663, 664, 3, 2, 2, 2, 664, 697, 3, 2, 2, 2, 665, 663, 3, 2, 2, 2, 666, 668, 5, 105, 48, 2, 667, 669, 5, 67, 29, 2, 668, 667, 3, 2, 2, 2, 669, 670, 3, 2, 2, 2, 670, 668, 3, 2, 2, 2, 670, 671, 3, 2, 2, 2, 671, 697, 3, 2, 2, 2, 672, 674, 5, 67, 29, 2, 673, 672, 3, 2, 2, 2, 674, 675, 3, 2, 2, 2, 675, 673, 3, 2, 2, 2, 675, 676, 3, 2, 2, 2, 676, 684, 3, 2, 2, 2, 677, 681, 5, 105, 48, 2, 678, 680, 5, 67, 29, 2, 679, 678, 3, 2, 2, 2, 680, 683, 3, 2, 2, 2, 681, 679, 3, 2, 2, 2, 681, 682, 3, 2, 2, 2, 682, 685, 3, 2, 2, 2, 683, 681, 3, 2, 2, 2, 684, 677, 3, 2, 2, 2, 684, 685, 3, 2, 2, 2, 685, 686, 3, 2, 2, 2, 686, 687, 5, 75, 33, 2, 687, 697, 3, 2, 2, 2, 688, 690, 5, 105, 48, 2, 689, 691, 5, 67, 29, 2, 690, 689, 3, 2, 2, 2, 691, 692, 3, 2, 2, 2, 692, 690, 3, 2, 2, 2, 692, 693, 3, 2, 2, 2, 693, 694, 3, 2, 2, 2, 694, 695, 5, 75, 33, 2, 695, 697, 3, 2, 2, 2, 696, 655, 3, 2, 2, 2, 696, 666, 3, 2, 2, 2, 696, 673, 3, 2, 2, 2, 696, 688, 3, 2, 2, 2, 697, 92, 3, 2, 2, 2, 698, 699, 5, 319, 155, 2, 699, 700, 5, 365, 178, 2, 700, 94, 3, 2, 2, 2, 701, 702, 5, 317, 154, 2, 702, 703, 5, 343, 167, 2, 703, 704, 5, 323, 157, 2, 704, 96, 3, 2, 2, 2, 705, 706, 5, 317, 154, 2, 706, 707, 5, 353, 172, 2, 707, 708, 5, 321, 156, 2, 708, 98, 3, 2, 2, 2, 709, 710, 7, 63, 2, 2, 710, 100, 3, 2, 2, 2, 711, 712, 7, 46, 2, 2, 712, 102, 3, 2, 2, 2, 713, 714, 5, 323, 157, 2, 714, 715, 5, 325, 158, 2, 715, 716, 5, 353, 172, 2, 716, 717, 5, 321, 156, 2, 717, 104, 3, 2, 2, 2, 718, 719, 7, 48, 2, 2, 719, 106, 3, 2, 2, 2, 720, 721, 5, 327, 159, 2, 721, 722, 5, 317, 154, 2, 722, 723, 5, 339, 165, 2, 723, 724, 5, 353, 172, 2, 724, 725, 5, 325, 158, 2, 725, 108, 3, 2, 2, 2, 726, 727, 5, 327, 159, 2, 727, 728, 5, 333, 162, 2, 728, 729, 5, 351, 171, 2, 729, 730, 5, 353, 172, 2, 730, 731, 5, 355, 173, 2, 731, 110, 3, 2, 2, 2, 732, 733, 5, 339, 165, 2, 733, 734, 5, 317, 154, 2, 734, 735, 5, 353, 172, 2, 735, 736, 5, 355, 173, 2, 736, 112, 3, 2, 2, 2, 737, 738, 7, 42, 2, 2, 738, 114, 3, 2, 2, 2, 739, 740, 5, 333, 162, 2, 740, 741, 5, 343, 167, 2, 741, 116, 3, 2, 2, 2, 742, 743, 5, 333, 162, 2, 743, 744, 5, 353, 172, 2, 744, 118, 3, 2, 2, 2, 745, 746, 5, 339, 165, 2, 746, 747, 5, 333, 162, 2, 747, 748, 5, 337, 164, 2, 748, 749, 5, 325, 158, 2, 749, 120, 3, 2, 2, 2, 750, 751, 5, 343, 167, 2, 751, 752, 5, 345, 168, 2, 752, 753, 5, 355, 173, 2, 753, 122, 3, 2, 2, 2, 754, 755, 5, 343, 167, 2, 755, 756, 5, 357, 174, 2, 756, 757, 5, 339, 165, 2, 757, 758, 5, 339, 165, 2, 758, 124, 3, 2, 2, 2, 759, 760, 5, 343, 167, 2, 760, 761, 5, 357, 174, 2, 761, 762, 5, 339, 165, 2, 762, 763, 5, 339, 165, 2, 763, 764, 5, 353, 172, 2, 764, 126, 3, 2, 2, 2, 765, 766, 5, 345, 168, 2, 766, 767, 5, 351, 171, 2, 767, 128, 3, 2, 2, 2, 768, 769, 7, 65, 2, 2, 769, 130, 3, 2, 2, 2, 770, 771, 5, 351, 171, 2, 771, 772, 5, 339, 165, 2, 772, 773, 5, 333, 162, 2, 773, 774, 5, 337, 164, 2, 774, 775, 5, 325, 158, 2, 775, 132, 3, 2, 2, 2, 776, 777, 7, 43, 2, 2, 777, 134, 3, 2, 2, 2, 778, 779, 5, 355, 173, 2, 779, 780, 5, 351, 171, 2, 780, 781, 5, 357, 174, 2, 781, 782, 5, 325, 158, 2, 782, 136, 3, 2, 2, 2, 783, 784, 7, 63, 2, 2, 784, 785, 7, 63, 2, 2, 785, 138, 3, 2, 2, 2, 786, 787, 7, 63, 2, 2, 787, 788, 7, 128, 2, 2, 788, 140, 3, 2, 2, 2, 789, 790, 7, 35, 2, 2, 790, 791, 7, 63, 2, 2, 791, 142, 3, 2, 2, 2, 792, 793, 7, 62, 2, 2, 793, 144, 3, 2, 2, 2, 794, 795, 7, 62, 2, 2, 795, 796, 7, 63, 2, 2, 796, 146, 3, 2, 2, 2, 797, 798, 7, 64, 2, 2, 798, 148, 3, 2, 2, 2, 799, 800, 7, 64, 2, 2, 800, 801, 7, 63, 2, 2, 801, 150, 3, 2, 2, 2, 802, 803, 7, 45, 2, 2, 803, 152, 3, 2, 2, 2, 804, 805, 7, 47, 2, 2, 805, 154, 3, 2, 2, 2, 806, 807, 7, 44, 2, 2, 807, 156, 3, 2, 2, 2, 808, 809, 7, 49, 2, 2, 809, 158, 3, 2, 2, 2, 810, 811, 7, 39, 2, 2, 811, 160, 3, 2, 2, 2, 812, 813, 7, 93, 2, 2, 813, 814, 3, 2, 2, 2, 814, 815, 8, 76, 2, 2, 815, 816, 8, 76, 2, 2, 816, 162, 3, 2, 2, 2, 817, 818, 7, 95, 2, 2, 818, 819, 3, 2, 2, 2, 819, 820, 8, 77, 14, 2, 820, 821, 8, 77, 14, 2, 821, 164, 3, 2, 2, 2, 822, 826, 5, 69, 30, 2, 823, 825, 5, 85, 38, 2, 824, 823, 3, 2, 2, 2, 825, 828, 3, 2, 2, 2, 826, 824, 3, 2, 2, 2, 826, 827, 3, 2, 2, 2, 827, 839, 3, 2, 2, 2, 828, 826, 3, 2, 2, 2, 829, 832, 5, 83, 37, 2, 830, 832, 5, 77, 34, 2, 831, 829, 3, 2, 2, 2, 831, 830, 3, 2, 2, 2, 832, 834, 3, 2, 2, 2, 833, 835, 5, 85, 38, 2, 834, 833, 3, 2, 2, 2, 835, 836, 3, 2, 2, 2, 836, 834, 3, 2, 2, 2, 836, 837, 3, 2, 2, 2, 837, 839, 3, 2, 2, 2, 838, 822, 3, 2, 2, 2, 838, 831, 3, 2, 2, 2, 839, 166, 3, 2, 2, 2, 840, 842, 5, 79, 35, 2, 841, 843, 5, 81, 36, 2, 842, 841, 3, 2, 2, 2, 843, 844, 3, 2, 2, 2, 844, 842, 3, 2, 2, 2, 844, 845, 3, 2, 2, 2, 845, 846, 3, 2, 2, 2, 846, 847, 5, 79, 35, 2, 847, 168, 3, 2, 2, 2, 848, 849, 5, 167, 79, 2, 849, 170, 3, 2, 2, 2, 850, 851, 5, 49, 20, 2, 851, 852, 3, 2, 2, 2, 852, 853, 8, 81, 10, 2, 853, 172, 3, 2, 2, 2, 854, 855, 5, 51, 21, 2, 855, 856, 3, 2, 2, 2, 856, 857, 8, 82, 10, 2, 857, 174, 3, 2, 2, 2, 858, 859, 5, 53, 22, 2, 859, 860, 3, 2, 2, 2, 860, 861, 8, 83, 10, 2, 861, 176, 3, 2, 2, 2, 862, 863, 5, 65, 28, 2, 863, 864, 3, 2, 2, 2, 864, 865, 8, 84, 13, 2, 865, 866, 8, 84, 14, 2, 866, 178, 3, 2, 2, 2, 867, 868, 5, 161, 76, 2, 868, 869, 3, 2, 2, 2, 869, 870, 8, 85, 11, 2, 870, 180, 3, 2, 2, 2, 871, 872, 5, 163, 77, 2, 872, 873, 3, 2, 2, 2, 873, 874, 8, 86, 15, 2, 874, 182, 3, 2, 2, 2, 875, 876, 5, 101, 46, 2, 876, 877, 3, 2, 2, 2, 877, 878, 8, 87, 16, 2, 878, 184, 3, 2, 2, 2, 879, 880, 5, 99, 45, 2, 880, 881, 3, 2, 2, 2, 881, 882, 8, 88, 17, 2, 882, 186, 3, 2, 2, 2, 883, 884, 5, 341, 166, 2, 884, 885, 5, 325, 158, 2, 885, 886, 5, 355, 173, 2, 886, 887, 5, 317, 154, 2, 887, 888, 5, 323, 157, 2, 888, 889, 5, 317, 154, 2, 889, 890, 5, 355, 173, 2, 890, 891, 5, 317, 154, 2, 891, 188, 3, 2, 2, 2, 892, 896, 10, 12, 2, 2, 893, 894, 7, 49, 2, 2, 894, 896, 10, 13, 2, 2, 895, 892, 3, 2, 2, 2, 895, 893, 3, 2, 2, 2, 896, 190, 3, 2, 2, 2, 897, 899, 5, 189, 90, 2, 898, 897, 3, 2, 2, 2, 899, 900, 3, 2, 2, 2, 900, 898, 3, 2, 2, 2, 900, 901, 3, 2, 2, 2, 901, 192, 3, 2, 2, 2, 902, 903, 5, 169, 80, 2, 903, 904, 3, 2, 2, 2, 904, 905, 8, 92, 18, 2, 905, 194, 3, 2, 2, 2, 906, 907, 5, 49, 20, 2, 907, 908, 3, 2, 2, 2, 908, 909, 8, 93, 10, 2, 909, 196, 3, 2, 2, 2, 910, 911, 5, 51, 21, 2, 911, 912, 3, 2, 2, 2, 912, 913, 8, 94, 10, 2, 913, 198, 3, 2, 2, 2, 914, 915, 5, 53, 22, 2, 915, 916, 3, 2, 2, 2, 916, 917, 8, 95, 10, 2, 917, 200, 3, 2, 2, 2, 918, 919, 5, 65, 28, 2, 919, 920, 3, 2, 2, 2, 920, 921, 8, 96, 13, 2, 921, 922, 8, 96, 14, 2, 922, 202, 3, 2, 2, 2, 923, 924, 5, 105, 48, 2, 924, 925, 3, 2, 2, 2, 925, 926, 8, 97, 19, 2, 926, 204, 3, 2, 2, 2, 927, 928, 5, 101, 46, 2, 928, 929, 3, 2, 2, 2, 929, 930, 8, 98, 16, 2, 930, 206, 3, 2, 2, 2, 931, 936, 5, 69, 30, 2, 932, 936, 5, 67, 29, 2, 933, 936, 5, 83, 37, 2, 934, 936, 5, 155, 73, 2, 935, 931, 3, 2, 2, 2, 935, 932, 3, 2, 2, 2, 935, 933, 3, 2, 2, 2, 935, 934, 3, 2, 2, 2, 936, 208, 3, 2, 2, 2, 937, 940, 5, 69, 30, 2, 938, 940, 5, 155, 73, 2, 939, 937, 3, 2, 2, 2, 939, 938, 3, 2, 2, 2, 940, 944, 3, 2, 2, 2, 941, 943, 5, 207, 99, 2, 942, 941, 3, 2, 2, 2, 943, 946, 3, 2, 2, 2, 944, 942, 3, 2, 2, 2, 944, 945, 3, 2, 2, 2, 945, 957, 3, 2, 2, 2, 946, 944, 3, 2, 2, 2, 947, 950, 5, 83, 37, 2, 948, 950, 5, 77, 34, 2, 949, 947, 3, 2, 2, 2, 949, 948, 3, 2, 2, 2, 950, 952, 3, 2, 2, 2, 951, 953, 5, 207, 99, 2, 952, 951, 3, 2, 2, 2, 953, 954, 3, 2, 2, 2, 954, 952, 3, 2, 2, 2, 954, 955, 3, 2, 2, 2, 955, 957, 3, 2, 2, 2, 956, 939, 3, 2, 2, 2, 956, 949, 3, 2, 2, 2, 957, 210, 3, 2, 2, 2, 958, 961, 5, 209, 100, 2, 959, 961, 5, 167, 79, 2, 960, 958, 3, 2, 2, 2, 960, 959, 3, 2, 2, 2, 961, 962, 3, 2, 2, 2, 962, 960, 3, 2, 2, 2, 962, 963, 3, 2, 2, 2, 963, 212, 3, 2, 2, 2, 964, 965, 5, 49, 20, 2, 965, 966, 3, 2, 2, 2, 966, 967, 8, 102, 10, 2, 967, 214, 3, 2, 2, 2, 968, 969, 5, 51, 21, 2, 969, 970, 3, 2, 2, 2, 970, 971, 8, 103, 10, 2, 971, 216, 3, 2, 2, 2, 972, 973, 5, 53, 22, 2, 973, 974, 3, 2, 2, 2, 974, 975, 8, 104, 10, 2, 975, 218, 3, 2, 2, 2, 976, 977, 5, 65, 28, 2, 977, 978, 3, 2, 2, 2, 978, 979, 8, 105, 13, 2, 979, 980, 8, 105, 14, 2, 980, 220, 3, 2, 2, 2, 981, 982, 5, 99, 45, 2, 982, 983, 3, 2, 2, 2, 983, 984, 8, 106, 17, 2, 984, 222, 3, 2, 2, 2, 985, 986, 5, 101, 46, 2, 986, 987, 3, 2, 2, 2, 987, 988, 8, 107, 16, 2, 988, 224, 3, 2, 2, 2, 989, 990, 5, 105, 48, 2, 990, 991, 3, 2, 2, 2, 991, 992, 8, 108, 19, 2, 992, 226, 3, 2, 2, 2, 993, 994, 5, 317, 154, 2, 994, 995, 5, 353, 172, 2, 995, 228, 3, 2, 2, 2, 996, 997, 5, 211, 101, 2, 997, 998, 3, 2, 2, 2, 998, 999, 8, 110, 20, 2, 999, 230, 3, 2, 2, 2, 1000, 1001, 5, 49, 20, 2, 1001, 1002, 3, 2, 2, 2, 1002, 1003, 8, 111, 10, 2, 1003, 232, 3, 2, 2, 2, 1004, 1005, 5, 51, 21, 2, 1005, 1006, 3, 2, 2, 2, 1006, 1007, 8, 112, 10, 2, 1007, 234, 3, 2, 2, 2, 1008, 1009, 5, 53, 22, 2, 1009, 1010, 3, 2, 2, 2, 1010, 1011, 8, 113, 10, 2, 1011, 236, 3, 2, 2, 2, 1012, 1013, 5, 65, 28, 2, 1013, 1014, 3, 2, 2, 2, 1014, 1015, 8, 114, 13, 2, 1015, 1016, 8, 114, 14, 2, 1016, 238, 3, 2, 2, 2, 1017, 1018, 5, 161, 76, 2, 1018, 1019, 3, 2, 2, 2, 1019, 1020, 8, 115, 11, 2, 1020, 1021, 8, 115, 21, 2, 1021, 240, 3, 2, 2, 2, 1022, 1023, 5, 345, 168, 2, 1023, 1024, 5, 343, 167, 2, 1024, 1025, 3, 2, 2, 2, 1025, 1026, 8, 116, 22, 2, 1026, 242, 3, 2, 2, 2, 1027, 1028, 5, 361, 176, 2, 1028, 1029, 5, 333, 162, 2, 1029, 1030, 5, 355, 173, 2, 1030, 1031, 5, 331, 161, 2, 1031, 1032, 3, 2, 2, 2, 1032, 1033, 8, 117, 22, 2, 1033, 244, 3, 2, 2, 2, 1034, 1035, 10, 14, 2, 2, 1035, 246, 3, 2, 2, 2, 1036, 1038, 5, 245, 118, 2, 1037, 1036, 3, 2, 2, 2, 1038, 1039, 3, 2, 2, 2, 1039, 1037, 3, 2, 2, 2, 1039, 1040, 3, 2, 2, 2, 1040, 1041, 3, 2, 2, 2, 1041, 1042, 5, 307, 149, 2, 1042, 1044, 3, 2, 2, 2, 1043, 1037, 3, 2, 2, 2, 1043, 1044, 3, 2, 2, 2, 1044, 1046, 3, 2, 2, 2, 1045, 1047, 5, 245, 118, 2, 1046, 1045, 3, 2, 2, 2, 1047, 1048, 3, 2, 2, 2, 1048, 1046, 3, 2, 2, 2, 1048, 1049, 3, 2, 2, 2, 1049, 248, 3, 2, 2, 2, 1050, 1051, 5, 169, 80, 2, 1051, 1052, 3, 2, 2, 2, 1052, 1053, 8, 120, 18, 2, 1053, 250, 3, 2, 2, 2, 1054, 1055, 5, 247, 119, 2, 1055, 1056, 3, 2, 2, 2, 1056, 1057, 8, 121, 23, 2, 1057, 252, 3, 2, 2, 2, 1058, 1059, 5, 49, 20, 2, 1059, 1060, 3, 2, 2, 2, 1060, 1061, 8, 122, 10, 2, 1061, 254, 3, 2, 2, 2, 1062, 1063, 5, 51, 21, 2, 1063, 1064, 3, 2, 2, 2, 1064, 1065, 8, 123, 10, 2, 1065, 256, 3, 2, 2, 2, 1066, 1067, 5, 53, 22, 2, 1067, 1068, 3, 2, 2, 2, 1068, 1069, 8, 124, 10, 2, 1069, 258, 3, 2, 2, 2, 1070, 1071, 5, 65, 28, 2, 1071, 1072, 3, 2, 2, 2, 1072, 1073, 8, 125, 13, 2, 1073, 1074, 8, 125, 14, 2, 1074, 1075, 8, 125, 14, 2, 1075, 260, 3, 2, 2, 2, 1076, 1077, 5, 99, 45, 2, 1077, 1078, 3, 2, 2, 2, 1078, 1079, 8, 126, 17, 2, 1079, 262, 3, 2, 2, 2, 1080, 1081, 5, 101, 46, 2, 1081, 1082, 3, 2, 2, 2, 1082, 1083, 8, 127, 16, 2, 1083, 264, 3, 2, 2, 2, 1084, 1085, 5, 105, 48, 2, 1085, 1086, 3, 2, 2, 2, 1086, 1087, 8, 128, 19, 2, 1087, 266, 3, 2, 2, 2, 1088, 1089, 5, 243, 117, 2, 1089, 1090, 3, 2, 2, 2, 1090, 1091, 8, 129, 24, 2, 1091, 268, 3, 2, 2, 2, 1092, 1093, 5, 211, 101, 2, 1093, 1094, 3, 2, 2, 2, 1094, 1095, 8, 130, 20, 2, 1095, 270, 3, 2, 2, 2, 1096, 1097, 5, 169, 80, 2, 1097, 1098, 3, 2, 2, 2, 1098, 1099, 8, 131, 18, 2, 1099, 272, 3, 2, 2, 2, 1100, 1101, 5, 49, 20, 2, 1101, 1102, 3, 2, 2, 2, 1102, 1103, 8, 132, 10, 2, 1103, 274, 3, 2, 2, 2, 1104, 1105, 5, 51, 21, 2, 1105, 1106, 3, 2, 2, 2, 1106, 1107, 8, 133, 10, 2, 1107, 276, 3, 2, 2, 2, 1108, 1109, 5, 53, 22, 2, 1109, 1110, 3, 2, 2, 2, 1110, 1111, 8, 134, 10, 2, 1111, 278, 3, 2, 2, 2, 1112, 1113, 5, 65, 28, 2, 1113, 1114, 3, 2, 2, 2, 1114, 1115, 8, 135, 13, 2, 1115, 1116, 8, 135, 14, 2, 1116, 280, 3, 2, 2, 2, 1117, 1118, 5, 105, 48, 2, 1118, 1119, 3, 2, 2, 2, 1119, 1120, 8, 136, 19, 2, 1120, 282, 3, 2, 2, 2, 1121, 1122, 5, 169, 80, 2, 1122, 1123, 3, 2, 2, 2, 1123, 1124, 8, 137, 18, 2, 1124, 284, 3, 2, 2, 2, 1125, 1126, 5, 165, 78, 2, 1126, 1127, 3, 2, 2, 2, 1127, 1128, 8, 138, 25, 2, 1128, 286, 3, 2, 2, 2, 1129, 1130, 5, 49, 20, 2, 1130, 1131, 3, 2, 2, 2, 1131, 1132, 8, 139, 10, 2, 1132, 288, 3, 2, 2, 2, 1133, 1134, 5, 51, 21, 2, 1134, 1135, 3, 2, 2, 2, 1135, 1136, 8, 140, 10, 2, 1136, 290, 3, 2, 2, 2, 1137, 1138, 5, 53, 22, 2, 1138, 1139, 3, 2, 2, 2, 1139, 1140, 8, 141, 10, 2, 1140, 292, 3, 2, 2, 2, 1141, 1142, 5, 65, 28, 2, 1142, 1143, 3, 2, 2, 2, 1143, 1144, 8, 142, 13, 2, 1144, 1145, 8, 142, 14, 2, 1145, 294, 3, 2, 2, 2, 1146, 1147, 5, 333, 162, 2, 1147, 1148, 5, 343, 167, 2, 1148, 1149, 5, 327, 159, 2, 1149, 1150, 5, 345, 168, 2, 1150, 296, 3, 2, 2, 2, 1151, 1152, 5, 327, 159, 2, 1152, 1153, 5, 357, 174, 2, 1153, 1154, 5, 343, 167, 2, 1154, 1155, 5, 321, 156, 2, 1155, 1156, 5, 355, 173, 2, 1156, 1157, 5, 333, 162, 2, 1157, 1158, 5, 345, 168, 2, 1158, 1159, 5, 343, 167, 2, 1159, 1160, 5, 353, 172, 2, 1160, 298, 3, 2, 2, 2, 1161, 1162, 5, 49, 20, 2, 1162, 1163, 3, 2, 2, 2, 1163, 1164, 8, 145, 10, 2, 1164, 300, 3, 2, 2, 2, 1165, 1166, 5, 51, 21, 2, 1166, 1167, 3, 2, 2, 2, 1167, 1168, 8, 146, 10, 2, 1168, 302, 3, 2, 2, 2, 1169, 1170, 5, 53, 22, 2, 1170, 1171, 3, 2, 2, 2, 1171, 1172, 8, 147, 10, 2, 1172, 304, 3, 2, 2, 2, 1173, 1174, 5, 163, 77, 2, 1174, 1175, 3, 2, 2, 2, 1175, 1176, 8, 148, 15, 2, 1176, 1177, 8, 148, 14, 2, 1177, 306, 3, 2, 2, 2, 1178, 1179, 7, 60, 2, 2, 1179, 308, 3, 2, 2, 2, 1180, 1186, 5, 77, 34, 2, 1181, 1186, 5, 67, 29, 2, 1182, 1186, 5, 105, 48, 2, 1183, 1186, 5, 69, 30, 2, 1184, 1186, 5, 83, 37, 2, 1185, 1180, 3, 2, 2, 2, 1185, 1181, 3, 2, 2, 2, 1185, 1182, 3, 2, 2, 2, 1185, 1183, 3, 2, 2, 2, 1185, 1184, 3, 2, 2, 2, 1186, 1187, 3, 2, 2, 2, 1187, 1185, 3, 2, 2, 2, 1187, 1188, 3, 2, 2, 2, 1188, 310, 3, 2, 2, 2, 1189, 1190, 5, 49, 20, 2, 1190, 1191, 3, 2, 2, 2, 1191, 1192, 8, 151, 10, 2, 1192, 312, 3, 2, 2, 2, 1193, 1194, 5, 51, 21, 2, 1194, 1195, 3, 2, 2, 2, 1195, 1196, 8, 152, 10, 2, 1196, 314, 3, 2, 2, 2, 1197, 1198, 5, 53, 22, 2, 1198, 1199, 3, 2, 2, 2, 1199, 1200, 8, 153, 10, 2, 1200, 316, 3, 2, 2, 2, 1201, 1202, 9, 15, 2, 2, 1202, 318, 3, 2, 2, 2, 1203, 1204, 9, 16, 2, 2, 1204, 320, 3, 2, 2, 2, 1205, 1206, 9, 17, 2, 2, 1206, 322, 3, 2, 2, 2, 1207, 1208, 9, 18, 2, 2, 1208, 324, 3, 2, 2, 2, 1209, 1210, 9, 9, 2, 2, 1210, 326, 3, 2, 2, 2, 1211, 1212, 9, 19, 2, 2, 1212, 328, 3, 2, 2, 2, 1213, 1214, 9, 20, 2, 2, 1214, 330, 3, 2, 2, 2, 1215, 1216, 9, 21, 2, 2, 1216, 332, 3, 2, 2, 2, 1217, 1218, 9, 22, 2, 2, 1218, 334, 3, 2, 2, 2, 1219, 1220, 9, 23, 2, 2, 1220, 336, 3, 2, 2, 2, 1221, 1222, 9, 24, 2, 2, 1222, 338, 3, 2, 2, 2, 1223, 1224, 9, 25, 2, 2, 1224, 340, 3, 2, 2, 2, 1225, 1226, 9, 26, 2, 2, 1226, 342, 3, 2, 2, 2, 1227, 1228, 9, 27, 2, 2, 1228, 344, 3, 2, 2, 2, 1229, 1230, 9, 28, 2, 2, 1230, 346, 3, 2, 2, 2, 1231, 1232, 9, 29, 2, 2, 1232, 348, 3, 2, 2, 2, 1233, 1234, 9, 30, 2, 2, 1234, 350, 3, 2, 2, 2, 1235, 1236, 9, 31, 2, 2, 1236, 352, 3, 2, 2, 2, 1237, 1238, 9, 32, 2, 2, 1238, 354, 3, 2, 2, 2, 1239, 1240, 9, 33, 2, 2, 1240, 356, 3, 2, 2, 2, 1241, 1242, 9, 34, 2, 2, 1242, 358, 3, 2, 2, 2, 1243, 1244, 9, 35, 2, 2, 1244, 360, 3, 2, 2, 2, 1245, 1246, 9, 36, 2, 2, 1246, 362, 3, 2, 2, 2, 1247, 1248, 9, 37, 2, 2, 1248, 364, 3, 2, 2, 2, 1249, 1250, 9, 38, 2, 2, 1250, 366, 3, 2, 2, 2, 1251, 1252, 9, 39, 2, 2, 1252, 368, 3, 2, 2, 2, 59, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 515, 525, 529, 532, 541, 543, 554, 595, 600, 609, 616, 621, 623, 634, 642, 645, 647, 652, 657, 663, 670, 675, 681, 684, 692, 696, 826, 831, 836, 838, 844, 895, 900, 935, 939, 944, 949, 954, 956, 960, 962, 1039, 1043, 1048, 1185, 1187, 26, 7, 4, 2, 7, 6, 2, 7, 8, 2, 7, 3, 2, 7, 5, 2, 7, 10, 2, 7, 7, 2, 7, 11, 2, 2, 3, 2, 9, 65, 2, 7, 2, 2, 9, 27, 2, 6, 2, 2, 9, 66, 2, 9, 35, 2, 9, 34, 2, 9, 68, 2, 9, 37, 2, 9, 77, 2, 7, 12, 2, 7, 9, 2, 9, 87, 2, 9, 86, 2, 9, 67, 2] \ No newline at end of file +[4, 0, 104, 1251, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 4, 17, 512, 8, 17, 11, 17, 12, 17, 513, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 522, 8, 18, 10, 18, 12, 18, 525, 9, 18, 1, 18, 3, 18, 528, 8, 18, 1, 18, 3, 18, 531, 8, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 5, 19, 540, 8, 19, 10, 19, 12, 19, 543, 9, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 4, 20, 551, 8, 20, 11, 20, 12, 20, 552, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 1, 31, 3, 31, 594, 8, 31, 1, 31, 4, 31, 597, 8, 31, 11, 31, 12, 31, 598, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 3, 34, 608, 8, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 3, 36, 615, 8, 36, 1, 37, 1, 37, 1, 37, 5, 37, 620, 8, 37, 10, 37, 12, 37, 623, 9, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 631, 8, 37, 10, 37, 12, 37, 634, 9, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 641, 8, 37, 1, 37, 3, 37, 644, 8, 37, 3, 37, 646, 8, 37, 1, 38, 4, 38, 649, 8, 38, 11, 38, 12, 38, 650, 1, 39, 4, 39, 654, 8, 39, 11, 39, 12, 39, 655, 1, 39, 1, 39, 5, 39, 660, 8, 39, 10, 39, 12, 39, 663, 9, 39, 1, 39, 1, 39, 4, 39, 667, 8, 39, 11, 39, 12, 39, 668, 1, 39, 4, 39, 672, 8, 39, 11, 39, 12, 39, 673, 1, 39, 1, 39, 5, 39, 678, 8, 39, 10, 39, 12, 39, 681, 9, 39, 3, 39, 683, 8, 39, 1, 39, 1, 39, 1, 39, 1, 39, 4, 39, 689, 8, 39, 11, 39, 12, 39, 690, 1, 39, 1, 39, 3, 39, 695, 8, 39, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 70, 1, 70, 1, 71, 1, 71, 1, 72, 1, 72, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 5, 76, 823, 8, 76, 10, 76, 12, 76, 826, 9, 76, 1, 76, 1, 76, 3, 76, 830, 8, 76, 1, 76, 4, 76, 833, 8, 76, 11, 76, 12, 76, 834, 3, 76, 837, 8, 76, 1, 77, 1, 77, 4, 77, 841, 8, 77, 11, 77, 12, 77, 842, 1, 77, 1, 77, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 3, 88, 894, 8, 88, 1, 89, 4, 89, 897, 8, 89, 11, 89, 12, 89, 898, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 3, 97, 934, 8, 97, 1, 98, 1, 98, 3, 98, 938, 8, 98, 1, 98, 5, 98, 941, 8, 98, 10, 98, 12, 98, 944, 9, 98, 1, 98, 1, 98, 3, 98, 948, 8, 98, 1, 98, 4, 98, 951, 8, 98, 11, 98, 12, 98, 952, 3, 98, 955, 8, 98, 1, 99, 1, 99, 4, 99, 959, 8, 99, 11, 99, 12, 99, 960, 1, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 117, 4, 117, 1036, 8, 117, 11, 117, 12, 117, 1037, 1, 117, 1, 117, 3, 117, 1042, 8, 117, 1, 117, 4, 117, 1045, 8, 117, 11, 117, 12, 117, 1046, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 4, 148, 1184, 8, 148, 11, 148, 12, 148, 1185, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 153, 1, 153, 1, 154, 1, 154, 1, 155, 1, 155, 1, 156, 1, 156, 1, 157, 1, 157, 1, 158, 1, 158, 1, 159, 1, 159, 1, 160, 1, 160, 1, 161, 1, 161, 1, 162, 1, 162, 1, 163, 1, 163, 1, 164, 1, 164, 1, 165, 1, 165, 1, 166, 1, 166, 1, 167, 1, 167, 1, 168, 1, 168, 1, 169, 1, 169, 1, 170, 1, 170, 1, 171, 1, 171, 1, 172, 1, 172, 1, 173, 1, 173, 1, 174, 1, 174, 1, 175, 1, 175, 1, 176, 1, 176, 1, 177, 1, 177, 2, 541, 632, 0, 178, 11, 1, 13, 2, 15, 3, 17, 4, 19, 5, 21, 6, 23, 7, 25, 8, 27, 9, 29, 10, 31, 11, 33, 12, 35, 13, 37, 14, 39, 15, 41, 16, 43, 17, 45, 18, 47, 19, 49, 20, 51, 21, 53, 0, 55, 0, 57, 22, 59, 23, 61, 24, 63, 25, 65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 77, 0, 79, 0, 81, 0, 83, 0, 85, 26, 87, 27, 89, 28, 91, 29, 93, 30, 95, 31, 97, 32, 99, 33, 101, 34, 103, 35, 105, 36, 107, 37, 109, 38, 111, 39, 113, 40, 115, 41, 117, 42, 119, 43, 121, 44, 123, 45, 125, 46, 127, 47, 129, 48, 131, 49, 133, 50, 135, 51, 137, 52, 139, 53, 141, 54, 143, 55, 145, 56, 147, 57, 149, 58, 151, 59, 153, 60, 155, 61, 157, 62, 159, 63, 161, 64, 163, 65, 165, 0, 167, 66, 169, 67, 171, 68, 173, 69, 175, 0, 177, 0, 179, 0, 181, 0, 183, 0, 185, 70, 187, 0, 189, 71, 191, 0, 193, 72, 195, 73, 197, 74, 199, 0, 201, 0, 203, 0, 205, 0, 207, 0, 209, 75, 211, 76, 213, 77, 215, 78, 217, 0, 219, 0, 221, 0, 223, 0, 225, 79, 227, 0, 229, 80, 231, 81, 233, 82, 235, 0, 237, 0, 239, 83, 241, 84, 243, 0, 245, 85, 247, 0, 249, 0, 251, 86, 253, 87, 255, 88, 257, 0, 259, 0, 261, 0, 263, 0, 265, 0, 267, 0, 269, 0, 271, 89, 273, 90, 275, 91, 277, 0, 279, 0, 281, 0, 283, 0, 285, 92, 287, 93, 289, 94, 291, 0, 293, 95, 295, 96, 297, 97, 299, 98, 301, 99, 303, 0, 305, 100, 307, 101, 309, 102, 311, 103, 313, 104, 315, 0, 317, 0, 319, 0, 321, 0, 323, 0, 325, 0, 327, 0, 329, 0, 331, 0, 333, 0, 335, 0, 337, 0, 339, 0, 341, 0, 343, 0, 345, 0, 347, 0, 349, 0, 351, 0, 353, 0, 355, 0, 357, 0, 359, 0, 361, 0, 363, 0, 365, 0, 11, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 38, 6, 0, 9, 10, 13, 13, 32, 32, 47, 47, 91, 91, 93, 93, 2, 0, 10, 10, 13, 13, 3, 0, 9, 10, 13, 13, 32, 32, 1, 0, 48, 57, 2, 0, 65, 90, 97, 122, 5, 0, 34, 34, 92, 92, 110, 110, 114, 114, 116, 116, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 1, 0, 96, 96, 10, 0, 9, 10, 13, 13, 32, 32, 44, 44, 47, 47, 61, 61, 91, 91, 93, 93, 96, 96, 124, 124, 2, 0, 42, 42, 47, 47, 11, 0, 9, 10, 13, 13, 32, 32, 34, 35, 44, 44, 47, 47, 58, 58, 60, 60, 62, 63, 92, 92, 124, 124, 2, 0, 65, 65, 97, 97, 2, 0, 66, 66, 98, 98, 2, 0, 67, 67, 99, 99, 2, 0, 68, 68, 100, 100, 2, 0, 70, 70, 102, 102, 2, 0, 71, 71, 103, 103, 2, 0, 72, 72, 104, 104, 2, 0, 73, 73, 105, 105, 2, 0, 74, 74, 106, 106, 2, 0, 75, 75, 107, 107, 2, 0, 76, 76, 108, 108, 2, 0, 77, 77, 109, 109, 2, 0, 78, 78, 110, 110, 2, 0, 79, 79, 111, 111, 2, 0, 80, 80, 112, 112, 2, 0, 81, 81, 113, 113, 2, 0, 82, 82, 114, 114, 2, 0, 83, 83, 115, 115, 2, 0, 84, 84, 116, 116, 2, 0, 85, 85, 117, 117, 2, 0, 86, 86, 118, 118, 2, 0, 87, 87, 119, 119, 2, 0, 88, 88, 120, 120, 2, 0, 89, 89, 121, 121, 2, 0, 90, 90, 122, 122, 1253, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 1, 53, 1, 0, 0, 0, 1, 55, 1, 0, 0, 0, 1, 57, 1, 0, 0, 0, 1, 59, 1, 0, 0, 0, 1, 61, 1, 0, 0, 0, 2, 63, 1, 0, 0, 0, 2, 85, 1, 0, 0, 0, 2, 87, 1, 0, 0, 0, 2, 89, 1, 0, 0, 0, 2, 91, 1, 0, 0, 0, 2, 93, 1, 0, 0, 0, 2, 95, 1, 0, 0, 0, 2, 97, 1, 0, 0, 0, 2, 99, 1, 0, 0, 0, 2, 101, 1, 0, 0, 0, 2, 103, 1, 0, 0, 0, 2, 105, 1, 0, 0, 0, 2, 107, 1, 0, 0, 0, 2, 109, 1, 0, 0, 0, 2, 111, 1, 0, 0, 0, 2, 113, 1, 0, 0, 0, 2, 115, 1, 0, 0, 0, 2, 117, 1, 0, 0, 0, 2, 119, 1, 0, 0, 0, 2, 121, 1, 0, 0, 0, 2, 123, 1, 0, 0, 0, 2, 125, 1, 0, 0, 0, 2, 127, 1, 0, 0, 0, 2, 129, 1, 0, 0, 0, 2, 131, 1, 0, 0, 0, 2, 133, 1, 0, 0, 0, 2, 135, 1, 0, 0, 0, 2, 137, 1, 0, 0, 0, 2, 139, 1, 0, 0, 0, 2, 141, 1, 0, 0, 0, 2, 143, 1, 0, 0, 0, 2, 145, 1, 0, 0, 0, 2, 147, 1, 0, 0, 0, 2, 149, 1, 0, 0, 0, 2, 151, 1, 0, 0, 0, 2, 153, 1, 0, 0, 0, 2, 155, 1, 0, 0, 0, 2, 157, 1, 0, 0, 0, 2, 159, 1, 0, 0, 0, 2, 161, 1, 0, 0, 0, 2, 163, 1, 0, 0, 0, 2, 167, 1, 0, 0, 0, 2, 169, 1, 0, 0, 0, 2, 171, 1, 0, 0, 0, 2, 173, 1, 0, 0, 0, 3, 175, 1, 0, 0, 0, 3, 177, 1, 0, 0, 0, 3, 179, 1, 0, 0, 0, 3, 181, 1, 0, 0, 0, 3, 183, 1, 0, 0, 0, 3, 185, 1, 0, 0, 0, 3, 189, 1, 0, 0, 0, 3, 191, 1, 0, 0, 0, 3, 193, 1, 0, 0, 0, 3, 195, 1, 0, 0, 0, 3, 197, 1, 0, 0, 0, 4, 199, 1, 0, 0, 0, 4, 201, 1, 0, 0, 0, 4, 203, 1, 0, 0, 0, 4, 209, 1, 0, 0, 0, 4, 211, 1, 0, 0, 0, 4, 213, 1, 0, 0, 0, 4, 215, 1, 0, 0, 0, 5, 217, 1, 0, 0, 0, 5, 219, 1, 0, 0, 0, 5, 221, 1, 0, 0, 0, 5, 223, 1, 0, 0, 0, 5, 225, 1, 0, 0, 0, 5, 227, 1, 0, 0, 0, 5, 229, 1, 0, 0, 0, 5, 231, 1, 0, 0, 0, 5, 233, 1, 0, 0, 0, 6, 235, 1, 0, 0, 0, 6, 237, 1, 0, 0, 0, 6, 239, 1, 0, 0, 0, 6, 241, 1, 0, 0, 0, 6, 245, 1, 0, 0, 0, 6, 247, 1, 0, 0, 0, 6, 249, 1, 0, 0, 0, 6, 251, 1, 0, 0, 0, 6, 253, 1, 0, 0, 0, 6, 255, 1, 0, 0, 0, 7, 257, 1, 0, 0, 0, 7, 259, 1, 0, 0, 0, 7, 261, 1, 0, 0, 0, 7, 263, 1, 0, 0, 0, 7, 265, 1, 0, 0, 0, 7, 267, 1, 0, 0, 0, 7, 269, 1, 0, 0, 0, 7, 271, 1, 0, 0, 0, 7, 273, 1, 0, 0, 0, 7, 275, 1, 0, 0, 0, 8, 277, 1, 0, 0, 0, 8, 279, 1, 0, 0, 0, 8, 281, 1, 0, 0, 0, 8, 283, 1, 0, 0, 0, 8, 285, 1, 0, 0, 0, 8, 287, 1, 0, 0, 0, 8, 289, 1, 0, 0, 0, 9, 291, 1, 0, 0, 0, 9, 293, 1, 0, 0, 0, 9, 295, 1, 0, 0, 0, 9, 297, 1, 0, 0, 0, 9, 299, 1, 0, 0, 0, 9, 301, 1, 0, 0, 0, 10, 303, 1, 0, 0, 0, 10, 305, 1, 0, 0, 0, 10, 307, 1, 0, 0, 0, 10, 309, 1, 0, 0, 0, 10, 311, 1, 0, 0, 0, 10, 313, 1, 0, 0, 0, 11, 367, 1, 0, 0, 0, 13, 377, 1, 0, 0, 0, 15, 384, 1, 0, 0, 0, 17, 393, 1, 0, 0, 0, 19, 400, 1, 0, 0, 0, 21, 410, 1, 0, 0, 0, 23, 417, 1, 0, 0, 0, 25, 424, 1, 0, 0, 0, 27, 438, 1, 0, 0, 0, 29, 445, 1, 0, 0, 0, 31, 453, 1, 0, 0, 0, 33, 465, 1, 0, 0, 0, 35, 474, 1, 0, 0, 0, 37, 480, 1, 0, 0, 0, 39, 487, 1, 0, 0, 0, 41, 494, 1, 0, 0, 0, 43, 502, 1, 0, 0, 0, 45, 511, 1, 0, 0, 0, 47, 517, 1, 0, 0, 0, 49, 534, 1, 0, 0, 0, 51, 550, 1, 0, 0, 0, 53, 556, 1, 0, 0, 0, 55, 561, 1, 0, 0, 0, 57, 566, 1, 0, 0, 0, 59, 570, 1, 0, 0, 0, 61, 574, 1, 0, 0, 0, 63, 578, 1, 0, 0, 0, 65, 582, 1, 0, 0, 0, 67, 584, 1, 0, 0, 0, 69, 586, 1, 0, 0, 0, 71, 589, 1, 0, 0, 0, 73, 591, 1, 0, 0, 0, 75, 600, 1, 0, 0, 0, 77, 602, 1, 0, 0, 0, 79, 607, 1, 0, 0, 0, 81, 609, 1, 0, 0, 0, 83, 614, 1, 0, 0, 0, 85, 645, 1, 0, 0, 0, 87, 648, 1, 0, 0, 0, 89, 694, 1, 0, 0, 0, 91, 696, 1, 0, 0, 0, 93, 699, 1, 0, 0, 0, 95, 703, 1, 0, 0, 0, 97, 707, 1, 0, 0, 0, 99, 709, 1, 0, 0, 0, 101, 711, 1, 0, 0, 0, 103, 716, 1, 0, 0, 0, 105, 718, 1, 0, 0, 0, 107, 724, 1, 0, 0, 0, 109, 730, 1, 0, 0, 0, 111, 735, 1, 0, 0, 0, 113, 737, 1, 0, 0, 0, 115, 740, 1, 0, 0, 0, 117, 743, 1, 0, 0, 0, 119, 748, 1, 0, 0, 0, 121, 752, 1, 0, 0, 0, 123, 757, 1, 0, 0, 0, 125, 763, 1, 0, 0, 0, 127, 766, 1, 0, 0, 0, 129, 768, 1, 0, 0, 0, 131, 774, 1, 0, 0, 0, 133, 776, 1, 0, 0, 0, 135, 781, 1, 0, 0, 0, 137, 784, 1, 0, 0, 0, 139, 787, 1, 0, 0, 0, 141, 790, 1, 0, 0, 0, 143, 792, 1, 0, 0, 0, 145, 795, 1, 0, 0, 0, 147, 797, 1, 0, 0, 0, 149, 800, 1, 0, 0, 0, 151, 802, 1, 0, 0, 0, 153, 804, 1, 0, 0, 0, 155, 806, 1, 0, 0, 0, 157, 808, 1, 0, 0, 0, 159, 810, 1, 0, 0, 0, 161, 815, 1, 0, 0, 0, 163, 836, 1, 0, 0, 0, 165, 838, 1, 0, 0, 0, 167, 846, 1, 0, 0, 0, 169, 848, 1, 0, 0, 0, 171, 852, 1, 0, 0, 0, 173, 856, 1, 0, 0, 0, 175, 860, 1, 0, 0, 0, 177, 865, 1, 0, 0, 0, 179, 869, 1, 0, 0, 0, 181, 873, 1, 0, 0, 0, 183, 877, 1, 0, 0, 0, 185, 881, 1, 0, 0, 0, 187, 893, 1, 0, 0, 0, 189, 896, 1, 0, 0, 0, 191, 900, 1, 0, 0, 0, 193, 904, 1, 0, 0, 0, 195, 908, 1, 0, 0, 0, 197, 912, 1, 0, 0, 0, 199, 916, 1, 0, 0, 0, 201, 921, 1, 0, 0, 0, 203, 925, 1, 0, 0, 0, 205, 933, 1, 0, 0, 0, 207, 954, 1, 0, 0, 0, 209, 958, 1, 0, 0, 0, 211, 962, 1, 0, 0, 0, 213, 966, 1, 0, 0, 0, 215, 970, 1, 0, 0, 0, 217, 974, 1, 0, 0, 0, 219, 979, 1, 0, 0, 0, 221, 983, 1, 0, 0, 0, 223, 987, 1, 0, 0, 0, 225, 991, 1, 0, 0, 0, 227, 994, 1, 0, 0, 0, 229, 998, 1, 0, 0, 0, 231, 1002, 1, 0, 0, 0, 233, 1006, 1, 0, 0, 0, 235, 1010, 1, 0, 0, 0, 237, 1015, 1, 0, 0, 0, 239, 1020, 1, 0, 0, 0, 241, 1025, 1, 0, 0, 0, 243, 1032, 1, 0, 0, 0, 245, 1041, 1, 0, 0, 0, 247, 1048, 1, 0, 0, 0, 249, 1052, 1, 0, 0, 0, 251, 1056, 1, 0, 0, 0, 253, 1060, 1, 0, 0, 0, 255, 1064, 1, 0, 0, 0, 257, 1068, 1, 0, 0, 0, 259, 1074, 1, 0, 0, 0, 261, 1078, 1, 0, 0, 0, 263, 1082, 1, 0, 0, 0, 265, 1086, 1, 0, 0, 0, 267, 1090, 1, 0, 0, 0, 269, 1094, 1, 0, 0, 0, 271, 1098, 1, 0, 0, 0, 273, 1102, 1, 0, 0, 0, 275, 1106, 1, 0, 0, 0, 277, 1110, 1, 0, 0, 0, 279, 1115, 1, 0, 0, 0, 281, 1119, 1, 0, 0, 0, 283, 1123, 1, 0, 0, 0, 285, 1127, 1, 0, 0, 0, 287, 1131, 1, 0, 0, 0, 289, 1135, 1, 0, 0, 0, 291, 1139, 1, 0, 0, 0, 293, 1144, 1, 0, 0, 0, 295, 1149, 1, 0, 0, 0, 297, 1159, 1, 0, 0, 0, 299, 1163, 1, 0, 0, 0, 301, 1167, 1, 0, 0, 0, 303, 1171, 1, 0, 0, 0, 305, 1176, 1, 0, 0, 0, 307, 1183, 1, 0, 0, 0, 309, 1187, 1, 0, 0, 0, 311, 1191, 1, 0, 0, 0, 313, 1195, 1, 0, 0, 0, 315, 1199, 1, 0, 0, 0, 317, 1201, 1, 0, 0, 0, 319, 1203, 1, 0, 0, 0, 321, 1205, 1, 0, 0, 0, 323, 1207, 1, 0, 0, 0, 325, 1209, 1, 0, 0, 0, 327, 1211, 1, 0, 0, 0, 329, 1213, 1, 0, 0, 0, 331, 1215, 1, 0, 0, 0, 333, 1217, 1, 0, 0, 0, 335, 1219, 1, 0, 0, 0, 337, 1221, 1, 0, 0, 0, 339, 1223, 1, 0, 0, 0, 341, 1225, 1, 0, 0, 0, 343, 1227, 1, 0, 0, 0, 345, 1229, 1, 0, 0, 0, 347, 1231, 1, 0, 0, 0, 349, 1233, 1, 0, 0, 0, 351, 1235, 1, 0, 0, 0, 353, 1237, 1, 0, 0, 0, 355, 1239, 1, 0, 0, 0, 357, 1241, 1, 0, 0, 0, 359, 1243, 1, 0, 0, 0, 361, 1245, 1, 0, 0, 0, 363, 1247, 1, 0, 0, 0, 365, 1249, 1, 0, 0, 0, 367, 368, 3, 321, 155, 0, 368, 369, 3, 331, 160, 0, 369, 370, 3, 351, 170, 0, 370, 371, 3, 351, 170, 0, 371, 372, 3, 323, 156, 0, 372, 373, 3, 319, 154, 0, 373, 374, 3, 353, 171, 0, 374, 375, 1, 0, 0, 0, 375, 376, 6, 0, 0, 0, 376, 12, 1, 0, 0, 0, 377, 378, 3, 321, 155, 0, 378, 379, 3, 349, 169, 0, 379, 380, 3, 343, 166, 0, 380, 381, 3, 345, 167, 0, 381, 382, 1, 0, 0, 0, 382, 383, 6, 1, 1, 0, 383, 14, 1, 0, 0, 0, 384, 385, 3, 323, 156, 0, 385, 386, 3, 341, 165, 0, 386, 387, 3, 349, 169, 0, 387, 388, 3, 331, 160, 0, 388, 389, 3, 319, 154, 0, 389, 390, 3, 329, 159, 0, 390, 391, 1, 0, 0, 0, 391, 392, 6, 2, 2, 0, 392, 16, 1, 0, 0, 0, 393, 394, 3, 323, 156, 0, 394, 395, 3, 357, 173, 0, 395, 396, 3, 315, 152, 0, 396, 397, 3, 337, 163, 0, 397, 398, 1, 0, 0, 0, 398, 399, 6, 3, 0, 0, 399, 18, 1, 0, 0, 0, 400, 401, 3, 323, 156, 0, 401, 402, 3, 361, 175, 0, 402, 403, 3, 345, 167, 0, 403, 404, 3, 337, 163, 0, 404, 405, 3, 315, 152, 0, 405, 406, 3, 331, 160, 0, 406, 407, 3, 341, 165, 0, 407, 408, 1, 0, 0, 0, 408, 409, 6, 4, 3, 0, 409, 20, 1, 0, 0, 0, 410, 411, 3, 325, 157, 0, 411, 412, 3, 349, 169, 0, 412, 413, 3, 343, 166, 0, 413, 414, 3, 339, 164, 0, 414, 415, 1, 0, 0, 0, 415, 416, 6, 5, 4, 0, 416, 22, 1, 0, 0, 0, 417, 418, 3, 327, 158, 0, 418, 419, 3, 349, 169, 0, 419, 420, 3, 343, 166, 0, 420, 421, 3, 335, 162, 0, 421, 422, 1, 0, 0, 0, 422, 423, 6, 6, 0, 0, 423, 24, 1, 0, 0, 0, 424, 425, 3, 331, 160, 0, 425, 426, 3, 341, 165, 0, 426, 427, 3, 337, 163, 0, 427, 428, 3, 331, 160, 0, 428, 429, 3, 341, 165, 0, 429, 430, 3, 323, 156, 0, 430, 431, 3, 351, 170, 0, 431, 432, 3, 353, 171, 0, 432, 433, 3, 315, 152, 0, 433, 434, 3, 353, 171, 0, 434, 435, 3, 351, 170, 0, 435, 436, 1, 0, 0, 0, 436, 437, 6, 7, 0, 0, 437, 26, 1, 0, 0, 0, 438, 439, 3, 335, 162, 0, 439, 440, 3, 323, 156, 0, 440, 441, 3, 323, 156, 0, 441, 442, 3, 345, 167, 0, 442, 443, 1, 0, 0, 0, 443, 444, 6, 8, 1, 0, 444, 28, 1, 0, 0, 0, 445, 446, 3, 337, 163, 0, 446, 447, 3, 331, 160, 0, 447, 448, 3, 339, 164, 0, 448, 449, 3, 331, 160, 0, 449, 450, 3, 353, 171, 0, 450, 451, 1, 0, 0, 0, 451, 452, 6, 9, 0, 0, 452, 30, 1, 0, 0, 0, 453, 454, 3, 339, 164, 0, 454, 455, 3, 357, 173, 0, 455, 456, 3, 81, 35, 0, 456, 457, 3, 323, 156, 0, 457, 458, 3, 361, 175, 0, 458, 459, 3, 345, 167, 0, 459, 460, 3, 315, 152, 0, 460, 461, 3, 341, 165, 0, 461, 462, 3, 321, 155, 0, 462, 463, 1, 0, 0, 0, 463, 464, 6, 10, 5, 0, 464, 32, 1, 0, 0, 0, 465, 466, 3, 349, 169, 0, 466, 467, 3, 323, 156, 0, 467, 468, 3, 341, 165, 0, 468, 469, 3, 315, 152, 0, 469, 470, 3, 339, 164, 0, 470, 471, 3, 323, 156, 0, 471, 472, 1, 0, 0, 0, 472, 473, 6, 11, 6, 0, 473, 34, 1, 0, 0, 0, 474, 475, 3, 349, 169, 0, 475, 476, 3, 343, 166, 0, 476, 477, 3, 359, 174, 0, 477, 478, 1, 0, 0, 0, 478, 479, 6, 12, 0, 0, 479, 36, 1, 0, 0, 0, 480, 481, 3, 351, 170, 0, 481, 482, 3, 329, 159, 0, 482, 483, 3, 343, 166, 0, 483, 484, 3, 359, 174, 0, 484, 485, 1, 0, 0, 0, 485, 486, 6, 13, 7, 0, 486, 38, 1, 0, 0, 0, 487, 488, 3, 351, 170, 0, 488, 489, 3, 343, 166, 0, 489, 490, 3, 349, 169, 0, 490, 491, 3, 353, 171, 0, 491, 492, 1, 0, 0, 0, 492, 493, 6, 14, 0, 0, 493, 40, 1, 0, 0, 0, 494, 495, 3, 351, 170, 0, 495, 496, 3, 353, 171, 0, 496, 497, 3, 315, 152, 0, 497, 498, 3, 353, 171, 0, 498, 499, 3, 351, 170, 0, 499, 500, 1, 0, 0, 0, 500, 501, 6, 15, 0, 0, 501, 42, 1, 0, 0, 0, 502, 503, 3, 359, 174, 0, 503, 504, 3, 329, 159, 0, 504, 505, 3, 323, 156, 0, 505, 506, 3, 349, 169, 0, 506, 507, 3, 323, 156, 0, 507, 508, 1, 0, 0, 0, 508, 509, 6, 16, 0, 0, 509, 44, 1, 0, 0, 0, 510, 512, 8, 0, 0, 0, 511, 510, 1, 0, 0, 0, 512, 513, 1, 0, 0, 0, 513, 511, 1, 0, 0, 0, 513, 514, 1, 0, 0, 0, 514, 515, 1, 0, 0, 0, 515, 516, 6, 17, 0, 0, 516, 46, 1, 0, 0, 0, 517, 518, 5, 47, 0, 0, 518, 519, 5, 47, 0, 0, 519, 523, 1, 0, 0, 0, 520, 522, 8, 1, 0, 0, 521, 520, 1, 0, 0, 0, 522, 525, 1, 0, 0, 0, 523, 521, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 527, 1, 0, 0, 0, 525, 523, 1, 0, 0, 0, 526, 528, 5, 13, 0, 0, 527, 526, 1, 0, 0, 0, 527, 528, 1, 0, 0, 0, 528, 530, 1, 0, 0, 0, 529, 531, 5, 10, 0, 0, 530, 529, 1, 0, 0, 0, 530, 531, 1, 0, 0, 0, 531, 532, 1, 0, 0, 0, 532, 533, 6, 18, 8, 0, 533, 48, 1, 0, 0, 0, 534, 535, 5, 47, 0, 0, 535, 536, 5, 42, 0, 0, 536, 541, 1, 0, 0, 0, 537, 540, 3, 49, 19, 0, 538, 540, 9, 0, 0, 0, 539, 537, 1, 0, 0, 0, 539, 538, 1, 0, 0, 0, 540, 543, 1, 0, 0, 0, 541, 542, 1, 0, 0, 0, 541, 539, 1, 0, 0, 0, 542, 544, 1, 0, 0, 0, 543, 541, 1, 0, 0, 0, 544, 545, 5, 42, 0, 0, 545, 546, 5, 47, 0, 0, 546, 547, 1, 0, 0, 0, 547, 548, 6, 19, 8, 0, 548, 50, 1, 0, 0, 0, 549, 551, 7, 2, 0, 0, 550, 549, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552, 550, 1, 0, 0, 0, 552, 553, 1, 0, 0, 0, 553, 554, 1, 0, 0, 0, 554, 555, 6, 20, 8, 0, 555, 52, 1, 0, 0, 0, 556, 557, 3, 159, 74, 0, 557, 558, 1, 0, 0, 0, 558, 559, 6, 21, 9, 0, 559, 560, 6, 21, 10, 0, 560, 54, 1, 0, 0, 0, 561, 562, 3, 63, 26, 0, 562, 563, 1, 0, 0, 0, 563, 564, 6, 22, 11, 0, 564, 565, 6, 22, 12, 0, 565, 56, 1, 0, 0, 0, 566, 567, 3, 51, 20, 0, 567, 568, 1, 0, 0, 0, 568, 569, 6, 23, 8, 0, 569, 58, 1, 0, 0, 0, 570, 571, 3, 47, 18, 0, 571, 572, 1, 0, 0, 0, 572, 573, 6, 24, 8, 0, 573, 60, 1, 0, 0, 0, 574, 575, 3, 49, 19, 0, 575, 576, 1, 0, 0, 0, 576, 577, 6, 25, 8, 0, 577, 62, 1, 0, 0, 0, 578, 579, 5, 124, 0, 0, 579, 580, 1, 0, 0, 0, 580, 581, 6, 26, 12, 0, 581, 64, 1, 0, 0, 0, 582, 583, 7, 3, 0, 0, 583, 66, 1, 0, 0, 0, 584, 585, 7, 4, 0, 0, 585, 68, 1, 0, 0, 0, 586, 587, 5, 92, 0, 0, 587, 588, 7, 5, 0, 0, 588, 70, 1, 0, 0, 0, 589, 590, 8, 6, 0, 0, 590, 72, 1, 0, 0, 0, 591, 593, 7, 7, 0, 0, 592, 594, 7, 8, 0, 0, 593, 592, 1, 0, 0, 0, 593, 594, 1, 0, 0, 0, 594, 596, 1, 0, 0, 0, 595, 597, 3, 65, 27, 0, 596, 595, 1, 0, 0, 0, 597, 598, 1, 0, 0, 0, 598, 596, 1, 0, 0, 0, 598, 599, 1, 0, 0, 0, 599, 74, 1, 0, 0, 0, 600, 601, 5, 64, 0, 0, 601, 76, 1, 0, 0, 0, 602, 603, 5, 96, 0, 0, 603, 78, 1, 0, 0, 0, 604, 608, 8, 9, 0, 0, 605, 606, 5, 96, 0, 0, 606, 608, 5, 96, 0, 0, 607, 604, 1, 0, 0, 0, 607, 605, 1, 0, 0, 0, 608, 80, 1, 0, 0, 0, 609, 610, 5, 95, 0, 0, 610, 82, 1, 0, 0, 0, 611, 615, 3, 67, 28, 0, 612, 615, 3, 65, 27, 0, 613, 615, 3, 81, 35, 0, 614, 611, 1, 0, 0, 0, 614, 612, 1, 0, 0, 0, 614, 613, 1, 0, 0, 0, 615, 84, 1, 0, 0, 0, 616, 621, 5, 34, 0, 0, 617, 620, 3, 69, 29, 0, 618, 620, 3, 71, 30, 0, 619, 617, 1, 0, 0, 0, 619, 618, 1, 0, 0, 0, 620, 623, 1, 0, 0, 0, 621, 619, 1, 0, 0, 0, 621, 622, 1, 0, 0, 0, 622, 624, 1, 0, 0, 0, 623, 621, 1, 0, 0, 0, 624, 646, 5, 34, 0, 0, 625, 626, 5, 34, 0, 0, 626, 627, 5, 34, 0, 0, 627, 628, 5, 34, 0, 0, 628, 632, 1, 0, 0, 0, 629, 631, 8, 1, 0, 0, 630, 629, 1, 0, 0, 0, 631, 634, 1, 0, 0, 0, 632, 633, 1, 0, 0, 0, 632, 630, 1, 0, 0, 0, 633, 635, 1, 0, 0, 0, 634, 632, 1, 0, 0, 0, 635, 636, 5, 34, 0, 0, 636, 637, 5, 34, 0, 0, 637, 638, 5, 34, 0, 0, 638, 640, 1, 0, 0, 0, 639, 641, 5, 34, 0, 0, 640, 639, 1, 0, 0, 0, 640, 641, 1, 0, 0, 0, 641, 643, 1, 0, 0, 0, 642, 644, 5, 34, 0, 0, 643, 642, 1, 0, 0, 0, 643, 644, 1, 0, 0, 0, 644, 646, 1, 0, 0, 0, 645, 616, 1, 0, 0, 0, 645, 625, 1, 0, 0, 0, 646, 86, 1, 0, 0, 0, 647, 649, 3, 65, 27, 0, 648, 647, 1, 0, 0, 0, 649, 650, 1, 0, 0, 0, 650, 648, 1, 0, 0, 0, 650, 651, 1, 0, 0, 0, 651, 88, 1, 0, 0, 0, 652, 654, 3, 65, 27, 0, 653, 652, 1, 0, 0, 0, 654, 655, 1, 0, 0, 0, 655, 653, 1, 0, 0, 0, 655, 656, 1, 0, 0, 0, 656, 657, 1, 0, 0, 0, 657, 661, 3, 103, 46, 0, 658, 660, 3, 65, 27, 0, 659, 658, 1, 0, 0, 0, 660, 663, 1, 0, 0, 0, 661, 659, 1, 0, 0, 0, 661, 662, 1, 0, 0, 0, 662, 695, 1, 0, 0, 0, 663, 661, 1, 0, 0, 0, 664, 666, 3, 103, 46, 0, 665, 667, 3, 65, 27, 0, 666, 665, 1, 0, 0, 0, 667, 668, 1, 0, 0, 0, 668, 666, 1, 0, 0, 0, 668, 669, 1, 0, 0, 0, 669, 695, 1, 0, 0, 0, 670, 672, 3, 65, 27, 0, 671, 670, 1, 0, 0, 0, 672, 673, 1, 0, 0, 0, 673, 671, 1, 0, 0, 0, 673, 674, 1, 0, 0, 0, 674, 682, 1, 0, 0, 0, 675, 679, 3, 103, 46, 0, 676, 678, 3, 65, 27, 0, 677, 676, 1, 0, 0, 0, 678, 681, 1, 0, 0, 0, 679, 677, 1, 0, 0, 0, 679, 680, 1, 0, 0, 0, 680, 683, 1, 0, 0, 0, 681, 679, 1, 0, 0, 0, 682, 675, 1, 0, 0, 0, 682, 683, 1, 0, 0, 0, 683, 684, 1, 0, 0, 0, 684, 685, 3, 73, 31, 0, 685, 695, 1, 0, 0, 0, 686, 688, 3, 103, 46, 0, 687, 689, 3, 65, 27, 0, 688, 687, 1, 0, 0, 0, 689, 690, 1, 0, 0, 0, 690, 688, 1, 0, 0, 0, 690, 691, 1, 0, 0, 0, 691, 692, 1, 0, 0, 0, 692, 693, 3, 73, 31, 0, 693, 695, 1, 0, 0, 0, 694, 653, 1, 0, 0, 0, 694, 664, 1, 0, 0, 0, 694, 671, 1, 0, 0, 0, 694, 686, 1, 0, 0, 0, 695, 90, 1, 0, 0, 0, 696, 697, 3, 317, 153, 0, 697, 698, 3, 363, 176, 0, 698, 92, 1, 0, 0, 0, 699, 700, 3, 315, 152, 0, 700, 701, 3, 341, 165, 0, 701, 702, 3, 321, 155, 0, 702, 94, 1, 0, 0, 0, 703, 704, 3, 315, 152, 0, 704, 705, 3, 351, 170, 0, 705, 706, 3, 319, 154, 0, 706, 96, 1, 0, 0, 0, 707, 708, 5, 61, 0, 0, 708, 98, 1, 0, 0, 0, 709, 710, 5, 44, 0, 0, 710, 100, 1, 0, 0, 0, 711, 712, 3, 321, 155, 0, 712, 713, 3, 323, 156, 0, 713, 714, 3, 351, 170, 0, 714, 715, 3, 319, 154, 0, 715, 102, 1, 0, 0, 0, 716, 717, 5, 46, 0, 0, 717, 104, 1, 0, 0, 0, 718, 719, 3, 325, 157, 0, 719, 720, 3, 315, 152, 0, 720, 721, 3, 337, 163, 0, 721, 722, 3, 351, 170, 0, 722, 723, 3, 323, 156, 0, 723, 106, 1, 0, 0, 0, 724, 725, 3, 325, 157, 0, 725, 726, 3, 331, 160, 0, 726, 727, 3, 349, 169, 0, 727, 728, 3, 351, 170, 0, 728, 729, 3, 353, 171, 0, 729, 108, 1, 0, 0, 0, 730, 731, 3, 337, 163, 0, 731, 732, 3, 315, 152, 0, 732, 733, 3, 351, 170, 0, 733, 734, 3, 353, 171, 0, 734, 110, 1, 0, 0, 0, 735, 736, 5, 40, 0, 0, 736, 112, 1, 0, 0, 0, 737, 738, 3, 331, 160, 0, 738, 739, 3, 341, 165, 0, 739, 114, 1, 0, 0, 0, 740, 741, 3, 331, 160, 0, 741, 742, 3, 351, 170, 0, 742, 116, 1, 0, 0, 0, 743, 744, 3, 337, 163, 0, 744, 745, 3, 331, 160, 0, 745, 746, 3, 335, 162, 0, 746, 747, 3, 323, 156, 0, 747, 118, 1, 0, 0, 0, 748, 749, 3, 341, 165, 0, 749, 750, 3, 343, 166, 0, 750, 751, 3, 353, 171, 0, 751, 120, 1, 0, 0, 0, 752, 753, 3, 341, 165, 0, 753, 754, 3, 355, 172, 0, 754, 755, 3, 337, 163, 0, 755, 756, 3, 337, 163, 0, 756, 122, 1, 0, 0, 0, 757, 758, 3, 341, 165, 0, 758, 759, 3, 355, 172, 0, 759, 760, 3, 337, 163, 0, 760, 761, 3, 337, 163, 0, 761, 762, 3, 351, 170, 0, 762, 124, 1, 0, 0, 0, 763, 764, 3, 343, 166, 0, 764, 765, 3, 349, 169, 0, 765, 126, 1, 0, 0, 0, 766, 767, 5, 63, 0, 0, 767, 128, 1, 0, 0, 0, 768, 769, 3, 349, 169, 0, 769, 770, 3, 337, 163, 0, 770, 771, 3, 331, 160, 0, 771, 772, 3, 335, 162, 0, 772, 773, 3, 323, 156, 0, 773, 130, 1, 0, 0, 0, 774, 775, 5, 41, 0, 0, 775, 132, 1, 0, 0, 0, 776, 777, 3, 353, 171, 0, 777, 778, 3, 349, 169, 0, 778, 779, 3, 355, 172, 0, 779, 780, 3, 323, 156, 0, 780, 134, 1, 0, 0, 0, 781, 782, 5, 61, 0, 0, 782, 783, 5, 61, 0, 0, 783, 136, 1, 0, 0, 0, 784, 785, 5, 61, 0, 0, 785, 786, 5, 126, 0, 0, 786, 138, 1, 0, 0, 0, 787, 788, 5, 33, 0, 0, 788, 789, 5, 61, 0, 0, 789, 140, 1, 0, 0, 0, 790, 791, 5, 60, 0, 0, 791, 142, 1, 0, 0, 0, 792, 793, 5, 60, 0, 0, 793, 794, 5, 61, 0, 0, 794, 144, 1, 0, 0, 0, 795, 796, 5, 62, 0, 0, 796, 146, 1, 0, 0, 0, 797, 798, 5, 62, 0, 0, 798, 799, 5, 61, 0, 0, 799, 148, 1, 0, 0, 0, 800, 801, 5, 43, 0, 0, 801, 150, 1, 0, 0, 0, 802, 803, 5, 45, 0, 0, 803, 152, 1, 0, 0, 0, 804, 805, 5, 42, 0, 0, 805, 154, 1, 0, 0, 0, 806, 807, 5, 47, 0, 0, 807, 156, 1, 0, 0, 0, 808, 809, 5, 37, 0, 0, 809, 158, 1, 0, 0, 0, 810, 811, 5, 91, 0, 0, 811, 812, 1, 0, 0, 0, 812, 813, 6, 74, 0, 0, 813, 814, 6, 74, 0, 0, 814, 160, 1, 0, 0, 0, 815, 816, 5, 93, 0, 0, 816, 817, 1, 0, 0, 0, 817, 818, 6, 75, 12, 0, 818, 819, 6, 75, 12, 0, 819, 162, 1, 0, 0, 0, 820, 824, 3, 67, 28, 0, 821, 823, 3, 83, 36, 0, 822, 821, 1, 0, 0, 0, 823, 826, 1, 0, 0, 0, 824, 822, 1, 0, 0, 0, 824, 825, 1, 0, 0, 0, 825, 837, 1, 0, 0, 0, 826, 824, 1, 0, 0, 0, 827, 830, 3, 81, 35, 0, 828, 830, 3, 75, 32, 0, 829, 827, 1, 0, 0, 0, 829, 828, 1, 0, 0, 0, 830, 832, 1, 0, 0, 0, 831, 833, 3, 83, 36, 0, 832, 831, 1, 0, 0, 0, 833, 834, 1, 0, 0, 0, 834, 832, 1, 0, 0, 0, 834, 835, 1, 0, 0, 0, 835, 837, 1, 0, 0, 0, 836, 820, 1, 0, 0, 0, 836, 829, 1, 0, 0, 0, 837, 164, 1, 0, 0, 0, 838, 840, 3, 77, 33, 0, 839, 841, 3, 79, 34, 0, 840, 839, 1, 0, 0, 0, 841, 842, 1, 0, 0, 0, 842, 840, 1, 0, 0, 0, 842, 843, 1, 0, 0, 0, 843, 844, 1, 0, 0, 0, 844, 845, 3, 77, 33, 0, 845, 166, 1, 0, 0, 0, 846, 847, 3, 165, 77, 0, 847, 168, 1, 0, 0, 0, 848, 849, 3, 47, 18, 0, 849, 850, 1, 0, 0, 0, 850, 851, 6, 79, 8, 0, 851, 170, 1, 0, 0, 0, 852, 853, 3, 49, 19, 0, 853, 854, 1, 0, 0, 0, 854, 855, 6, 80, 8, 0, 855, 172, 1, 0, 0, 0, 856, 857, 3, 51, 20, 0, 857, 858, 1, 0, 0, 0, 858, 859, 6, 81, 8, 0, 859, 174, 1, 0, 0, 0, 860, 861, 3, 63, 26, 0, 861, 862, 1, 0, 0, 0, 862, 863, 6, 82, 11, 0, 863, 864, 6, 82, 12, 0, 864, 176, 1, 0, 0, 0, 865, 866, 3, 159, 74, 0, 866, 867, 1, 0, 0, 0, 867, 868, 6, 83, 9, 0, 868, 178, 1, 0, 0, 0, 869, 870, 3, 161, 75, 0, 870, 871, 1, 0, 0, 0, 871, 872, 6, 84, 13, 0, 872, 180, 1, 0, 0, 0, 873, 874, 3, 99, 44, 0, 874, 875, 1, 0, 0, 0, 875, 876, 6, 85, 14, 0, 876, 182, 1, 0, 0, 0, 877, 878, 3, 97, 43, 0, 878, 879, 1, 0, 0, 0, 879, 880, 6, 86, 15, 0, 880, 184, 1, 0, 0, 0, 881, 882, 3, 339, 164, 0, 882, 883, 3, 323, 156, 0, 883, 884, 3, 353, 171, 0, 884, 885, 3, 315, 152, 0, 885, 886, 3, 321, 155, 0, 886, 887, 3, 315, 152, 0, 887, 888, 3, 353, 171, 0, 888, 889, 3, 315, 152, 0, 889, 186, 1, 0, 0, 0, 890, 894, 8, 10, 0, 0, 891, 892, 5, 47, 0, 0, 892, 894, 8, 11, 0, 0, 893, 890, 1, 0, 0, 0, 893, 891, 1, 0, 0, 0, 894, 188, 1, 0, 0, 0, 895, 897, 3, 187, 88, 0, 896, 895, 1, 0, 0, 0, 897, 898, 1, 0, 0, 0, 898, 896, 1, 0, 0, 0, 898, 899, 1, 0, 0, 0, 899, 190, 1, 0, 0, 0, 900, 901, 3, 167, 78, 0, 901, 902, 1, 0, 0, 0, 902, 903, 6, 90, 16, 0, 903, 192, 1, 0, 0, 0, 904, 905, 3, 47, 18, 0, 905, 906, 1, 0, 0, 0, 906, 907, 6, 91, 8, 0, 907, 194, 1, 0, 0, 0, 908, 909, 3, 49, 19, 0, 909, 910, 1, 0, 0, 0, 910, 911, 6, 92, 8, 0, 911, 196, 1, 0, 0, 0, 912, 913, 3, 51, 20, 0, 913, 914, 1, 0, 0, 0, 914, 915, 6, 93, 8, 0, 915, 198, 1, 0, 0, 0, 916, 917, 3, 63, 26, 0, 917, 918, 1, 0, 0, 0, 918, 919, 6, 94, 11, 0, 919, 920, 6, 94, 12, 0, 920, 200, 1, 0, 0, 0, 921, 922, 3, 103, 46, 0, 922, 923, 1, 0, 0, 0, 923, 924, 6, 95, 17, 0, 924, 202, 1, 0, 0, 0, 925, 926, 3, 99, 44, 0, 926, 927, 1, 0, 0, 0, 927, 928, 6, 96, 14, 0, 928, 204, 1, 0, 0, 0, 929, 934, 3, 67, 28, 0, 930, 934, 3, 65, 27, 0, 931, 934, 3, 81, 35, 0, 932, 934, 3, 153, 71, 0, 933, 929, 1, 0, 0, 0, 933, 930, 1, 0, 0, 0, 933, 931, 1, 0, 0, 0, 933, 932, 1, 0, 0, 0, 934, 206, 1, 0, 0, 0, 935, 938, 3, 67, 28, 0, 936, 938, 3, 153, 71, 0, 937, 935, 1, 0, 0, 0, 937, 936, 1, 0, 0, 0, 938, 942, 1, 0, 0, 0, 939, 941, 3, 205, 97, 0, 940, 939, 1, 0, 0, 0, 941, 944, 1, 0, 0, 0, 942, 940, 1, 0, 0, 0, 942, 943, 1, 0, 0, 0, 943, 955, 1, 0, 0, 0, 944, 942, 1, 0, 0, 0, 945, 948, 3, 81, 35, 0, 946, 948, 3, 75, 32, 0, 947, 945, 1, 0, 0, 0, 947, 946, 1, 0, 0, 0, 948, 950, 1, 0, 0, 0, 949, 951, 3, 205, 97, 0, 950, 949, 1, 0, 0, 0, 951, 952, 1, 0, 0, 0, 952, 950, 1, 0, 0, 0, 952, 953, 1, 0, 0, 0, 953, 955, 1, 0, 0, 0, 954, 937, 1, 0, 0, 0, 954, 947, 1, 0, 0, 0, 955, 208, 1, 0, 0, 0, 956, 959, 3, 207, 98, 0, 957, 959, 3, 165, 77, 0, 958, 956, 1, 0, 0, 0, 958, 957, 1, 0, 0, 0, 959, 960, 1, 0, 0, 0, 960, 958, 1, 0, 0, 0, 960, 961, 1, 0, 0, 0, 961, 210, 1, 0, 0, 0, 962, 963, 3, 47, 18, 0, 963, 964, 1, 0, 0, 0, 964, 965, 6, 100, 8, 0, 965, 212, 1, 0, 0, 0, 966, 967, 3, 49, 19, 0, 967, 968, 1, 0, 0, 0, 968, 969, 6, 101, 8, 0, 969, 214, 1, 0, 0, 0, 970, 971, 3, 51, 20, 0, 971, 972, 1, 0, 0, 0, 972, 973, 6, 102, 8, 0, 973, 216, 1, 0, 0, 0, 974, 975, 3, 63, 26, 0, 975, 976, 1, 0, 0, 0, 976, 977, 6, 103, 11, 0, 977, 978, 6, 103, 12, 0, 978, 218, 1, 0, 0, 0, 979, 980, 3, 97, 43, 0, 980, 981, 1, 0, 0, 0, 981, 982, 6, 104, 15, 0, 982, 220, 1, 0, 0, 0, 983, 984, 3, 99, 44, 0, 984, 985, 1, 0, 0, 0, 985, 986, 6, 105, 14, 0, 986, 222, 1, 0, 0, 0, 987, 988, 3, 103, 46, 0, 988, 989, 1, 0, 0, 0, 989, 990, 6, 106, 17, 0, 990, 224, 1, 0, 0, 0, 991, 992, 3, 315, 152, 0, 992, 993, 3, 351, 170, 0, 993, 226, 1, 0, 0, 0, 994, 995, 3, 209, 99, 0, 995, 996, 1, 0, 0, 0, 996, 997, 6, 108, 18, 0, 997, 228, 1, 0, 0, 0, 998, 999, 3, 47, 18, 0, 999, 1000, 1, 0, 0, 0, 1000, 1001, 6, 109, 8, 0, 1001, 230, 1, 0, 0, 0, 1002, 1003, 3, 49, 19, 0, 1003, 1004, 1, 0, 0, 0, 1004, 1005, 6, 110, 8, 0, 1005, 232, 1, 0, 0, 0, 1006, 1007, 3, 51, 20, 0, 1007, 1008, 1, 0, 0, 0, 1008, 1009, 6, 111, 8, 0, 1009, 234, 1, 0, 0, 0, 1010, 1011, 3, 63, 26, 0, 1011, 1012, 1, 0, 0, 0, 1012, 1013, 6, 112, 11, 0, 1013, 1014, 6, 112, 12, 0, 1014, 236, 1, 0, 0, 0, 1015, 1016, 3, 159, 74, 0, 1016, 1017, 1, 0, 0, 0, 1017, 1018, 6, 113, 9, 0, 1018, 1019, 6, 113, 19, 0, 1019, 238, 1, 0, 0, 0, 1020, 1021, 3, 343, 166, 0, 1021, 1022, 3, 341, 165, 0, 1022, 1023, 1, 0, 0, 0, 1023, 1024, 6, 114, 20, 0, 1024, 240, 1, 0, 0, 0, 1025, 1026, 3, 359, 174, 0, 1026, 1027, 3, 331, 160, 0, 1027, 1028, 3, 353, 171, 0, 1028, 1029, 3, 329, 159, 0, 1029, 1030, 1, 0, 0, 0, 1030, 1031, 6, 115, 20, 0, 1031, 242, 1, 0, 0, 0, 1032, 1033, 8, 12, 0, 0, 1033, 244, 1, 0, 0, 0, 1034, 1036, 3, 243, 116, 0, 1035, 1034, 1, 0, 0, 0, 1036, 1037, 1, 0, 0, 0, 1037, 1035, 1, 0, 0, 0, 1037, 1038, 1, 0, 0, 0, 1038, 1039, 1, 0, 0, 0, 1039, 1040, 3, 305, 147, 0, 1040, 1042, 1, 0, 0, 0, 1041, 1035, 1, 0, 0, 0, 1041, 1042, 1, 0, 0, 0, 1042, 1044, 1, 0, 0, 0, 1043, 1045, 3, 243, 116, 0, 1044, 1043, 1, 0, 0, 0, 1045, 1046, 1, 0, 0, 0, 1046, 1044, 1, 0, 0, 0, 1046, 1047, 1, 0, 0, 0, 1047, 246, 1, 0, 0, 0, 1048, 1049, 3, 167, 78, 0, 1049, 1050, 1, 0, 0, 0, 1050, 1051, 6, 118, 16, 0, 1051, 248, 1, 0, 0, 0, 1052, 1053, 3, 245, 117, 0, 1053, 1054, 1, 0, 0, 0, 1054, 1055, 6, 119, 21, 0, 1055, 250, 1, 0, 0, 0, 1056, 1057, 3, 47, 18, 0, 1057, 1058, 1, 0, 0, 0, 1058, 1059, 6, 120, 8, 0, 1059, 252, 1, 0, 0, 0, 1060, 1061, 3, 49, 19, 0, 1061, 1062, 1, 0, 0, 0, 1062, 1063, 6, 121, 8, 0, 1063, 254, 1, 0, 0, 0, 1064, 1065, 3, 51, 20, 0, 1065, 1066, 1, 0, 0, 0, 1066, 1067, 6, 122, 8, 0, 1067, 256, 1, 0, 0, 0, 1068, 1069, 3, 63, 26, 0, 1069, 1070, 1, 0, 0, 0, 1070, 1071, 6, 123, 11, 0, 1071, 1072, 6, 123, 12, 0, 1072, 1073, 6, 123, 12, 0, 1073, 258, 1, 0, 0, 0, 1074, 1075, 3, 97, 43, 0, 1075, 1076, 1, 0, 0, 0, 1076, 1077, 6, 124, 15, 0, 1077, 260, 1, 0, 0, 0, 1078, 1079, 3, 99, 44, 0, 1079, 1080, 1, 0, 0, 0, 1080, 1081, 6, 125, 14, 0, 1081, 262, 1, 0, 0, 0, 1082, 1083, 3, 103, 46, 0, 1083, 1084, 1, 0, 0, 0, 1084, 1085, 6, 126, 17, 0, 1085, 264, 1, 0, 0, 0, 1086, 1087, 3, 241, 115, 0, 1087, 1088, 1, 0, 0, 0, 1088, 1089, 6, 127, 22, 0, 1089, 266, 1, 0, 0, 0, 1090, 1091, 3, 209, 99, 0, 1091, 1092, 1, 0, 0, 0, 1092, 1093, 6, 128, 18, 0, 1093, 268, 1, 0, 0, 0, 1094, 1095, 3, 167, 78, 0, 1095, 1096, 1, 0, 0, 0, 1096, 1097, 6, 129, 16, 0, 1097, 270, 1, 0, 0, 0, 1098, 1099, 3, 47, 18, 0, 1099, 1100, 1, 0, 0, 0, 1100, 1101, 6, 130, 8, 0, 1101, 272, 1, 0, 0, 0, 1102, 1103, 3, 49, 19, 0, 1103, 1104, 1, 0, 0, 0, 1104, 1105, 6, 131, 8, 0, 1105, 274, 1, 0, 0, 0, 1106, 1107, 3, 51, 20, 0, 1107, 1108, 1, 0, 0, 0, 1108, 1109, 6, 132, 8, 0, 1109, 276, 1, 0, 0, 0, 1110, 1111, 3, 63, 26, 0, 1111, 1112, 1, 0, 0, 0, 1112, 1113, 6, 133, 11, 0, 1113, 1114, 6, 133, 12, 0, 1114, 278, 1, 0, 0, 0, 1115, 1116, 3, 103, 46, 0, 1116, 1117, 1, 0, 0, 0, 1117, 1118, 6, 134, 17, 0, 1118, 280, 1, 0, 0, 0, 1119, 1120, 3, 167, 78, 0, 1120, 1121, 1, 0, 0, 0, 1121, 1122, 6, 135, 16, 0, 1122, 282, 1, 0, 0, 0, 1123, 1124, 3, 163, 76, 0, 1124, 1125, 1, 0, 0, 0, 1125, 1126, 6, 136, 23, 0, 1126, 284, 1, 0, 0, 0, 1127, 1128, 3, 47, 18, 0, 1128, 1129, 1, 0, 0, 0, 1129, 1130, 6, 137, 8, 0, 1130, 286, 1, 0, 0, 0, 1131, 1132, 3, 49, 19, 0, 1132, 1133, 1, 0, 0, 0, 1133, 1134, 6, 138, 8, 0, 1134, 288, 1, 0, 0, 0, 1135, 1136, 3, 51, 20, 0, 1136, 1137, 1, 0, 0, 0, 1137, 1138, 6, 139, 8, 0, 1138, 290, 1, 0, 0, 0, 1139, 1140, 3, 63, 26, 0, 1140, 1141, 1, 0, 0, 0, 1141, 1142, 6, 140, 11, 0, 1142, 1143, 6, 140, 12, 0, 1143, 292, 1, 0, 0, 0, 1144, 1145, 3, 331, 160, 0, 1145, 1146, 3, 341, 165, 0, 1146, 1147, 3, 325, 157, 0, 1147, 1148, 3, 343, 166, 0, 1148, 294, 1, 0, 0, 0, 1149, 1150, 3, 325, 157, 0, 1150, 1151, 3, 355, 172, 0, 1151, 1152, 3, 341, 165, 0, 1152, 1153, 3, 319, 154, 0, 1153, 1154, 3, 353, 171, 0, 1154, 1155, 3, 331, 160, 0, 1155, 1156, 3, 343, 166, 0, 1156, 1157, 3, 341, 165, 0, 1157, 1158, 3, 351, 170, 0, 1158, 296, 1, 0, 0, 0, 1159, 1160, 3, 47, 18, 0, 1160, 1161, 1, 0, 0, 0, 1161, 1162, 6, 143, 8, 0, 1162, 298, 1, 0, 0, 0, 1163, 1164, 3, 49, 19, 0, 1164, 1165, 1, 0, 0, 0, 1165, 1166, 6, 144, 8, 0, 1166, 300, 1, 0, 0, 0, 1167, 1168, 3, 51, 20, 0, 1168, 1169, 1, 0, 0, 0, 1169, 1170, 6, 145, 8, 0, 1170, 302, 1, 0, 0, 0, 1171, 1172, 3, 161, 75, 0, 1172, 1173, 1, 0, 0, 0, 1173, 1174, 6, 146, 13, 0, 1174, 1175, 6, 146, 12, 0, 1175, 304, 1, 0, 0, 0, 1176, 1177, 5, 58, 0, 0, 1177, 306, 1, 0, 0, 0, 1178, 1184, 3, 75, 32, 0, 1179, 1184, 3, 65, 27, 0, 1180, 1184, 3, 103, 46, 0, 1181, 1184, 3, 67, 28, 0, 1182, 1184, 3, 81, 35, 0, 1183, 1178, 1, 0, 0, 0, 1183, 1179, 1, 0, 0, 0, 1183, 1180, 1, 0, 0, 0, 1183, 1181, 1, 0, 0, 0, 1183, 1182, 1, 0, 0, 0, 1184, 1185, 1, 0, 0, 0, 1185, 1183, 1, 0, 0, 0, 1185, 1186, 1, 0, 0, 0, 1186, 308, 1, 0, 0, 0, 1187, 1188, 3, 47, 18, 0, 1188, 1189, 1, 0, 0, 0, 1189, 1190, 6, 149, 8, 0, 1190, 310, 1, 0, 0, 0, 1191, 1192, 3, 49, 19, 0, 1192, 1193, 1, 0, 0, 0, 1193, 1194, 6, 150, 8, 0, 1194, 312, 1, 0, 0, 0, 1195, 1196, 3, 51, 20, 0, 1196, 1197, 1, 0, 0, 0, 1197, 1198, 6, 151, 8, 0, 1198, 314, 1, 0, 0, 0, 1199, 1200, 7, 13, 0, 0, 1200, 316, 1, 0, 0, 0, 1201, 1202, 7, 14, 0, 0, 1202, 318, 1, 0, 0, 0, 1203, 1204, 7, 15, 0, 0, 1204, 320, 1, 0, 0, 0, 1205, 1206, 7, 16, 0, 0, 1206, 322, 1, 0, 0, 0, 1207, 1208, 7, 7, 0, 0, 1208, 324, 1, 0, 0, 0, 1209, 1210, 7, 17, 0, 0, 1210, 326, 1, 0, 0, 0, 1211, 1212, 7, 18, 0, 0, 1212, 328, 1, 0, 0, 0, 1213, 1214, 7, 19, 0, 0, 1214, 330, 1, 0, 0, 0, 1215, 1216, 7, 20, 0, 0, 1216, 332, 1, 0, 0, 0, 1217, 1218, 7, 21, 0, 0, 1218, 334, 1, 0, 0, 0, 1219, 1220, 7, 22, 0, 0, 1220, 336, 1, 0, 0, 0, 1221, 1222, 7, 23, 0, 0, 1222, 338, 1, 0, 0, 0, 1223, 1224, 7, 24, 0, 0, 1224, 340, 1, 0, 0, 0, 1225, 1226, 7, 25, 0, 0, 1226, 342, 1, 0, 0, 0, 1227, 1228, 7, 26, 0, 0, 1228, 344, 1, 0, 0, 0, 1229, 1230, 7, 27, 0, 0, 1230, 346, 1, 0, 0, 0, 1231, 1232, 7, 28, 0, 0, 1232, 348, 1, 0, 0, 0, 1233, 1234, 7, 29, 0, 0, 1234, 350, 1, 0, 0, 0, 1235, 1236, 7, 30, 0, 0, 1236, 352, 1, 0, 0, 0, 1237, 1238, 7, 31, 0, 0, 1238, 354, 1, 0, 0, 0, 1239, 1240, 7, 32, 0, 0, 1240, 356, 1, 0, 0, 0, 1241, 1242, 7, 33, 0, 0, 1242, 358, 1, 0, 0, 0, 1243, 1244, 7, 34, 0, 0, 1244, 360, 1, 0, 0, 0, 1245, 1246, 7, 35, 0, 0, 1246, 362, 1, 0, 0, 0, 1247, 1248, 7, 36, 0, 0, 1248, 364, 1, 0, 0, 0, 1249, 1250, 7, 37, 0, 0, 1250, 366, 1, 0, 0, 0, 57, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 513, 523, 527, 530, 539, 541, 552, 593, 598, 607, 614, 619, 621, 632, 640, 643, 645, 650, 655, 661, 668, 673, 679, 682, 690, 694, 824, 829, 834, 836, 842, 893, 898, 933, 937, 942, 947, 952, 954, 958, 960, 1037, 1041, 1046, 1183, 1185, 24, 5, 2, 0, 5, 4, 0, 5, 6, 0, 5, 1, 0, 5, 3, 0, 5, 8, 0, 5, 5, 0, 5, 9, 0, 0, 1, 0, 7, 63, 0, 5, 0, 0, 7, 25, 0, 4, 0, 0, 7, 64, 0, 7, 33, 0, 7, 32, 0, 7, 66, 0, 7, 35, 0, 7, 75, 0, 5, 10, 0, 5, 7, 0, 7, 85, 0, 7, 84, 0, 7, 65, 0] \ No newline at end of file diff --git a/packages/kbn-monaco/src/esql/antlr/esql_lexer.ts b/packages/kbn-monaco/src/esql/antlr/esql_lexer.ts index 62d73860c3883..f123cf25d7421 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_lexer.ts +++ b/packages/kbn-monaco/src/esql/antlr/esql_lexer.ts @@ -1,22 +1,18 @@ // @ts-nocheck -// Generated from src/esql/antlr/esql_lexer.g4 by ANTLR 4.7.3-SNAPSHOT - - -import { ATN } from "antlr4ts/atn/ATN"; -import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer"; -import { CharStream } from "antlr4ts/CharStream"; -import { Lexer } from "antlr4ts/Lexer"; -import { LexerATNSimulator } from "antlr4ts/atn/LexerATNSimulator"; -import { NotNull } from "antlr4ts/Decorators"; -import { Override } from "antlr4ts/Decorators"; -import { RuleContext } from "antlr4ts/RuleContext"; -import { Vocabulary } from "antlr4ts/Vocabulary"; -import { VocabularyImpl } from "antlr4ts/VocabularyImpl"; - -import * as Utils from "antlr4ts/misc/Utils"; - - -export class esql_lexer extends Lexer { +// Generated from src/esql/antlr/esql_lexer.g4 by ANTLR 4.13.1 +// noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols +import { + ATN, + ATNDeserializer, + CharStream, + DecisionState, DFA, + Lexer, + LexerATNSimulator, + RuleContext, + PredictionContextCache, + Token +} from "antlr4"; +export default class esql_lexer extends Lexer { public static readonly DISSECT = 1; public static readonly DROP = 2; public static readonly ENRICH = 3; @@ -121,6 +117,7 @@ export class esql_lexer extends Lexer { public static readonly SETTING_LINE_COMMENT = 102; public static readonly SETTTING_MULTILINE_COMMENT = 103; public static readonly SETTING_WS = 104; + public static readonly EOF = Token.EOF; public static readonly EXPLAIN_MODE = 1; public static readonly EXPRESSION_MODE = 2; public static readonly FROM_MODE = 3; @@ -132,17 +129,138 @@ export class esql_lexer extends Lexer { public static readonly SHOW_MODE = 9; public static readonly SETTING_MODE = 10; - // tslint:disable:no-trailing-whitespace - public static readonly channelNames: string[] = [ - "DEFAULT_TOKEN_CHANNEL", "HIDDEN", - ]; - - // tslint:disable:no-trailing-whitespace - public static readonly modeNames: string[] = [ - "DEFAULT_MODE", "EXPLAIN_MODE", "EXPRESSION_MODE", "FROM_MODE", "PROJECT_MODE", - "RENAME_MODE", "ENRICH_MODE", "ENRICH_FIELD_MODE", "MVEXPAND_MODE", "SHOW_MODE", - "SETTING_MODE", - ]; + public static readonly channelNames: string[] = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; + public static readonly literalNames: (string | null)[] = [ null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, "'|'", + null, null, + null, null, + null, null, + "'='", "','", + null, "'.'", + null, null, + null, "'('", + null, null, + null, null, + null, null, + null, "'?'", + null, "')'", + null, "'=='", + "'=~'", "'!='", + "'<'", "'<='", + "'>'", "'>='", + "'+'", "'-'", + "'*'", "'/'", + "'%'", null, + "']'", null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + "':'" ]; + public static readonly symbolicNames: (string | null)[] = [ null, "DISSECT", + "DROP", "ENRICH", + "EVAL", "EXPLAIN", + "FROM", "GROK", + "INLINESTATS", + "KEEP", "LIMIT", + "MV_EXPAND", + "RENAME", "ROW", + "SHOW", "SORT", + "STATS", "WHERE", + "UNKNOWN_CMD", + "LINE_COMMENT", + "MULTILINE_COMMENT", + "WS", "EXPLAIN_WS", + "EXPLAIN_LINE_COMMENT", + "EXPLAIN_MULTILINE_COMMENT", + "PIPE", "STRING", + "INTEGER_LITERAL", + "DECIMAL_LITERAL", + "BY", "AND", + "ASC", "ASSIGN", + "COMMA", "DESC", + "DOT", "FALSE", + "FIRST", "LAST", + "LP", "IN", + "IS", "LIKE", + "NOT", "NULL", + "NULLS", "OR", + "PARAM", "RLIKE", + "RP", "TRUE", + "EQ", "CIEQ", + "NEQ", "LT", + "LTE", "GT", + "GTE", "PLUS", + "MINUS", "ASTERISK", + "SLASH", "PERCENT", + "OPENING_BRACKET", + "CLOSING_BRACKET", + "UNQUOTED_IDENTIFIER", + "QUOTED_IDENTIFIER", + "EXPR_LINE_COMMENT", + "EXPR_MULTILINE_COMMENT", + "EXPR_WS", + "METADATA", + "FROM_UNQUOTED_IDENTIFIER", + "FROM_LINE_COMMENT", + "FROM_MULTILINE_COMMENT", + "FROM_WS", + "ID_PATTERN", + "PROJECT_LINE_COMMENT", + "PROJECT_MULTILINE_COMMENT", + "PROJECT_WS", + "AS", "RENAME_LINE_COMMENT", + "RENAME_MULTILINE_COMMENT", + "RENAME_WS", + "ON", "WITH", + "ENRICH_POLICY_NAME", + "ENRICH_LINE_COMMENT", + "ENRICH_MULTILINE_COMMENT", + "ENRICH_WS", + "ENRICH_FIELD_LINE_COMMENT", + "ENRICH_FIELD_MULTILINE_COMMENT", + "ENRICH_FIELD_WS", + "MVEXPAND_LINE_COMMENT", + "MVEXPAND_MULTILINE_COMMENT", + "MVEXPAND_WS", + "INFO", "FUNCTIONS", + "SHOW_LINE_COMMENT", + "SHOW_MULTILINE_COMMENT", + "SHOW_WS", + "COLON", "SETTING", + "SETTING_LINE_COMMENT", + "SETTTING_MULTILINE_COMMENT", + "SETTING_WS" ]; + public static readonly modeNames: string[] = [ "DEFAULT_MODE", "EXPLAIN_MODE", + "EXPRESSION_MODE", "FROM_MODE", + "PROJECT_MODE", "RENAME_MODE", + "ENRICH_MODE", "ENRICH_FIELD_MODE", + "MVEXPAND_MODE", "SHOW_MODE", + "SETTING_MODE", ]; public static readonly ruleNames: string[] = [ "DISSECT", "DROP", "ENRICH", "EVAL", "EXPLAIN", "FROM", "GROK", "INLINESTATS", @@ -179,709 +297,460 @@ export class esql_lexer extends Lexer { "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", ]; - private static readonly _LITERAL_NAMES: Array = [ - undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, "'|'", undefined, undefined, - undefined, undefined, undefined, undefined, "'='", "','", undefined, "'.'", - undefined, undefined, undefined, "'('", undefined, undefined, undefined, - undefined, undefined, undefined, undefined, "'?'", undefined, "')'", undefined, - "'=='", "'=~'", "'!='", "'<'", "'<='", "'>'", "'>='", "'+'", "'-'", "'*'", - "'/'", "'%'", undefined, "']'", undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, "':'", - ]; - private static readonly _SYMBOLIC_NAMES: Array = [ - undefined, "DISSECT", "DROP", "ENRICH", "EVAL", "EXPLAIN", "FROM", "GROK", - "INLINESTATS", "KEEP", "LIMIT", "MV_EXPAND", "RENAME", "ROW", "SHOW", - "SORT", "STATS", "WHERE", "UNKNOWN_CMD", "LINE_COMMENT", "MULTILINE_COMMENT", - "WS", "EXPLAIN_WS", "EXPLAIN_LINE_COMMENT", "EXPLAIN_MULTILINE_COMMENT", - "PIPE", "STRING", "INTEGER_LITERAL", "DECIMAL_LITERAL", "BY", "AND", "ASC", - "ASSIGN", "COMMA", "DESC", "DOT", "FALSE", "FIRST", "LAST", "LP", "IN", - "IS", "LIKE", "NOT", "NULL", "NULLS", "OR", "PARAM", "RLIKE", "RP", "TRUE", - "EQ", "CIEQ", "NEQ", "LT", "LTE", "GT", "GTE", "PLUS", "MINUS", "ASTERISK", - "SLASH", "PERCENT", "OPENING_BRACKET", "CLOSING_BRACKET", "UNQUOTED_IDENTIFIER", - "QUOTED_IDENTIFIER", "EXPR_LINE_COMMENT", "EXPR_MULTILINE_COMMENT", "EXPR_WS", - "METADATA", "FROM_UNQUOTED_IDENTIFIER", "FROM_LINE_COMMENT", "FROM_MULTILINE_COMMENT", - "FROM_WS", "ID_PATTERN", "PROJECT_LINE_COMMENT", "PROJECT_MULTILINE_COMMENT", - "PROJECT_WS", "AS", "RENAME_LINE_COMMENT", "RENAME_MULTILINE_COMMENT", - "RENAME_WS", "ON", "WITH", "ENRICH_POLICY_NAME", "ENRICH_LINE_COMMENT", - "ENRICH_MULTILINE_COMMENT", "ENRICH_WS", "ENRICH_FIELD_LINE_COMMENT", - "ENRICH_FIELD_MULTILINE_COMMENT", "ENRICH_FIELD_WS", "MVEXPAND_LINE_COMMENT", - "MVEXPAND_MULTILINE_COMMENT", "MVEXPAND_WS", "INFO", "FUNCTIONS", "SHOW_LINE_COMMENT", - "SHOW_MULTILINE_COMMENT", "SHOW_WS", "COLON", "SETTING", "SETTING_LINE_COMMENT", - "SETTTING_MULTILINE_COMMENT", "SETTING_WS", - ]; - public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(esql_lexer._LITERAL_NAMES, esql_lexer._SYMBOLIC_NAMES, []); - - // @Override - // @NotNull - public get vocabulary(): Vocabulary { - return esql_lexer.VOCABULARY; - } - // tslint:enable:no-trailing-whitespace - constructor(input: CharStream) { super(input); - this._interp = new LexerATNSimulator(esql_lexer._ATN, this); + this._interp = new LexerATNSimulator(this, esql_lexer._ATN, esql_lexer.DecisionsToDFA, new PredictionContextCache()); } - // @Override public get grammarFileName(): string { return "esql_lexer.g4"; } - // @Override + public get literalNames(): (string | null)[] { return esql_lexer.literalNames; } + public get symbolicNames(): (string | null)[] { return esql_lexer.symbolicNames; } public get ruleNames(): string[] { return esql_lexer.ruleNames; } - // @Override - public get serializedATN(): string { return esql_lexer._serializedATN; } + public get serializedATN(): number[] { return esql_lexer._serializedATN; } - // @Override public get channelNames(): string[] { return esql_lexer.channelNames; } - // @Override public get modeNames(): string[] { return esql_lexer.modeNames; } - private static readonly _serializedATNSegments: number = 3; - private static readonly _serializedATNSegment0: string = - "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02j\u04E5\b\x01" + - "\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\x04\x02\t" + - "\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04\x07\t" + - "\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r\t\r\x04\x0E" + - "\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t\x12\x04\x13" + - "\t\x13\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17\t\x17\x04\x18" + - "\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04\x1C\t\x1C\x04\x1D" + - "\t\x1D\x04\x1E\t\x1E\x04\x1F\t\x1F\x04 \t \x04!\t!\x04\"\t\"\x04#\t#\x04" + - "$\t$\x04%\t%\x04&\t&\x04\'\t\'\x04(\t(\x04)\t)\x04*\t*\x04+\t+\x04,\t" + - ",\x04-\t-\x04.\t.\x04/\t/\x040\t0\x041\t1\x042\t2\x043\t3\x044\t4\x04" + - "5\t5\x046\t6\x047\t7\x048\t8\x049\t9\x04:\t:\x04;\t;\x04<\t<\x04=\t=\x04" + - ">\t>\x04?\t?\x04@\t@\x04A\tA\x04B\tB\x04C\tC\x04D\tD\x04E\tE\x04F\tF\x04" + - "G\tG\x04H\tH\x04I\tI\x04J\tJ\x04K\tK\x04L\tL\x04M\tM\x04N\tN\x04O\tO\x04" + - "P\tP\x04Q\tQ\x04R\tR\x04S\tS\x04T\tT\x04U\tU\x04V\tV\x04W\tW\x04X\tX\x04" + - "Y\tY\x04Z\tZ\x04[\t[\x04\\\t\\\x04]\t]\x04^\t^\x04_\t_\x04`\t`\x04a\t" + - "a\x04b\tb\x04c\tc\x04d\td\x04e\te\x04f\tf\x04g\tg\x04h\th\x04i\ti\x04" + - "j\tj\x04k\tk\x04l\tl\x04m\tm\x04n\tn\x04o\to\x04p\tp\x04q\tq\x04r\tr\x04" + - "s\ts\x04t\tt\x04u\tu\x04v\tv\x04w\tw\x04x\tx\x04y\ty\x04z\tz\x04{\t{\x04" + - "|\t|\x04}\t}\x04~\t~\x04\x7F\t\x7F\x04\x80\t\x80\x04\x81\t\x81\x04\x82" + - "\t\x82\x04\x83\t\x83\x04\x84\t\x84\x04\x85\t\x85\x04\x86\t\x86\x04\x87" + - "\t\x87\x04\x88\t\x88\x04\x89\t\x89\x04\x8A\t\x8A\x04\x8B\t\x8B\x04\x8C" + - "\t\x8C\x04\x8D\t\x8D\x04\x8E\t\x8E\x04\x8F\t\x8F\x04\x90\t\x90\x04\x91" + - "\t\x91\x04\x92\t\x92\x04\x93\t\x93\x04\x94\t\x94\x04\x95\t\x95\x04\x96" + - "\t\x96\x04\x97\t\x97\x04\x98\t\x98\x04\x99\t\x99\x04\x9A\t\x9A\x04\x9B" + - "\t\x9B\x04\x9C\t\x9C\x04\x9D\t\x9D\x04\x9E\t\x9E\x04\x9F\t\x9F\x04\xA0" + - "\t\xA0\x04\xA1\t\xA1\x04\xA2\t\xA2\x04\xA3\t\xA3\x04\xA4\t\xA4\x04\xA5" + - "\t\xA5\x04\xA6\t\xA6\x04\xA7\t\xA7\x04\xA8\t\xA8\x04\xA9\t\xA9\x04\xAA" + - "\t\xAA\x04\xAB\t\xAB\x04\xAC\t\xAC\x04\xAD\t\xAD\x04\xAE\t\xAE\x04\xAF" + - "\t\xAF\x04\xB0\t\xB0\x04\xB1\t\xB1\x04\xB2\t\xB2\x04\xB3\t\xB3\x03\x02" + - "\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02" + - "\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x04\x03\x04" + - "\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x05\x03\x05" + - "\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x06\x03\x06\x03\x06\x03\x06" + - "\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x07\x03\x07\x03\x07" + - "\x03\x07\x03\x07\x03\x07\x03\x07\x03\b\x03\b\x03\b\x03\b\x03\b\x03\b\x03" + - "\b\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03" + - "\t\x03\t\x03\t\x03\n\x03\n\x03\n\x03\n\x03\n\x03\n\x03\n\x03\v\x03\v\x03" + - "\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03" + - "\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\r\x03\r\x03\r\x03\r\x03\r\x03\r\x03" + - "\r\x03\r\x03\r\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0F" + - "\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x10\x03\x10\x03\x10" + - "\x03\x10\x03\x10\x03\x10\x03\x10\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11" + - "\x03\x11\x03\x11\x03\x11\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12" + - "\x03\x12\x03\x12\x03\x13\x06\x13\u0202\n\x13\r\x13\x0E\x13\u0203\x03\x13" + - "\x03\x13\x03\x14\x03\x14\x03\x14\x03\x14\x07\x14\u020C\n\x14\f\x14\x0E" + - "\x14\u020F\v\x14\x03\x14\x05\x14\u0212\n\x14\x03\x14\x05\x14\u0215\n\x14" + - "\x03\x14\x03\x14\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x07\x15\u021E" + - "\n\x15\f\x15\x0E\x15\u0221\v\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15" + - "\x03\x16\x06\x16\u0229\n\x16\r\x16\x0E\x16\u022A\x03\x16\x03\x16\x03\x17" + - "\x03\x17\x03\x17\x03\x17\x03\x17\x03\x18\x03\x18\x03\x18\x03\x18\x03\x18" + - "\x03\x19\x03\x19\x03\x19\x03\x19\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1B" + - "\x03\x1B\x03\x1B\x03\x1B\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1D\x03\x1D" + - "\x03\x1E\x03\x1E\x03\x1F\x03\x1F\x03\x1F\x03 \x03 \x03!\x03!\x05!\u0254" + - "\n!\x03!\x06!\u0257\n!\r!\x0E!\u0258\x03\"\x03\"\x03#\x03#\x03$\x03$\x03" + - "$\x05$\u0262\n$\x03%\x03%\x03&\x03&\x03&\x05&\u0269\n&\x03\'\x03\'\x03" + - "\'\x07\'\u026E\n\'\f\'\x0E\'\u0271\v\'\x03\'\x03\'\x03\'\x03\'\x03\'\x03" + - "\'\x07\'\u0279\n\'\f\'\x0E\'\u027C\v\'\x03\'\x03\'\x03\'\x03\'\x03\'\x05" + - "\'\u0283\n\'\x03\'\x05\'\u0286\n\'\x05\'\u0288\n\'\x03(\x06(\u028B\n(" + - "\r(\x0E(\u028C\x03)\x06)\u0290\n)\r)\x0E)\u0291\x03)\x03)\x07)\u0296\n" + - ")\f)\x0E)\u0299\v)\x03)\x03)\x06)\u029D\n)\r)\x0E)\u029E\x03)\x06)\u02A2" + - "\n)\r)\x0E)\u02A3\x03)\x03)\x07)\u02A8\n)\f)\x0E)\u02AB\v)\x05)\u02AD" + - "\n)\x03)\x03)\x03)\x03)\x06)\u02B3\n)\r)\x0E)\u02B4\x03)\x03)\x05)\u02B9" + - "\n)\x03*\x03*\x03*\x03+\x03+\x03+\x03+\x03,\x03,\x03,\x03,\x03-\x03-\x03" + - ".\x03.\x03/\x03/\x03/\x03/\x03/\x030\x030\x031\x031\x031\x031\x031\x03" + - "1\x032\x032\x032\x032\x032\x032\x033\x033\x033\x033\x033\x034\x034\x03" + - "5\x035\x035\x036\x036\x036\x037\x037\x037\x037\x037\x038\x038\x038\x03" + - "8\x039\x039\x039\x039\x039\x03:\x03:\x03:\x03:\x03:\x03:\x03;\x03;\x03" + - ";\x03<\x03<\x03=\x03=\x03=\x03=\x03=\x03=\x03>\x03>\x03?\x03?\x03?\x03" + - "?\x03?\x03@\x03@\x03@\x03A\x03A\x03A\x03B\x03B\x03B\x03C\x03C\x03D\x03" + - "D\x03D\x03E\x03E\x03F\x03F\x03F\x03G\x03G\x03H\x03H\x03I\x03I\x03J\x03" + - "J\x03K\x03K\x03L\x03L\x03L\x03L\x03L\x03M\x03M\x03M\x03M\x03M\x03N\x03" + - "N\x07N\u0339\nN\fN\x0EN\u033C\vN\x03N\x03N\x05N\u0340\nN\x03N\x06N\u0343" + - "\nN\rN\x0EN\u0344\x05N\u0347\nN\x03O\x03O\x06O\u034B\nO\rO\x0EO\u034C" + - "\x03O\x03O\x03P\x03P\x03Q\x03Q\x03Q\x03Q\x03R\x03R\x03R\x03R\x03S\x03" + - "S\x03S\x03S\x03T\x03T\x03T\x03T\x03T\x03U\x03U\x03U\x03U\x03V\x03V\x03" + - "V\x03V\x03W\x03W\x03W\x03W\x03X\x03X\x03X\x03X\x03Y\x03Y\x03Y\x03Y\x03" + - "Y\x03Y\x03Y\x03Y\x03Y\x03Z\x03Z\x03Z\x05Z\u0380\nZ\x03[\x06[\u0383\n[" + - "\r[\x0E[\u0384\x03\\\x03\\\x03\\\x03\\\x03]\x03]\x03]\x03]\x03^\x03^\x03" + - "^\x03^\x03_\x03_\x03_\x03_\x03`\x03`\x03`\x03`\x03`\x03a\x03a\x03a\x03" + - "a\x03b\x03b\x03b\x03b\x03c\x03c\x03c\x03c\x05c\u03A8\nc\x03d\x03d\x05" + - "d\u03AC\nd\x03d\x07d\u03AF\nd\fd\x0Ed\u03B2\vd\x03d\x03d\x05d\u03B6\n" + - "d\x03d\x06d\u03B9\nd\rd\x0Ed\u03BA\x05d\u03BD\nd\x03e\x03e\x06e\u03C1" + - "\ne\re\x0Ee\u03C2\x03f\x03f\x03f\x03f\x03g\x03g\x03g\x03g\x03h\x03h\x03" + - "h\x03h\x03i\x03i\x03i\x03i\x03i\x03j\x03j\x03j\x03j\x03k\x03k\x03k\x03" + - "k\x03l\x03l\x03l\x03l\x03m\x03m\x03m\x03n\x03n\x03n\x03n\x03o\x03o\x03" + - "o\x03o\x03p\x03p\x03p\x03p\x03q\x03q\x03q\x03q\x03r\x03r\x03r\x03r\x03" + - "r\x03s\x03s\x03s\x03s\x03s\x03t\x03t\x03t\x03t\x03t\x03u\x03u\x03u\x03" + - "u\x03u\x03u\x03u\x03v\x03v\x03w\x06w\u040E\nw\rw\x0Ew\u040F\x03w\x03w" + - "\x05w\u0414\nw\x03w\x06w\u0417\nw\rw\x0Ew\u0418\x03x\x03x\x03x\x03x\x03" + - "y\x03y\x03y\x03y\x03z\x03z\x03z\x03z\x03{\x03{\x03{\x03{\x03|\x03|\x03" + - "|\x03|\x03}\x03}\x03}\x03}\x03}\x03}\x03~\x03~\x03~\x03~\x03\x7F\x03\x7F" + - "\x03\x7F\x03\x7F\x03\x80\x03\x80\x03\x80\x03\x80\x03\x81\x03\x81\x03\x81" + - "\x03\x81\x03\x82\x03\x82\x03\x82\x03\x82\x03\x83\x03\x83\x03\x83\x03\x83" + - "\x03\x84\x03\x84\x03\x84\x03\x84\x03\x85\x03\x85\x03\x85\x03\x85\x03\x86" + - "\x03\x86\x03\x86\x03\x86\x03\x87\x03\x87\x03\x87\x03\x87\x03\x87\x03\x88" + - "\x03\x88\x03\x88\x03\x88\x03\x89\x03\x89\x03\x89\x03\x89\x03\x8A\x03\x8A" + - "\x03\x8A\x03\x8A\x03\x8B\x03\x8B\x03\x8B\x03\x8B\x03\x8C\x03\x8C\x03\x8C" + - "\x03\x8C\x03\x8D\x03\x8D\x03\x8D\x03\x8D\x03\x8E\x03\x8E\x03\x8E\x03\x8E" + - "\x03\x8E\x03\x8F\x03\x8F\x03\x8F\x03\x8F\x03\x8F\x03\x90\x03\x90\x03\x90" + - "\x03\x90\x03\x90\x03\x90\x03\x90\x03\x90\x03\x90\x03\x90\x03\x91\x03\x91" + - "\x03\x91\x03\x91\x03\x92\x03\x92\x03\x92\x03\x92\x03\x93\x03\x93\x03\x93" + - "\x03\x93\x03\x94\x03\x94\x03\x94\x03\x94\x03\x94\x03\x95\x03\x95\x03\x96" + - "\x03\x96\x03\x96\x03\x96\x03\x96\x06\x96\u04A2\n\x96\r\x96\x0E\x96\u04A3" + - "\x03\x97\x03\x97\x03\x97\x03\x97\x03\x98\x03\x98\x03\x98\x03\x98\x03\x99" + - "\x03\x99\x03\x99\x03\x99\x03\x9A\x03\x9A\x03\x9B\x03\x9B\x03\x9C\x03\x9C" + - "\x03\x9D\x03\x9D\x03\x9E\x03\x9E\x03\x9F\x03\x9F\x03\xA0\x03\xA0\x03\xA1" + - "\x03\xA1\x03\xA2\x03\xA2\x03\xA3\x03\xA3\x03\xA4\x03\xA4\x03\xA5\x03\xA5" + - "\x03\xA6\x03\xA6\x03\xA7\x03\xA7\x03\xA8\x03\xA8\x03\xA9\x03\xA9\x03\xAA" + - "\x03\xAA\x03\xAB\x03\xAB\x03\xAC\x03\xAC\x03\xAD\x03\xAD\x03\xAE\x03\xAE" + - "\x03\xAF\x03\xAF\x03\xB0\x03\xB0\x03\xB1\x03\xB1\x03\xB2\x03\xB2\x03\xB3" + - "\x03\xB3\x04\u021F\u027A\x02\x02\xB4\r\x02\x03\x0F\x02\x04\x11\x02\x05" + - "\x13\x02\x06\x15\x02\x07\x17\x02\b\x19\x02\t\x1B\x02\n\x1D\x02\v\x1F\x02" + - "\f!\x02\r#\x02\x0E%\x02\x0F\'\x02\x10)\x02\x11+\x02\x12-\x02\x13/\x02" + - "\x141\x02\x153\x02\x165\x02\x177\x02\x029\x02\x02;\x02\x18=\x02\x19?\x02" + - "\x1AA\x02\x1BC\x02\x02E\x02\x02G\x02\x02I\x02\x02K\x02\x02M\x02\x02O\x02" + - "\x02Q\x02\x02S\x02\x02U\x02\x02W\x02\x1CY\x02\x1D[\x02\x1E]\x02\x1F_\x02" + - " a\x02!c\x02\"e\x02#g\x02$i\x02%k\x02&m\x02\'o\x02(q\x02)s\x02*u\x02+" + - "w\x02,y\x02-{\x02.}\x02/\x7F\x020\x81\x021\x83\x022\x85\x023\x87\x024" + - "\x89\x025\x8B\x026\x8D\x027\x8F\x028\x91\x029\x93\x02:\x95\x02;\x97\x02" + - "<\x99\x02=\x9B\x02>\x9D\x02?\x9F\x02@\xA1\x02A\xA3\x02B\xA5\x02C\xA7\x02" + - "\x02\xA9\x02D\xAB\x02E\xAD\x02F\xAF\x02G\xB1\x02\x02\xB3\x02\x02\xB5\x02" + - "\x02\xB7\x02\x02\xB9\x02\x02\xBB\x02H\xBD\x02\x02\xBF\x02I\xC1\x02\x02" + - "\xC3\x02J\xC5\x02K\xC7\x02L\xC9\x02\x02\xCB\x02\x02\xCD\x02\x02\xCF\x02" + - "\x02\xD1\x02\x02\xD3\x02M\xD5\x02N\xD7\x02O\xD9\x02P\xDB\x02\x02\xDD\x02" + - "\x02\xDF\x02\x02\xE1\x02\x02\xE3\x02Q\xE5\x02\x02\xE7\x02R\xE9\x02S\xEB" + - "\x02T\xED\x02\x02\xEF\x02\x02\xF1\x02U\xF3\x02V\xF5\x02\x02\xF7\x02W\xF9" + - "\x02\x02\xFB\x02\x02\xFD\x02X\xFF\x02Y\u0101\x02Z\u0103\x02\x02\u0105" + - "\x02\x02\u0107\x02\x02\u0109\x02\x02\u010B\x02\x02\u010D\x02\x02\u010F" + - "\x02\x02\u0111\x02[\u0113\x02\\\u0115\x02]\u0117\x02\x02\u0119\x02\x02" + - "\u011B\x02\x02\u011D\x02\x02\u011F\x02^\u0121\x02_\u0123\x02`\u0125\x02" + - "\x02\u0127\x02a\u0129\x02b\u012B\x02c\u012D\x02d\u012F\x02e\u0131\x02" + - "\x02\u0133\x02f\u0135\x02g\u0137\x02h\u0139\x02i\u013B\x02j\u013D\x02" + - "\x02\u013F\x02\x02\u0141\x02\x02\u0143\x02\x02\u0145\x02\x02\u0147\x02" + - "\x02\u0149\x02\x02\u014B\x02\x02\u014D\x02\x02\u014F\x02\x02\u0151\x02" + - "\x02\u0153\x02\x02\u0155\x02\x02\u0157\x02\x02\u0159\x02\x02\u015B\x02" + - "\x02\u015D\x02\x02\u015F\x02\x02\u0161\x02\x02\u0163\x02\x02\u0165\x02" + - "\x02\u0167\x02\x02\u0169\x02\x02\u016B\x02\x02\u016D\x02\x02\u016F\x02" + - "\x02\r\x02\x03\x04\x05\x06\x07\b\t\n\v\f(\b\x02\v\f\x0F\x0F\"\"11]]__" + - "\x04\x02\f\f\x0F\x0F\x05\x02\v\f\x0F\x0F\"\"\x03\x022;\x04\x02C\\c|\x07" + - "\x02$$^^ppttvv\x06\x02\f\f\x0F\x0F$$^^\x04\x02GGgg\x04\x02--//\x03\x02" + - "bb\f\x02\v\f\x0F\x0F\"\"..11??]]__bb~~\x04\x02,,11\r\x02\v\f\x0F\x0F\"" + - "\"$%..11<<>>@A^^~~\x04\x02CCcc\x04\x02DDdd\x04\x02EEee\x04\x02FFff\x04" + - "\x02HHhh\x04\x02IIii\x04\x02JJjj\x04\x02KKkk\x04\x02LLll\x04\x02MMmm\x04" + - "\x02NNnn\x04\x02OOoo\x04\x02PPpp\x04\x02QQqq\x04\x02RRrr\x04\x02SSss\x04" + - "\x02TTtt\x04\x02UUuu\x04\x02VVvv\x04\x02WWww\x04\x02XXxx\x04\x02YYyy\x04" + - "\x02ZZzz\x04\x02[[{{\x04\x02\\\\||\x02\u04E7\x02\r\x03\x02\x02\x02\x02" + - "\x0F\x03\x02\x02\x02\x02\x11\x03\x02\x02\x02\x02\x13\x03\x02\x02\x02\x02" + - "\x15\x03\x02\x02\x02\x02\x17\x03\x02\x02\x02\x02\x19\x03\x02\x02\x02\x02" + - "\x1B\x03\x02\x02\x02\x02\x1D\x03\x02\x02\x02\x02\x1F\x03\x02\x02\x02\x02" + - "!\x03\x02\x02\x02\x02#\x03\x02\x02\x02\x02%\x03\x02\x02\x02\x02\'\x03" + - "\x02\x02\x02\x02)\x03\x02\x02\x02\x02+\x03\x02\x02\x02\x02-\x03\x02\x02" + - "\x02\x02/\x03\x02\x02\x02\x021\x03\x02\x02\x02\x023\x03\x02\x02\x02\x02" + - "5\x03\x02\x02\x02\x037\x03\x02\x02\x02\x039\x03\x02\x02\x02\x03;\x03\x02" + - "\x02\x02\x03=\x03\x02\x02\x02\x03?\x03\x02\x02\x02\x04A\x03\x02\x02\x02" + - "\x04W\x03\x02\x02\x02\x04Y\x03\x02\x02\x02\x04[\x03\x02\x02\x02\x04]\x03" + - "\x02\x02\x02\x04_\x03\x02\x02\x02\x04a\x03\x02\x02\x02\x04c\x03\x02\x02" + - "\x02\x04e\x03\x02\x02\x02\x04g\x03\x02\x02\x02\x04i\x03\x02\x02\x02\x04" + - "k\x03\x02\x02\x02\x04m\x03\x02\x02\x02\x04o\x03\x02\x02\x02\x04q\x03\x02" + - "\x02\x02\x04s\x03\x02\x02\x02\x04u\x03\x02\x02\x02\x04w\x03\x02\x02\x02" + - "\x04y\x03\x02\x02\x02\x04{\x03\x02\x02\x02\x04}\x03\x02\x02\x02\x04\x7F" + - "\x03\x02\x02\x02\x04\x81\x03\x02\x02\x02\x04\x83\x03\x02\x02\x02\x04\x85" + - "\x03\x02\x02\x02\x04\x87\x03\x02\x02\x02\x04\x89\x03\x02\x02\x02\x04\x8B" + - "\x03\x02\x02\x02\x04\x8D\x03\x02\x02\x02\x04\x8F\x03\x02\x02\x02\x04\x91" + - "\x03\x02\x02\x02\x04\x93\x03\x02\x02\x02\x04\x95\x03\x02\x02\x02\x04\x97" + - "\x03\x02\x02\x02\x04\x99\x03\x02\x02\x02\x04\x9B\x03\x02\x02\x02\x04\x9D" + - "\x03\x02\x02\x02\x04\x9F\x03\x02\x02\x02\x04\xA1\x03\x02\x02\x02\x04\xA3" + - "\x03\x02\x02\x02\x04\xA5\x03\x02\x02\x02\x04\xA9\x03\x02\x02\x02\x04\xAB" + - "\x03\x02\x02\x02\x04\xAD\x03\x02\x02\x02\x04\xAF\x03\x02\x02\x02\x05\xB1" + - "\x03\x02\x02\x02\x05\xB3\x03\x02\x02\x02\x05\xB5\x03\x02\x02\x02\x05\xB7" + - "\x03\x02\x02\x02\x05\xB9\x03\x02\x02\x02\x05\xBB\x03\x02\x02\x02\x05\xBF" + - "\x03\x02\x02\x02\x05\xC1\x03\x02\x02\x02\x05\xC3\x03\x02\x02\x02\x05\xC5" + - "\x03\x02\x02\x02\x05\xC7\x03\x02\x02\x02\x06\xC9\x03\x02\x02\x02\x06\xCB" + - "\x03\x02\x02\x02\x06\xCD\x03\x02\x02\x02\x06\xD3\x03\x02\x02\x02\x06\xD5" + - "\x03\x02\x02\x02\x06\xD7\x03\x02\x02\x02\x06\xD9\x03\x02\x02\x02\x07\xDB" + - "\x03\x02\x02\x02\x07\xDD\x03\x02\x02\x02\x07\xDF\x03\x02\x02\x02\x07\xE1" + - "\x03\x02\x02\x02\x07\xE3\x03\x02\x02\x02\x07\xE5\x03\x02\x02\x02\x07\xE7" + - "\x03\x02\x02\x02\x07\xE9\x03\x02\x02\x02\x07\xEB\x03\x02\x02\x02\b\xED" + - "\x03\x02\x02\x02\b\xEF\x03\x02\x02\x02\b\xF1\x03\x02\x02\x02\b\xF3\x03" + - "\x02\x02\x02\b\xF7\x03\x02\x02\x02\b\xF9\x03\x02\x02\x02\b\xFB\x03\x02" + - "\x02\x02\b\xFD\x03\x02\x02\x02\b\xFF\x03\x02\x02\x02\b\u0101\x03\x02\x02" + - "\x02\t\u0103\x03\x02\x02\x02\t\u0105\x03\x02\x02\x02\t\u0107\x03\x02\x02" + - "\x02\t\u0109\x03\x02\x02\x02\t\u010B\x03\x02\x02\x02\t\u010D\x03\x02\x02" + - "\x02\t\u010F\x03\x02\x02\x02\t\u0111\x03\x02\x02\x02\t\u0113\x03\x02\x02" + - "\x02\t\u0115\x03\x02\x02\x02\n\u0117\x03\x02\x02\x02\n\u0119\x03\x02\x02" + - "\x02\n\u011B\x03\x02\x02\x02\n\u011D\x03\x02\x02\x02\n\u011F\x03\x02\x02" + - "\x02\n\u0121\x03\x02\x02\x02\n\u0123\x03\x02\x02\x02\v\u0125\x03\x02\x02" + - "\x02\v\u0127\x03\x02\x02\x02\v\u0129\x03\x02\x02\x02\v\u012B\x03\x02\x02" + - "\x02\v\u012D\x03\x02\x02\x02\v\u012F\x03\x02\x02\x02\f\u0131\x03\x02\x02" + - "\x02\f\u0133\x03\x02\x02\x02\f\u0135\x03\x02\x02\x02\f\u0137\x03\x02\x02" + - "\x02\f\u0139\x03\x02\x02\x02\f\u013B\x03\x02\x02\x02\r\u0171\x03\x02\x02" + - "\x02\x0F\u017B\x03\x02\x02\x02\x11\u0182\x03\x02\x02\x02\x13\u018B\x03" + - "\x02\x02\x02\x15\u0192\x03\x02\x02\x02\x17\u019C\x03\x02\x02\x02\x19\u01A3" + - "\x03\x02\x02\x02\x1B\u01AA\x03\x02\x02\x02\x1D\u01B8\x03\x02\x02\x02\x1F" + - "\u01BF\x03\x02\x02\x02!\u01C7\x03\x02\x02\x02#\u01D3\x03\x02\x02\x02%" + - "\u01DC\x03\x02\x02\x02\'\u01E2\x03\x02\x02\x02)\u01E9\x03\x02\x02\x02" + - "+\u01F0\x03\x02\x02\x02-\u01F8\x03\x02\x02\x02/\u0201\x03\x02\x02\x02" + - "1\u0207\x03\x02\x02\x023\u0218\x03\x02\x02\x025\u0228\x03\x02\x02\x02" + - "7\u022E\x03\x02\x02\x029\u0233\x03\x02\x02\x02;\u0238\x03\x02\x02\x02" + - "=\u023C\x03\x02\x02\x02?\u0240\x03\x02\x02\x02A\u0244\x03\x02\x02\x02" + - "C\u0248\x03\x02\x02\x02E\u024A\x03\x02\x02\x02G\u024C\x03\x02\x02\x02" + - "I\u024F\x03\x02\x02\x02K\u0251\x03\x02\x02\x02M\u025A\x03\x02\x02\x02" + - "O\u025C\x03\x02\x02\x02Q\u0261\x03\x02\x02\x02S\u0263\x03\x02\x02\x02" + - "U\u0268\x03\x02\x02\x02W\u0287\x03\x02\x02\x02Y\u028A\x03\x02\x02\x02" + - "[\u02B8\x03\x02\x02\x02]\u02BA\x03\x02\x02\x02_\u02BD\x03\x02\x02\x02" + - "a\u02C1\x03\x02\x02\x02c\u02C5\x03\x02\x02\x02e\u02C7\x03\x02\x02\x02" + - "g\u02C9\x03\x02\x02\x02i\u02CE\x03\x02\x02\x02k\u02D0\x03\x02\x02\x02" + - "m\u02D6\x03\x02\x02\x02o\u02DC\x03\x02\x02\x02q\u02E1\x03\x02\x02\x02" + - "s\u02E3\x03\x02\x02\x02u\u02E6\x03\x02\x02\x02w\u02E9\x03\x02\x02\x02" + - "y\u02EE\x03\x02\x02\x02{\u02F2\x03\x02\x02\x02}\u02F7\x03\x02\x02\x02" + - "\x7F\u02FD\x03\x02\x02\x02\x81\u0300\x03\x02\x02\x02\x83\u0302\x03\x02" + - "\x02\x02\x85\u0308\x03\x02\x02\x02\x87\u030A\x03\x02\x02\x02\x89\u030F" + - "\x03\x02\x02\x02\x8B\u0312\x03\x02\x02\x02\x8D\u0315\x03\x02\x02\x02\x8F" + - "\u0318\x03\x02\x02\x02\x91\u031A\x03\x02\x02\x02\x93\u031D\x03\x02\x02" + - "\x02\x95\u031F\x03\x02\x02\x02\x97\u0322\x03\x02\x02\x02\x99\u0324\x03" + - "\x02\x02\x02\x9B\u0326\x03\x02\x02\x02\x9D\u0328\x03\x02\x02\x02\x9F\u032A" + - "\x03\x02\x02\x02\xA1\u032C\x03\x02\x02\x02\xA3\u0331\x03\x02\x02\x02\xA5" + - "\u0346\x03\x02\x02\x02\xA7\u0348\x03\x02\x02\x02\xA9\u0350\x03\x02\x02" + - "\x02\xAB\u0352\x03\x02\x02\x02\xAD\u0356\x03\x02\x02\x02\xAF\u035A\x03" + - "\x02\x02\x02\xB1\u035E\x03\x02\x02\x02\xB3\u0363\x03\x02\x02\x02\xB5\u0367" + - "\x03\x02\x02\x02\xB7\u036B\x03\x02\x02\x02\xB9\u036F\x03\x02\x02\x02\xBB" + - "\u0373\x03\x02\x02\x02\xBD\u037F\x03\x02\x02\x02\xBF\u0382\x03\x02\x02" + - "\x02\xC1\u0386\x03\x02\x02\x02\xC3\u038A\x03\x02\x02\x02\xC5\u038E\x03" + - "\x02\x02\x02\xC7\u0392\x03\x02\x02\x02\xC9\u0396\x03\x02\x02\x02\xCB\u039B" + - "\x03\x02\x02\x02\xCD\u039F\x03\x02\x02\x02\xCF\u03A7\x03\x02\x02\x02\xD1" + - "\u03BC\x03\x02\x02\x02\xD3\u03C0\x03\x02\x02\x02\xD5\u03C4\x03\x02\x02" + - "\x02\xD7\u03C8\x03\x02\x02\x02\xD9\u03CC\x03\x02\x02\x02\xDB\u03D0\x03" + - "\x02\x02\x02\xDD\u03D5\x03\x02\x02\x02\xDF\u03D9\x03\x02\x02\x02\xE1\u03DD" + - "\x03\x02\x02\x02\xE3\u03E1\x03\x02\x02\x02\xE5\u03E4\x03\x02\x02\x02\xE7" + - "\u03E8\x03\x02\x02\x02\xE9\u03EC\x03\x02\x02\x02\xEB\u03F0\x03\x02\x02" + - "\x02\xED\u03F4\x03\x02\x02\x02\xEF\u03F9\x03\x02\x02\x02\xF1\u03FE\x03" + - "\x02\x02\x02\xF3\u0403\x03\x02\x02\x02\xF5\u040A\x03\x02\x02\x02\xF7\u0413" + - "\x03\x02\x02\x02\xF9\u041A\x03\x02\x02\x02\xFB\u041E\x03\x02\x02\x02\xFD" + - "\u0422\x03\x02\x02\x02\xFF\u0426\x03\x02\x02\x02\u0101\u042A\x03\x02\x02" + - "\x02\u0103\u042E\x03\x02\x02\x02\u0105\u0434\x03\x02\x02\x02\u0107\u0438" + - "\x03\x02\x02\x02\u0109\u043C\x03\x02\x02\x02\u010B\u0440\x03"; - private static readonly _serializedATNSegment1: string = - "\x02\x02\x02\u010D\u0444\x03\x02\x02\x02\u010F\u0448\x03\x02\x02\x02\u0111" + - "\u044C\x03\x02\x02\x02\u0113\u0450\x03\x02\x02\x02\u0115\u0454\x03\x02" + - "\x02\x02\u0117\u0458\x03\x02\x02\x02\u0119\u045D\x03\x02\x02\x02\u011B" + - "\u0461\x03\x02\x02\x02\u011D\u0465\x03\x02\x02\x02\u011F\u0469\x03\x02" + - "\x02\x02\u0121\u046D\x03\x02\x02\x02\u0123\u0471\x03\x02\x02\x02\u0125" + - "\u0475\x03\x02\x02\x02\u0127\u047A\x03\x02\x02\x02\u0129\u047F\x03\x02" + - "\x02\x02\u012B\u0489\x03\x02\x02\x02\u012D\u048D\x03\x02\x02\x02\u012F" + - "\u0491\x03\x02\x02\x02\u0131\u0495\x03\x02\x02\x02\u0133\u049A\x03\x02" + - "\x02\x02\u0135\u04A1\x03\x02\x02\x02\u0137\u04A5\x03\x02\x02\x02\u0139" + - "\u04A9\x03\x02\x02\x02\u013B\u04AD\x03\x02\x02\x02\u013D\u04B1\x03\x02" + - "\x02\x02\u013F\u04B3\x03\x02\x02\x02\u0141\u04B5\x03\x02\x02\x02\u0143" + - "\u04B7\x03\x02\x02\x02\u0145\u04B9\x03\x02\x02\x02\u0147\u04BB\x03\x02" + - "\x02\x02\u0149\u04BD\x03\x02\x02\x02\u014B\u04BF\x03\x02\x02\x02\u014D" + - "\u04C1\x03\x02\x02\x02\u014F\u04C3\x03\x02\x02\x02\u0151\u04C5\x03\x02" + - "\x02\x02\u0153\u04C7\x03\x02\x02\x02\u0155\u04C9\x03\x02\x02\x02\u0157" + - "\u04CB\x03\x02\x02\x02\u0159\u04CD\x03\x02\x02\x02\u015B\u04CF\x03\x02" + - "\x02\x02\u015D\u04D1\x03\x02\x02\x02\u015F\u04D3\x03\x02\x02\x02\u0161" + - "\u04D5\x03\x02\x02\x02\u0163\u04D7\x03\x02\x02\x02\u0165\u04D9\x03\x02" + - "\x02\x02\u0167\u04DB\x03\x02\x02\x02\u0169\u04DD\x03\x02\x02\x02\u016B" + - "\u04DF\x03\x02\x02\x02\u016D\u04E1\x03\x02\x02\x02\u016F\u04E3\x03\x02" + - "\x02\x02\u0171\u0172\x05\u0143\x9D\x02\u0172\u0173\x05\u014D\xA2\x02\u0173" + - "\u0174\x05\u0161\xAC\x02\u0174\u0175\x05\u0161\xAC\x02\u0175\u0176\x05" + - "\u0145\x9E\x02\u0176\u0177\x05\u0141\x9C\x02\u0177\u0178\x05\u0163\xAD" + - "\x02\u0178\u0179\x03\x02\x02\x02\u0179\u017A\b\x02\x02\x02\u017A\x0E\x03" + - "\x02\x02\x02\u017B\u017C\x05\u0143\x9D\x02\u017C\u017D\x05\u015F\xAB\x02" + - "\u017D\u017E\x05\u0159\xA8\x02\u017E\u017F\x05\u015B\xA9\x02\u017F\u0180" + - "\x03\x02\x02\x02\u0180\u0181\b\x03\x03\x02\u0181\x10\x03\x02\x02\x02\u0182" + - "\u0183\x05\u0145\x9E\x02\u0183\u0184\x05\u0157\xA7\x02\u0184\u0185\x05" + - "\u015F\xAB\x02\u0185\u0186\x05\u014D\xA2\x02\u0186\u0187\x05\u0141\x9C" + - "\x02\u0187\u0188\x05\u014B\xA1\x02\u0188\u0189\x03\x02\x02\x02\u0189\u018A" + - "\b\x04\x04\x02\u018A\x12\x03\x02\x02\x02\u018B\u018C\x05\u0145\x9E\x02" + - "\u018C\u018D\x05\u0167\xAF\x02\u018D\u018E\x05\u013D\x9A\x02\u018E\u018F" + - "\x05\u0153\xA5\x02\u018F\u0190\x03\x02\x02\x02\u0190\u0191\b\x05\x02\x02" + - "\u0191\x14\x03\x02\x02\x02\u0192\u0193\x05\u0145\x9E\x02\u0193\u0194\x05" + - "\u016B\xB1\x02\u0194\u0195\x05\u015B\xA9\x02\u0195\u0196\x05\u0153\xA5" + - "\x02\u0196\u0197\x05\u013D\x9A\x02\u0197\u0198\x05\u014D\xA2\x02\u0198" + - "\u0199\x05\u0157\xA7\x02\u0199\u019A\x03\x02\x02\x02\u019A\u019B\b\x06" + - "\x05\x02\u019B\x16\x03\x02\x02\x02\u019C\u019D\x05\u0147\x9F\x02\u019D" + - "\u019E\x05\u015F\xAB\x02\u019E\u019F\x05\u0159\xA8\x02\u019F\u01A0\x05" + - "\u0155\xA6\x02\u01A0\u01A1\x03\x02\x02\x02\u01A1\u01A2\b\x07\x06\x02\u01A2" + - "\x18\x03\x02\x02\x02\u01A3\u01A4\x05\u0149\xA0\x02\u01A4\u01A5\x05\u015F" + - "\xAB\x02\u01A5\u01A6\x05\u0159\xA8\x02\u01A6\u01A7\x05\u0151\xA4\x02\u01A7" + - "\u01A8\x03\x02\x02\x02\u01A8\u01A9\b\b\x02\x02\u01A9\x1A\x03\x02\x02\x02" + - "\u01AA\u01AB\x05\u014D\xA2\x02\u01AB\u01AC\x05\u0157\xA7\x02\u01AC\u01AD" + - "\x05\u0153\xA5\x02\u01AD\u01AE\x05\u014D\xA2\x02\u01AE\u01AF\x05\u0157" + - "\xA7\x02\u01AF\u01B0\x05\u0145\x9E\x02\u01B0\u01B1\x05\u0161\xAC\x02\u01B1" + - "\u01B2\x05\u0163\xAD\x02\u01B2\u01B3\x05\u013D\x9A\x02\u01B3\u01B4\x05" + - "\u0163\xAD\x02\u01B4\u01B5\x05\u0161\xAC\x02\u01B5\u01B6\x03\x02\x02\x02" + - "\u01B6\u01B7\b\t\x02\x02\u01B7\x1C\x03\x02\x02\x02\u01B8\u01B9\x05\u0151" + - "\xA4\x02\u01B9\u01BA\x05\u0145\x9E\x02\u01BA\u01BB\x05\u0145\x9E\x02\u01BB" + - "\u01BC\x05\u015B\xA9\x02\u01BC\u01BD\x03\x02\x02\x02\u01BD\u01BE\b\n\x03" + - "\x02\u01BE\x1E\x03\x02\x02\x02\u01BF\u01C0\x05\u0153\xA5\x02\u01C0\u01C1" + - "\x05\u014D\xA2\x02\u01C1\u01C2\x05\u0155\xA6\x02\u01C2\u01C3\x05\u014D" + - "\xA2\x02\u01C3\u01C4\x05\u0163\xAD\x02\u01C4\u01C5\x03\x02\x02\x02\u01C5" + - "\u01C6\b\v\x02\x02\u01C6 \x03\x02\x02\x02\u01C7\u01C8\x05\u0155\xA6\x02" + - "\u01C8\u01C9\x05\u0167\xAF\x02\u01C9\u01CA\x05S%\x02\u01CA\u01CB\x05\u0145" + - "\x9E\x02\u01CB\u01CC\x05\u016B\xB1\x02\u01CC\u01CD\x05\u015B\xA9\x02\u01CD" + - "\u01CE\x05\u013D\x9A\x02\u01CE\u01CF\x05\u0157\xA7\x02\u01CF\u01D0\x05" + - "\u0143\x9D\x02\u01D0\u01D1\x03\x02\x02\x02\u01D1\u01D2\b\f\x07\x02\u01D2" + - "\"\x03\x02\x02\x02\u01D3\u01D4\x05\u015F\xAB\x02\u01D4\u01D5\x05\u0145" + - "\x9E\x02\u01D5\u01D6\x05\u0157\xA7\x02\u01D6\u01D7\x05\u013D\x9A\x02\u01D7" + - "\u01D8\x05\u0155\xA6\x02\u01D8\u01D9\x05\u0145\x9E\x02\u01D9\u01DA\x03" + - "\x02\x02\x02\u01DA\u01DB\b\r\b\x02\u01DB$\x03\x02\x02\x02\u01DC\u01DD" + - "\x05\u015F\xAB\x02\u01DD\u01DE\x05\u0159\xA8\x02\u01DE\u01DF\x05\u0169" + - "\xB0\x02\u01DF\u01E0\x03\x02\x02\x02\u01E0\u01E1\b\x0E\x02\x02\u01E1&" + - "\x03\x02\x02\x02\u01E2\u01E3\x05\u0161\xAC\x02\u01E3\u01E4\x05\u014B\xA1" + - "\x02\u01E4\u01E5\x05\u0159\xA8\x02\u01E5\u01E6\x05\u0169\xB0\x02\u01E6" + - "\u01E7\x03\x02\x02\x02\u01E7\u01E8\b\x0F\t\x02\u01E8(\x03\x02\x02\x02" + - "\u01E9\u01EA\x05\u0161\xAC\x02\u01EA\u01EB\x05\u0159\xA8\x02\u01EB\u01EC" + - "\x05\u015F\xAB\x02\u01EC\u01ED\x05\u0163\xAD\x02\u01ED\u01EE\x03\x02\x02" + - "\x02\u01EE\u01EF\b\x10\x02\x02\u01EF*\x03\x02\x02\x02\u01F0\u01F1\x05" + - "\u0161\xAC\x02\u01F1\u01F2\x05\u0163\xAD\x02\u01F2\u01F3\x05\u013D\x9A" + - "\x02\u01F3\u01F4\x05\u0163\xAD\x02\u01F4\u01F5\x05\u0161\xAC\x02\u01F5" + - "\u01F6\x03\x02\x02\x02\u01F6\u01F7\b\x11\x02\x02\u01F7,\x03\x02\x02\x02" + - "\u01F8\u01F9\x05\u0169\xB0\x02\u01F9\u01FA\x05\u014B\xA1\x02\u01FA\u01FB" + - "\x05\u0145\x9E\x02\u01FB\u01FC\x05\u015F\xAB\x02\u01FC\u01FD\x05\u0145" + - "\x9E\x02\u01FD\u01FE\x03\x02\x02\x02\u01FE\u01FF\b\x12\x02\x02\u01FF." + - "\x03\x02\x02\x02\u0200\u0202\n\x02\x02\x02\u0201\u0200\x03\x02\x02\x02" + - "\u0202\u0203\x03\x02\x02\x02\u0203\u0201\x03\x02\x02\x02\u0203\u0204\x03" + - "\x02\x02\x02\u0204\u0205\x03\x02\x02\x02\u0205\u0206\b\x13\x02\x02\u0206" + - "0\x03\x02\x02\x02\u0207\u0208\x071\x02\x02\u0208\u0209\x071\x02\x02\u0209" + - "\u020D\x03\x02\x02\x02\u020A\u020C\n\x03\x02\x02\u020B\u020A\x03\x02\x02" + - "\x02\u020C\u020F\x03\x02\x02\x02\u020D\u020B\x03\x02\x02\x02\u020D\u020E" + - "\x03\x02\x02\x02\u020E\u0211\x03\x02\x02\x02\u020F\u020D\x03\x02\x02\x02" + - "\u0210\u0212\x07\x0F\x02\x02\u0211\u0210\x03\x02\x02\x02\u0211\u0212\x03" + - "\x02\x02\x02\u0212\u0214\x03\x02\x02\x02\u0213\u0215\x07\f\x02\x02\u0214" + - "\u0213\x03\x02\x02\x02\u0214\u0215\x03\x02\x02\x02\u0215\u0216\x03\x02" + - "\x02\x02\u0216\u0217\b\x14\n\x02\u02172\x03\x02\x02\x02\u0218\u0219\x07" + - "1\x02\x02\u0219\u021A\x07,\x02\x02\u021A\u021F\x03\x02\x02\x02\u021B\u021E" + - "\x053\x15\x02\u021C\u021E\v\x02\x02\x02\u021D\u021B\x03\x02\x02\x02\u021D" + - "\u021C\x03\x02\x02\x02\u021E\u0221\x03\x02\x02\x02\u021F\u0220\x03\x02" + - "\x02\x02\u021F\u021D\x03\x02\x02\x02\u0220\u0222\x03\x02\x02\x02\u0221" + - "\u021F\x03\x02\x02\x02\u0222\u0223\x07,\x02\x02\u0223\u0224\x071\x02\x02" + - "\u0224\u0225\x03\x02\x02\x02\u0225\u0226\b\x15\n\x02\u02264\x03\x02\x02" + - "\x02\u0227\u0229\t\x04\x02\x02\u0228\u0227\x03\x02\x02\x02\u0229\u022A" + - "\x03\x02\x02\x02\u022A\u0228\x03\x02\x02\x02\u022A\u022B\x03\x02\x02\x02" + - "\u022B\u022C\x03\x02\x02\x02\u022C\u022D\b\x16\n\x02\u022D6\x03\x02\x02" + - "\x02\u022E\u022F\x05\xA1L\x02\u022F\u0230\x03\x02\x02\x02\u0230\u0231" + - "\b\x17\v\x02\u0231\u0232\b\x17\f\x02\u02328\x03\x02\x02\x02\u0233\u0234" + - "\x05A\x1C\x02\u0234\u0235\x03\x02\x02\x02\u0235\u0236\b\x18\r\x02\u0236" + - "\u0237\b\x18\x0E\x02\u0237:\x03\x02\x02\x02\u0238\u0239\x055\x16\x02\u0239" + - "\u023A\x03\x02\x02\x02\u023A\u023B\b\x19\n\x02\u023B<\x03\x02\x02\x02" + - "\u023C\u023D\x051\x14\x02\u023D\u023E\x03\x02\x02\x02\u023E\u023F\b\x1A" + - "\n\x02\u023F>\x03\x02\x02\x02\u0240\u0241\x053\x15\x02\u0241\u0242\x03" + - "\x02\x02\x02\u0242\u0243\b\x1B\n\x02\u0243@\x03\x02\x02\x02\u0244\u0245" + - "\x07~\x02\x02\u0245\u0246\x03\x02\x02\x02\u0246\u0247\b\x1C\x0E\x02\u0247" + - "B\x03\x02\x02\x02\u0248\u0249\t\x05\x02\x02\u0249D\x03\x02\x02\x02\u024A" + - "\u024B\t\x06\x02\x02\u024BF\x03\x02\x02\x02\u024C\u024D\x07^\x02\x02\u024D" + - "\u024E\t\x07\x02\x02\u024EH\x03\x02\x02\x02\u024F\u0250\n\b\x02\x02\u0250" + - "J\x03\x02\x02\x02\u0251\u0253\t\t\x02\x02\u0252\u0254\t\n\x02\x02\u0253" + - "\u0252\x03\x02\x02\x02\u0253\u0254\x03\x02\x02\x02\u0254\u0256\x03\x02" + - "\x02\x02\u0255\u0257\x05C\x1D\x02\u0256\u0255\x03\x02\x02\x02\u0257\u0258" + - "\x03\x02\x02\x02\u0258\u0256\x03\x02\x02\x02\u0258\u0259\x03\x02\x02\x02" + - "\u0259L\x03\x02\x02\x02\u025A\u025B\x07B\x02\x02\u025BN\x03\x02\x02\x02" + - "\u025C\u025D\x07b\x02\x02\u025DP\x03\x02\x02\x02\u025E\u0262\n\v\x02\x02" + - "\u025F\u0260\x07b\x02\x02\u0260\u0262\x07b\x02\x02\u0261\u025E\x03\x02" + - "\x02\x02\u0261\u025F\x03\x02\x02\x02\u0262R\x03\x02\x02\x02\u0263\u0264" + - "\x07a\x02\x02\u0264T\x03\x02\x02\x02\u0265\u0269\x05E\x1E\x02\u0266\u0269" + - "\x05C\x1D\x02\u0267\u0269\x05S%\x02\u0268\u0265\x03\x02\x02\x02\u0268" + - "\u0266\x03\x02\x02\x02\u0268\u0267\x03\x02\x02\x02\u0269V\x03\x02\x02" + - "\x02\u026A\u026F\x07$\x02\x02\u026B\u026E\x05G\x1F\x02\u026C\u026E\x05" + - "I \x02\u026D\u026B\x03\x02\x02\x02\u026D\u026C\x03\x02\x02\x02\u026E\u0271" + - "\x03\x02\x02\x02\u026F\u026D\x03\x02\x02\x02\u026F\u0270\x03\x02\x02\x02" + - "\u0270\u0272\x03\x02\x02\x02\u0271\u026F\x03\x02\x02\x02\u0272\u0288\x07" + - "$\x02\x02\u0273\u0274\x07$\x02\x02\u0274\u0275\x07$\x02\x02\u0275\u0276" + - "\x07$\x02\x02\u0276\u027A\x03\x02\x02\x02\u0277\u0279\n\x03\x02\x02\u0278" + - "\u0277\x03\x02\x02\x02\u0279\u027C\x03\x02\x02\x02\u027A\u027B\x03\x02" + - "\x02\x02\u027A\u0278\x03\x02\x02\x02\u027B\u027D\x03\x02\x02\x02\u027C" + - "\u027A\x03\x02\x02\x02\u027D\u027E\x07$\x02\x02\u027E\u027F\x07$\x02\x02" + - "\u027F\u0280\x07$\x02\x02\u0280\u0282\x03\x02\x02\x02\u0281\u0283\x07" + - "$\x02\x02\u0282\u0281\x03\x02\x02\x02\u0282\u0283\x03\x02\x02\x02\u0283" + - "\u0285\x03\x02\x02\x02\u0284\u0286\x07$\x02\x02\u0285\u0284\x03\x02\x02" + - "\x02\u0285\u0286\x03\x02\x02\x02\u0286\u0288\x03\x02\x02\x02\u0287\u026A" + - "\x03\x02\x02\x02\u0287\u0273\x03\x02\x02\x02\u0288X\x03\x02\x02\x02\u0289" + - "\u028B\x05C\x1D\x02\u028A\u0289\x03\x02\x02\x02\u028B\u028C\x03\x02\x02" + - "\x02\u028C\u028A\x03\x02\x02\x02\u028C\u028D\x03\x02\x02\x02\u028DZ\x03" + - "\x02\x02\x02\u028E\u0290\x05C\x1D\x02\u028F\u028E\x03\x02\x02\x02\u0290" + - "\u0291\x03\x02\x02\x02\u0291\u028F\x03\x02\x02\x02\u0291\u0292\x03\x02" + - "\x02\x02\u0292\u0293\x03\x02\x02\x02\u0293\u0297\x05i0\x02\u0294\u0296" + - "\x05C\x1D\x02\u0295\u0294\x03\x02\x02\x02\u0296\u0299\x03\x02\x02\x02" + - "\u0297\u0295\x03\x02\x02\x02\u0297\u0298\x03\x02\x02\x02\u0298\u02B9\x03" + - "\x02\x02\x02\u0299\u0297\x03\x02\x02\x02\u029A\u029C\x05i0\x02\u029B\u029D" + - "\x05C\x1D\x02\u029C\u029B\x03\x02\x02\x02\u029D\u029E\x03\x02\x02\x02" + - "\u029E\u029C\x03\x02\x02\x02\u029E\u029F\x03\x02\x02\x02\u029F\u02B9\x03" + - "\x02\x02\x02\u02A0\u02A2\x05C\x1D\x02\u02A1\u02A0\x03\x02\x02\x02\u02A2" + - "\u02A3\x03\x02\x02\x02\u02A3\u02A1\x03\x02\x02\x02\u02A3\u02A4\x03\x02" + - "\x02\x02\u02A4\u02AC\x03\x02\x02\x02\u02A5\u02A9\x05i0\x02\u02A6\u02A8" + - "\x05C\x1D\x02\u02A7\u02A6\x03\x02\x02\x02\u02A8\u02AB\x03\x02\x02\x02" + - "\u02A9\u02A7\x03\x02\x02\x02\u02A9\u02AA\x03\x02\x02\x02\u02AA\u02AD\x03" + - "\x02\x02\x02\u02AB\u02A9\x03\x02\x02\x02\u02AC\u02A5\x03\x02\x02\x02\u02AC" + - "\u02AD\x03\x02\x02\x02\u02AD\u02AE\x03\x02\x02\x02\u02AE\u02AF\x05K!\x02" + - "\u02AF\u02B9\x03\x02\x02\x02\u02B0\u02B2\x05i0\x02\u02B1\u02B3\x05C\x1D" + - "\x02\u02B2\u02B1\x03\x02\x02\x02\u02B3\u02B4\x03\x02\x02\x02\u02B4\u02B2" + - "\x03\x02\x02\x02\u02B4\u02B5\x03\x02\x02\x02\u02B5\u02B6\x03\x02\x02\x02" + - "\u02B6\u02B7\x05K!\x02\u02B7\u02B9\x03\x02\x02\x02\u02B8\u028F\x03\x02" + - "\x02\x02\u02B8\u029A\x03\x02\x02\x02\u02B8\u02A1\x03\x02\x02\x02\u02B8" + - "\u02B0\x03\x02\x02\x02\u02B9\\\x03\x02\x02\x02\u02BA\u02BB\x05\u013F\x9B" + - "\x02\u02BB\u02BC\x05\u016D\xB2\x02\u02BC^\x03\x02\x02\x02\u02BD\u02BE" + - "\x05\u013D\x9A\x02\u02BE\u02BF\x05\u0157\xA7\x02\u02BF\u02C0\x05\u0143" + - "\x9D\x02\u02C0`\x03\x02\x02\x02\u02C1\u02C2\x05\u013D\x9A\x02\u02C2\u02C3" + - "\x05\u0161\xAC\x02\u02C3\u02C4\x05\u0141\x9C\x02\u02C4b\x03\x02\x02\x02" + - "\u02C5\u02C6\x07?\x02\x02\u02C6d\x03\x02\x02\x02\u02C7\u02C8\x07.\x02" + - "\x02\u02C8f\x03\x02\x02\x02\u02C9\u02CA\x05\u0143\x9D\x02\u02CA\u02CB" + - "\x05\u0145\x9E\x02\u02CB\u02CC\x05\u0161\xAC\x02\u02CC\u02CD\x05\u0141" + - "\x9C\x02\u02CDh\x03\x02\x02\x02\u02CE\u02CF\x070\x02\x02\u02CFj\x03\x02" + - "\x02\x02\u02D0\u02D1\x05\u0147\x9F\x02\u02D1\u02D2\x05\u013D\x9A\x02\u02D2" + - "\u02D3\x05\u0153\xA5\x02\u02D3\u02D4\x05\u0161\xAC\x02\u02D4\u02D5\x05" + - "\u0145\x9E\x02\u02D5l\x03\x02\x02\x02\u02D6\u02D7\x05\u0147\x9F\x02\u02D7" + - "\u02D8\x05\u014D\xA2\x02\u02D8\u02D9\x05\u015F\xAB\x02\u02D9\u02DA\x05" + - "\u0161\xAC\x02\u02DA\u02DB\x05\u0163\xAD\x02\u02DBn\x03\x02\x02\x02\u02DC" + - "\u02DD\x05\u0153\xA5\x02\u02DD\u02DE\x05\u013D\x9A\x02\u02DE\u02DF\x05" + - "\u0161\xAC\x02\u02DF\u02E0\x05\u0163\xAD\x02\u02E0p\x03\x02\x02\x02\u02E1" + - "\u02E2\x07*\x02\x02\u02E2r\x03\x02\x02\x02\u02E3\u02E4\x05\u014D\xA2\x02" + - "\u02E4\u02E5\x05\u0157\xA7\x02\u02E5t\x03\x02\x02\x02\u02E6\u02E7\x05" + - "\u014D\xA2\x02\u02E7\u02E8\x05\u0161\xAC\x02\u02E8v\x03\x02\x02\x02\u02E9" + - "\u02EA\x05\u0153\xA5\x02\u02EA\u02EB\x05\u014D\xA2\x02\u02EB\u02EC\x05" + - "\u0151\xA4\x02\u02EC\u02ED\x05\u0145\x9E\x02\u02EDx\x03\x02\x02\x02\u02EE" + - "\u02EF\x05\u0157\xA7\x02\u02EF\u02F0\x05\u0159\xA8\x02\u02F0\u02F1\x05" + - "\u0163\xAD\x02\u02F1z\x03\x02\x02\x02\u02F2\u02F3\x05\u0157\xA7\x02\u02F3" + - "\u02F4\x05\u0165\xAE\x02\u02F4\u02F5\x05\u0153\xA5\x02\u02F5\u02F6\x05" + - "\u0153\xA5\x02\u02F6|\x03\x02\x02\x02\u02F7\u02F8\x05\u0157\xA7\x02\u02F8" + - "\u02F9\x05\u0165\xAE\x02\u02F9\u02FA\x05\u0153\xA5\x02\u02FA\u02FB\x05" + - "\u0153\xA5\x02\u02FB\u02FC\x05\u0161\xAC\x02\u02FC~\x03\x02\x02\x02\u02FD" + - "\u02FE\x05\u0159\xA8\x02\u02FE\u02FF\x05\u015F\xAB\x02\u02FF\x80\x03\x02" + - "\x02\x02\u0300\u0301\x07A\x02\x02\u0301\x82\x03\x02\x02\x02\u0302\u0303" + - "\x05\u015F\xAB\x02\u0303\u0304\x05\u0153\xA5\x02\u0304\u0305\x05\u014D" + - "\xA2\x02\u0305\u0306\x05\u0151\xA4\x02\u0306\u0307\x05\u0145\x9E\x02\u0307" + - "\x84\x03\x02\x02\x02\u0308\u0309\x07+\x02\x02\u0309\x86\x03\x02\x02\x02" + - "\u030A\u030B\x05\u0163\xAD\x02\u030B\u030C\x05\u015F\xAB\x02\u030C\u030D" + - "\x05\u0165\xAE\x02\u030D\u030E\x05\u0145\x9E\x02\u030E\x88\x03\x02\x02" + - "\x02\u030F\u0310\x07?\x02\x02\u0310\u0311\x07?\x02\x02\u0311\x8A\x03\x02" + - "\x02\x02\u0312\u0313\x07?\x02\x02\u0313\u0314\x07\x80\x02\x02\u0314\x8C" + - "\x03\x02\x02\x02\u0315\u0316\x07#\x02\x02\u0316\u0317\x07?\x02\x02\u0317" + - "\x8E\x03\x02\x02\x02\u0318\u0319\x07>\x02\x02\u0319\x90\x03\x02\x02\x02" + - "\u031A\u031B\x07>\x02\x02\u031B\u031C\x07?\x02\x02\u031C\x92\x03\x02\x02" + - "\x02\u031D\u031E\x07@\x02\x02\u031E\x94\x03\x02\x02\x02\u031F\u0320\x07" + - "@\x02\x02\u0320\u0321\x07?\x02\x02\u0321\x96\x03\x02\x02\x02\u0322\u0323" + - "\x07-\x02\x02\u0323\x98\x03\x02\x02\x02\u0324\u0325\x07/\x02\x02\u0325" + - "\x9A\x03\x02\x02\x02\u0326\u0327\x07,\x02\x02\u0327\x9C\x03\x02\x02\x02" + - "\u0328\u0329\x071\x02\x02\u0329\x9E\x03\x02\x02\x02\u032A\u032B\x07\'" + - "\x02\x02\u032B\xA0\x03\x02\x02\x02\u032C\u032D\x07]\x02\x02\u032D\u032E" + - "\x03\x02\x02\x02\u032E\u032F\bL\x02\x02\u032F\u0330\bL\x02\x02\u0330\xA2" + - "\x03\x02\x02\x02\u0331\u0332\x07_\x02\x02\u0332\u0333\x03\x02\x02\x02" + - "\u0333\u0334\bM\x0E\x02\u0334\u0335\bM\x0E\x02\u0335\xA4\x03\x02\x02\x02" + - "\u0336\u033A\x05E\x1E\x02\u0337\u0339\x05U&\x02\u0338\u0337\x03\x02\x02" + - "\x02\u0339\u033C\x03\x02\x02\x02\u033A\u0338\x03\x02\x02\x02\u033A\u033B" + - "\x03\x02\x02\x02\u033B\u0347\x03\x02\x02\x02\u033C\u033A\x03\x02\x02\x02" + - "\u033D\u0340\x05S%\x02\u033E\u0340\x05M\"\x02\u033F\u033D\x03\x02\x02" + - "\x02\u033F\u033E\x03\x02\x02\x02\u0340\u0342\x03\x02\x02\x02\u0341\u0343" + - "\x05U&\x02\u0342\u0341\x03\x02\x02\x02\u0343\u0344\x03\x02\x02\x02\u0344" + - "\u0342\x03\x02\x02\x02\u0344\u0345\x03\x02\x02\x02\u0345\u0347\x03\x02" + - "\x02\x02\u0346\u0336\x03\x02\x02\x02\u0346\u033F\x03\x02\x02\x02\u0347" + - "\xA6\x03\x02\x02\x02\u0348\u034A\x05O#\x02\u0349\u034B\x05Q$\x02\u034A" + - "\u0349\x03\x02\x02\x02\u034B\u034C\x03\x02\x02\x02\u034C\u034A\x03\x02" + - "\x02\x02\u034C\u034D\x03\x02\x02\x02\u034D\u034E\x03\x02\x02\x02\u034E" + - "\u034F\x05O#\x02\u034F\xA8\x03\x02\x02\x02\u0350\u0351\x05\xA7O\x02\u0351" + - "\xAA\x03\x02\x02\x02\u0352\u0353\x051\x14\x02\u0353\u0354\x03\x02\x02" + - "\x02\u0354\u0355\bQ\n\x02\u0355\xAC\x03\x02\x02\x02\u0356\u0357\x053\x15" + - "\x02\u0357\u0358\x03\x02\x02\x02\u0358\u0359\bR\n\x02\u0359\xAE\x03\x02" + - "\x02\x02\u035A\u035B\x055\x16\x02\u035B\u035C\x03\x02\x02\x02\u035C\u035D" + - "\bS\n\x02\u035D\xB0\x03\x02\x02\x02\u035E\u035F\x05A\x1C\x02\u035F\u0360" + - "\x03\x02\x02\x02\u0360\u0361\bT\r\x02\u0361\u0362\bT\x0E\x02\u0362\xB2" + - "\x03\x02\x02\x02\u0363\u0364\x05\xA1L\x02\u0364\u0365\x03\x02\x02\x02" + - "\u0365\u0366\bU\v\x02\u0366\xB4\x03\x02\x02\x02\u0367\u0368\x05\xA3M\x02" + - "\u0368\u0369\x03\x02\x02\x02\u0369\u036A\bV\x0F\x02\u036A\xB6\x03\x02" + - "\x02\x02\u036B\u036C\x05e.\x02\u036C\u036D\x03\x02\x02\x02\u036D\u036E" + - "\bW\x10\x02\u036E\xB8\x03\x02\x02\x02\u036F\u0370\x05c-\x02\u0370\u0371" + - "\x03\x02\x02\x02\u0371\u0372\bX\x11\x02\u0372\xBA\x03\x02\x02\x02\u0373" + - "\u0374\x05\u0155\xA6\x02\u0374\u0375\x05\u0145\x9E\x02\u0375\u0376\x05" + - "\u0163\xAD\x02\u0376\u0377\x05\u013D\x9A\x02\u0377\u0378\x05\u0143\x9D" + - "\x02\u0378\u0379\x05\u013D\x9A\x02\u0379\u037A\x05\u0163\xAD\x02\u037A" + - "\u037B\x05\u013D\x9A\x02\u037B\xBC\x03\x02\x02\x02\u037C\u0380\n\f\x02" + - "\x02\u037D\u037E\x071\x02\x02\u037E\u0380\n\r\x02\x02\u037F\u037C\x03" + - "\x02\x02\x02\u037F\u037D\x03\x02\x02\x02\u0380\xBE\x03\x02\x02\x02\u0381" + - "\u0383\x05\xBDZ\x02\u0382\u0381\x03\x02\x02\x02\u0383\u0384\x03\x02\x02" + - "\x02\u0384\u0382\x03\x02\x02\x02\u0384\u0385\x03\x02\x02\x02\u0385\xC0" + - "\x03\x02\x02\x02\u0386\u0387\x05\xA9P\x02\u0387\u0388\x03\x02\x02\x02" + - "\u0388\u0389\b\\\x12\x02\u0389\xC2\x03\x02\x02\x02\u038A\u038B\x051\x14" + - "\x02\u038B\u038C\x03\x02\x02\x02\u038C\u038D\b]\n\x02\u038D\xC4\x03\x02" + - "\x02\x02\u038E\u038F\x053\x15\x02\u038F\u0390\x03\x02\x02\x02\u0390\u0391" + - "\b^\n\x02\u0391\xC6\x03\x02\x02\x02\u0392\u0393\x055\x16\x02\u0393\u0394" + - "\x03\x02\x02\x02\u0394\u0395\b_\n\x02\u0395\xC8\x03\x02\x02\x02\u0396" + - "\u0397\x05A\x1C\x02\u0397\u0398\x03\x02\x02\x02\u0398\u0399\b`\r\x02\u0399" + - "\u039A\b`\x0E\x02\u039A\xCA\x03\x02\x02\x02\u039B\u039C\x05i0\x02\u039C" + - "\u039D\x03\x02\x02\x02\u039D\u039E\ba\x13\x02\u039E\xCC\x03\x02\x02\x02" + - "\u039F\u03A0\x05e.\x02\u03A0\u03A1\x03\x02\x02\x02\u03A1\u03A2\bb\x10" + - "\x02\u03A2\xCE\x03\x02\x02\x02\u03A3\u03A8\x05E\x1E\x02\u03A4\u03A8\x05" + - "C\x1D\x02\u03A5\u03A8\x05S%\x02\u03A6\u03A8\x05\x9BI\x02\u03A7\u03A3\x03" + - "\x02\x02\x02\u03A7\u03A4\x03\x02\x02\x02\u03A7\u03A5\x03\x02\x02\x02\u03A7" + - "\u03A6\x03\x02\x02\x02\u03A8\xD0\x03\x02\x02\x02\u03A9\u03AC\x05E\x1E" + - "\x02\u03AA\u03AC\x05\x9BI\x02\u03AB\u03A9\x03\x02\x02\x02\u03AB\u03AA" + - "\x03\x02\x02\x02\u03AC\u03B0\x03\x02\x02\x02\u03AD\u03AF\x05\xCFc\x02" + - "\u03AE\u03AD\x03\x02\x02\x02\u03AF\u03B2\x03\x02\x02\x02\u03B0\u03AE\x03" + - "\x02\x02\x02\u03B0\u03B1\x03\x02\x02\x02\u03B1\u03BD\x03\x02\x02\x02\u03B2" + - "\u03B0\x03\x02\x02\x02\u03B3\u03B6\x05S%\x02\u03B4\u03B6\x05M\"\x02\u03B5" + - "\u03B3\x03\x02\x02\x02\u03B5\u03B4\x03\x02\x02\x02\u03B6\u03B8\x03\x02" + - "\x02\x02\u03B7\u03B9\x05\xCFc\x02\u03B8\u03B7\x03\x02\x02\x02\u03B9\u03BA" + - "\x03\x02\x02\x02\u03BA\u03B8\x03\x02\x02\x02\u03BA\u03BB\x03\x02\x02\x02" + - "\u03BB\u03BD\x03\x02\x02\x02\u03BC\u03AB\x03\x02\x02\x02\u03BC\u03B5\x03" + - "\x02\x02\x02\u03BD\xD2\x03\x02\x02\x02\u03BE\u03C1\x05\xD1d\x02\u03BF" + - "\u03C1\x05\xA7O\x02\u03C0\u03BE\x03\x02\x02\x02\u03C0\u03BF\x03\x02\x02" + - "\x02\u03C1\u03C2\x03\x02\x02\x02\u03C2\u03C0\x03\x02\x02\x02\u03C2\u03C3" + - "\x03\x02\x02\x02\u03C3\xD4\x03\x02\x02\x02\u03C4\u03C5\x051\x14\x02\u03C5" + - "\u03C6\x03\x02\x02\x02\u03C6\u03C7\bf\n\x02\u03C7\xD6\x03\x02\x02\x02" + - "\u03C8\u03C9\x053\x15\x02\u03C9\u03CA\x03\x02\x02\x02\u03CA\u03CB\bg\n" + - "\x02\u03CB\xD8\x03\x02\x02\x02\u03CC\u03CD\x055\x16\x02\u03CD\u03CE\x03" + - "\x02\x02\x02\u03CE\u03CF\bh\n\x02\u03CF\xDA\x03\x02\x02\x02\u03D0\u03D1" + - "\x05A\x1C\x02\u03D1\u03D2\x03\x02\x02\x02\u03D2\u03D3\bi\r\x02\u03D3\u03D4" + - "\bi\x0E\x02\u03D4\xDC\x03\x02\x02\x02\u03D5\u03D6\x05c-\x02\u03D6\u03D7" + - "\x03\x02\x02\x02\u03D7\u03D8\bj\x11\x02\u03D8\xDE\x03\x02\x02\x02\u03D9" + - "\u03DA\x05e.\x02\u03DA\u03DB\x03\x02\x02\x02\u03DB\u03DC\bk\x10\x02\u03DC" + - "\xE0\x03\x02\x02\x02\u03DD\u03DE\x05i0\x02\u03DE\u03DF\x03\x02\x02\x02" + - "\u03DF\u03E0\bl\x13\x02\u03E0\xE2\x03\x02\x02\x02\u03E1\u03E2\x05\u013D" + - "\x9A\x02\u03E2\u03E3\x05\u0161\xAC\x02\u03E3\xE4\x03\x02\x02\x02\u03E4" + - "\u03E5\x05\xD3e\x02\u03E5\u03E6\x03\x02\x02\x02\u03E6\u03E7\bn\x14\x02" + - "\u03E7\xE6\x03\x02\x02\x02\u03E8\u03E9\x051\x14\x02\u03E9\u03EA\x03\x02" + - "\x02\x02\u03EA\u03EB\bo\n\x02\u03EB\xE8\x03\x02\x02\x02\u03EC\u03ED\x05" + - "3\x15\x02\u03ED\u03EE\x03\x02\x02\x02\u03EE\u03EF\bp\n\x02\u03EF\xEA\x03" + - "\x02\x02\x02\u03F0\u03F1\x055\x16\x02\u03F1\u03F2\x03\x02\x02\x02\u03F2" + - "\u03F3\bq\n\x02\u03F3\xEC\x03\x02\x02\x02\u03F4\u03F5\x05A\x1C\x02\u03F5" + - "\u03F6\x03\x02\x02\x02\u03F6\u03F7\br\r\x02\u03F7\u03F8\br\x0E\x02\u03F8" + - "\xEE\x03\x02\x02\x02\u03F9\u03FA\x05\xA1L\x02\u03FA\u03FB\x03\x02\x02" + - "\x02\u03FB\u03FC\bs\v\x02\u03FC\u03FD\bs\x15\x02\u03FD\xF0\x03\x02\x02" + - "\x02\u03FE\u03FF\x05\u0159\xA8\x02\u03FF\u0400\x05\u0157\xA7\x02\u0400" + - "\u0401\x03\x02\x02\x02\u0401\u0402\bt\x16\x02\u0402\xF2\x03\x02\x02\x02" + - "\u0403\u0404\x05\u0169\xB0\x02\u0404\u0405\x05\u014D\xA2\x02\u0405\u0406" + - "\x05\u0163\xAD\x02\u0406\u0407\x05\u014B\xA1\x02\u0407\u0408\x03\x02\x02" + - "\x02\u0408\u0409\bu\x16\x02\u0409\xF4\x03\x02\x02\x02\u040A\u040B\n\x0E" + - "\x02\x02\u040B\xF6\x03\x02\x02\x02\u040C\u040E\x05\xF5v\x02\u040D\u040C" + - "\x03\x02\x02\x02\u040E\u040F\x03\x02\x02\x02\u040F\u040D\x03\x02\x02\x02" + - "\u040F\u0410\x03\x02\x02\x02\u0410\u0411\x03\x02\x02\x02\u0411\u0412\x05" + - "\u0133\x95\x02\u0412\u0414\x03\x02\x02\x02\u0413\u040D\x03\x02\x02\x02" + - "\u0413\u0414\x03\x02\x02\x02\u0414\u0416\x03\x02\x02\x02\u0415\u0417\x05" + - "\xF5v\x02\u0416\u0415\x03\x02\x02\x02\u0417\u0418\x03\x02\x02\x02\u0418" + - "\u0416\x03\x02\x02\x02\u0418\u0419\x03\x02\x02\x02\u0419\xF8\x03\x02\x02" + - "\x02\u041A\u041B\x05\xA9P\x02\u041B\u041C\x03\x02\x02\x02\u041C\u041D" + - "\bx\x12\x02\u041D\xFA\x03\x02\x02\x02\u041E\u041F\x05\xF7w\x02\u041F\u0420" + - "\x03\x02\x02\x02\u0420\u0421\by\x17\x02\u0421\xFC\x03\x02\x02\x02\u0422" + - "\u0423\x051\x14\x02\u0423\u0424\x03\x02\x02\x02\u0424\u0425\bz\n\x02\u0425" + - "\xFE\x03\x02\x02\x02\u0426\u0427\x053\x15\x02\u0427\u0428\x03\x02\x02" + - "\x02\u0428\u0429\b{\n\x02\u0429\u0100\x03\x02\x02\x02\u042A\u042B\x05" + - "5\x16\x02\u042B\u042C\x03\x02\x02\x02\u042C\u042D\b|\n\x02\u042D\u0102" + - "\x03\x02\x02\x02\u042E\u042F\x05A\x1C\x02\u042F\u0430\x03\x02\x02\x02" + - "\u0430\u0431\b}\r\x02\u0431\u0432\b}\x0E\x02\u0432\u0433\b}\x0E\x02\u0433" + - "\u0104\x03\x02\x02\x02\u0434\u0435\x05c-\x02\u0435\u0436\x03\x02\x02\x02" + - "\u0436\u0437\b~\x11\x02\u0437\u0106\x03\x02\x02\x02\u0438\u0439\x05e." + - "\x02\u0439\u043A\x03\x02\x02\x02\u043A\u043B\b\x7F\x10\x02\u043B\u0108" + - "\x03\x02\x02\x02\u043C\u043D\x05i0\x02\u043D\u043E\x03\x02\x02\x02\u043E" + - "\u043F\b\x80\x13\x02\u043F\u010A\x03\x02\x02\x02\u0440\u0441\x05\xF3u" + - "\x02\u0441\u0442\x03\x02\x02\x02\u0442\u0443\b\x81\x18\x02\u0443\u010C" + - "\x03\x02\x02\x02\u0444\u0445\x05\xD3e\x02\u0445\u0446\x03\x02\x02\x02" + - "\u0446\u0447\b\x82\x14\x02\u0447\u010E\x03\x02\x02\x02\u0448\u0449\x05" + - "\xA9P\x02\u0449\u044A\x03\x02\x02\x02\u044A\u044B\b\x83\x12\x02\u044B" + - "\u0110\x03\x02\x02\x02\u044C\u044D\x051\x14\x02\u044D\u044E\x03\x02\x02" + - "\x02\u044E\u044F\b\x84\n"; - private static readonly _serializedATNSegment2: string = - "\x02\u044F\u0112\x03\x02\x02\x02\u0450\u0451\x053\x15\x02\u0451\u0452" + - "\x03\x02\x02\x02\u0452\u0453\b\x85\n\x02\u0453\u0114\x03\x02\x02\x02\u0454" + - "\u0455\x055\x16\x02\u0455\u0456\x03\x02\x02\x02\u0456\u0457\b\x86\n\x02" + - "\u0457\u0116\x03\x02\x02\x02\u0458\u0459\x05A\x1C\x02\u0459\u045A\x03" + - "\x02\x02\x02\u045A\u045B\b\x87\r\x02\u045B\u045C\b\x87\x0E\x02\u045C\u0118" + - "\x03\x02\x02\x02\u045D\u045E\x05i0\x02\u045E\u045F\x03\x02\x02\x02\u045F" + - "\u0460\b\x88\x13\x02\u0460\u011A\x03\x02\x02\x02\u0461\u0462\x05\xA9P" + - "\x02\u0462\u0463\x03\x02\x02\x02\u0463\u0464\b\x89\x12\x02\u0464\u011C" + - "\x03\x02\x02\x02\u0465\u0466\x05\xA5N\x02\u0466\u0467\x03\x02\x02\x02" + - "\u0467\u0468\b\x8A\x19\x02\u0468\u011E\x03\x02\x02\x02\u0469\u046A\x05" + - "1\x14\x02\u046A\u046B\x03\x02\x02\x02\u046B\u046C\b\x8B\n\x02\u046C\u0120" + - "\x03\x02\x02\x02\u046D\u046E\x053\x15\x02\u046E\u046F\x03\x02\x02\x02" + - "\u046F\u0470\b\x8C\n\x02\u0470\u0122\x03\x02\x02\x02\u0471\u0472\x055" + - "\x16\x02\u0472\u0473\x03\x02\x02\x02\u0473\u0474\b\x8D\n\x02\u0474\u0124" + - "\x03\x02\x02\x02\u0475\u0476\x05A\x1C\x02\u0476\u0477\x03\x02\x02\x02" + - "\u0477\u0478\b\x8E\r\x02\u0478\u0479\b\x8E\x0E\x02\u0479\u0126\x03\x02" + - "\x02\x02\u047A\u047B\x05\u014D\xA2\x02\u047B\u047C\x05\u0157\xA7\x02\u047C" + - "\u047D\x05\u0147\x9F\x02\u047D\u047E\x05\u0159\xA8\x02\u047E\u0128\x03" + - "\x02\x02\x02\u047F\u0480\x05\u0147\x9F\x02\u0480\u0481\x05\u0165\xAE\x02" + - "\u0481\u0482\x05\u0157\xA7\x02\u0482\u0483\x05\u0141\x9C\x02\u0483\u0484" + - "\x05\u0163\xAD\x02\u0484\u0485\x05\u014D\xA2\x02\u0485\u0486\x05\u0159" + - "\xA8\x02\u0486\u0487\x05\u0157\xA7\x02\u0487\u0488\x05\u0161\xAC\x02\u0488" + - "\u012A\x03\x02\x02\x02\u0489\u048A\x051\x14\x02\u048A\u048B\x03\x02\x02" + - "\x02\u048B\u048C\b\x91\n\x02\u048C\u012C\x03\x02\x02\x02\u048D\u048E\x05" + - "3\x15\x02\u048E\u048F\x03\x02\x02\x02\u048F\u0490\b\x92\n\x02\u0490\u012E" + - "\x03\x02\x02\x02\u0491\u0492\x055\x16\x02\u0492\u0493\x03\x02\x02\x02" + - "\u0493\u0494\b\x93\n\x02\u0494\u0130\x03\x02\x02\x02\u0495\u0496\x05\xA3" + - "M\x02\u0496\u0497\x03\x02\x02\x02\u0497\u0498\b\x94\x0F\x02\u0498\u0499" + - "\b\x94\x0E\x02\u0499\u0132\x03\x02\x02\x02\u049A\u049B\x07<\x02\x02\u049B" + - "\u0134\x03\x02\x02\x02\u049C\u04A2\x05M\"\x02\u049D\u04A2\x05C\x1D\x02" + - "\u049E\u04A2\x05i0\x02\u049F\u04A2\x05E\x1E\x02\u04A0\u04A2\x05S%\x02" + - "\u04A1\u049C\x03\x02\x02\x02\u04A1\u049D\x03\x02\x02\x02\u04A1\u049E\x03" + - "\x02\x02\x02\u04A1\u049F\x03\x02\x02\x02\u04A1\u04A0\x03\x02\x02\x02\u04A2" + - "\u04A3\x03\x02\x02\x02\u04A3\u04A1\x03\x02\x02\x02\u04A3\u04A4\x03\x02" + - "\x02\x02\u04A4\u0136\x03\x02\x02\x02\u04A5\u04A6\x051\x14\x02\u04A6\u04A7" + - "\x03\x02\x02\x02\u04A7\u04A8\b\x97\n\x02\u04A8\u0138\x03\x02\x02\x02\u04A9" + - "\u04AA\x053\x15\x02\u04AA\u04AB\x03\x02\x02\x02\u04AB\u04AC\b\x98\n\x02" + - "\u04AC\u013A\x03\x02\x02\x02\u04AD\u04AE\x055\x16\x02\u04AE\u04AF\x03" + - "\x02\x02\x02\u04AF\u04B0\b\x99\n\x02\u04B0\u013C\x03\x02\x02\x02\u04B1" + - "\u04B2\t\x0F\x02\x02\u04B2\u013E\x03\x02\x02\x02\u04B3\u04B4\t\x10\x02" + - "\x02\u04B4\u0140\x03\x02\x02\x02\u04B5\u04B6\t\x11\x02\x02\u04B6\u0142" + - "\x03\x02\x02\x02\u04B7\u04B8\t\x12\x02\x02\u04B8\u0144\x03\x02\x02\x02" + - "\u04B9\u04BA\t\t\x02\x02\u04BA\u0146\x03\x02\x02\x02\u04BB\u04BC\t\x13" + - "\x02\x02\u04BC\u0148\x03\x02\x02\x02\u04BD\u04BE\t\x14\x02\x02\u04BE\u014A" + - "\x03\x02\x02\x02\u04BF\u04C0\t\x15\x02\x02\u04C0\u014C\x03\x02\x02\x02" + - "\u04C1\u04C2\t\x16\x02\x02\u04C2\u014E\x03\x02\x02\x02\u04C3\u04C4\t\x17" + - "\x02\x02\u04C4\u0150\x03\x02\x02\x02\u04C5\u04C6\t\x18\x02\x02\u04C6\u0152" + - "\x03\x02\x02\x02\u04C7\u04C8\t\x19\x02\x02\u04C8\u0154\x03\x02\x02\x02" + - "\u04C9\u04CA\t\x1A\x02\x02\u04CA\u0156\x03\x02\x02\x02\u04CB\u04CC\t\x1B" + - "\x02\x02\u04CC\u0158\x03\x02\x02\x02\u04CD\u04CE\t\x1C\x02\x02\u04CE\u015A" + - "\x03\x02\x02\x02\u04CF\u04D0\t\x1D\x02\x02\u04D0\u015C\x03\x02\x02\x02" + - "\u04D1\u04D2\t\x1E\x02\x02\u04D2\u015E\x03\x02\x02\x02\u04D3\u04D4\t\x1F" + - "\x02\x02\u04D4\u0160\x03\x02\x02\x02\u04D5\u04D6\t \x02\x02\u04D6\u0162" + - "\x03\x02\x02\x02\u04D7\u04D8\t!\x02\x02\u04D8\u0164\x03\x02\x02\x02\u04D9" + - "\u04DA\t\"\x02\x02\u04DA\u0166\x03\x02\x02\x02\u04DB\u04DC\t#\x02\x02" + - "\u04DC\u0168\x03\x02\x02\x02\u04DD\u04DE\t$\x02\x02\u04DE\u016A\x03\x02" + - "\x02\x02\u04DF\u04E0\t%\x02\x02\u04E0\u016C\x03\x02\x02\x02\u04E1\u04E2" + - "\t&\x02\x02\u04E2\u016E\x03\x02\x02\x02\u04E3\u04E4\t\'\x02\x02\u04E4" + - "\u0170\x03\x02\x02\x02;\x02\x03\x04\x05\x06\x07\b\t\n\v\f\u0203\u020D" + - "\u0211\u0214\u021D\u021F\u022A\u0253\u0258\u0261\u0268\u026D\u026F\u027A" + - "\u0282\u0285\u0287\u028C\u0291\u0297\u029E\u02A3\u02A9\u02AC\u02B4\u02B8" + - "\u033A\u033F\u0344\u0346\u034C\u037F\u0384\u03A7\u03AB\u03B0\u03B5\u03BA" + - "\u03BC\u03C0\u03C2\u040F\u0413\u0418\u04A1\u04A3\x1A\x07\x04\x02\x07\x06" + - "\x02\x07\b\x02\x07\x03\x02\x07\x05\x02\x07\n\x02\x07\x07\x02\x07\v\x02" + - "\x02\x03\x02\tA\x02\x07\x02\x02\t\x1B\x02\x06\x02\x02\tB\x02\t#\x02\t" + - "\"\x02\tD\x02\t%\x02\tM\x02\x07\f\x02\x07\t\x02\tW\x02\tV\x02\tC\x02"; - public static readonly _serializedATN: string = Utils.join( - [ - esql_lexer._serializedATNSegment0, - esql_lexer._serializedATNSegment1, - esql_lexer._serializedATNSegment2, - ], - "", - ); - public static __ATN: ATN; + public static readonly _serializedATN: number[] = [4,0,104,1251,6,-1,6, + -1,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,2,0,7,0,2,1,7,1,2,2,7,2, + 2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11, + 7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7, + 18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25, + 2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2, + 33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40, + 7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7, + 47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54, + 2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2, + 62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69, + 7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7, + 76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83, + 2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2, + 91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98, + 7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7, + 104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7, + 110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7, + 116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7, + 122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7, + 128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7, + 134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7, + 140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7, + 146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7, + 152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7, + 158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7, + 164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7, + 170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7, + 176,2,177,7,177,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3, + 1,3,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,5,1,5, + 1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7, + 1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9, + 1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,11,1,11,1, + 11,1,11,1,11,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,12,1,13,1,13, + 1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1, + 15,1,15,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,17, + 4,17,512,8,17,11,17,12,17,513,1,17,1,17,1,18,1,18,1,18,1,18,5,18,522,8, + 18,10,18,12,18,525,9,18,1,18,3,18,528,8,18,1,18,3,18,531,8,18,1,18,1,18, + 1,19,1,19,1,19,1,19,1,19,5,19,540,8,19,10,19,12,19,543,9,19,1,19,1,19,1, + 19,1,19,1,19,1,20,4,20,551,8,20,11,20,12,20,552,1,20,1,20,1,21,1,21,1,21, + 1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1, + 24,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,27,1,27,1,28,1,28,1,29,1,29, + 1,29,1,30,1,30,1,31,1,31,3,31,594,8,31,1,31,4,31,597,8,31,11,31,12,31,598, + 1,32,1,32,1,33,1,33,1,34,1,34,1,34,3,34,608,8,34,1,35,1,35,1,36,1,36,1, + 36,3,36,615,8,36,1,37,1,37,1,37,5,37,620,8,37,10,37,12,37,623,9,37,1,37, + 1,37,1,37,1,37,1,37,1,37,5,37,631,8,37,10,37,12,37,634,9,37,1,37,1,37,1, + 37,1,37,1,37,3,37,641,8,37,1,37,3,37,644,8,37,3,37,646,8,37,1,38,4,38,649, + 8,38,11,38,12,38,650,1,39,4,39,654,8,39,11,39,12,39,655,1,39,1,39,5,39, + 660,8,39,10,39,12,39,663,9,39,1,39,1,39,4,39,667,8,39,11,39,12,39,668,1, + 39,4,39,672,8,39,11,39,12,39,673,1,39,1,39,5,39,678,8,39,10,39,12,39,681, + 9,39,3,39,683,8,39,1,39,1,39,1,39,1,39,4,39,689,8,39,11,39,12,39,690,1, + 39,1,39,3,39,695,8,39,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,42,1,42,1,42, + 1,42,1,43,1,43,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,47,1,47,1, + 47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,49, + 1,50,1,50,1,51,1,51,1,51,1,52,1,52,1,52,1,53,1,53,1,53,1,53,1,53,1,54,1, + 54,1,54,1,54,1,55,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,56,1,56,1,57, + 1,57,1,57,1,58,1,58,1,59,1,59,1,59,1,59,1,59,1,59,1,60,1,60,1,61,1,61,1, + 61,1,61,1,61,1,62,1,62,1,62,1,63,1,63,1,63,1,64,1,64,1,64,1,65,1,65,1,66, + 1,66,1,66,1,67,1,67,1,68,1,68,1,68,1,69,1,69,1,70,1,70,1,71,1,71,1,72,1, + 72,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,75,1,76,1,76, + 5,76,823,8,76,10,76,12,76,826,9,76,1,76,1,76,3,76,830,8,76,1,76,4,76,833, + 8,76,11,76,12,76,834,3,76,837,8,76,1,77,1,77,4,77,841,8,77,11,77,12,77, + 842,1,77,1,77,1,78,1,78,1,79,1,79,1,79,1,79,1,80,1,80,1,80,1,80,1,81,1, + 81,1,81,1,81,1,82,1,82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,84,1,84,1,84, + 1,84,1,85,1,85,1,85,1,85,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,87,1, + 87,1,87,1,87,1,87,1,88,1,88,1,88,3,88,894,8,88,1,89,4,89,897,8,89,11,89, + 12,89,898,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91,1,92,1,92,1,92,1,92,1, + 93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,95,1,95,1,95,1,95,1,96,1,96, + 1,96,1,96,1,97,1,97,1,97,1,97,3,97,934,8,97,1,98,1,98,3,98,938,8,98,1,98, + 5,98,941,8,98,10,98,12,98,944,9,98,1,98,1,98,3,98,948,8,98,1,98,4,98,951, + 8,98,11,98,12,98,952,3,98,955,8,98,1,99,1,99,4,99,959,8,99,11,99,12,99, + 960,1,100,1,100,1,100,1,100,1,101,1,101,1,101,1,101,1,102,1,102,1,102,1, + 102,1,103,1,103,1,103,1,103,1,103,1,104,1,104,1,104,1,104,1,105,1,105,1, + 105,1,105,1,106,1,106,1,106,1,106,1,107,1,107,1,107,1,108,1,108,1,108,1, + 108,1,109,1,109,1,109,1,109,1,110,1,110,1,110,1,110,1,111,1,111,1,111,1, + 111,1,112,1,112,1,112,1,112,1,112,1,113,1,113,1,113,1,113,1,113,1,114,1, + 114,1,114,1,114,1,114,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,116,1, + 116,1,117,4,117,1036,8,117,11,117,12,117,1037,1,117,1,117,3,117,1042,8, + 117,1,117,4,117,1045,8,117,11,117,12,117,1046,1,118,1,118,1,118,1,118,1, + 119,1,119,1,119,1,119,1,120,1,120,1,120,1,120,1,121,1,121,1,121,1,121,1, + 122,1,122,1,122,1,122,1,123,1,123,1,123,1,123,1,123,1,123,1,124,1,124,1, + 124,1,124,1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,127,1,127,1, + 127,1,127,1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,130,1,130,1, + 130,1,130,1,131,1,131,1,131,1,131,1,132,1,132,1,132,1,132,1,133,1,133,1, + 133,1,133,1,133,1,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,1,136,1, + 136,1,136,1,136,1,137,1,137,1,137,1,137,1,138,1,138,1,138,1,138,1,139,1, + 139,1,139,1,139,1,140,1,140,1,140,1,140,1,140,1,141,1,141,1,141,1,141,1, + 141,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,143,1, + 143,1,143,1,143,1,144,1,144,1,144,1,144,1,145,1,145,1,145,1,145,1,146,1, + 146,1,146,1,146,1,146,1,147,1,147,1,148,1,148,1,148,1,148,1,148,4,148,1184, + 8,148,11,148,12,148,1185,1,149,1,149,1,149,1,149,1,150,1,150,1,150,1,150, + 1,151,1,151,1,151,1,151,1,152,1,152,1,153,1,153,1,154,1,154,1,155,1,155, + 1,156,1,156,1,157,1,157,1,158,1,158,1,159,1,159,1,160,1,160,1,161,1,161, + 1,162,1,162,1,163,1,163,1,164,1,164,1,165,1,165,1,166,1,166,1,167,1,167, + 1,168,1,168,1,169,1,169,1,170,1,170,1,171,1,171,1,172,1,172,1,173,1,173, + 1,174,1,174,1,175,1,175,1,176,1,176,1,177,1,177,2,541,632,0,178,11,1,13, + 2,15,3,17,4,19,5,21,6,23,7,25,8,27,9,29,10,31,11,33,12,35,13,37,14,39,15, + 41,16,43,17,45,18,47,19,49,20,51,21,53,0,55,0,57,22,59,23,61,24,63,25,65, + 0,67,0,69,0,71,0,73,0,75,0,77,0,79,0,81,0,83,0,85,26,87,27,89,28,91,29, + 93,30,95,31,97,32,99,33,101,34,103,35,105,36,107,37,109,38,111,39,113,40, + 115,41,117,42,119,43,121,44,123,45,125,46,127,47,129,48,131,49,133,50,135, + 51,137,52,139,53,141,54,143,55,145,56,147,57,149,58,151,59,153,60,155,61, + 157,62,159,63,161,64,163,65,165,0,167,66,169,67,171,68,173,69,175,0,177, + 0,179,0,181,0,183,0,185,70,187,0,189,71,191,0,193,72,195,73,197,74,199, + 0,201,0,203,0,205,0,207,0,209,75,211,76,213,77,215,78,217,0,219,0,221,0, + 223,0,225,79,227,0,229,80,231,81,233,82,235,0,237,0,239,83,241,84,243,0, + 245,85,247,0,249,0,251,86,253,87,255,88,257,0,259,0,261,0,263,0,265,0,267, + 0,269,0,271,89,273,90,275,91,277,0,279,0,281,0,283,0,285,92,287,93,289, + 94,291,0,293,95,295,96,297,97,299,98,301,99,303,0,305,100,307,101,309,102, + 311,103,313,104,315,0,317,0,319,0,321,0,323,0,325,0,327,0,329,0,331,0,333, + 0,335,0,337,0,339,0,341,0,343,0,345,0,347,0,349,0,351,0,353,0,355,0,357, + 0,359,0,361,0,363,0,365,0,11,0,1,2,3,4,5,6,7,8,9,10,38,6,0,9,10,13,13,32, + 32,47,47,91,91,93,93,2,0,10,10,13,13,3,0,9,10,13,13,32,32,1,0,48,57,2,0, + 65,90,97,122,5,0,34,34,92,92,110,110,114,114,116,116,4,0,10,10,13,13,34, + 34,92,92,2,0,69,69,101,101,2,0,43,43,45,45,1,0,96,96,10,0,9,10,13,13,32, + 32,44,44,47,47,61,61,91,91,93,93,96,96,124,124,2,0,42,42,47,47,11,0,9,10, + 13,13,32,32,34,35,44,44,47,47,58,58,60,60,62,63,92,92,124,124,2,0,65,65, + 97,97,2,0,66,66,98,98,2,0,67,67,99,99,2,0,68,68,100,100,2,0,70,70,102,102, + 2,0,71,71,103,103,2,0,72,72,104,104,2,0,73,73,105,105,2,0,74,74,106,106, + 2,0,75,75,107,107,2,0,76,76,108,108,2,0,77,77,109,109,2,0,78,78,110,110, + 2,0,79,79,111,111,2,0,80,80,112,112,2,0,81,81,113,113,2,0,82,82,114,114, + 2,0,83,83,115,115,2,0,84,84,116,116,2,0,85,85,117,117,2,0,86,86,118,118, + 2,0,87,87,119,119,2,0,88,88,120,120,2,0,89,89,121,121,2,0,90,90,122,122, + 1253,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0, + 21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0, + 0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0, + 43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,1,53,1,0, + 0,0,1,55,1,0,0,0,1,57,1,0,0,0,1,59,1,0,0,0,1,61,1,0,0,0,2,63,1,0,0,0,2, + 85,1,0,0,0,2,87,1,0,0,0,2,89,1,0,0,0,2,91,1,0,0,0,2,93,1,0,0,0,2,95,1,0, + 0,0,2,97,1,0,0,0,2,99,1,0,0,0,2,101,1,0,0,0,2,103,1,0,0,0,2,105,1,0,0,0, + 2,107,1,0,0,0,2,109,1,0,0,0,2,111,1,0,0,0,2,113,1,0,0,0,2,115,1,0,0,0,2, + 117,1,0,0,0,2,119,1,0,0,0,2,121,1,0,0,0,2,123,1,0,0,0,2,125,1,0,0,0,2,127, + 1,0,0,0,2,129,1,0,0,0,2,131,1,0,0,0,2,133,1,0,0,0,2,135,1,0,0,0,2,137,1, + 0,0,0,2,139,1,0,0,0,2,141,1,0,0,0,2,143,1,0,0,0,2,145,1,0,0,0,2,147,1,0, + 0,0,2,149,1,0,0,0,2,151,1,0,0,0,2,153,1,0,0,0,2,155,1,0,0,0,2,157,1,0,0, + 0,2,159,1,0,0,0,2,161,1,0,0,0,2,163,1,0,0,0,2,167,1,0,0,0,2,169,1,0,0,0, + 2,171,1,0,0,0,2,173,1,0,0,0,3,175,1,0,0,0,3,177,1,0,0,0,3,179,1,0,0,0,3, + 181,1,0,0,0,3,183,1,0,0,0,3,185,1,0,0,0,3,189,1,0,0,0,3,191,1,0,0,0,3,193, + 1,0,0,0,3,195,1,0,0,0,3,197,1,0,0,0,4,199,1,0,0,0,4,201,1,0,0,0,4,203,1, + 0,0,0,4,209,1,0,0,0,4,211,1,0,0,0,4,213,1,0,0,0,4,215,1,0,0,0,5,217,1,0, + 0,0,5,219,1,0,0,0,5,221,1,0,0,0,5,223,1,0,0,0,5,225,1,0,0,0,5,227,1,0,0, + 0,5,229,1,0,0,0,5,231,1,0,0,0,5,233,1,0,0,0,6,235,1,0,0,0,6,237,1,0,0,0, + 6,239,1,0,0,0,6,241,1,0,0,0,6,245,1,0,0,0,6,247,1,0,0,0,6,249,1,0,0,0,6, + 251,1,0,0,0,6,253,1,0,0,0,6,255,1,0,0,0,7,257,1,0,0,0,7,259,1,0,0,0,7,261, + 1,0,0,0,7,263,1,0,0,0,7,265,1,0,0,0,7,267,1,0,0,0,7,269,1,0,0,0,7,271,1, + 0,0,0,7,273,1,0,0,0,7,275,1,0,0,0,8,277,1,0,0,0,8,279,1,0,0,0,8,281,1,0, + 0,0,8,283,1,0,0,0,8,285,1,0,0,0,8,287,1,0,0,0,8,289,1,0,0,0,9,291,1,0,0, + 0,9,293,1,0,0,0,9,295,1,0,0,0,9,297,1,0,0,0,9,299,1,0,0,0,9,301,1,0,0,0, + 10,303,1,0,0,0,10,305,1,0,0,0,10,307,1,0,0,0,10,309,1,0,0,0,10,311,1,0, + 0,0,10,313,1,0,0,0,11,367,1,0,0,0,13,377,1,0,0,0,15,384,1,0,0,0,17,393, + 1,0,0,0,19,400,1,0,0,0,21,410,1,0,0,0,23,417,1,0,0,0,25,424,1,0,0,0,27, + 438,1,0,0,0,29,445,1,0,0,0,31,453,1,0,0,0,33,465,1,0,0,0,35,474,1,0,0,0, + 37,480,1,0,0,0,39,487,1,0,0,0,41,494,1,0,0,0,43,502,1,0,0,0,45,511,1,0, + 0,0,47,517,1,0,0,0,49,534,1,0,0,0,51,550,1,0,0,0,53,556,1,0,0,0,55,561, + 1,0,0,0,57,566,1,0,0,0,59,570,1,0,0,0,61,574,1,0,0,0,63,578,1,0,0,0,65, + 582,1,0,0,0,67,584,1,0,0,0,69,586,1,0,0,0,71,589,1,0,0,0,73,591,1,0,0,0, + 75,600,1,0,0,0,77,602,1,0,0,0,79,607,1,0,0,0,81,609,1,0,0,0,83,614,1,0, + 0,0,85,645,1,0,0,0,87,648,1,0,0,0,89,694,1,0,0,0,91,696,1,0,0,0,93,699, + 1,0,0,0,95,703,1,0,0,0,97,707,1,0,0,0,99,709,1,0,0,0,101,711,1,0,0,0,103, + 716,1,0,0,0,105,718,1,0,0,0,107,724,1,0,0,0,109,730,1,0,0,0,111,735,1,0, + 0,0,113,737,1,0,0,0,115,740,1,0,0,0,117,743,1,0,0,0,119,748,1,0,0,0,121, + 752,1,0,0,0,123,757,1,0,0,0,125,763,1,0,0,0,127,766,1,0,0,0,129,768,1,0, + 0,0,131,774,1,0,0,0,133,776,1,0,0,0,135,781,1,0,0,0,137,784,1,0,0,0,139, + 787,1,0,0,0,141,790,1,0,0,0,143,792,1,0,0,0,145,795,1,0,0,0,147,797,1,0, + 0,0,149,800,1,0,0,0,151,802,1,0,0,0,153,804,1,0,0,0,155,806,1,0,0,0,157, + 808,1,0,0,0,159,810,1,0,0,0,161,815,1,0,0,0,163,836,1,0,0,0,165,838,1,0, + 0,0,167,846,1,0,0,0,169,848,1,0,0,0,171,852,1,0,0,0,173,856,1,0,0,0,175, + 860,1,0,0,0,177,865,1,0,0,0,179,869,1,0,0,0,181,873,1,0,0,0,183,877,1,0, + 0,0,185,881,1,0,0,0,187,893,1,0,0,0,189,896,1,0,0,0,191,900,1,0,0,0,193, + 904,1,0,0,0,195,908,1,0,0,0,197,912,1,0,0,0,199,916,1,0,0,0,201,921,1,0, + 0,0,203,925,1,0,0,0,205,933,1,0,0,0,207,954,1,0,0,0,209,958,1,0,0,0,211, + 962,1,0,0,0,213,966,1,0,0,0,215,970,1,0,0,0,217,974,1,0,0,0,219,979,1,0, + 0,0,221,983,1,0,0,0,223,987,1,0,0,0,225,991,1,0,0,0,227,994,1,0,0,0,229, + 998,1,0,0,0,231,1002,1,0,0,0,233,1006,1,0,0,0,235,1010,1,0,0,0,237,1015, + 1,0,0,0,239,1020,1,0,0,0,241,1025,1,0,0,0,243,1032,1,0,0,0,245,1041,1,0, + 0,0,247,1048,1,0,0,0,249,1052,1,0,0,0,251,1056,1,0,0,0,253,1060,1,0,0,0, + 255,1064,1,0,0,0,257,1068,1,0,0,0,259,1074,1,0,0,0,261,1078,1,0,0,0,263, + 1082,1,0,0,0,265,1086,1,0,0,0,267,1090,1,0,0,0,269,1094,1,0,0,0,271,1098, + 1,0,0,0,273,1102,1,0,0,0,275,1106,1,0,0,0,277,1110,1,0,0,0,279,1115,1,0, + 0,0,281,1119,1,0,0,0,283,1123,1,0,0,0,285,1127,1,0,0,0,287,1131,1,0,0,0, + 289,1135,1,0,0,0,291,1139,1,0,0,0,293,1144,1,0,0,0,295,1149,1,0,0,0,297, + 1159,1,0,0,0,299,1163,1,0,0,0,301,1167,1,0,0,0,303,1171,1,0,0,0,305,1176, + 1,0,0,0,307,1183,1,0,0,0,309,1187,1,0,0,0,311,1191,1,0,0,0,313,1195,1,0, + 0,0,315,1199,1,0,0,0,317,1201,1,0,0,0,319,1203,1,0,0,0,321,1205,1,0,0,0, + 323,1207,1,0,0,0,325,1209,1,0,0,0,327,1211,1,0,0,0,329,1213,1,0,0,0,331, + 1215,1,0,0,0,333,1217,1,0,0,0,335,1219,1,0,0,0,337,1221,1,0,0,0,339,1223, + 1,0,0,0,341,1225,1,0,0,0,343,1227,1,0,0,0,345,1229,1,0,0,0,347,1231,1,0, + 0,0,349,1233,1,0,0,0,351,1235,1,0,0,0,353,1237,1,0,0,0,355,1239,1,0,0,0, + 357,1241,1,0,0,0,359,1243,1,0,0,0,361,1245,1,0,0,0,363,1247,1,0,0,0,365, + 1249,1,0,0,0,367,368,3,321,155,0,368,369,3,331,160,0,369,370,3,351,170, + 0,370,371,3,351,170,0,371,372,3,323,156,0,372,373,3,319,154,0,373,374,3, + 353,171,0,374,375,1,0,0,0,375,376,6,0,0,0,376,12,1,0,0,0,377,378,3,321, + 155,0,378,379,3,349,169,0,379,380,3,343,166,0,380,381,3,345,167,0,381,382, + 1,0,0,0,382,383,6,1,1,0,383,14,1,0,0,0,384,385,3,323,156,0,385,386,3,341, + 165,0,386,387,3,349,169,0,387,388,3,331,160,0,388,389,3,319,154,0,389,390, + 3,329,159,0,390,391,1,0,0,0,391,392,6,2,2,0,392,16,1,0,0,0,393,394,3,323, + 156,0,394,395,3,357,173,0,395,396,3,315,152,0,396,397,3,337,163,0,397,398, + 1,0,0,0,398,399,6,3,0,0,399,18,1,0,0,0,400,401,3,323,156,0,401,402,3,361, + 175,0,402,403,3,345,167,0,403,404,3,337,163,0,404,405,3,315,152,0,405,406, + 3,331,160,0,406,407,3,341,165,0,407,408,1,0,0,0,408,409,6,4,3,0,409,20, + 1,0,0,0,410,411,3,325,157,0,411,412,3,349,169,0,412,413,3,343,166,0,413, + 414,3,339,164,0,414,415,1,0,0,0,415,416,6,5,4,0,416,22,1,0,0,0,417,418, + 3,327,158,0,418,419,3,349,169,0,419,420,3,343,166,0,420,421,3,335,162,0, + 421,422,1,0,0,0,422,423,6,6,0,0,423,24,1,0,0,0,424,425,3,331,160,0,425, + 426,3,341,165,0,426,427,3,337,163,0,427,428,3,331,160,0,428,429,3,341,165, + 0,429,430,3,323,156,0,430,431,3,351,170,0,431,432,3,353,171,0,432,433,3, + 315,152,0,433,434,3,353,171,0,434,435,3,351,170,0,435,436,1,0,0,0,436,437, + 6,7,0,0,437,26,1,0,0,0,438,439,3,335,162,0,439,440,3,323,156,0,440,441, + 3,323,156,0,441,442,3,345,167,0,442,443,1,0,0,0,443,444,6,8,1,0,444,28, + 1,0,0,0,445,446,3,337,163,0,446,447,3,331,160,0,447,448,3,339,164,0,448, + 449,3,331,160,0,449,450,3,353,171,0,450,451,1,0,0,0,451,452,6,9,0,0,452, + 30,1,0,0,0,453,454,3,339,164,0,454,455,3,357,173,0,455,456,3,81,35,0,456, + 457,3,323,156,0,457,458,3,361,175,0,458,459,3,345,167,0,459,460,3,315,152, + 0,460,461,3,341,165,0,461,462,3,321,155,0,462,463,1,0,0,0,463,464,6,10, + 5,0,464,32,1,0,0,0,465,466,3,349,169,0,466,467,3,323,156,0,467,468,3,341, + 165,0,468,469,3,315,152,0,469,470,3,339,164,0,470,471,3,323,156,0,471,472, + 1,0,0,0,472,473,6,11,6,0,473,34,1,0,0,0,474,475,3,349,169,0,475,476,3,343, + 166,0,476,477,3,359,174,0,477,478,1,0,0,0,478,479,6,12,0,0,479,36,1,0,0, + 0,480,481,3,351,170,0,481,482,3,329,159,0,482,483,3,343,166,0,483,484,3, + 359,174,0,484,485,1,0,0,0,485,486,6,13,7,0,486,38,1,0,0,0,487,488,3,351, + 170,0,488,489,3,343,166,0,489,490,3,349,169,0,490,491,3,353,171,0,491,492, + 1,0,0,0,492,493,6,14,0,0,493,40,1,0,0,0,494,495,3,351,170,0,495,496,3,353, + 171,0,496,497,3,315,152,0,497,498,3,353,171,0,498,499,3,351,170,0,499,500, + 1,0,0,0,500,501,6,15,0,0,501,42,1,0,0,0,502,503,3,359,174,0,503,504,3,329, + 159,0,504,505,3,323,156,0,505,506,3,349,169,0,506,507,3,323,156,0,507,508, + 1,0,0,0,508,509,6,16,0,0,509,44,1,0,0,0,510,512,8,0,0,0,511,510,1,0,0,0, + 512,513,1,0,0,0,513,511,1,0,0,0,513,514,1,0,0,0,514,515,1,0,0,0,515,516, + 6,17,0,0,516,46,1,0,0,0,517,518,5,47,0,0,518,519,5,47,0,0,519,523,1,0,0, + 0,520,522,8,1,0,0,521,520,1,0,0,0,522,525,1,0,0,0,523,521,1,0,0,0,523,524, + 1,0,0,0,524,527,1,0,0,0,525,523,1,0,0,0,526,528,5,13,0,0,527,526,1,0,0, + 0,527,528,1,0,0,0,528,530,1,0,0,0,529,531,5,10,0,0,530,529,1,0,0,0,530, + 531,1,0,0,0,531,532,1,0,0,0,532,533,6,18,8,0,533,48,1,0,0,0,534,535,5,47, + 0,0,535,536,5,42,0,0,536,541,1,0,0,0,537,540,3,49,19,0,538,540,9,0,0,0, + 539,537,1,0,0,0,539,538,1,0,0,0,540,543,1,0,0,0,541,542,1,0,0,0,541,539, + 1,0,0,0,542,544,1,0,0,0,543,541,1,0,0,0,544,545,5,42,0,0,545,546,5,47,0, + 0,546,547,1,0,0,0,547,548,6,19,8,0,548,50,1,0,0,0,549,551,7,2,0,0,550,549, + 1,0,0,0,551,552,1,0,0,0,552,550,1,0,0,0,552,553,1,0,0,0,553,554,1,0,0,0, + 554,555,6,20,8,0,555,52,1,0,0,0,556,557,3,159,74,0,557,558,1,0,0,0,558, + 559,6,21,9,0,559,560,6,21,10,0,560,54,1,0,0,0,561,562,3,63,26,0,562,563, + 1,0,0,0,563,564,6,22,11,0,564,565,6,22,12,0,565,56,1,0,0,0,566,567,3,51, + 20,0,567,568,1,0,0,0,568,569,6,23,8,0,569,58,1,0,0,0,570,571,3,47,18,0, + 571,572,1,0,0,0,572,573,6,24,8,0,573,60,1,0,0,0,574,575,3,49,19,0,575,576, + 1,0,0,0,576,577,6,25,8,0,577,62,1,0,0,0,578,579,5,124,0,0,579,580,1,0,0, + 0,580,581,6,26,12,0,581,64,1,0,0,0,582,583,7,3,0,0,583,66,1,0,0,0,584,585, + 7,4,0,0,585,68,1,0,0,0,586,587,5,92,0,0,587,588,7,5,0,0,588,70,1,0,0,0, + 589,590,8,6,0,0,590,72,1,0,0,0,591,593,7,7,0,0,592,594,7,8,0,0,593,592, + 1,0,0,0,593,594,1,0,0,0,594,596,1,0,0,0,595,597,3,65,27,0,596,595,1,0,0, + 0,597,598,1,0,0,0,598,596,1,0,0,0,598,599,1,0,0,0,599,74,1,0,0,0,600,601, + 5,64,0,0,601,76,1,0,0,0,602,603,5,96,0,0,603,78,1,0,0,0,604,608,8,9,0,0, + 605,606,5,96,0,0,606,608,5,96,0,0,607,604,1,0,0,0,607,605,1,0,0,0,608,80, + 1,0,0,0,609,610,5,95,0,0,610,82,1,0,0,0,611,615,3,67,28,0,612,615,3,65, + 27,0,613,615,3,81,35,0,614,611,1,0,0,0,614,612,1,0,0,0,614,613,1,0,0,0, + 615,84,1,0,0,0,616,621,5,34,0,0,617,620,3,69,29,0,618,620,3,71,30,0,619, + 617,1,0,0,0,619,618,1,0,0,0,620,623,1,0,0,0,621,619,1,0,0,0,621,622,1,0, + 0,0,622,624,1,0,0,0,623,621,1,0,0,0,624,646,5,34,0,0,625,626,5,34,0,0,626, + 627,5,34,0,0,627,628,5,34,0,0,628,632,1,0,0,0,629,631,8,1,0,0,630,629,1, + 0,0,0,631,634,1,0,0,0,632,633,1,0,0,0,632,630,1,0,0,0,633,635,1,0,0,0,634, + 632,1,0,0,0,635,636,5,34,0,0,636,637,5,34,0,0,637,638,5,34,0,0,638,640, + 1,0,0,0,639,641,5,34,0,0,640,639,1,0,0,0,640,641,1,0,0,0,641,643,1,0,0, + 0,642,644,5,34,0,0,643,642,1,0,0,0,643,644,1,0,0,0,644,646,1,0,0,0,645, + 616,1,0,0,0,645,625,1,0,0,0,646,86,1,0,0,0,647,649,3,65,27,0,648,647,1, + 0,0,0,649,650,1,0,0,0,650,648,1,0,0,0,650,651,1,0,0,0,651,88,1,0,0,0,652, + 654,3,65,27,0,653,652,1,0,0,0,654,655,1,0,0,0,655,653,1,0,0,0,655,656,1, + 0,0,0,656,657,1,0,0,0,657,661,3,103,46,0,658,660,3,65,27,0,659,658,1,0, + 0,0,660,663,1,0,0,0,661,659,1,0,0,0,661,662,1,0,0,0,662,695,1,0,0,0,663, + 661,1,0,0,0,664,666,3,103,46,0,665,667,3,65,27,0,666,665,1,0,0,0,667,668, + 1,0,0,0,668,666,1,0,0,0,668,669,1,0,0,0,669,695,1,0,0,0,670,672,3,65,27, + 0,671,670,1,0,0,0,672,673,1,0,0,0,673,671,1,0,0,0,673,674,1,0,0,0,674,682, + 1,0,0,0,675,679,3,103,46,0,676,678,3,65,27,0,677,676,1,0,0,0,678,681,1, + 0,0,0,679,677,1,0,0,0,679,680,1,0,0,0,680,683,1,0,0,0,681,679,1,0,0,0,682, + 675,1,0,0,0,682,683,1,0,0,0,683,684,1,0,0,0,684,685,3,73,31,0,685,695,1, + 0,0,0,686,688,3,103,46,0,687,689,3,65,27,0,688,687,1,0,0,0,689,690,1,0, + 0,0,690,688,1,0,0,0,690,691,1,0,0,0,691,692,1,0,0,0,692,693,3,73,31,0,693, + 695,1,0,0,0,694,653,1,0,0,0,694,664,1,0,0,0,694,671,1,0,0,0,694,686,1,0, + 0,0,695,90,1,0,0,0,696,697,3,317,153,0,697,698,3,363,176,0,698,92,1,0,0, + 0,699,700,3,315,152,0,700,701,3,341,165,0,701,702,3,321,155,0,702,94,1, + 0,0,0,703,704,3,315,152,0,704,705,3,351,170,0,705,706,3,319,154,0,706,96, + 1,0,0,0,707,708,5,61,0,0,708,98,1,0,0,0,709,710,5,44,0,0,710,100,1,0,0, + 0,711,712,3,321,155,0,712,713,3,323,156,0,713,714,3,351,170,0,714,715,3, + 319,154,0,715,102,1,0,0,0,716,717,5,46,0,0,717,104,1,0,0,0,718,719,3,325, + 157,0,719,720,3,315,152,0,720,721,3,337,163,0,721,722,3,351,170,0,722,723, + 3,323,156,0,723,106,1,0,0,0,724,725,3,325,157,0,725,726,3,331,160,0,726, + 727,3,349,169,0,727,728,3,351,170,0,728,729,3,353,171,0,729,108,1,0,0,0, + 730,731,3,337,163,0,731,732,3,315,152,0,732,733,3,351,170,0,733,734,3,353, + 171,0,734,110,1,0,0,0,735,736,5,40,0,0,736,112,1,0,0,0,737,738,3,331,160, + 0,738,739,3,341,165,0,739,114,1,0,0,0,740,741,3,331,160,0,741,742,3,351, + 170,0,742,116,1,0,0,0,743,744,3,337,163,0,744,745,3,331,160,0,745,746,3, + 335,162,0,746,747,3,323,156,0,747,118,1,0,0,0,748,749,3,341,165,0,749,750, + 3,343,166,0,750,751,3,353,171,0,751,120,1,0,0,0,752,753,3,341,165,0,753, + 754,3,355,172,0,754,755,3,337,163,0,755,756,3,337,163,0,756,122,1,0,0,0, + 757,758,3,341,165,0,758,759,3,355,172,0,759,760,3,337,163,0,760,761,3,337, + 163,0,761,762,3,351,170,0,762,124,1,0,0,0,763,764,3,343,166,0,764,765,3, + 349,169,0,765,126,1,0,0,0,766,767,5,63,0,0,767,128,1,0,0,0,768,769,3,349, + 169,0,769,770,3,337,163,0,770,771,3,331,160,0,771,772,3,335,162,0,772,773, + 3,323,156,0,773,130,1,0,0,0,774,775,5,41,0,0,775,132,1,0,0,0,776,777,3, + 353,171,0,777,778,3,349,169,0,778,779,3,355,172,0,779,780,3,323,156,0,780, + 134,1,0,0,0,781,782,5,61,0,0,782,783,5,61,0,0,783,136,1,0,0,0,784,785,5, + 61,0,0,785,786,5,126,0,0,786,138,1,0,0,0,787,788,5,33,0,0,788,789,5,61, + 0,0,789,140,1,0,0,0,790,791,5,60,0,0,791,142,1,0,0,0,792,793,5,60,0,0,793, + 794,5,61,0,0,794,144,1,0,0,0,795,796,5,62,0,0,796,146,1,0,0,0,797,798,5, + 62,0,0,798,799,5,61,0,0,799,148,1,0,0,0,800,801,5,43,0,0,801,150,1,0,0, + 0,802,803,5,45,0,0,803,152,1,0,0,0,804,805,5,42,0,0,805,154,1,0,0,0,806, + 807,5,47,0,0,807,156,1,0,0,0,808,809,5,37,0,0,809,158,1,0,0,0,810,811,5, + 91,0,0,811,812,1,0,0,0,812,813,6,74,0,0,813,814,6,74,0,0,814,160,1,0,0, + 0,815,816,5,93,0,0,816,817,1,0,0,0,817,818,6,75,12,0,818,819,6,75,12,0, + 819,162,1,0,0,0,820,824,3,67,28,0,821,823,3,83,36,0,822,821,1,0,0,0,823, + 826,1,0,0,0,824,822,1,0,0,0,824,825,1,0,0,0,825,837,1,0,0,0,826,824,1,0, + 0,0,827,830,3,81,35,0,828,830,3,75,32,0,829,827,1,0,0,0,829,828,1,0,0,0, + 830,832,1,0,0,0,831,833,3,83,36,0,832,831,1,0,0,0,833,834,1,0,0,0,834,832, + 1,0,0,0,834,835,1,0,0,0,835,837,1,0,0,0,836,820,1,0,0,0,836,829,1,0,0,0, + 837,164,1,0,0,0,838,840,3,77,33,0,839,841,3,79,34,0,840,839,1,0,0,0,841, + 842,1,0,0,0,842,840,1,0,0,0,842,843,1,0,0,0,843,844,1,0,0,0,844,845,3,77, + 33,0,845,166,1,0,0,0,846,847,3,165,77,0,847,168,1,0,0,0,848,849,3,47,18, + 0,849,850,1,0,0,0,850,851,6,79,8,0,851,170,1,0,0,0,852,853,3,49,19,0,853, + 854,1,0,0,0,854,855,6,80,8,0,855,172,1,0,0,0,856,857,3,51,20,0,857,858, + 1,0,0,0,858,859,6,81,8,0,859,174,1,0,0,0,860,861,3,63,26,0,861,862,1,0, + 0,0,862,863,6,82,11,0,863,864,6,82,12,0,864,176,1,0,0,0,865,866,3,159,74, + 0,866,867,1,0,0,0,867,868,6,83,9,0,868,178,1,0,0,0,869,870,3,161,75,0,870, + 871,1,0,0,0,871,872,6,84,13,0,872,180,1,0,0,0,873,874,3,99,44,0,874,875, + 1,0,0,0,875,876,6,85,14,0,876,182,1,0,0,0,877,878,3,97,43,0,878,879,1,0, + 0,0,879,880,6,86,15,0,880,184,1,0,0,0,881,882,3,339,164,0,882,883,3,323, + 156,0,883,884,3,353,171,0,884,885,3,315,152,0,885,886,3,321,155,0,886,887, + 3,315,152,0,887,888,3,353,171,0,888,889,3,315,152,0,889,186,1,0,0,0,890, + 894,8,10,0,0,891,892,5,47,0,0,892,894,8,11,0,0,893,890,1,0,0,0,893,891, + 1,0,0,0,894,188,1,0,0,0,895,897,3,187,88,0,896,895,1,0,0,0,897,898,1,0, + 0,0,898,896,1,0,0,0,898,899,1,0,0,0,899,190,1,0,0,0,900,901,3,167,78,0, + 901,902,1,0,0,0,902,903,6,90,16,0,903,192,1,0,0,0,904,905,3,47,18,0,905, + 906,1,0,0,0,906,907,6,91,8,0,907,194,1,0,0,0,908,909,3,49,19,0,909,910, + 1,0,0,0,910,911,6,92,8,0,911,196,1,0,0,0,912,913,3,51,20,0,913,914,1,0, + 0,0,914,915,6,93,8,0,915,198,1,0,0,0,916,917,3,63,26,0,917,918,1,0,0,0, + 918,919,6,94,11,0,919,920,6,94,12,0,920,200,1,0,0,0,921,922,3,103,46,0, + 922,923,1,0,0,0,923,924,6,95,17,0,924,202,1,0,0,0,925,926,3,99,44,0,926, + 927,1,0,0,0,927,928,6,96,14,0,928,204,1,0,0,0,929,934,3,67,28,0,930,934, + 3,65,27,0,931,934,3,81,35,0,932,934,3,153,71,0,933,929,1,0,0,0,933,930, + 1,0,0,0,933,931,1,0,0,0,933,932,1,0,0,0,934,206,1,0,0,0,935,938,3,67,28, + 0,936,938,3,153,71,0,937,935,1,0,0,0,937,936,1,0,0,0,938,942,1,0,0,0,939, + 941,3,205,97,0,940,939,1,0,0,0,941,944,1,0,0,0,942,940,1,0,0,0,942,943, + 1,0,0,0,943,955,1,0,0,0,944,942,1,0,0,0,945,948,3,81,35,0,946,948,3,75, + 32,0,947,945,1,0,0,0,947,946,1,0,0,0,948,950,1,0,0,0,949,951,3,205,97,0, + 950,949,1,0,0,0,951,952,1,0,0,0,952,950,1,0,0,0,952,953,1,0,0,0,953,955, + 1,0,0,0,954,937,1,0,0,0,954,947,1,0,0,0,955,208,1,0,0,0,956,959,3,207,98, + 0,957,959,3,165,77,0,958,956,1,0,0,0,958,957,1,0,0,0,959,960,1,0,0,0,960, + 958,1,0,0,0,960,961,1,0,0,0,961,210,1,0,0,0,962,963,3,47,18,0,963,964,1, + 0,0,0,964,965,6,100,8,0,965,212,1,0,0,0,966,967,3,49,19,0,967,968,1,0,0, + 0,968,969,6,101,8,0,969,214,1,0,0,0,970,971,3,51,20,0,971,972,1,0,0,0,972, + 973,6,102,8,0,973,216,1,0,0,0,974,975,3,63,26,0,975,976,1,0,0,0,976,977, + 6,103,11,0,977,978,6,103,12,0,978,218,1,0,0,0,979,980,3,97,43,0,980,981, + 1,0,0,0,981,982,6,104,15,0,982,220,1,0,0,0,983,984,3,99,44,0,984,985,1, + 0,0,0,985,986,6,105,14,0,986,222,1,0,0,0,987,988,3,103,46,0,988,989,1,0, + 0,0,989,990,6,106,17,0,990,224,1,0,0,0,991,992,3,315,152,0,992,993,3,351, + 170,0,993,226,1,0,0,0,994,995,3,209,99,0,995,996,1,0,0,0,996,997,6,108, + 18,0,997,228,1,0,0,0,998,999,3,47,18,0,999,1000,1,0,0,0,1000,1001,6,109, + 8,0,1001,230,1,0,0,0,1002,1003,3,49,19,0,1003,1004,1,0,0,0,1004,1005,6, + 110,8,0,1005,232,1,0,0,0,1006,1007,3,51,20,0,1007,1008,1,0,0,0,1008,1009, + 6,111,8,0,1009,234,1,0,0,0,1010,1011,3,63,26,0,1011,1012,1,0,0,0,1012,1013, + 6,112,11,0,1013,1014,6,112,12,0,1014,236,1,0,0,0,1015,1016,3,159,74,0,1016, + 1017,1,0,0,0,1017,1018,6,113,9,0,1018,1019,6,113,19,0,1019,238,1,0,0,0, + 1020,1021,3,343,166,0,1021,1022,3,341,165,0,1022,1023,1,0,0,0,1023,1024, + 6,114,20,0,1024,240,1,0,0,0,1025,1026,3,359,174,0,1026,1027,3,331,160,0, + 1027,1028,3,353,171,0,1028,1029,3,329,159,0,1029,1030,1,0,0,0,1030,1031, + 6,115,20,0,1031,242,1,0,0,0,1032,1033,8,12,0,0,1033,244,1,0,0,0,1034,1036, + 3,243,116,0,1035,1034,1,0,0,0,1036,1037,1,0,0,0,1037,1035,1,0,0,0,1037, + 1038,1,0,0,0,1038,1039,1,0,0,0,1039,1040,3,305,147,0,1040,1042,1,0,0,0, + 1041,1035,1,0,0,0,1041,1042,1,0,0,0,1042,1044,1,0,0,0,1043,1045,3,243,116, + 0,1044,1043,1,0,0,0,1045,1046,1,0,0,0,1046,1044,1,0,0,0,1046,1047,1,0,0, + 0,1047,246,1,0,0,0,1048,1049,3,167,78,0,1049,1050,1,0,0,0,1050,1051,6,118, + 16,0,1051,248,1,0,0,0,1052,1053,3,245,117,0,1053,1054,1,0,0,0,1054,1055, + 6,119,21,0,1055,250,1,0,0,0,1056,1057,3,47,18,0,1057,1058,1,0,0,0,1058, + 1059,6,120,8,0,1059,252,1,0,0,0,1060,1061,3,49,19,0,1061,1062,1,0,0,0,1062, + 1063,6,121,8,0,1063,254,1,0,0,0,1064,1065,3,51,20,0,1065,1066,1,0,0,0,1066, + 1067,6,122,8,0,1067,256,1,0,0,0,1068,1069,3,63,26,0,1069,1070,1,0,0,0,1070, + 1071,6,123,11,0,1071,1072,6,123,12,0,1072,1073,6,123,12,0,1073,258,1,0, + 0,0,1074,1075,3,97,43,0,1075,1076,1,0,0,0,1076,1077,6,124,15,0,1077,260, + 1,0,0,0,1078,1079,3,99,44,0,1079,1080,1,0,0,0,1080,1081,6,125,14,0,1081, + 262,1,0,0,0,1082,1083,3,103,46,0,1083,1084,1,0,0,0,1084,1085,6,126,17,0, + 1085,264,1,0,0,0,1086,1087,3,241,115,0,1087,1088,1,0,0,0,1088,1089,6,127, + 22,0,1089,266,1,0,0,0,1090,1091,3,209,99,0,1091,1092,1,0,0,0,1092,1093, + 6,128,18,0,1093,268,1,0,0,0,1094,1095,3,167,78,0,1095,1096,1,0,0,0,1096, + 1097,6,129,16,0,1097,270,1,0,0,0,1098,1099,3,47,18,0,1099,1100,1,0,0,0, + 1100,1101,6,130,8,0,1101,272,1,0,0,0,1102,1103,3,49,19,0,1103,1104,1,0, + 0,0,1104,1105,6,131,8,0,1105,274,1,0,0,0,1106,1107,3,51,20,0,1107,1108, + 1,0,0,0,1108,1109,6,132,8,0,1109,276,1,0,0,0,1110,1111,3,63,26,0,1111,1112, + 1,0,0,0,1112,1113,6,133,11,0,1113,1114,6,133,12,0,1114,278,1,0,0,0,1115, + 1116,3,103,46,0,1116,1117,1,0,0,0,1117,1118,6,134,17,0,1118,280,1,0,0,0, + 1119,1120,3,167,78,0,1120,1121,1,0,0,0,1121,1122,6,135,16,0,1122,282,1, + 0,0,0,1123,1124,3,163,76,0,1124,1125,1,0,0,0,1125,1126,6,136,23,0,1126, + 284,1,0,0,0,1127,1128,3,47,18,0,1128,1129,1,0,0,0,1129,1130,6,137,8,0,1130, + 286,1,0,0,0,1131,1132,3,49,19,0,1132,1133,1,0,0,0,1133,1134,6,138,8,0,1134, + 288,1,0,0,0,1135,1136,3,51,20,0,1136,1137,1,0,0,0,1137,1138,6,139,8,0,1138, + 290,1,0,0,0,1139,1140,3,63,26,0,1140,1141,1,0,0,0,1141,1142,6,140,11,0, + 1142,1143,6,140,12,0,1143,292,1,0,0,0,1144,1145,3,331,160,0,1145,1146,3, + 341,165,0,1146,1147,3,325,157,0,1147,1148,3,343,166,0,1148,294,1,0,0,0, + 1149,1150,3,325,157,0,1150,1151,3,355,172,0,1151,1152,3,341,165,0,1152, + 1153,3,319,154,0,1153,1154,3,353,171,0,1154,1155,3,331,160,0,1155,1156, + 3,343,166,0,1156,1157,3,341,165,0,1157,1158,3,351,170,0,1158,296,1,0,0, + 0,1159,1160,3,47,18,0,1160,1161,1,0,0,0,1161,1162,6,143,8,0,1162,298,1, + 0,0,0,1163,1164,3,49,19,0,1164,1165,1,0,0,0,1165,1166,6,144,8,0,1166,300, + 1,0,0,0,1167,1168,3,51,20,0,1168,1169,1,0,0,0,1169,1170,6,145,8,0,1170, + 302,1,0,0,0,1171,1172,3,161,75,0,1172,1173,1,0,0,0,1173,1174,6,146,13,0, + 1174,1175,6,146,12,0,1175,304,1,0,0,0,1176,1177,5,58,0,0,1177,306,1,0,0, + 0,1178,1184,3,75,32,0,1179,1184,3,65,27,0,1180,1184,3,103,46,0,1181,1184, + 3,67,28,0,1182,1184,3,81,35,0,1183,1178,1,0,0,0,1183,1179,1,0,0,0,1183, + 1180,1,0,0,0,1183,1181,1,0,0,0,1183,1182,1,0,0,0,1184,1185,1,0,0,0,1185, + 1183,1,0,0,0,1185,1186,1,0,0,0,1186,308,1,0,0,0,1187,1188,3,47,18,0,1188, + 1189,1,0,0,0,1189,1190,6,149,8,0,1190,310,1,0,0,0,1191,1192,3,49,19,0,1192, + 1193,1,0,0,0,1193,1194,6,150,8,0,1194,312,1,0,0,0,1195,1196,3,51,20,0,1196, + 1197,1,0,0,0,1197,1198,6,151,8,0,1198,314,1,0,0,0,1199,1200,7,13,0,0,1200, + 316,1,0,0,0,1201,1202,7,14,0,0,1202,318,1,0,0,0,1203,1204,7,15,0,0,1204, + 320,1,0,0,0,1205,1206,7,16,0,0,1206,322,1,0,0,0,1207,1208,7,7,0,0,1208, + 324,1,0,0,0,1209,1210,7,17,0,0,1210,326,1,0,0,0,1211,1212,7,18,0,0,1212, + 328,1,0,0,0,1213,1214,7,19,0,0,1214,330,1,0,0,0,1215,1216,7,20,0,0,1216, + 332,1,0,0,0,1217,1218,7,21,0,0,1218,334,1,0,0,0,1219,1220,7,22,0,0,1220, + 336,1,0,0,0,1221,1222,7,23,0,0,1222,338,1,0,0,0,1223,1224,7,24,0,0,1224, + 340,1,0,0,0,1225,1226,7,25,0,0,1226,342,1,0,0,0,1227,1228,7,26,0,0,1228, + 344,1,0,0,0,1229,1230,7,27,0,0,1230,346,1,0,0,0,1231,1232,7,28,0,0,1232, + 348,1,0,0,0,1233,1234,7,29,0,0,1234,350,1,0,0,0,1235,1236,7,30,0,0,1236, + 352,1,0,0,0,1237,1238,7,31,0,0,1238,354,1,0,0,0,1239,1240,7,32,0,0,1240, + 356,1,0,0,0,1241,1242,7,33,0,0,1242,358,1,0,0,0,1243,1244,7,34,0,0,1244, + 360,1,0,0,0,1245,1246,7,35,0,0,1246,362,1,0,0,0,1247,1248,7,36,0,0,1248, + 364,1,0,0,0,1249,1250,7,37,0,0,1250,366,1,0,0,0,57,0,1,2,3,4,5,6,7,8,9, + 10,513,523,527,530,539,541,552,593,598,607,614,619,621,632,640,643,645, + 650,655,661,668,673,679,682,690,694,824,829,834,836,842,893,898,933,937, + 942,947,952,954,958,960,1037,1041,1046,1183,1185,24,5,2,0,5,4,0,5,6,0,5, + 1,0,5,3,0,5,8,0,5,5,0,5,9,0,0,1,0,7,63,0,5,0,0,7,25,0,4,0,0,7,64,0,7,33, + 0,7,32,0,7,66,0,7,35,0,7,75,0,5,10,0,5,7,0,7,85,0,7,84,0,7,65,0]; + + private static __ATN: ATN; public static get _ATN(): ATN { if (!esql_lexer.__ATN) { - esql_lexer.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(esql_lexer._serializedATN)); + esql_lexer.__ATN = new ATNDeserializer().deserialize(esql_lexer._serializedATN); } return esql_lexer.__ATN; } -} + static DecisionsToDFA = esql_lexer._ATN.decisionToState.map( (ds: DecisionState, index: number) => new DFA(ds, index) ); +} \ No newline at end of file diff --git a/packages/kbn-monaco/src/esql/antlr/esql_parser.interp b/packages/kbn-monaco/src/esql/antlr/esql_parser.interp index fe9f47f619f88..7c249fbc6e1ff 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_parser.interp +++ b/packages/kbn-monaco/src/esql/antlr/esql_parser.interp @@ -269,4 +269,4 @@ enrichWithClause atn: -[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 3, 107, 513, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 3, 114, 10, 3, 12, 3, 14, 3, 117, 11, 3, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 123, 10, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 138, 10, 5, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 150, 10, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 7, 7, 157, 10, 7, 12, 7, 14, 7, 160, 11, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 167, 10, 7, 3, 7, 3, 7, 5, 7, 171, 10, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 7, 7, 179, 10, 7, 12, 7, 14, 7, 182, 11, 7, 3, 8, 3, 8, 5, 8, 186, 10, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 193, 10, 8, 3, 8, 3, 8, 3, 8, 5, 8, 198, 10, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 205, 10, 9, 3, 10, 3, 10, 3, 10, 3, 10, 5, 10, 211, 10, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 7, 10, 219, 10, 10, 12, 10, 14, 10, 222, 11, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 231, 10, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 7, 12, 239, 10, 12, 12, 12, 14, 12, 242, 11, 12, 5, 12, 244, 10, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 7, 14, 254, 10, 14, 12, 14, 14, 14, 257, 11, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 264, 10, 15, 3, 16, 3, 16, 3, 16, 3, 16, 7, 16, 270, 10, 16, 12, 16, 14, 16, 273, 11, 16, 3, 16, 5, 16, 276, 10, 16, 3, 17, 3, 17, 5, 17, 280, 10, 17, 3, 18, 3, 18, 3, 18, 3, 18, 7, 18, 286, 10, 18, 12, 18, 14, 18, 289, 11, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 5, 21, 300, 10, 21, 3, 21, 3, 21, 5, 21, 304, 10, 21, 3, 22, 3, 22, 3, 22, 3, 22, 5, 22, 310, 10, 22, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 7, 24, 317, 10, 24, 12, 24, 14, 24, 320, 11, 24, 3, 25, 3, 25, 3, 25, 7, 25, 325, 10, 25, 12, 25, 14, 25, 328, 11, 25, 3, 26, 3, 26, 3, 27, 3, 27, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 7, 29, 349, 10, 29, 12, 29, 14, 29, 352, 11, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 7, 29, 360, 10, 29, 12, 29, 14, 29, 363, 11, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 7, 29, 371, 10, 29, 12, 29, 14, 29, 374, 11, 29, 3, 29, 3, 29, 5, 29, 378, 10, 29, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 387, 10, 31, 12, 31, 14, 31, 390, 11, 31, 3, 32, 3, 32, 5, 32, 394, 10, 32, 3, 32, 3, 32, 5, 32, 398, 10, 32, 3, 33, 3, 33, 3, 33, 3, 33, 7, 33, 404, 10, 33, 12, 33, 14, 33, 407, 11, 33, 3, 34, 3, 34, 3, 34, 3, 34, 7, 34, 413, 10, 34, 12, 34, 14, 34, 416, 11, 34, 3, 35, 3, 35, 3, 35, 3, 35, 7, 35, 422, 10, 35, 12, 35, 14, 35, 425, 11, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 5, 37, 435, 10, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 7, 40, 447, 10, 40, 12, 40, 14, 40, 450, 11, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 43, 3, 43, 5, 43, 460, 10, 43, 3, 44, 5, 44, 463, 10, 44, 3, 44, 3, 44, 3, 45, 5, 45, 468, 10, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 5, 50, 487, 10, 50, 3, 51, 3, 51, 3, 51, 3, 51, 5, 51, 493, 10, 51, 3, 51, 3, 51, 3, 51, 3, 51, 7, 51, 499, 10, 51, 12, 51, 14, 51, 502, 11, 51, 5, 51, 504, 10, 51, 3, 52, 3, 52, 3, 52, 5, 52, 509, 10, 52, 3, 52, 3, 52, 3, 52, 2, 2, 5, 4, 12, 18, 53, 2, 2, 4, 2, 6, 2, 8, 2, 10, 2, 12, 2, 14, 2, 16, 2, 18, 2, 20, 2, 22, 2, 24, 2, 26, 2, 28, 2, 30, 2, 32, 2, 34, 2, 36, 2, 38, 2, 40, 2, 42, 2, 44, 2, 46, 2, 48, 2, 50, 2, 52, 2, 54, 2, 56, 2, 58, 2, 60, 2, 62, 2, 64, 2, 66, 2, 68, 2, 70, 2, 72, 2, 74, 2, 76, 2, 78, 2, 80, 2, 82, 2, 84, 2, 86, 2, 88, 2, 90, 2, 92, 2, 94, 2, 96, 2, 98, 2, 100, 2, 102, 2, 2, 11, 3, 2, 60, 61, 3, 2, 62, 64, 4, 2, 68, 68, 73, 73, 3, 2, 67, 68, 4, 2, 68, 68, 107, 107, 4, 2, 33, 33, 36, 36, 3, 2, 39, 40, 4, 2, 38, 38, 52, 52, 4, 2, 53, 53, 55, 59, 2, 538, 2, 104, 3, 2, 2, 2, 4, 107, 3, 2, 2, 2, 6, 122, 3, 2, 2, 2, 8, 137, 3, 2, 2, 2, 10, 139, 3, 2, 2, 2, 12, 170, 3, 2, 2, 2, 14, 197, 3, 2, 2, 2, 16, 204, 3, 2, 2, 2, 18, 210, 3, 2, 2, 2, 20, 230, 3, 2, 2, 2, 22, 232, 3, 2, 2, 2, 24, 247, 3, 2, 2, 2, 26, 250, 3, 2, 2, 2, 28, 263, 3, 2, 2, 2, 30, 265, 3, 2, 2, 2, 32, 279, 3, 2, 2, 2, 34, 281, 3, 2, 2, 2, 36, 290, 3, 2, 2, 2, 38, 294, 3, 2, 2, 2, 40, 297, 3, 2, 2, 2, 42, 305, 3, 2, 2, 2, 44, 311, 3, 2, 2, 2, 46, 313, 3, 2, 2, 2, 48, 321, 3, 2, 2, 2, 50, 329, 3, 2, 2, 2, 52, 331, 3, 2, 2, 2, 54, 333, 3, 2, 2, 2, 56, 377, 3, 2, 2, 2, 58, 379, 3, 2, 2, 2, 60, 382, 3, 2, 2, 2, 62, 391, 3, 2, 2, 2, 64, 399, 3, 2, 2, 2, 66, 408, 3, 2, 2, 2, 68, 417, 3, 2, 2, 2, 70, 426, 3, 2, 2, 2, 72, 430, 3, 2, 2, 2, 74, 436, 3, 2, 2, 2, 76, 440, 3, 2, 2, 2, 78, 443, 3, 2, 2, 2, 80, 451, 3, 2, 2, 2, 82, 455, 3, 2, 2, 2, 84, 459, 3, 2, 2, 2, 86, 462, 3, 2, 2, 2, 88, 467, 3, 2, 2, 2, 90, 471, 3, 2, 2, 2, 92, 473, 3, 2, 2, 2, 94, 475, 3, 2, 2, 2, 96, 478, 3, 2, 2, 2, 98, 486, 3, 2, 2, 2, 100, 488, 3, 2, 2, 2, 102, 508, 3, 2, 2, 2, 104, 105, 5, 4, 3, 2, 105, 106, 7, 2, 2, 3, 106, 3, 3, 2, 2, 2, 107, 108, 8, 3, 1, 2, 108, 109, 5, 6, 4, 2, 109, 115, 3, 2, 2, 2, 110, 111, 12, 3, 2, 2, 111, 112, 7, 27, 2, 2, 112, 114, 5, 8, 5, 2, 113, 110, 3, 2, 2, 2, 114, 117, 3, 2, 2, 2, 115, 113, 3, 2, 2, 2, 115, 116, 3, 2, 2, 2, 116, 5, 3, 2, 2, 2, 117, 115, 3, 2, 2, 2, 118, 123, 5, 94, 48, 2, 119, 123, 5, 30, 16, 2, 120, 123, 5, 24, 13, 2, 121, 123, 5, 98, 50, 2, 122, 118, 3, 2, 2, 2, 122, 119, 3, 2, 2, 2, 122, 120, 3, 2, 2, 2, 122, 121, 3, 2, 2, 2, 123, 7, 3, 2, 2, 2, 124, 138, 5, 38, 20, 2, 125, 138, 5, 42, 22, 2, 126, 138, 5, 58, 30, 2, 127, 138, 5, 64, 33, 2, 128, 138, 5, 60, 31, 2, 129, 138, 5, 40, 21, 2, 130, 138, 5, 10, 6, 2, 131, 138, 5, 66, 34, 2, 132, 138, 5, 68, 35, 2, 133, 138, 5, 72, 37, 2, 134, 138, 5, 74, 38, 2, 135, 138, 5, 100, 51, 2, 136, 138, 5, 76, 39, 2, 137, 124, 3, 2, 2, 2, 137, 125, 3, 2, 2, 2, 137, 126, 3, 2, 2, 2, 137, 127, 3, 2, 2, 2, 137, 128, 3, 2, 2, 2, 137, 129, 3, 2, 2, 2, 137, 130, 3, 2, 2, 2, 137, 131, 3, 2, 2, 2, 137, 132, 3, 2, 2, 2, 137, 133, 3, 2, 2, 2, 137, 134, 3, 2, 2, 2, 137, 135, 3, 2, 2, 2, 137, 136, 3, 2, 2, 2, 138, 9, 3, 2, 2, 2, 139, 140, 7, 19, 2, 2, 140, 141, 5, 12, 7, 2, 141, 11, 3, 2, 2, 2, 142, 143, 8, 7, 1, 2, 143, 144, 7, 45, 2, 2, 144, 171, 5, 12, 7, 9, 145, 171, 5, 16, 9, 2, 146, 171, 5, 14, 8, 2, 147, 149, 5, 16, 9, 2, 148, 150, 7, 45, 2, 2, 149, 148, 3, 2, 2, 2, 149, 150, 3, 2, 2, 2, 150, 151, 3, 2, 2, 2, 151, 152, 7, 42, 2, 2, 152, 153, 7, 41, 2, 2, 153, 158, 5, 16, 9, 2, 154, 155, 7, 35, 2, 2, 155, 157, 5, 16, 9, 2, 156, 154, 3, 2, 2, 2, 157, 160, 3, 2, 2, 2, 158, 156, 3, 2, 2, 2, 158, 159, 3, 2, 2, 2, 159, 161, 3, 2, 2, 2, 160, 158, 3, 2, 2, 2, 161, 162, 7, 51, 2, 2, 162, 171, 3, 2, 2, 2, 163, 164, 5, 16, 9, 2, 164, 166, 7, 43, 2, 2, 165, 167, 7, 45, 2, 2, 166, 165, 3, 2, 2, 2, 166, 167, 3, 2, 2, 2, 167, 168, 3, 2, 2, 2, 168, 169, 7, 46, 2, 2, 169, 171, 3, 2, 2, 2, 170, 142, 3, 2, 2, 2, 170, 145, 3, 2, 2, 2, 170, 146, 3, 2, 2, 2, 170, 147, 3, 2, 2, 2, 170, 163, 3, 2, 2, 2, 171, 180, 3, 2, 2, 2, 172, 173, 12, 6, 2, 2, 173, 174, 7, 32, 2, 2, 174, 179, 5, 12, 7, 7, 175, 176, 12, 5, 2, 2, 176, 177, 7, 48, 2, 2, 177, 179, 5, 12, 7, 6, 178, 172, 3, 2, 2, 2, 178, 175, 3, 2, 2, 2, 179, 182, 3, 2, 2, 2, 180, 178, 3, 2, 2, 2, 180, 181, 3, 2, 2, 2, 181, 13, 3, 2, 2, 2, 182, 180, 3, 2, 2, 2, 183, 185, 5, 16, 9, 2, 184, 186, 7, 45, 2, 2, 185, 184, 3, 2, 2, 2, 185, 186, 3, 2, 2, 2, 186, 187, 3, 2, 2, 2, 187, 188, 7, 44, 2, 2, 188, 189, 5, 90, 46, 2, 189, 198, 3, 2, 2, 2, 190, 192, 5, 16, 9, 2, 191, 193, 7, 45, 2, 2, 192, 191, 3, 2, 2, 2, 192, 193, 3, 2, 2, 2, 193, 194, 3, 2, 2, 2, 194, 195, 7, 50, 2, 2, 195, 196, 5, 90, 46, 2, 196, 198, 3, 2, 2, 2, 197, 183, 3, 2, 2, 2, 197, 190, 3, 2, 2, 2, 198, 15, 3, 2, 2, 2, 199, 205, 5, 18, 10, 2, 200, 201, 5, 18, 10, 2, 201, 202, 5, 92, 47, 2, 202, 203, 5, 18, 10, 2, 203, 205, 3, 2, 2, 2, 204, 199, 3, 2, 2, 2, 204, 200, 3, 2, 2, 2, 205, 17, 3, 2, 2, 2, 206, 207, 8, 10, 1, 2, 207, 211, 5, 20, 11, 2, 208, 209, 9, 2, 2, 2, 209, 211, 5, 18, 10, 5, 210, 206, 3, 2, 2, 2, 210, 208, 3, 2, 2, 2, 211, 220, 3, 2, 2, 2, 212, 213, 12, 4, 2, 2, 213, 214, 9, 3, 2, 2, 214, 219, 5, 18, 10, 5, 215, 216, 12, 3, 2, 2, 216, 217, 9, 2, 2, 2, 217, 219, 5, 18, 10, 4, 218, 212, 3, 2, 2, 2, 218, 215, 3, 2, 2, 2, 219, 222, 3, 2, 2, 2, 220, 218, 3, 2, 2, 2, 220, 221, 3, 2, 2, 2, 221, 19, 3, 2, 2, 2, 222, 220, 3, 2, 2, 2, 223, 231, 5, 56, 29, 2, 224, 231, 5, 46, 24, 2, 225, 231, 5, 22, 12, 2, 226, 227, 7, 41, 2, 2, 227, 228, 5, 12, 7, 2, 228, 229, 7, 51, 2, 2, 229, 231, 3, 2, 2, 2, 230, 223, 3, 2, 2, 2, 230, 224, 3, 2, 2, 2, 230, 225, 3, 2, 2, 2, 230, 226, 3, 2, 2, 2, 231, 21, 3, 2, 2, 2, 232, 233, 5, 50, 26, 2, 233, 243, 7, 41, 2, 2, 234, 244, 7, 62, 2, 2, 235, 240, 5, 12, 7, 2, 236, 237, 7, 35, 2, 2, 237, 239, 5, 12, 7, 2, 238, 236, 3, 2, 2, 2, 239, 242, 3, 2, 2, 2, 240, 238, 3, 2, 2, 2, 240, 241, 3, 2, 2, 2, 241, 244, 3, 2, 2, 2, 242, 240, 3, 2, 2, 2, 243, 234, 3, 2, 2, 2, 243, 235, 3, 2, 2, 2, 243, 244, 3, 2, 2, 2, 244, 245, 3, 2, 2, 2, 245, 246, 7, 51, 2, 2, 246, 23, 3, 2, 2, 2, 247, 248, 7, 15, 2, 2, 248, 249, 5, 26, 14, 2, 249, 25, 3, 2, 2, 2, 250, 255, 5, 28, 15, 2, 251, 252, 7, 35, 2, 2, 252, 254, 5, 28, 15, 2, 253, 251, 3, 2, 2, 2, 254, 257, 3, 2, 2, 2, 255, 253, 3, 2, 2, 2, 255, 256, 3, 2, 2, 2, 256, 27, 3, 2, 2, 2, 257, 255, 3, 2, 2, 2, 258, 264, 5, 12, 7, 2, 259, 260, 5, 46, 24, 2, 260, 261, 7, 34, 2, 2, 261, 262, 5, 12, 7, 2, 262, 264, 3, 2, 2, 2, 263, 258, 3, 2, 2, 2, 263, 259, 3, 2, 2, 2, 264, 29, 3, 2, 2, 2, 265, 266, 7, 8, 2, 2, 266, 271, 5, 44, 23, 2, 267, 268, 7, 35, 2, 2, 268, 270, 5, 44, 23, 2, 269, 267, 3, 2, 2, 2, 270, 273, 3, 2, 2, 2, 271, 269, 3, 2, 2, 2, 271, 272, 3, 2, 2, 2, 272, 275, 3, 2, 2, 2, 273, 271, 3, 2, 2, 2, 274, 276, 5, 32, 17, 2, 275, 274, 3, 2, 2, 2, 275, 276, 3, 2, 2, 2, 276, 31, 3, 2, 2, 2, 277, 280, 5, 34, 18, 2, 278, 280, 5, 36, 19, 2, 279, 277, 3, 2, 2, 2, 279, 278, 3, 2, 2, 2, 280, 33, 3, 2, 2, 2, 281, 282, 7, 72, 2, 2, 282, 287, 5, 44, 23, 2, 283, 284, 7, 35, 2, 2, 284, 286, 5, 44, 23, 2, 285, 283, 3, 2, 2, 2, 286, 289, 3, 2, 2, 2, 287, 285, 3, 2, 2, 2, 287, 288, 3, 2, 2, 2, 288, 35, 3, 2, 2, 2, 289, 287, 3, 2, 2, 2, 290, 291, 7, 65, 2, 2, 291, 292, 5, 34, 18, 2, 292, 293, 7, 66, 2, 2, 293, 37, 3, 2, 2, 2, 294, 295, 7, 6, 2, 2, 295, 296, 5, 26, 14, 2, 296, 39, 3, 2, 2, 2, 297, 299, 7, 18, 2, 2, 298, 300, 5, 26, 14, 2, 299, 298, 3, 2, 2, 2, 299, 300, 3, 2, 2, 2, 300, 303, 3, 2, 2, 2, 301, 302, 7, 31, 2, 2, 302, 304, 5, 26, 14, 2, 303, 301, 3, 2, 2, 2, 303, 304, 3, 2, 2, 2, 304, 41, 3, 2, 2, 2, 305, 306, 7, 10, 2, 2, 306, 309, 5, 26, 14, 2, 307, 308, 7, 31, 2, 2, 308, 310, 5, 26, 14, 2, 309, 307, 3, 2, 2, 2, 309, 310, 3, 2, 2, 2, 310, 43, 3, 2, 2, 2, 311, 312, 9, 4, 2, 2, 312, 45, 3, 2, 2, 2, 313, 318, 5, 50, 26, 2, 314, 315, 7, 37, 2, 2, 315, 317, 5, 50, 26, 2, 316, 314, 3, 2, 2, 2, 317, 320, 3, 2, 2, 2, 318, 316, 3, 2, 2, 2, 318, 319, 3, 2, 2, 2, 319, 47, 3, 2, 2, 2, 320, 318, 3, 2, 2, 2, 321, 326, 5, 52, 27, 2, 322, 323, 7, 37, 2, 2, 323, 325, 5, 52, 27, 2, 324, 322, 3, 2, 2, 2, 325, 328, 3, 2, 2, 2, 326, 324, 3, 2, 2, 2, 326, 327, 3, 2, 2, 2, 327, 49, 3, 2, 2, 2, 328, 326, 3, 2, 2, 2, 329, 330, 9, 5, 2, 2, 330, 51, 3, 2, 2, 2, 331, 332, 7, 77, 2, 2, 332, 53, 3, 2, 2, 2, 333, 334, 9, 6, 2, 2, 334, 55, 3, 2, 2, 2, 335, 378, 7, 46, 2, 2, 336, 337, 5, 88, 45, 2, 337, 338, 7, 67, 2, 2, 338, 378, 3, 2, 2, 2, 339, 378, 5, 86, 44, 2, 340, 378, 5, 88, 45, 2, 341, 378, 5, 82, 42, 2, 342, 378, 7, 49, 2, 2, 343, 378, 5, 90, 46, 2, 344, 345, 7, 65, 2, 2, 345, 350, 5, 84, 43, 2, 346, 347, 7, 35, 2, 2, 347, 349, 5, 84, 43, 2, 348, 346, 3, 2, 2, 2, 349, 352, 3, 2, 2, 2, 350, 348, 3, 2, 2, 2, 350, 351, 3, 2, 2, 2, 351, 353, 3, 2, 2, 2, 352, 350, 3, 2, 2, 2, 353, 354, 7, 66, 2, 2, 354, 378, 3, 2, 2, 2, 355, 356, 7, 65, 2, 2, 356, 361, 5, 82, 42, 2, 357, 358, 7, 35, 2, 2, 358, 360, 5, 82, 42, 2, 359, 357, 3, 2, 2, 2, 360, 363, 3, 2, 2, 2, 361, 359, 3, 2, 2, 2, 361, 362, 3, 2, 2, 2, 362, 364, 3, 2, 2, 2, 363, 361, 3, 2, 2, 2, 364, 365, 7, 66, 2, 2, 365, 378, 3, 2, 2, 2, 366, 367, 7, 65, 2, 2, 367, 372, 5, 90, 46, 2, 368, 369, 7, 35, 2, 2, 369, 371, 5, 90, 46, 2, 370, 368, 3, 2, 2, 2, 371, 374, 3, 2, 2, 2, 372, 370, 3, 2, 2, 2, 372, 373, 3, 2, 2, 2, 373, 375, 3, 2, 2, 2, 374, 372, 3, 2, 2, 2, 375, 376, 7, 66, 2, 2, 376, 378, 3, 2, 2, 2, 377, 335, 3, 2, 2, 2, 377, 336, 3, 2, 2, 2, 377, 339, 3, 2, 2, 2, 377, 340, 3, 2, 2, 2, 377, 341, 3, 2, 2, 2, 377, 342, 3, 2, 2, 2, 377, 343, 3, 2, 2, 2, 377, 344, 3, 2, 2, 2, 377, 355, 3, 2, 2, 2, 377, 366, 3, 2, 2, 2, 378, 57, 3, 2, 2, 2, 379, 380, 7, 12, 2, 2, 380, 381, 7, 29, 2, 2, 381, 59, 3, 2, 2, 2, 382, 383, 7, 17, 2, 2, 383, 388, 5, 62, 32, 2, 384, 385, 7, 35, 2, 2, 385, 387, 5, 62, 32, 2, 386, 384, 3, 2, 2, 2, 387, 390, 3, 2, 2, 2, 388, 386, 3, 2, 2, 2, 388, 389, 3, 2, 2, 2, 389, 61, 3, 2, 2, 2, 390, 388, 3, 2, 2, 2, 391, 393, 5, 12, 7, 2, 392, 394, 9, 7, 2, 2, 393, 392, 3, 2, 2, 2, 393, 394, 3, 2, 2, 2, 394, 397, 3, 2, 2, 2, 395, 396, 7, 47, 2, 2, 396, 398, 9, 8, 2, 2, 397, 395, 3, 2, 2, 2, 397, 398, 3, 2, 2, 2, 398, 63, 3, 2, 2, 2, 399, 400, 7, 11, 2, 2, 400, 405, 5, 48, 25, 2, 401, 402, 7, 35, 2, 2, 402, 404, 5, 48, 25, 2, 403, 401, 3, 2, 2, 2, 404, 407, 3, 2, 2, 2, 405, 403, 3, 2, 2, 2, 405, 406, 3, 2, 2, 2, 406, 65, 3, 2, 2, 2, 407, 405, 3, 2, 2, 2, 408, 409, 7, 4, 2, 2, 409, 414, 5, 48, 25, 2, 410, 411, 7, 35, 2, 2, 411, 413, 5, 48, 25, 2, 412, 410, 3, 2, 2, 2, 413, 416, 3, 2, 2, 2, 414, 412, 3, 2, 2, 2, 414, 415, 3, 2, 2, 2, 415, 67, 3, 2, 2, 2, 416, 414, 3, 2, 2, 2, 417, 418, 7, 14, 2, 2, 418, 423, 5, 70, 36, 2, 419, 420, 7, 35, 2, 2, 420, 422, 5, 70, 36, 2, 421, 419, 3, 2, 2, 2, 422, 425, 3, 2, 2, 2, 423, 421, 3, 2, 2, 2, 423, 424, 3, 2, 2, 2, 424, 69, 3, 2, 2, 2, 425, 423, 3, 2, 2, 2, 426, 427, 5, 48, 25, 2, 427, 428, 7, 81, 2, 2, 428, 429, 5, 48, 25, 2, 429, 71, 3, 2, 2, 2, 430, 431, 7, 3, 2, 2, 431, 432, 5, 20, 11, 2, 432, 434, 5, 90, 46, 2, 433, 435, 5, 78, 40, 2, 434, 433, 3, 2, 2, 2, 434, 435, 3, 2, 2, 2, 435, 73, 3, 2, 2, 2, 436, 437, 7, 9, 2, 2, 437, 438, 5, 20, 11, 2, 438, 439, 5, 90, 46, 2, 439, 75, 3, 2, 2, 2, 440, 441, 7, 13, 2, 2, 441, 442, 5, 46, 24, 2, 442, 77, 3, 2, 2, 2, 443, 448, 5, 80, 41, 2, 444, 445, 7, 35, 2, 2, 445, 447, 5, 80, 41, 2, 446, 444, 3, 2, 2, 2, 447, 450, 3, 2, 2, 2, 448, 446, 3, 2, 2, 2, 448, 449, 3, 2, 2, 2, 449, 79, 3, 2, 2, 2, 450, 448, 3, 2, 2, 2, 451, 452, 5, 50, 26, 2, 452, 453, 7, 34, 2, 2, 453, 454, 5, 56, 29, 2, 454, 81, 3, 2, 2, 2, 455, 456, 9, 9, 2, 2, 456, 83, 3, 2, 2, 2, 457, 460, 5, 86, 44, 2, 458, 460, 5, 88, 45, 2, 459, 457, 3, 2, 2, 2, 459, 458, 3, 2, 2, 2, 460, 85, 3, 2, 2, 2, 461, 463, 9, 2, 2, 2, 462, 461, 3, 2, 2, 2, 462, 463, 3, 2, 2, 2, 463, 464, 3, 2, 2, 2, 464, 465, 7, 30, 2, 2, 465, 87, 3, 2, 2, 2, 466, 468, 9, 2, 2, 2, 467, 466, 3, 2, 2, 2, 467, 468, 3, 2, 2, 2, 468, 469, 3, 2, 2, 2, 469, 470, 7, 29, 2, 2, 470, 89, 3, 2, 2, 2, 471, 472, 7, 28, 2, 2, 472, 91, 3, 2, 2, 2, 473, 474, 9, 10, 2, 2, 474, 93, 3, 2, 2, 2, 475, 476, 7, 7, 2, 2, 476, 477, 5, 96, 49, 2, 477, 95, 3, 2, 2, 2, 478, 479, 7, 65, 2, 2, 479, 480, 5, 4, 3, 2, 480, 481, 7, 66, 2, 2, 481, 97, 3, 2, 2, 2, 482, 483, 7, 16, 2, 2, 483, 487, 7, 97, 2, 2, 484, 485, 7, 16, 2, 2, 485, 487, 7, 98, 2, 2, 486, 482, 3, 2, 2, 2, 486, 484, 3, 2, 2, 2, 487, 99, 3, 2, 2, 2, 488, 489, 7, 5, 2, 2, 489, 492, 7, 87, 2, 2, 490, 491, 7, 85, 2, 2, 491, 493, 5, 48, 25, 2, 492, 490, 3, 2, 2, 2, 492, 493, 3, 2, 2, 2, 493, 503, 3, 2, 2, 2, 494, 495, 7, 86, 2, 2, 495, 500, 5, 102, 52, 2, 496, 497, 7, 35, 2, 2, 497, 499, 5, 102, 52, 2, 498, 496, 3, 2, 2, 2, 499, 502, 3, 2, 2, 2, 500, 498, 3, 2, 2, 2, 500, 501, 3, 2, 2, 2, 501, 504, 3, 2, 2, 2, 502, 500, 3, 2, 2, 2, 503, 494, 3, 2, 2, 2, 503, 504, 3, 2, 2, 2, 504, 101, 3, 2, 2, 2, 505, 506, 5, 48, 25, 2, 506, 507, 7, 34, 2, 2, 507, 509, 3, 2, 2, 2, 508, 505, 3, 2, 2, 2, 508, 509, 3, 2, 2, 2, 509, 510, 3, 2, 2, 2, 510, 511, 5, 48, 25, 2, 511, 103, 3, 2, 2, 2, 52, 115, 122, 137, 149, 158, 166, 170, 178, 180, 185, 192, 197, 204, 210, 218, 220, 230, 240, 243, 255, 263, 271, 275, 279, 287, 299, 303, 309, 318, 326, 350, 361, 372, 377, 388, 393, 397, 405, 414, 423, 434, 448, 459, 462, 467, 486, 492, 500, 503, 508] \ No newline at end of file +[4, 1, 105, 511, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 112, 8, 1, 10, 1, 12, 1, 115, 9, 1, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 121, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 136, 8, 3, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 148, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 155, 8, 5, 10, 5, 12, 5, 158, 9, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 165, 8, 5, 1, 5, 1, 5, 3, 5, 169, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 177, 8, 5, 10, 5, 12, 5, 180, 9, 5, 1, 6, 1, 6, 3, 6, 184, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 191, 8, 6, 1, 6, 1, 6, 1, 6, 3, 6, 196, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 203, 8, 7, 1, 8, 1, 8, 1, 8, 1, 8, 3, 8, 209, 8, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 5, 8, 217, 8, 8, 10, 8, 12, 8, 220, 9, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 229, 8, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 5, 10, 237, 8, 10, 10, 10, 12, 10, 240, 9, 10, 3, 10, 242, 8, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 5, 12, 252, 8, 12, 10, 12, 12, 12, 255, 9, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 262, 8, 13, 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 268, 8, 14, 10, 14, 12, 14, 271, 9, 14, 1, 14, 3, 14, 274, 8, 14, 1, 15, 1, 15, 3, 15, 278, 8, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 284, 8, 16, 10, 16, 12, 16, 287, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 3, 19, 298, 8, 19, 1, 19, 1, 19, 3, 19, 302, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 308, 8, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 5, 22, 315, 8, 22, 10, 22, 12, 22, 318, 9, 22, 1, 23, 1, 23, 1, 23, 5, 23, 323, 8, 23, 10, 23, 12, 23, 326, 9, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 5, 27, 347, 8, 27, 10, 27, 12, 27, 350, 9, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 5, 27, 358, 8, 27, 10, 27, 12, 27, 361, 9, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 5, 27, 369, 8, 27, 10, 27, 12, 27, 372, 9, 27, 1, 27, 1, 27, 3, 27, 376, 8, 27, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 385, 8, 29, 10, 29, 12, 29, 388, 9, 29, 1, 30, 1, 30, 3, 30, 392, 8, 30, 1, 30, 1, 30, 3, 30, 396, 8, 30, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 402, 8, 31, 10, 31, 12, 31, 405, 9, 31, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 411, 8, 32, 10, 32, 12, 32, 414, 9, 32, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 420, 8, 33, 10, 33, 12, 33, 423, 9, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 433, 8, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 5, 38, 445, 8, 38, 10, 38, 12, 38, 448, 9, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 41, 1, 41, 3, 41, 458, 8, 41, 1, 42, 3, 42, 461, 8, 42, 1, 42, 1, 42, 1, 43, 3, 43, 466, 8, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 485, 8, 48, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 491, 8, 49, 1, 49, 1, 49, 1, 49, 1, 49, 5, 49, 497, 8, 49, 10, 49, 12, 49, 500, 9, 49, 3, 49, 502, 8, 49, 1, 50, 1, 50, 1, 50, 3, 50, 507, 8, 50, 1, 50, 1, 50, 1, 50, 0, 3, 2, 10, 16, 51, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 0, 9, 1, 0, 58, 59, 1, 0, 60, 62, 2, 0, 66, 66, 71, 71, 1, 0, 65, 66, 2, 0, 66, 66, 105, 105, 2, 0, 31, 31, 34, 34, 1, 0, 37, 38, 2, 0, 36, 36, 50, 50, 2, 0, 51, 51, 53, 57, 536, 0, 102, 1, 0, 0, 0, 2, 105, 1, 0, 0, 0, 4, 120, 1, 0, 0, 0, 6, 135, 1, 0, 0, 0, 8, 137, 1, 0, 0, 0, 10, 168, 1, 0, 0, 0, 12, 195, 1, 0, 0, 0, 14, 202, 1, 0, 0, 0, 16, 208, 1, 0, 0, 0, 18, 228, 1, 0, 0, 0, 20, 230, 1, 0, 0, 0, 22, 245, 1, 0, 0, 0, 24, 248, 1, 0, 0, 0, 26, 261, 1, 0, 0, 0, 28, 263, 1, 0, 0, 0, 30, 277, 1, 0, 0, 0, 32, 279, 1, 0, 0, 0, 34, 288, 1, 0, 0, 0, 36, 292, 1, 0, 0, 0, 38, 295, 1, 0, 0, 0, 40, 303, 1, 0, 0, 0, 42, 309, 1, 0, 0, 0, 44, 311, 1, 0, 0, 0, 46, 319, 1, 0, 0, 0, 48, 327, 1, 0, 0, 0, 50, 329, 1, 0, 0, 0, 52, 331, 1, 0, 0, 0, 54, 375, 1, 0, 0, 0, 56, 377, 1, 0, 0, 0, 58, 380, 1, 0, 0, 0, 60, 389, 1, 0, 0, 0, 62, 397, 1, 0, 0, 0, 64, 406, 1, 0, 0, 0, 66, 415, 1, 0, 0, 0, 68, 424, 1, 0, 0, 0, 70, 428, 1, 0, 0, 0, 72, 434, 1, 0, 0, 0, 74, 438, 1, 0, 0, 0, 76, 441, 1, 0, 0, 0, 78, 449, 1, 0, 0, 0, 80, 453, 1, 0, 0, 0, 82, 457, 1, 0, 0, 0, 84, 460, 1, 0, 0, 0, 86, 465, 1, 0, 0, 0, 88, 469, 1, 0, 0, 0, 90, 471, 1, 0, 0, 0, 92, 473, 1, 0, 0, 0, 94, 476, 1, 0, 0, 0, 96, 484, 1, 0, 0, 0, 98, 486, 1, 0, 0, 0, 100, 506, 1, 0, 0, 0, 102, 103, 3, 2, 1, 0, 103, 104, 5, 0, 0, 1, 104, 1, 1, 0, 0, 0, 105, 106, 6, 1, -1, 0, 106, 107, 3, 4, 2, 0, 107, 113, 1, 0, 0, 0, 108, 109, 10, 1, 0, 0, 109, 110, 5, 25, 0, 0, 110, 112, 3, 6, 3, 0, 111, 108, 1, 0, 0, 0, 112, 115, 1, 0, 0, 0, 113, 111, 1, 0, 0, 0, 113, 114, 1, 0, 0, 0, 114, 3, 1, 0, 0, 0, 115, 113, 1, 0, 0, 0, 116, 121, 3, 92, 46, 0, 117, 121, 3, 28, 14, 0, 118, 121, 3, 22, 11, 0, 119, 121, 3, 96, 48, 0, 120, 116, 1, 0, 0, 0, 120, 117, 1, 0, 0, 0, 120, 118, 1, 0, 0, 0, 120, 119, 1, 0, 0, 0, 121, 5, 1, 0, 0, 0, 122, 136, 3, 36, 18, 0, 123, 136, 3, 40, 20, 0, 124, 136, 3, 56, 28, 0, 125, 136, 3, 62, 31, 0, 126, 136, 3, 58, 29, 0, 127, 136, 3, 38, 19, 0, 128, 136, 3, 8, 4, 0, 129, 136, 3, 64, 32, 0, 130, 136, 3, 66, 33, 0, 131, 136, 3, 70, 35, 0, 132, 136, 3, 72, 36, 0, 133, 136, 3, 98, 49, 0, 134, 136, 3, 74, 37, 0, 135, 122, 1, 0, 0, 0, 135, 123, 1, 0, 0, 0, 135, 124, 1, 0, 0, 0, 135, 125, 1, 0, 0, 0, 135, 126, 1, 0, 0, 0, 135, 127, 1, 0, 0, 0, 135, 128, 1, 0, 0, 0, 135, 129, 1, 0, 0, 0, 135, 130, 1, 0, 0, 0, 135, 131, 1, 0, 0, 0, 135, 132, 1, 0, 0, 0, 135, 133, 1, 0, 0, 0, 135, 134, 1, 0, 0, 0, 136, 7, 1, 0, 0, 0, 137, 138, 5, 17, 0, 0, 138, 139, 3, 10, 5, 0, 139, 9, 1, 0, 0, 0, 140, 141, 6, 5, -1, 0, 141, 142, 5, 43, 0, 0, 142, 169, 3, 10, 5, 7, 143, 169, 3, 14, 7, 0, 144, 169, 3, 12, 6, 0, 145, 147, 3, 14, 7, 0, 146, 148, 5, 43, 0, 0, 147, 146, 1, 0, 0, 0, 147, 148, 1, 0, 0, 0, 148, 149, 1, 0, 0, 0, 149, 150, 5, 40, 0, 0, 150, 151, 5, 39, 0, 0, 151, 156, 3, 14, 7, 0, 152, 153, 5, 33, 0, 0, 153, 155, 3, 14, 7, 0, 154, 152, 1, 0, 0, 0, 155, 158, 1, 0, 0, 0, 156, 154, 1, 0, 0, 0, 156, 157, 1, 0, 0, 0, 157, 159, 1, 0, 0, 0, 158, 156, 1, 0, 0, 0, 159, 160, 5, 49, 0, 0, 160, 169, 1, 0, 0, 0, 161, 162, 3, 14, 7, 0, 162, 164, 5, 41, 0, 0, 163, 165, 5, 43, 0, 0, 164, 163, 1, 0, 0, 0, 164, 165, 1, 0, 0, 0, 165, 166, 1, 0, 0, 0, 166, 167, 5, 44, 0, 0, 167, 169, 1, 0, 0, 0, 168, 140, 1, 0, 0, 0, 168, 143, 1, 0, 0, 0, 168, 144, 1, 0, 0, 0, 168, 145, 1, 0, 0, 0, 168, 161, 1, 0, 0, 0, 169, 178, 1, 0, 0, 0, 170, 171, 10, 4, 0, 0, 171, 172, 5, 30, 0, 0, 172, 177, 3, 10, 5, 5, 173, 174, 10, 3, 0, 0, 174, 175, 5, 46, 0, 0, 175, 177, 3, 10, 5, 4, 176, 170, 1, 0, 0, 0, 176, 173, 1, 0, 0, 0, 177, 180, 1, 0, 0, 0, 178, 176, 1, 0, 0, 0, 178, 179, 1, 0, 0, 0, 179, 11, 1, 0, 0, 0, 180, 178, 1, 0, 0, 0, 181, 183, 3, 14, 7, 0, 182, 184, 5, 43, 0, 0, 183, 182, 1, 0, 0, 0, 183, 184, 1, 0, 0, 0, 184, 185, 1, 0, 0, 0, 185, 186, 5, 42, 0, 0, 186, 187, 3, 88, 44, 0, 187, 196, 1, 0, 0, 0, 188, 190, 3, 14, 7, 0, 189, 191, 5, 43, 0, 0, 190, 189, 1, 0, 0, 0, 190, 191, 1, 0, 0, 0, 191, 192, 1, 0, 0, 0, 192, 193, 5, 48, 0, 0, 193, 194, 3, 88, 44, 0, 194, 196, 1, 0, 0, 0, 195, 181, 1, 0, 0, 0, 195, 188, 1, 0, 0, 0, 196, 13, 1, 0, 0, 0, 197, 203, 3, 16, 8, 0, 198, 199, 3, 16, 8, 0, 199, 200, 3, 90, 45, 0, 200, 201, 3, 16, 8, 0, 201, 203, 1, 0, 0, 0, 202, 197, 1, 0, 0, 0, 202, 198, 1, 0, 0, 0, 203, 15, 1, 0, 0, 0, 204, 205, 6, 8, -1, 0, 205, 209, 3, 18, 9, 0, 206, 207, 7, 0, 0, 0, 207, 209, 3, 16, 8, 3, 208, 204, 1, 0, 0, 0, 208, 206, 1, 0, 0, 0, 209, 218, 1, 0, 0, 0, 210, 211, 10, 2, 0, 0, 211, 212, 7, 1, 0, 0, 212, 217, 3, 16, 8, 3, 213, 214, 10, 1, 0, 0, 214, 215, 7, 0, 0, 0, 215, 217, 3, 16, 8, 2, 216, 210, 1, 0, 0, 0, 216, 213, 1, 0, 0, 0, 217, 220, 1, 0, 0, 0, 218, 216, 1, 0, 0, 0, 218, 219, 1, 0, 0, 0, 219, 17, 1, 0, 0, 0, 220, 218, 1, 0, 0, 0, 221, 229, 3, 54, 27, 0, 222, 229, 3, 44, 22, 0, 223, 229, 3, 20, 10, 0, 224, 225, 5, 39, 0, 0, 225, 226, 3, 10, 5, 0, 226, 227, 5, 49, 0, 0, 227, 229, 1, 0, 0, 0, 228, 221, 1, 0, 0, 0, 228, 222, 1, 0, 0, 0, 228, 223, 1, 0, 0, 0, 228, 224, 1, 0, 0, 0, 229, 19, 1, 0, 0, 0, 230, 231, 3, 48, 24, 0, 231, 241, 5, 39, 0, 0, 232, 242, 5, 60, 0, 0, 233, 238, 3, 10, 5, 0, 234, 235, 5, 33, 0, 0, 235, 237, 3, 10, 5, 0, 236, 234, 1, 0, 0, 0, 237, 240, 1, 0, 0, 0, 238, 236, 1, 0, 0, 0, 238, 239, 1, 0, 0, 0, 239, 242, 1, 0, 0, 0, 240, 238, 1, 0, 0, 0, 241, 232, 1, 0, 0, 0, 241, 233, 1, 0, 0, 0, 241, 242, 1, 0, 0, 0, 242, 243, 1, 0, 0, 0, 243, 244, 5, 49, 0, 0, 244, 21, 1, 0, 0, 0, 245, 246, 5, 13, 0, 0, 246, 247, 3, 24, 12, 0, 247, 23, 1, 0, 0, 0, 248, 253, 3, 26, 13, 0, 249, 250, 5, 33, 0, 0, 250, 252, 3, 26, 13, 0, 251, 249, 1, 0, 0, 0, 252, 255, 1, 0, 0, 0, 253, 251, 1, 0, 0, 0, 253, 254, 1, 0, 0, 0, 254, 25, 1, 0, 0, 0, 255, 253, 1, 0, 0, 0, 256, 262, 3, 10, 5, 0, 257, 258, 3, 44, 22, 0, 258, 259, 5, 32, 0, 0, 259, 260, 3, 10, 5, 0, 260, 262, 1, 0, 0, 0, 261, 256, 1, 0, 0, 0, 261, 257, 1, 0, 0, 0, 262, 27, 1, 0, 0, 0, 263, 264, 5, 6, 0, 0, 264, 269, 3, 42, 21, 0, 265, 266, 5, 33, 0, 0, 266, 268, 3, 42, 21, 0, 267, 265, 1, 0, 0, 0, 268, 271, 1, 0, 0, 0, 269, 267, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 273, 1, 0, 0, 0, 271, 269, 1, 0, 0, 0, 272, 274, 3, 30, 15, 0, 273, 272, 1, 0, 0, 0, 273, 274, 1, 0, 0, 0, 274, 29, 1, 0, 0, 0, 275, 278, 3, 32, 16, 0, 276, 278, 3, 34, 17, 0, 277, 275, 1, 0, 0, 0, 277, 276, 1, 0, 0, 0, 278, 31, 1, 0, 0, 0, 279, 280, 5, 70, 0, 0, 280, 285, 3, 42, 21, 0, 281, 282, 5, 33, 0, 0, 282, 284, 3, 42, 21, 0, 283, 281, 1, 0, 0, 0, 284, 287, 1, 0, 0, 0, 285, 283, 1, 0, 0, 0, 285, 286, 1, 0, 0, 0, 286, 33, 1, 0, 0, 0, 287, 285, 1, 0, 0, 0, 288, 289, 5, 63, 0, 0, 289, 290, 3, 32, 16, 0, 290, 291, 5, 64, 0, 0, 291, 35, 1, 0, 0, 0, 292, 293, 5, 4, 0, 0, 293, 294, 3, 24, 12, 0, 294, 37, 1, 0, 0, 0, 295, 297, 5, 16, 0, 0, 296, 298, 3, 24, 12, 0, 297, 296, 1, 0, 0, 0, 297, 298, 1, 0, 0, 0, 298, 301, 1, 0, 0, 0, 299, 300, 5, 29, 0, 0, 300, 302, 3, 24, 12, 0, 301, 299, 1, 0, 0, 0, 301, 302, 1, 0, 0, 0, 302, 39, 1, 0, 0, 0, 303, 304, 5, 8, 0, 0, 304, 307, 3, 24, 12, 0, 305, 306, 5, 29, 0, 0, 306, 308, 3, 24, 12, 0, 307, 305, 1, 0, 0, 0, 307, 308, 1, 0, 0, 0, 308, 41, 1, 0, 0, 0, 309, 310, 7, 2, 0, 0, 310, 43, 1, 0, 0, 0, 311, 316, 3, 48, 24, 0, 312, 313, 5, 35, 0, 0, 313, 315, 3, 48, 24, 0, 314, 312, 1, 0, 0, 0, 315, 318, 1, 0, 0, 0, 316, 314, 1, 0, 0, 0, 316, 317, 1, 0, 0, 0, 317, 45, 1, 0, 0, 0, 318, 316, 1, 0, 0, 0, 319, 324, 3, 50, 25, 0, 320, 321, 5, 35, 0, 0, 321, 323, 3, 50, 25, 0, 322, 320, 1, 0, 0, 0, 323, 326, 1, 0, 0, 0, 324, 322, 1, 0, 0, 0, 324, 325, 1, 0, 0, 0, 325, 47, 1, 0, 0, 0, 326, 324, 1, 0, 0, 0, 327, 328, 7, 3, 0, 0, 328, 49, 1, 0, 0, 0, 329, 330, 5, 75, 0, 0, 330, 51, 1, 0, 0, 0, 331, 332, 7, 4, 0, 0, 332, 53, 1, 0, 0, 0, 333, 376, 5, 44, 0, 0, 334, 335, 3, 86, 43, 0, 335, 336, 5, 65, 0, 0, 336, 376, 1, 0, 0, 0, 337, 376, 3, 84, 42, 0, 338, 376, 3, 86, 43, 0, 339, 376, 3, 80, 40, 0, 340, 376, 5, 47, 0, 0, 341, 376, 3, 88, 44, 0, 342, 343, 5, 63, 0, 0, 343, 348, 3, 82, 41, 0, 344, 345, 5, 33, 0, 0, 345, 347, 3, 82, 41, 0, 346, 344, 1, 0, 0, 0, 347, 350, 1, 0, 0, 0, 348, 346, 1, 0, 0, 0, 348, 349, 1, 0, 0, 0, 349, 351, 1, 0, 0, 0, 350, 348, 1, 0, 0, 0, 351, 352, 5, 64, 0, 0, 352, 376, 1, 0, 0, 0, 353, 354, 5, 63, 0, 0, 354, 359, 3, 80, 40, 0, 355, 356, 5, 33, 0, 0, 356, 358, 3, 80, 40, 0, 357, 355, 1, 0, 0, 0, 358, 361, 1, 0, 0, 0, 359, 357, 1, 0, 0, 0, 359, 360, 1, 0, 0, 0, 360, 362, 1, 0, 0, 0, 361, 359, 1, 0, 0, 0, 362, 363, 5, 64, 0, 0, 363, 376, 1, 0, 0, 0, 364, 365, 5, 63, 0, 0, 365, 370, 3, 88, 44, 0, 366, 367, 5, 33, 0, 0, 367, 369, 3, 88, 44, 0, 368, 366, 1, 0, 0, 0, 369, 372, 1, 0, 0, 0, 370, 368, 1, 0, 0, 0, 370, 371, 1, 0, 0, 0, 371, 373, 1, 0, 0, 0, 372, 370, 1, 0, 0, 0, 373, 374, 5, 64, 0, 0, 374, 376, 1, 0, 0, 0, 375, 333, 1, 0, 0, 0, 375, 334, 1, 0, 0, 0, 375, 337, 1, 0, 0, 0, 375, 338, 1, 0, 0, 0, 375, 339, 1, 0, 0, 0, 375, 340, 1, 0, 0, 0, 375, 341, 1, 0, 0, 0, 375, 342, 1, 0, 0, 0, 375, 353, 1, 0, 0, 0, 375, 364, 1, 0, 0, 0, 376, 55, 1, 0, 0, 0, 377, 378, 5, 10, 0, 0, 378, 379, 5, 27, 0, 0, 379, 57, 1, 0, 0, 0, 380, 381, 5, 15, 0, 0, 381, 386, 3, 60, 30, 0, 382, 383, 5, 33, 0, 0, 383, 385, 3, 60, 30, 0, 384, 382, 1, 0, 0, 0, 385, 388, 1, 0, 0, 0, 386, 384, 1, 0, 0, 0, 386, 387, 1, 0, 0, 0, 387, 59, 1, 0, 0, 0, 388, 386, 1, 0, 0, 0, 389, 391, 3, 10, 5, 0, 390, 392, 7, 5, 0, 0, 391, 390, 1, 0, 0, 0, 391, 392, 1, 0, 0, 0, 392, 395, 1, 0, 0, 0, 393, 394, 5, 45, 0, 0, 394, 396, 7, 6, 0, 0, 395, 393, 1, 0, 0, 0, 395, 396, 1, 0, 0, 0, 396, 61, 1, 0, 0, 0, 397, 398, 5, 9, 0, 0, 398, 403, 3, 46, 23, 0, 399, 400, 5, 33, 0, 0, 400, 402, 3, 46, 23, 0, 401, 399, 1, 0, 0, 0, 402, 405, 1, 0, 0, 0, 403, 401, 1, 0, 0, 0, 403, 404, 1, 0, 0, 0, 404, 63, 1, 0, 0, 0, 405, 403, 1, 0, 0, 0, 406, 407, 5, 2, 0, 0, 407, 412, 3, 46, 23, 0, 408, 409, 5, 33, 0, 0, 409, 411, 3, 46, 23, 0, 410, 408, 1, 0, 0, 0, 411, 414, 1, 0, 0, 0, 412, 410, 1, 0, 0, 0, 412, 413, 1, 0, 0, 0, 413, 65, 1, 0, 0, 0, 414, 412, 1, 0, 0, 0, 415, 416, 5, 12, 0, 0, 416, 421, 3, 68, 34, 0, 417, 418, 5, 33, 0, 0, 418, 420, 3, 68, 34, 0, 419, 417, 1, 0, 0, 0, 420, 423, 1, 0, 0, 0, 421, 419, 1, 0, 0, 0, 421, 422, 1, 0, 0, 0, 422, 67, 1, 0, 0, 0, 423, 421, 1, 0, 0, 0, 424, 425, 3, 46, 23, 0, 425, 426, 5, 79, 0, 0, 426, 427, 3, 46, 23, 0, 427, 69, 1, 0, 0, 0, 428, 429, 5, 1, 0, 0, 429, 430, 3, 18, 9, 0, 430, 432, 3, 88, 44, 0, 431, 433, 3, 76, 38, 0, 432, 431, 1, 0, 0, 0, 432, 433, 1, 0, 0, 0, 433, 71, 1, 0, 0, 0, 434, 435, 5, 7, 0, 0, 435, 436, 3, 18, 9, 0, 436, 437, 3, 88, 44, 0, 437, 73, 1, 0, 0, 0, 438, 439, 5, 11, 0, 0, 439, 440, 3, 44, 22, 0, 440, 75, 1, 0, 0, 0, 441, 446, 3, 78, 39, 0, 442, 443, 5, 33, 0, 0, 443, 445, 3, 78, 39, 0, 444, 442, 1, 0, 0, 0, 445, 448, 1, 0, 0, 0, 446, 444, 1, 0, 0, 0, 446, 447, 1, 0, 0, 0, 447, 77, 1, 0, 0, 0, 448, 446, 1, 0, 0, 0, 449, 450, 3, 48, 24, 0, 450, 451, 5, 32, 0, 0, 451, 452, 3, 54, 27, 0, 452, 79, 1, 0, 0, 0, 453, 454, 7, 7, 0, 0, 454, 81, 1, 0, 0, 0, 455, 458, 3, 84, 42, 0, 456, 458, 3, 86, 43, 0, 457, 455, 1, 0, 0, 0, 457, 456, 1, 0, 0, 0, 458, 83, 1, 0, 0, 0, 459, 461, 7, 0, 0, 0, 460, 459, 1, 0, 0, 0, 460, 461, 1, 0, 0, 0, 461, 462, 1, 0, 0, 0, 462, 463, 5, 28, 0, 0, 463, 85, 1, 0, 0, 0, 464, 466, 7, 0, 0, 0, 465, 464, 1, 0, 0, 0, 465, 466, 1, 0, 0, 0, 466, 467, 1, 0, 0, 0, 467, 468, 5, 27, 0, 0, 468, 87, 1, 0, 0, 0, 469, 470, 5, 26, 0, 0, 470, 89, 1, 0, 0, 0, 471, 472, 7, 8, 0, 0, 472, 91, 1, 0, 0, 0, 473, 474, 5, 5, 0, 0, 474, 475, 3, 94, 47, 0, 475, 93, 1, 0, 0, 0, 476, 477, 5, 63, 0, 0, 477, 478, 3, 2, 1, 0, 478, 479, 5, 64, 0, 0, 479, 95, 1, 0, 0, 0, 480, 481, 5, 14, 0, 0, 481, 485, 5, 95, 0, 0, 482, 483, 5, 14, 0, 0, 483, 485, 5, 96, 0, 0, 484, 480, 1, 0, 0, 0, 484, 482, 1, 0, 0, 0, 485, 97, 1, 0, 0, 0, 486, 487, 5, 3, 0, 0, 487, 490, 5, 85, 0, 0, 488, 489, 5, 83, 0, 0, 489, 491, 3, 46, 23, 0, 490, 488, 1, 0, 0, 0, 490, 491, 1, 0, 0, 0, 491, 501, 1, 0, 0, 0, 492, 493, 5, 84, 0, 0, 493, 498, 3, 100, 50, 0, 494, 495, 5, 33, 0, 0, 495, 497, 3, 100, 50, 0, 496, 494, 1, 0, 0, 0, 497, 500, 1, 0, 0, 0, 498, 496, 1, 0, 0, 0, 498, 499, 1, 0, 0, 0, 499, 502, 1, 0, 0, 0, 500, 498, 1, 0, 0, 0, 501, 492, 1, 0, 0, 0, 501, 502, 1, 0, 0, 0, 502, 99, 1, 0, 0, 0, 503, 504, 3, 46, 23, 0, 504, 505, 5, 32, 0, 0, 505, 507, 1, 0, 0, 0, 506, 503, 1, 0, 0, 0, 506, 507, 1, 0, 0, 0, 507, 508, 1, 0, 0, 0, 508, 509, 3, 46, 23, 0, 509, 101, 1, 0, 0, 0, 50, 113, 120, 135, 147, 156, 164, 168, 176, 178, 183, 190, 195, 202, 208, 216, 218, 228, 238, 241, 253, 261, 269, 273, 277, 285, 297, 301, 307, 316, 324, 348, 359, 370, 375, 386, 391, 395, 403, 412, 421, 432, 446, 457, 460, 465, 484, 490, 498, 501, 506] \ No newline at end of file diff --git a/packages/kbn-monaco/src/esql/antlr/esql_parser.ts b/packages/kbn-monaco/src/esql/antlr/esql_parser.ts index 194a489a4ce8d..95a5e0a9bc860 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_parser.ts +++ b/packages/kbn-monaco/src/esql/antlr/esql_parser.ts @@ -1,32 +1,23 @@ // @ts-nocheck -// Generated from src/esql/antlr/esql_parser.g4 by ANTLR 4.7.3-SNAPSHOT - - -import { ATN } from "antlr4ts/atn/ATN"; -import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer"; -import { FailedPredicateException } from "antlr4ts/FailedPredicateException"; -import { NotNull } from "antlr4ts/Decorators"; -import { NoViableAltException } from "antlr4ts/NoViableAltException"; -import { Override } from "antlr4ts/Decorators"; -import { Parser } from "antlr4ts/Parser"; -import { ParserRuleContext } from "antlr4ts/ParserRuleContext"; -import { ParserATNSimulator } from "antlr4ts/atn/ParserATNSimulator"; -import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener"; -import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor"; -import { RecognitionException } from "antlr4ts/RecognitionException"; -import { RuleContext } from "antlr4ts/RuleContext"; -//import { RuleVersion } from "antlr4ts/RuleVersion"; -import { TerminalNode } from "antlr4ts/tree/TerminalNode"; -import { Token } from "antlr4ts/Token"; -import { TokenStream } from "antlr4ts/TokenStream"; -import { Vocabulary } from "antlr4ts/Vocabulary"; -import { VocabularyImpl } from "antlr4ts/VocabularyImpl"; - -import * as Utils from "antlr4ts/misc/Utils"; - -import { esql_parserListener } from "./esql_parserListener"; - -export class esql_parser extends Parser { +// Generated from src/esql/antlr/esql_parser.g4 by ANTLR 4.13.1 +// noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols + +import { + ATN, + ATNDeserializer, DecisionState, DFA, FailedPredicateException, + RecognitionException, NoViableAltException, BailErrorStrategy, + Parser, ParserATNSimulator, + RuleContext, ParserRuleContext, PredictionMode, PredictionContextCache, + TerminalNode, RuleNode, + Token, TokenStream, + Interval, IntervalSet +} from 'antlr4'; +import esql_parserListener from "./esql_parserListener.js"; +// for running tests with parameters, TODO: discuss strategy for typed parameters in CI +// eslint-disable-next-line no-unused-vars +type int = number; + +export default class esql_parser extends Parser { public static readonly DISSECT = 1; public static readonly DROP = 2; public static readonly ENRICH = 3; @@ -132,6 +123,7 @@ export class esql_parser extends Parser { public static readonly SETTTING_MULTILINE_COMMENT = 103; public static readonly SETTING_WS = 104; public static readonly UNQUOTED_ID_PATTERN = 105; + public static readonly EOF = Token.EOF; public static readonly RULE_singleStatement = 0; public static readonly RULE_query = 1; public static readonly RULE_sourceCommand = 2; @@ -183,6 +175,132 @@ export class esql_parser extends Parser { public static readonly RULE_showCommand = 48; public static readonly RULE_enrichCommand = 49; public static readonly RULE_enrichWithClause = 50; + public static readonly literalNames: (string | null)[] = [ null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, "'|'", + null, null, + null, null, + null, null, + "'='", "','", + null, "'.'", + null, null, + null, "'('", + null, null, + null, null, + null, null, + null, "'?'", + null, "')'", + null, "'=='", + "'=~'", "'!='", + "'<'", "'<='", + "'>'", "'>='", + "'+'", "'-'", + "'*'", "'/'", + "'%'", null, + "']'", null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + null, null, + "':'" ]; + public static readonly symbolicNames: (string | null)[] = [ null, "DISSECT", + "DROP", "ENRICH", + "EVAL", "EXPLAIN", + "FROM", "GROK", + "INLINESTATS", + "KEEP", "LIMIT", + "MV_EXPAND", + "RENAME", "ROW", + "SHOW", "SORT", + "STATS", "WHERE", + "UNKNOWN_CMD", + "LINE_COMMENT", + "MULTILINE_COMMENT", + "WS", "EXPLAIN_WS", + "EXPLAIN_LINE_COMMENT", + "EXPLAIN_MULTILINE_COMMENT", + "PIPE", "STRING", + "INTEGER_LITERAL", + "DECIMAL_LITERAL", + "BY", "AND", + "ASC", "ASSIGN", + "COMMA", "DESC", + "DOT", "FALSE", + "FIRST", "LAST", + "LP", "IN", + "IS", "LIKE", + "NOT", "NULL", + "NULLS", "OR", + "PARAM", "RLIKE", + "RP", "TRUE", + "EQ", "CIEQ", + "NEQ", "LT", + "LTE", "GT", + "GTE", "PLUS", + "MINUS", "ASTERISK", + "SLASH", "PERCENT", + "OPENING_BRACKET", + "CLOSING_BRACKET", + "UNQUOTED_IDENTIFIER", + "QUOTED_IDENTIFIER", + "EXPR_LINE_COMMENT", + "EXPR_MULTILINE_COMMENT", + "EXPR_WS", + "METADATA", + "FROM_UNQUOTED_IDENTIFIER", + "FROM_LINE_COMMENT", + "FROM_MULTILINE_COMMENT", + "FROM_WS", + "ID_PATTERN", + "PROJECT_LINE_COMMENT", + "PROJECT_MULTILINE_COMMENT", + "PROJECT_WS", + "AS", "RENAME_LINE_COMMENT", + "RENAME_MULTILINE_COMMENT", + "RENAME_WS", + "ON", "WITH", + "ENRICH_POLICY_NAME", + "ENRICH_LINE_COMMENT", + "ENRICH_MULTILINE_COMMENT", + "ENRICH_WS", + "ENRICH_FIELD_LINE_COMMENT", + "ENRICH_FIELD_MULTILINE_COMMENT", + "ENRICH_FIELD_WS", + "MVEXPAND_LINE_COMMENT", + "MVEXPAND_MULTILINE_COMMENT", + "MVEXPAND_WS", + "INFO", "FUNCTIONS", + "SHOW_LINE_COMMENT", + "SHOW_MULTILINE_COMMENT", + "SHOW_WS", + "COLON", "SETTING", + "SETTING_LINE_COMMENT", + "SETTTING_MULTILINE_COMMENT", + "SETTING_WS", + "UNQUOTED_ID_PATTERN" ]; // tslint:disable:no-trailing-whitespace public static readonly ruleNames: string[] = [ "singleStatement", "query", "sourceCommand", "processingCommand", "whereCommand", @@ -198,72 +316,26 @@ export class esql_parser extends Parser { "explainCommand", "subqueryExpression", "showCommand", "enrichCommand", "enrichWithClause", ]; - - private static readonly _LITERAL_NAMES: Array = [ - undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, "'|'", undefined, undefined, - undefined, undefined, undefined, undefined, "'='", "','", undefined, "'.'", - undefined, undefined, undefined, "'('", undefined, undefined, undefined, - undefined, undefined, undefined, undefined, "'?'", undefined, "')'", undefined, - "'=='", "'=~'", "'!='", "'<'", "'<='", "'>'", "'>='", "'+'", "'-'", "'*'", - "'/'", "'%'", undefined, "']'", undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, "':'", - ]; - private static readonly _SYMBOLIC_NAMES: Array = [ - undefined, "DISSECT", "DROP", "ENRICH", "EVAL", "EXPLAIN", "FROM", "GROK", - "INLINESTATS", "KEEP", "LIMIT", "MV_EXPAND", "RENAME", "ROW", "SHOW", - "SORT", "STATS", "WHERE", "UNKNOWN_CMD", "LINE_COMMENT", "MULTILINE_COMMENT", - "WS", "EXPLAIN_WS", "EXPLAIN_LINE_COMMENT", "EXPLAIN_MULTILINE_COMMENT", - "PIPE", "STRING", "INTEGER_LITERAL", "DECIMAL_LITERAL", "BY", "AND", "ASC", - "ASSIGN", "COMMA", "DESC", "DOT", "FALSE", "FIRST", "LAST", "LP", "IN", - "IS", "LIKE", "NOT", "NULL", "NULLS", "OR", "PARAM", "RLIKE", "RP", "TRUE", - "EQ", "CIEQ", "NEQ", "LT", "LTE", "GT", "GTE", "PLUS", "MINUS", "ASTERISK", - "SLASH", "PERCENT", "OPENING_BRACKET", "CLOSING_BRACKET", "UNQUOTED_IDENTIFIER", - "QUOTED_IDENTIFIER", "EXPR_LINE_COMMENT", "EXPR_MULTILINE_COMMENT", "EXPR_WS", - "METADATA", "FROM_UNQUOTED_IDENTIFIER", "FROM_LINE_COMMENT", "FROM_MULTILINE_COMMENT", - "FROM_WS", "ID_PATTERN", "PROJECT_LINE_COMMENT", "PROJECT_MULTILINE_COMMENT", - "PROJECT_WS", "AS", "RENAME_LINE_COMMENT", "RENAME_MULTILINE_COMMENT", - "RENAME_WS", "ON", "WITH", "ENRICH_POLICY_NAME", "ENRICH_LINE_COMMENT", - "ENRICH_MULTILINE_COMMENT", "ENRICH_WS", "ENRICH_FIELD_LINE_COMMENT", - "ENRICH_FIELD_MULTILINE_COMMENT", "ENRICH_FIELD_WS", "MVEXPAND_LINE_COMMENT", - "MVEXPAND_MULTILINE_COMMENT", "MVEXPAND_WS", "INFO", "FUNCTIONS", "SHOW_LINE_COMMENT", - "SHOW_MULTILINE_COMMENT", "SHOW_WS", "COLON", "SETTING", "SETTING_LINE_COMMENT", - "SETTTING_MULTILINE_COMMENT", "SETTING_WS", "UNQUOTED_ID_PATTERN", - ]; - public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(esql_parser._LITERAL_NAMES, esql_parser._SYMBOLIC_NAMES, []); - - // @Override - // @NotNull - public get vocabulary(): Vocabulary { - return esql_parser.VOCABULARY; - } - // tslint:enable:no-trailing-whitespace - - // @Override public get grammarFileName(): string { return "esql_parser.g4"; } - - // @Override + public get literalNames(): (string | null)[] { return esql_parser.literalNames; } + public get symbolicNames(): (string | null)[] { return esql_parser.symbolicNames; } public get ruleNames(): string[] { return esql_parser.ruleNames; } + public get serializedATN(): number[] { return esql_parser._serializedATN; } - // @Override - public get serializedATN(): string { return esql_parser._serializedATN; } + protected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException { + return new FailedPredicateException(this, predicate, message); + } constructor(input: TokenStream) { super(input); - this._interp = new ParserATNSimulator(esql_parser._ATN, this); + this._interp = new ParserATNSimulator(this, esql_parser._ATN, esql_parser.DecisionsToDFA, new PredictionContextCache()); } // @RuleVersion(0) public singleStatement(): SingleStatementContext { - let _localctx: SingleStatementContext = new SingleStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 0, esql_parser.RULE_singleStatement); + let localctx: SingleStatementContext = new SingleStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 0, esql_parser.RULE_singleStatement); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 102; this.query(0); @@ -273,7 +345,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -283,7 +355,7 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } public query(): QueryContext; @@ -296,39 +368,39 @@ export class esql_parser extends Parser { let _parentctx: ParserRuleContext = this._ctx; let _parentState: number = this.state; - let _localctx: QueryContext = new QueryContext(this._ctx, _parentState); - let _prevctx: QueryContext = _localctx; + let localctx: QueryContext = new QueryContext(this, this._ctx, _parentState); + let _prevctx: QueryContext = localctx; let _startState: number = 2; - this.enterRecursionRule(_localctx, 2, esql_parser.RULE_query, _p); + this.enterRecursionRule(localctx, 2, esql_parser.RULE_query, _p); try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { { - _localctx = new SingleCommandQueryContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; + localctx = new SingleCommandQueryContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; this.state = 106; this.sourceCommand(); } - this._ctx._stop = this._input.tryLT(-1); + this._ctx.stop = this._input.LT(-1); this.state = 113; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 0, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 0, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { if (this._parseListeners != null) { this.triggerExitRuleEvent(); } - _prevctx = _localctx; + _prevctx = localctx; { { - _localctx = new CompositeQueryContext(new QueryContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, esql_parser.RULE_query); + localctx = new CompositeQueryContext(this, new QueryContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, esql_parser.RULE_query); this.state = 108; if (!(this.precpred(this._ctx, 1))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 1)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 1)"); } this.state = 109; this.match(esql_parser.PIPE); @@ -339,13 +411,13 @@ export class esql_parser extends Parser { } this.state = 115; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 0, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 0, this._ctx); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -355,39 +427,39 @@ export class esql_parser extends Parser { finally { this.unrollRecursionContexts(_parentctx); } - return _localctx; + return localctx; } // @RuleVersion(0) public sourceCommand(): SourceCommandContext { - let _localctx: SourceCommandContext = new SourceCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 4, esql_parser.RULE_sourceCommand); + let localctx: SourceCommandContext = new SourceCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 4, esql_parser.RULE_sourceCommand); try { this.state = 120; this._errHandler.sync(this); switch (this._input.LA(1)) { - case esql_parser.EXPLAIN: - this.enterOuterAlt(_localctx, 1); + case 5: + this.enterOuterAlt(localctx, 1); { this.state = 116; this.explainCommand(); } break; - case esql_parser.FROM: - this.enterOuterAlt(_localctx, 2); + case 6: + this.enterOuterAlt(localctx, 2); { this.state = 117; this.fromCommand(); } break; - case esql_parser.ROW: - this.enterOuterAlt(_localctx, 3); + case 13: + this.enterOuterAlt(localctx, 3); { this.state = 118; this.rowCommand(); } break; - case esql_parser.SHOW: - this.enterOuterAlt(_localctx, 4); + case 14: + this.enterOuterAlt(localctx, 4); { this.state = 119; this.showCommand(); @@ -399,7 +471,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -409,102 +481,102 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public processingCommand(): ProcessingCommandContext { - let _localctx: ProcessingCommandContext = new ProcessingCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 6, esql_parser.RULE_processingCommand); + let localctx: ProcessingCommandContext = new ProcessingCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 6, esql_parser.RULE_processingCommand); try { this.state = 135; this._errHandler.sync(this); switch (this._input.LA(1)) { - case esql_parser.EVAL: - this.enterOuterAlt(_localctx, 1); + case 4: + this.enterOuterAlt(localctx, 1); { this.state = 122; this.evalCommand(); } break; - case esql_parser.INLINESTATS: - this.enterOuterAlt(_localctx, 2); + case 8: + this.enterOuterAlt(localctx, 2); { this.state = 123; this.inlinestatsCommand(); } break; - case esql_parser.LIMIT: - this.enterOuterAlt(_localctx, 3); + case 10: + this.enterOuterAlt(localctx, 3); { this.state = 124; this.limitCommand(); } break; - case esql_parser.KEEP: - this.enterOuterAlt(_localctx, 4); + case 9: + this.enterOuterAlt(localctx, 4); { this.state = 125; this.keepCommand(); } break; - case esql_parser.SORT: - this.enterOuterAlt(_localctx, 5); + case 15: + this.enterOuterAlt(localctx, 5); { this.state = 126; this.sortCommand(); } break; - case esql_parser.STATS: - this.enterOuterAlt(_localctx, 6); + case 16: + this.enterOuterAlt(localctx, 6); { this.state = 127; this.statsCommand(); } break; - case esql_parser.WHERE: - this.enterOuterAlt(_localctx, 7); + case 17: + this.enterOuterAlt(localctx, 7); { this.state = 128; this.whereCommand(); } break; - case esql_parser.DROP: - this.enterOuterAlt(_localctx, 8); + case 2: + this.enterOuterAlt(localctx, 8); { this.state = 129; this.dropCommand(); } break; - case esql_parser.RENAME: - this.enterOuterAlt(_localctx, 9); + case 12: + this.enterOuterAlt(localctx, 9); { this.state = 130; this.renameCommand(); } break; - case esql_parser.DISSECT: - this.enterOuterAlt(_localctx, 10); + case 1: + this.enterOuterAlt(localctx, 10); { this.state = 131; this.dissectCommand(); } break; - case esql_parser.GROK: - this.enterOuterAlt(_localctx, 11); + case 7: + this.enterOuterAlt(localctx, 11); { this.state = 132; this.grokCommand(); } break; - case esql_parser.ENRICH: - this.enterOuterAlt(_localctx, 12); + case 3: + this.enterOuterAlt(localctx, 12); { this.state = 133; this.enrichCommand(); } break; - case esql_parser.MV_EXPAND: - this.enterOuterAlt(_localctx, 13); + case 11: + this.enterOuterAlt(localctx, 13); { this.state = 134; this.mvExpandCommand(); @@ -516,7 +588,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -526,14 +598,14 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public whereCommand(): WhereCommandContext { - let _localctx: WhereCommandContext = new WhereCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 8, esql_parser.RULE_whereCommand); + let localctx: WhereCommandContext = new WhereCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 8, esql_parser.RULE_whereCommand); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 137; this.match(esql_parser.WHERE); @@ -543,7 +615,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -553,7 +625,7 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } public booleanExpression(): BooleanExpressionContext; @@ -566,23 +638,23 @@ export class esql_parser extends Parser { let _parentctx: ParserRuleContext = this._ctx; let _parentState: number = this.state; - let _localctx: BooleanExpressionContext = new BooleanExpressionContext(this._ctx, _parentState); - let _prevctx: BooleanExpressionContext = _localctx; + let localctx: BooleanExpressionContext = new BooleanExpressionContext(this, this._ctx, _parentState); + let _prevctx: BooleanExpressionContext = localctx; let _startState: number = 10; - this.enterRecursionRule(_localctx, 10, esql_parser.RULE_booleanExpression, _p); + this.enterRecursionRule(localctx, 10, esql_parser.RULE_booleanExpression, _p); let _la: number; try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 168; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 6, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 6, this._ctx) ) { case 1: { - _localctx = new LogicalNotContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; + localctx = new LogicalNotContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; this.state = 141; this.match(esql_parser.NOT); @@ -590,38 +662,35 @@ export class esql_parser extends Parser { this.booleanExpression(7); } break; - case 2: { - _localctx = new BooleanDefaultContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; + localctx = new BooleanDefaultContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; this.state = 143; this.valueExpression(); } break; - case 3: { - _localctx = new RegexExpressionContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; + localctx = new RegexExpressionContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; this.state = 144; this.regexBooleanExpression(); } break; - case 4: { - _localctx = new LogicalInContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; + localctx = new LogicalInContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; this.state = 145; this.valueExpression(); this.state = 147; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === esql_parser.NOT) { + if (_la===43) { { this.state = 146; this.match(esql_parser.NOT); @@ -637,7 +706,7 @@ export class esql_parser extends Parser { this.state = 156; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la === esql_parser.COMMA) { + while (_la===33) { { { this.state = 152; @@ -654,12 +723,11 @@ export class esql_parser extends Parser { this.match(esql_parser.RP); } break; - case 5: { - _localctx = new IsNullContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; + localctx = new IsNullContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; this.state = 161; this.valueExpression(); this.state = 162; @@ -667,7 +735,7 @@ export class esql_parser extends Parser { this.state = 164; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === esql_parser.NOT) { + if (_la===43) { { this.state = 163; this.match(esql_parser.NOT); @@ -679,49 +747,48 @@ export class esql_parser extends Parser { } break; } - this._ctx._stop = this._input.tryLT(-1); + this._ctx.stop = this._input.LT(-1); this.state = 178; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 8, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 8, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { if (this._parseListeners != null) { this.triggerExitRuleEvent(); } - _prevctx = _localctx; + _prevctx = localctx; { this.state = 176; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 7, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 7, this._ctx) ) { case 1: { - _localctx = new LogicalBinaryContext(new BooleanExpressionContext(_parentctx, _parentState)); - (_localctx as LogicalBinaryContext)._left = _prevctx; - this.pushNewRecursionContext(_localctx, _startState, esql_parser.RULE_booleanExpression); + localctx = new LogicalBinaryContext(this, new BooleanExpressionContext(this, _parentctx, _parentState)); + (localctx as LogicalBinaryContext)._left = _prevctx; + this.pushNewRecursionContext(localctx, _startState, esql_parser.RULE_booleanExpression); this.state = 170; if (!(this.precpred(this._ctx, 4))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 4)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 4)"); } this.state = 171; - (_localctx as LogicalBinaryContext)._operator = this.match(esql_parser.AND); + (localctx as LogicalBinaryContext)._operator = this.match(esql_parser.AND); this.state = 172; - (_localctx as LogicalBinaryContext)._right = this.booleanExpression(5); + (localctx as LogicalBinaryContext)._right = this.booleanExpression(5); } break; - case 2: { - _localctx = new LogicalBinaryContext(new BooleanExpressionContext(_parentctx, _parentState)); - (_localctx as LogicalBinaryContext)._left = _prevctx; - this.pushNewRecursionContext(_localctx, _startState, esql_parser.RULE_booleanExpression); + localctx = new LogicalBinaryContext(this, new BooleanExpressionContext(this, _parentctx, _parentState)); + (localctx as LogicalBinaryContext)._left = _prevctx; + this.pushNewRecursionContext(localctx, _startState, esql_parser.RULE_booleanExpression); this.state = 173; if (!(this.precpred(this._ctx, 3))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 3)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 3)"); } this.state = 174; - (_localctx as LogicalBinaryContext)._operator = this.match(esql_parser.OR); + (localctx as LogicalBinaryContext)._operator = this.match(esql_parser.OR); this.state = 175; - (_localctx as LogicalBinaryContext)._right = this.booleanExpression(4); + (localctx as LogicalBinaryContext)._right = this.booleanExpression(4); } break; } @@ -729,13 +796,13 @@ export class esql_parser extends Parser { } this.state = 180; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 8, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 8, this._ctx); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -745,26 +812,26 @@ export class esql_parser extends Parser { finally { this.unrollRecursionContexts(_parentctx); } - return _localctx; + return localctx; } // @RuleVersion(0) public regexBooleanExpression(): RegexBooleanExpressionContext { - let _localctx: RegexBooleanExpressionContext = new RegexBooleanExpressionContext(this._ctx, this.state); - this.enterRule(_localctx, 12, esql_parser.RULE_regexBooleanExpression); + let localctx: RegexBooleanExpressionContext = new RegexBooleanExpressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 12, esql_parser.RULE_regexBooleanExpression); let _la: number; try { this.state = 195; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 11, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 11, this._ctx) ) { case 1: - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 181; this.valueExpression(); this.state = 183; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === esql_parser.NOT) { + if (_la===43) { { this.state = 182; this.match(esql_parser.NOT); @@ -772,21 +839,20 @@ export class esql_parser extends Parser { } this.state = 185; - _localctx._kind = this.match(esql_parser.LIKE); + localctx._kind = this.match(esql_parser.LIKE); this.state = 186; - _localctx._pattern = this.string(); + localctx._pattern = this.string_(); } break; - case 2: - this.enterOuterAlt(_localctx, 2); + this.enterOuterAlt(localctx, 2); { this.state = 188; this.valueExpression(); this.state = 190; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === esql_parser.NOT) { + if (_la===43) { { this.state = 189; this.match(esql_parser.NOT); @@ -794,16 +860,16 @@ export class esql_parser extends Parser { } this.state = 192; - _localctx._kind = this.match(esql_parser.RLIKE); + localctx._kind = this.match(esql_parser.RLIKE); this.state = 193; - _localctx._pattern = this.string(); + localctx._pattern = this.string_(); } break; } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -813,42 +879,41 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public valueExpression(): ValueExpressionContext { - let _localctx: ValueExpressionContext = new ValueExpressionContext(this._ctx, this.state); - this.enterRule(_localctx, 14, esql_parser.RULE_valueExpression); + let localctx: ValueExpressionContext = new ValueExpressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 14, esql_parser.RULE_valueExpression); try { this.state = 202; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 12, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 12, this._ctx) ) { case 1: - _localctx = new ValueExpressionDefaultContext(_localctx); - this.enterOuterAlt(_localctx, 1); + localctx = new ValueExpressionDefaultContext(this, localctx); + this.enterOuterAlt(localctx, 1); { this.state = 197; this.operatorExpression(0); } break; - case 2: - _localctx = new ComparisonContext(_localctx); - this.enterOuterAlt(_localctx, 2); + localctx = new ComparisonContext(this, localctx); + this.enterOuterAlt(localctx, 2); { this.state = 198; - (_localctx as ComparisonContext)._left = this.operatorExpression(0); + (localctx as ComparisonContext)._left = this.operatorExpression(0); this.state = 199; this.comparisonOperator(); this.state = 200; - (_localctx as ComparisonContext)._right = this.operatorExpression(0); + (localctx as ComparisonContext)._right = this.operatorExpression(0); } break; } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -858,7 +923,7 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } public operatorExpression(): OperatorExpressionContext; @@ -871,117 +936,106 @@ export class esql_parser extends Parser { let _parentctx: ParserRuleContext = this._ctx; let _parentState: number = this.state; - let _localctx: OperatorExpressionContext = new OperatorExpressionContext(this._ctx, _parentState); - let _prevctx: OperatorExpressionContext = _localctx; + let localctx: OperatorExpressionContext = new OperatorExpressionContext(this, this._ctx, _parentState); + let _prevctx: OperatorExpressionContext = localctx; let _startState: number = 16; - this.enterRecursionRule(_localctx, 16, esql_parser.RULE_operatorExpression, _p); + this.enterRecursionRule(localctx, 16, esql_parser.RULE_operatorExpression, _p); let _la: number; try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 208; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 13, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 13, this._ctx) ) { case 1: { - _localctx = new OperatorExpressionDefaultContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; + localctx = new OperatorExpressionDefaultContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; this.state = 205; this.primaryExpression(); } break; - case 2: { - _localctx = new ArithmeticUnaryContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; + localctx = new ArithmeticUnaryContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; this.state = 206; - (_localctx as ArithmeticUnaryContext)._operator = this._input.LT(1); + (localctx as ArithmeticUnaryContext)._operator = this._input.LT(1); _la = this._input.LA(1); - if (!(_la === esql_parser.PLUS || _la === esql_parser.MINUS)) { - (_localctx as ArithmeticUnaryContext)._operator = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + if(!(_la===58 || _la===59)) { + (localctx as ArithmeticUnaryContext)._operator = this._errHandler.recoverInline(this); + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } this.state = 207; this.operatorExpression(3); } break; } - this._ctx._stop = this._input.tryLT(-1); + this._ctx.stop = this._input.LT(-1); this.state = 218; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 15, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 15, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { if (this._parseListeners != null) { this.triggerExitRuleEvent(); } - _prevctx = _localctx; + _prevctx = localctx; { this.state = 216; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 14, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 14, this._ctx) ) { case 1: { - _localctx = new ArithmeticBinaryContext(new OperatorExpressionContext(_parentctx, _parentState)); - (_localctx as ArithmeticBinaryContext)._left = _prevctx; - this.pushNewRecursionContext(_localctx, _startState, esql_parser.RULE_operatorExpression); + localctx = new ArithmeticBinaryContext(this, new OperatorExpressionContext(this, _parentctx, _parentState)); + (localctx as ArithmeticBinaryContext)._left = _prevctx; + this.pushNewRecursionContext(localctx, _startState, esql_parser.RULE_operatorExpression); this.state = 210; if (!(this.precpred(this._ctx, 2))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 2)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); } this.state = 211; - (_localctx as ArithmeticBinaryContext)._operator = this._input.LT(1); + (localctx as ArithmeticBinaryContext)._operator = this._input.LT(1); _la = this._input.LA(1); - if (!(((((_la - 60)) & ~0x1F) === 0 && ((1 << (_la - 60)) & ((1 << (esql_parser.ASTERISK - 60)) | (1 << (esql_parser.SLASH - 60)) | (1 << (esql_parser.PERCENT - 60)))) !== 0))) { - (_localctx as ArithmeticBinaryContext)._operator = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + if(!(((((_la - 60)) & ~0x1F) === 0 && ((1 << (_la - 60)) & 7) !== 0))) { + (localctx as ArithmeticBinaryContext)._operator = this._errHandler.recoverInline(this); + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } this.state = 212; - (_localctx as ArithmeticBinaryContext)._right = this.operatorExpression(3); + (localctx as ArithmeticBinaryContext)._right = this.operatorExpression(3); } break; - case 2: { - _localctx = new ArithmeticBinaryContext(new OperatorExpressionContext(_parentctx, _parentState)); - (_localctx as ArithmeticBinaryContext)._left = _prevctx; - this.pushNewRecursionContext(_localctx, _startState, esql_parser.RULE_operatorExpression); + localctx = new ArithmeticBinaryContext(this, new OperatorExpressionContext(this, _parentctx, _parentState)); + (localctx as ArithmeticBinaryContext)._left = _prevctx; + this.pushNewRecursionContext(localctx, _startState, esql_parser.RULE_operatorExpression); this.state = 213; if (!(this.precpred(this._ctx, 1))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 1)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 1)"); } this.state = 214; - (_localctx as ArithmeticBinaryContext)._operator = this._input.LT(1); + (localctx as ArithmeticBinaryContext)._operator = this._input.LT(1); _la = this._input.LA(1); - if (!(_la === esql_parser.PLUS || _la === esql_parser.MINUS)) { - (_localctx as ArithmeticBinaryContext)._operator = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + if(!(_la===58 || _la===59)) { + (localctx as ArithmeticBinaryContext)._operator = this._errHandler.recoverInline(this); + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } this.state = 215; - (_localctx as ArithmeticBinaryContext)._right = this.operatorExpression(2); + (localctx as ArithmeticBinaryContext)._right = this.operatorExpression(2); } break; } @@ -989,13 +1043,13 @@ export class esql_parser extends Parser { } this.state = 220; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 15, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 15, this._ctx); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1005,46 +1059,43 @@ export class esql_parser extends Parser { finally { this.unrollRecursionContexts(_parentctx); } - return _localctx; + return localctx; } // @RuleVersion(0) public primaryExpression(): PrimaryExpressionContext { - let _localctx: PrimaryExpressionContext = new PrimaryExpressionContext(this._ctx, this.state); - this.enterRule(_localctx, 18, esql_parser.RULE_primaryExpression); + let localctx: PrimaryExpressionContext = new PrimaryExpressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 18, esql_parser.RULE_primaryExpression); try { this.state = 228; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 16, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 16, this._ctx) ) { case 1: - _localctx = new ConstantDefaultContext(_localctx); - this.enterOuterAlt(_localctx, 1); + localctx = new ConstantDefaultContext(this, localctx); + this.enterOuterAlt(localctx, 1); { this.state = 221; this.constant(); } break; - case 2: - _localctx = new DereferenceContext(_localctx); - this.enterOuterAlt(_localctx, 2); + localctx = new DereferenceContext(this, localctx); + this.enterOuterAlt(localctx, 2); { this.state = 222; this.qualifiedName(); } break; - case 3: - _localctx = new FunctionContext(_localctx); - this.enterOuterAlt(_localctx, 3); + localctx = new FunctionContext(this, localctx); + this.enterOuterAlt(localctx, 3); { this.state = 223; this.functionExpression(); } break; - case 4: - _localctx = new ParenthesizedExpressionContext(_localctx); - this.enterOuterAlt(_localctx, 4); + localctx = new ParenthesizedExpressionContext(this, localctx); + this.enterOuterAlt(localctx, 4); { this.state = 224; this.match(esql_parser.LP); @@ -1058,7 +1109,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1068,15 +1119,15 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public functionExpression(): FunctionExpressionContext { - let _localctx: FunctionExpressionContext = new FunctionExpressionContext(this._ctx, this.state); - this.enterRule(_localctx, 20, esql_parser.RULE_functionExpression); + let localctx: FunctionExpressionContext = new FunctionExpressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 20, esql_parser.RULE_functionExpression); let _la: number; try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 230; this.identifier(); @@ -1085,26 +1136,26 @@ export class esql_parser extends Parser { this.state = 241; this._errHandler.sync(this); switch (this._input.LA(1)) { - case esql_parser.ASTERISK: + case 60: { this.state = 232; this.match(esql_parser.ASTERISK); } break; - case esql_parser.STRING: - case esql_parser.INTEGER_LITERAL: - case esql_parser.DECIMAL_LITERAL: - case esql_parser.FALSE: - case esql_parser.LP: - case esql_parser.NOT: - case esql_parser.NULL: - case esql_parser.PARAM: - case esql_parser.TRUE: - case esql_parser.PLUS: - case esql_parser.MINUS: - case esql_parser.OPENING_BRACKET: - case esql_parser.UNQUOTED_IDENTIFIER: - case esql_parser.QUOTED_IDENTIFIER: + case 26: + case 27: + case 28: + case 36: + case 39: + case 43: + case 44: + case 47: + case 50: + case 58: + case 59: + case 63: + case 65: + case 66: { { this.state = 233; @@ -1112,7 +1163,7 @@ export class esql_parser extends Parser { this.state = 238; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la === esql_parser.COMMA) { + while (_la===33) { { { this.state = 234; @@ -1128,7 +1179,7 @@ export class esql_parser extends Parser { } } break; - case esql_parser.RP: + case 49: break; default: break; @@ -1139,7 +1190,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1149,14 +1200,14 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public rowCommand(): RowCommandContext { - let _localctx: RowCommandContext = new RowCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 22, esql_parser.RULE_rowCommand); + let localctx: RowCommandContext = new RowCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 22, esql_parser.RULE_rowCommand); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 245; this.match(esql_parser.ROW); @@ -1166,7 +1217,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1176,21 +1227,21 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public fields(): FieldsContext { - let _localctx: FieldsContext = new FieldsContext(this._ctx, this.state); - this.enterRule(_localctx, 24, esql_parser.RULE_fields); + let localctx: FieldsContext = new FieldsContext(this, this._ctx, this.state); + this.enterRule(localctx, 24, esql_parser.RULE_fields); try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 248; this.field(); this.state = 253; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 19, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 19, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { @@ -1204,13 +1255,13 @@ export class esql_parser extends Parser { } this.state = 255; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 19, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 19, this._ctx); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1220,26 +1271,25 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public field(): FieldContext { - let _localctx: FieldContext = new FieldContext(this._ctx, this.state); - this.enterRule(_localctx, 26, esql_parser.RULE_field); + let localctx: FieldContext = new FieldContext(this, this._ctx, this.state); + this.enterRule(localctx, 26, esql_parser.RULE_field); try { this.state = 261; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 20, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 20, this._ctx) ) { case 1: - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 256; this.booleanExpression(0); } break; - case 2: - this.enterOuterAlt(_localctx, 2); + this.enterOuterAlt(localctx, 2); { this.state = 257; this.qualifiedName(); @@ -1253,7 +1303,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1263,15 +1313,15 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public fromCommand(): FromCommandContext { - let _localctx: FromCommandContext = new FromCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 28, esql_parser.RULE_fromCommand); + let localctx: FromCommandContext = new FromCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 28, esql_parser.RULE_fromCommand); try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 263; this.match(esql_parser.FROM); @@ -1279,7 +1329,7 @@ export class esql_parser extends Parser { this.fromIdentifier(); this.state = 269; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 21, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 21, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { @@ -1293,11 +1343,11 @@ export class esql_parser extends Parser { } this.state = 271; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 21, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 21, this._ctx); } this.state = 273; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 22, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 22, this._ctx) ) { case 1: { this.state = 272; @@ -1309,7 +1359,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1319,25 +1369,25 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public metadata(): MetadataContext { - let _localctx: MetadataContext = new MetadataContext(this._ctx, this.state); - this.enterRule(_localctx, 30, esql_parser.RULE_metadata); + let localctx: MetadataContext = new MetadataContext(this, this._ctx, this.state); + this.enterRule(localctx, 30, esql_parser.RULE_metadata); try { this.state = 277; this._errHandler.sync(this); switch (this._input.LA(1)) { - case esql_parser.METADATA: - this.enterOuterAlt(_localctx, 1); + case 70: + this.enterOuterAlt(localctx, 1); { this.state = 275; this.metadataOption(); } break; - case esql_parser.OPENING_BRACKET: - this.enterOuterAlt(_localctx, 2); + case 63: + this.enterOuterAlt(localctx, 2); { this.state = 276; this.deprecated_metadata(); @@ -1349,7 +1399,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1359,15 +1409,15 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public metadataOption(): MetadataOptionContext { - let _localctx: MetadataOptionContext = new MetadataOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 32, esql_parser.RULE_metadataOption); + let localctx: MetadataOptionContext = new MetadataOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 32, esql_parser.RULE_metadataOption); try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 279; this.match(esql_parser.METADATA); @@ -1375,7 +1425,7 @@ export class esql_parser extends Parser { this.fromIdentifier(); this.state = 285; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 24, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 24, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { @@ -1389,13 +1439,13 @@ export class esql_parser extends Parser { } this.state = 287; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 24, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 24, this._ctx); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1405,14 +1455,14 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public deprecated_metadata(): Deprecated_metadataContext { - let _localctx: Deprecated_metadataContext = new Deprecated_metadataContext(this._ctx, this.state); - this.enterRule(_localctx, 34, esql_parser.RULE_deprecated_metadata); + let localctx: Deprecated_metadataContext = new Deprecated_metadataContext(this, this._ctx, this.state); + this.enterRule(localctx, 34, esql_parser.RULE_deprecated_metadata); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 288; this.match(esql_parser.OPENING_BRACKET); @@ -1424,7 +1474,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1434,14 +1484,14 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public evalCommand(): EvalCommandContext { - let _localctx: EvalCommandContext = new EvalCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 36, esql_parser.RULE_evalCommand); + let localctx: EvalCommandContext = new EvalCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 36, esql_parser.RULE_evalCommand); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 292; this.match(esql_parser.EVAL); @@ -1451,7 +1501,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1461,36 +1511,36 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public statsCommand(): StatsCommandContext { - let _localctx: StatsCommandContext = new StatsCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 38, esql_parser.RULE_statsCommand); + let localctx: StatsCommandContext = new StatsCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 38, esql_parser.RULE_statsCommand); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 295; this.match(esql_parser.STATS); this.state = 297; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 25, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 25, this._ctx) ) { case 1: { this.state = 296; - _localctx._stats = this.fields(); + localctx._stats = this.fields(); } break; } this.state = 301; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 26, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 26, this._ctx) ) { case 1: { this.state = 299; this.match(esql_parser.BY); this.state = 300; - _localctx._grouping = this.fields(); + localctx._grouping = this.fields(); } break; } @@ -1498,7 +1548,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1508,28 +1558,28 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public inlinestatsCommand(): InlinestatsCommandContext { - let _localctx: InlinestatsCommandContext = new InlinestatsCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 40, esql_parser.RULE_inlinestatsCommand); + let localctx: InlinestatsCommandContext = new InlinestatsCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 40, esql_parser.RULE_inlinestatsCommand); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 303; this.match(esql_parser.INLINESTATS); this.state = 304; - _localctx._stats = this.fields(); + localctx._stats = this.fields(); this.state = 307; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 27, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 27, this._ctx) ) { case 1: { this.state = 305; this.match(esql_parser.BY); this.state = 306; - _localctx._grouping = this.fields(); + localctx._grouping = this.fields(); } break; } @@ -1537,7 +1587,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1547,33 +1597,30 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public fromIdentifier(): FromIdentifierContext { - let _localctx: FromIdentifierContext = new FromIdentifierContext(this._ctx, this.state); - this.enterRule(_localctx, 42, esql_parser.RULE_fromIdentifier); + let localctx: FromIdentifierContext = new FromIdentifierContext(this, this._ctx, this.state); + this.enterRule(localctx, 42, esql_parser.RULE_fromIdentifier); let _la: number; try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 309; _la = this._input.LA(1); - if (!(_la === esql_parser.QUOTED_IDENTIFIER || _la === esql_parser.FROM_UNQUOTED_IDENTIFIER)) { + if(!(_la===66 || _la===71)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1583,21 +1630,21 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public qualifiedName(): QualifiedNameContext { - let _localctx: QualifiedNameContext = new QualifiedNameContext(this._ctx, this.state); - this.enterRule(_localctx, 44, esql_parser.RULE_qualifiedName); + let localctx: QualifiedNameContext = new QualifiedNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 44, esql_parser.RULE_qualifiedName); try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 311; this.identifier(); this.state = 316; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 28, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 28, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { @@ -1611,13 +1658,13 @@ export class esql_parser extends Parser { } this.state = 318; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 28, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 28, this._ctx); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1627,21 +1674,21 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public qualifiedNamePattern(): QualifiedNamePatternContext { - let _localctx: QualifiedNamePatternContext = new QualifiedNamePatternContext(this._ctx, this.state); - this.enterRule(_localctx, 46, esql_parser.RULE_qualifiedNamePattern); + let localctx: QualifiedNamePatternContext = new QualifiedNamePatternContext(this, this._ctx, this.state); + this.enterRule(localctx, 46, esql_parser.RULE_qualifiedNamePattern); try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 319; this.identifierPattern(); this.state = 324; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 29, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 29, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { @@ -1655,13 +1702,13 @@ export class esql_parser extends Parser { } this.state = 326; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 29, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 29, this._ctx); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1671,33 +1718,30 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public identifier(): IdentifierContext { - let _localctx: IdentifierContext = new IdentifierContext(this._ctx, this.state); - this.enterRule(_localctx, 48, esql_parser.RULE_identifier); + let localctx: IdentifierContext = new IdentifierContext(this, this._ctx, this.state); + this.enterRule(localctx, 48, esql_parser.RULE_identifier); let _la: number; try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 327; _la = this._input.LA(1); - if (!(_la === esql_parser.UNQUOTED_IDENTIFIER || _la === esql_parser.QUOTED_IDENTIFIER)) { + if(!(_la===65 || _la===66)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1707,14 +1751,14 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public identifierPattern(): IdentifierPatternContext { - let _localctx: IdentifierPatternContext = new IdentifierPatternContext(this._ctx, this.state); - this.enterRule(_localctx, 50, esql_parser.RULE_identifierPattern); + let localctx: IdentifierPatternContext = new IdentifierPatternContext(this, this._ctx, this.state); + this.enterRule(localctx, 50, esql_parser.RULE_identifierPattern); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 329; this.match(esql_parser.ID_PATTERN); @@ -1722,7 +1766,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1732,33 +1776,30 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public idPattern(): IdPatternContext { - let _localctx: IdPatternContext = new IdPatternContext(this._ctx, this.state); - this.enterRule(_localctx, 52, esql_parser.RULE_idPattern); + let localctx: IdPatternContext = new IdPatternContext(this, this._ctx, this.state); + this.enterRule(localctx, 52, esql_parser.RULE_idPattern); let _la: number; try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 331; _la = this._input.LA(1); - if (!(_la === esql_parser.QUOTED_IDENTIFIER || _la === esql_parser.UNQUOTED_ID_PATTERN)) { + if(!(_la===66 || _la===105)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1768,29 +1809,28 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public constant(): ConstantContext { - let _localctx: ConstantContext = new ConstantContext(this._ctx, this.state); - this.enterRule(_localctx, 54, esql_parser.RULE_constant); + let localctx: ConstantContext = new ConstantContext(this, this._ctx, this.state); + this.enterRule(localctx, 54, esql_parser.RULE_constant); let _la: number; try { this.state = 375; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 33, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 33, this._ctx) ) { case 1: - _localctx = new NullLiteralContext(_localctx); - this.enterOuterAlt(_localctx, 1); + localctx = new NullLiteralContext(this, localctx); + this.enterOuterAlt(localctx, 1); { this.state = 333; this.match(esql_parser.NULL); } break; - case 2: - _localctx = new QualifiedIntegerLiteralContext(_localctx); - this.enterOuterAlt(_localctx, 2); + localctx = new QualifiedIntegerLiteralContext(this, localctx); + this.enterOuterAlt(localctx, 2); { this.state = 334; this.integerValue(); @@ -1798,55 +1838,49 @@ export class esql_parser extends Parser { this.match(esql_parser.UNQUOTED_IDENTIFIER); } break; - case 3: - _localctx = new DecimalLiteralContext(_localctx); - this.enterOuterAlt(_localctx, 3); + localctx = new DecimalLiteralContext(this, localctx); + this.enterOuterAlt(localctx, 3); { this.state = 337; this.decimalValue(); } break; - case 4: - _localctx = new IntegerLiteralContext(_localctx); - this.enterOuterAlt(_localctx, 4); + localctx = new IntegerLiteralContext(this, localctx); + this.enterOuterAlt(localctx, 4); { this.state = 338; this.integerValue(); } break; - case 5: - _localctx = new BooleanLiteralContext(_localctx); - this.enterOuterAlt(_localctx, 5); + localctx = new BooleanLiteralContext(this, localctx); + this.enterOuterAlt(localctx, 5); { this.state = 339; this.booleanValue(); } break; - case 6: - _localctx = new InputParamContext(_localctx); - this.enterOuterAlt(_localctx, 6); + localctx = new InputParamContext(this, localctx); + this.enterOuterAlt(localctx, 6); { this.state = 340; this.match(esql_parser.PARAM); } break; - case 7: - _localctx = new StringLiteralContext(_localctx); - this.enterOuterAlt(_localctx, 7); + localctx = new StringLiteralContext(this, localctx); + this.enterOuterAlt(localctx, 7); { this.state = 341; - this.string(); + this.string_(); } break; - case 8: - _localctx = new NumericArrayLiteralContext(_localctx); - this.enterOuterAlt(_localctx, 8); + localctx = new NumericArrayLiteralContext(this, localctx); + this.enterOuterAlt(localctx, 8); { this.state = 342; this.match(esql_parser.OPENING_BRACKET); @@ -1855,7 +1889,7 @@ export class esql_parser extends Parser { this.state = 348; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la === esql_parser.COMMA) { + while (_la===33) { { { this.state = 344; @@ -1872,10 +1906,9 @@ export class esql_parser extends Parser { this.match(esql_parser.CLOSING_BRACKET); } break; - case 9: - _localctx = new BooleanArrayLiteralContext(_localctx); - this.enterOuterAlt(_localctx, 9); + localctx = new BooleanArrayLiteralContext(this, localctx); + this.enterOuterAlt(localctx, 9); { this.state = 353; this.match(esql_parser.OPENING_BRACKET); @@ -1884,7 +1917,7 @@ export class esql_parser extends Parser { this.state = 359; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la === esql_parser.COMMA) { + while (_la===33) { { { this.state = 355; @@ -1901,25 +1934,24 @@ export class esql_parser extends Parser { this.match(esql_parser.CLOSING_BRACKET); } break; - case 10: - _localctx = new StringArrayLiteralContext(_localctx); - this.enterOuterAlt(_localctx, 10); + localctx = new StringArrayLiteralContext(this, localctx); + this.enterOuterAlt(localctx, 10); { this.state = 364; this.match(esql_parser.OPENING_BRACKET); this.state = 365; - this.string(); + this.string_(); this.state = 370; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la === esql_parser.COMMA) { + while (_la===33) { { { this.state = 366; this.match(esql_parser.COMMA); this.state = 367; - this.string(); + this.string_(); } } this.state = 372; @@ -1934,7 +1966,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1944,14 +1976,14 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public limitCommand(): LimitCommandContext { - let _localctx: LimitCommandContext = new LimitCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 56, esql_parser.RULE_limitCommand); + let localctx: LimitCommandContext = new LimitCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 56, esql_parser.RULE_limitCommand); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 377; this.match(esql_parser.LIMIT); @@ -1961,7 +1993,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1971,15 +2003,15 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public sortCommand(): SortCommandContext { - let _localctx: SortCommandContext = new SortCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 58, esql_parser.RULE_sortCommand); + let localctx: SortCommandContext = new SortCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 58, esql_parser.RULE_sortCommand); try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 380; this.match(esql_parser.SORT); @@ -1987,7 +2019,7 @@ export class esql_parser extends Parser { this.orderExpression(); this.state = 386; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 34, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 34, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { @@ -2001,13 +2033,13 @@ export class esql_parser extends Parser { } this.state = 388; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 34, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 34, this._ctx); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2017,58 +2049,52 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public orderExpression(): OrderExpressionContext { - let _localctx: OrderExpressionContext = new OrderExpressionContext(this._ctx, this.state); - this.enterRule(_localctx, 60, esql_parser.RULE_orderExpression); + let localctx: OrderExpressionContext = new OrderExpressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 60, esql_parser.RULE_orderExpression); let _la: number; try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 389; this.booleanExpression(0); this.state = 391; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 35, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 35, this._ctx) ) { case 1: { this.state = 390; - _localctx._ordering = this._input.LT(1); + localctx._ordering = this._input.LT(1); _la = this._input.LA(1); - if (!(_la === esql_parser.ASC || _la === esql_parser.DESC)) { - _localctx._ordering = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + if(!(_la===31 || _la===34)) { + localctx._ordering = this._errHandler.recoverInline(this); + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } } break; } this.state = 395; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 36, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 36, this._ctx) ) { case 1: { this.state = 393; this.match(esql_parser.NULLS); this.state = 394; - _localctx._nullOrdering = this._input.LT(1); + localctx._nullOrdering = this._input.LT(1); _la = this._input.LA(1); - if (!(_la === esql_parser.FIRST || _la === esql_parser.LAST)) { - _localctx._nullOrdering = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + if(!(_la===37 || _la===38)) { + localctx._nullOrdering = this._errHandler.recoverInline(this); + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } } break; @@ -2077,7 +2103,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2087,15 +2113,15 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public keepCommand(): KeepCommandContext { - let _localctx: KeepCommandContext = new KeepCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 62, esql_parser.RULE_keepCommand); + let localctx: KeepCommandContext = new KeepCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 62, esql_parser.RULE_keepCommand); try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 397; this.match(esql_parser.KEEP); @@ -2103,7 +2129,7 @@ export class esql_parser extends Parser { this.qualifiedNamePattern(); this.state = 403; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 37, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 37, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { @@ -2117,13 +2143,13 @@ export class esql_parser extends Parser { } this.state = 405; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 37, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 37, this._ctx); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2133,15 +2159,15 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public dropCommand(): DropCommandContext { - let _localctx: DropCommandContext = new DropCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 64, esql_parser.RULE_dropCommand); + let localctx: DropCommandContext = new DropCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 64, esql_parser.RULE_dropCommand); try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 406; this.match(esql_parser.DROP); @@ -2149,7 +2175,7 @@ export class esql_parser extends Parser { this.qualifiedNamePattern(); this.state = 412; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 38, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 38, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { @@ -2163,13 +2189,13 @@ export class esql_parser extends Parser { } this.state = 414; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 38, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 38, this._ctx); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2179,15 +2205,15 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public renameCommand(): RenameCommandContext { - let _localctx: RenameCommandContext = new RenameCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 66, esql_parser.RULE_renameCommand); + let localctx: RenameCommandContext = new RenameCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 66, esql_parser.RULE_renameCommand); try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 415; this.match(esql_parser.RENAME); @@ -2195,7 +2221,7 @@ export class esql_parser extends Parser { this.renameClause(); this.state = 421; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 39, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 39, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { @@ -2209,13 +2235,13 @@ export class esql_parser extends Parser { } this.state = 423; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 39, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 39, this._ctx); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2225,26 +2251,26 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public renameClause(): RenameClauseContext { - let _localctx: RenameClauseContext = new RenameClauseContext(this._ctx, this.state); - this.enterRule(_localctx, 68, esql_parser.RULE_renameClause); + let localctx: RenameClauseContext = new RenameClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 68, esql_parser.RULE_renameClause); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 424; - _localctx._oldName = this.qualifiedNamePattern(); + localctx._oldName = this.qualifiedNamePattern(); this.state = 425; this.match(esql_parser.AS); this.state = 426; - _localctx._newName = this.qualifiedNamePattern(); + localctx._newName = this.qualifiedNamePattern(); } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2254,24 +2280,24 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public dissectCommand(): DissectCommandContext { - let _localctx: DissectCommandContext = new DissectCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 70, esql_parser.RULE_dissectCommand); + let localctx: DissectCommandContext = new DissectCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 70, esql_parser.RULE_dissectCommand); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 428; this.match(esql_parser.DISSECT); this.state = 429; this.primaryExpression(); this.state = 430; - this.string(); + this.string_(); this.state = 432; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 40, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 40, this._ctx) ) { case 1: { this.state = 431; @@ -2283,7 +2309,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2293,26 +2319,26 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public grokCommand(): GrokCommandContext { - let _localctx: GrokCommandContext = new GrokCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 72, esql_parser.RULE_grokCommand); + let localctx: GrokCommandContext = new GrokCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 72, esql_parser.RULE_grokCommand); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 434; this.match(esql_parser.GROK); this.state = 435; this.primaryExpression(); this.state = 436; - this.string(); + this.string_(); } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2322,14 +2348,14 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public mvExpandCommand(): MvExpandCommandContext { - let _localctx: MvExpandCommandContext = new MvExpandCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 74, esql_parser.RULE_mvExpandCommand); + let localctx: MvExpandCommandContext = new MvExpandCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 74, esql_parser.RULE_mvExpandCommand); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 438; this.match(esql_parser.MV_EXPAND); @@ -2339,7 +2365,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2349,21 +2375,21 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public commandOptions(): CommandOptionsContext { - let _localctx: CommandOptionsContext = new CommandOptionsContext(this._ctx, this.state); - this.enterRule(_localctx, 76, esql_parser.RULE_commandOptions); + let localctx: CommandOptionsContext = new CommandOptionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 76, esql_parser.RULE_commandOptions); try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 441; this.commandOption(); this.state = 446; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 41, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 41, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { @@ -2377,13 +2403,13 @@ export class esql_parser extends Parser { } this.state = 448; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 41, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 41, this._ctx); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2393,14 +2419,14 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public commandOption(): CommandOptionContext { - let _localctx: CommandOptionContext = new CommandOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 78, esql_parser.RULE_commandOption); + let localctx: CommandOptionContext = new CommandOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 78, esql_parser.RULE_commandOption); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 449; this.identifier(); @@ -2412,7 +2438,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2422,33 +2448,30 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public booleanValue(): BooleanValueContext { - let _localctx: BooleanValueContext = new BooleanValueContext(this._ctx, this.state); - this.enterRule(_localctx, 80, esql_parser.RULE_booleanValue); + let localctx: BooleanValueContext = new BooleanValueContext(this, this._ctx, this.state); + this.enterRule(localctx, 80, esql_parser.RULE_booleanValue); let _la: number; try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 453; _la = this._input.LA(1); - if (!(_la === esql_parser.FALSE || _la === esql_parser.TRUE)) { + if(!(_la===36 || _la===50)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2458,26 +2481,25 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public numericValue(): NumericValueContext { - let _localctx: NumericValueContext = new NumericValueContext(this._ctx, this.state); - this.enterRule(_localctx, 82, esql_parser.RULE_numericValue); + let localctx: NumericValueContext = new NumericValueContext(this, this._ctx, this.state); + this.enterRule(localctx, 82, esql_parser.RULE_numericValue); try { this.state = 457; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 42, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 42, this._ctx) ) { case 1: - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 455; this.decimalValue(); } break; - case 2: - this.enterOuterAlt(_localctx, 2); + this.enterOuterAlt(localctx, 2); { this.state = 456; this.integerValue(); @@ -2487,7 +2509,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2497,32 +2519,29 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public decimalValue(): DecimalValueContext { - let _localctx: DecimalValueContext = new DecimalValueContext(this._ctx, this.state); - this.enterRule(_localctx, 84, esql_parser.RULE_decimalValue); + let localctx: DecimalValueContext = new DecimalValueContext(this, this._ctx, this.state); + this.enterRule(localctx, 84, esql_parser.RULE_decimalValue); let _la: number; try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 460; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === esql_parser.PLUS || _la === esql_parser.MINUS) { + if (_la===58 || _la===59) { { this.state = 459; _la = this._input.LA(1); - if (!(_la === esql_parser.PLUS || _la === esql_parser.MINUS)) { + if(!(_la===58 || _la===59)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } } } @@ -2533,7 +2552,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2543,32 +2562,29 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public integerValue(): IntegerValueContext { - let _localctx: IntegerValueContext = new IntegerValueContext(this._ctx, this.state); - this.enterRule(_localctx, 86, esql_parser.RULE_integerValue); + let localctx: IntegerValueContext = new IntegerValueContext(this, this._ctx, this.state); + this.enterRule(localctx, 86, esql_parser.RULE_integerValue); let _la: number; try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 465; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === esql_parser.PLUS || _la === esql_parser.MINUS) { + if (_la===58 || _la===59) { { this.state = 464; _la = this._input.LA(1); - if (!(_la === esql_parser.PLUS || _la === esql_parser.MINUS)) { + if(!(_la===58 || _la===59)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } } } @@ -2579,7 +2595,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2589,14 +2605,14 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) - public string(): StringContext { - let _localctx: StringContext = new StringContext(this._ctx, this.state); - this.enterRule(_localctx, 88, esql_parser.RULE_string); + public string_(): StringContext { + let localctx: StringContext = new StringContext(this, this._ctx, this.state); + this.enterRule(localctx, 88, esql_parser.RULE_string); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 469; this.match(esql_parser.STRING); @@ -2604,7 +2620,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2614,33 +2630,30 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public comparisonOperator(): ComparisonOperatorContext { - let _localctx: ComparisonOperatorContext = new ComparisonOperatorContext(this._ctx, this.state); - this.enterRule(_localctx, 90, esql_parser.RULE_comparisonOperator); + let localctx: ComparisonOperatorContext = new ComparisonOperatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 90, esql_parser.RULE_comparisonOperator); let _la: number; try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 471; _la = this._input.LA(1); - if (!(((((_la - 51)) & ~0x1F) === 0 && ((1 << (_la - 51)) & ((1 << (esql_parser.EQ - 51)) | (1 << (esql_parser.NEQ - 51)) | (1 << (esql_parser.LT - 51)) | (1 << (esql_parser.LTE - 51)) | (1 << (esql_parser.GT - 51)) | (1 << (esql_parser.GTE - 51)))) !== 0))) { + if(!(((((_la - 51)) & ~0x1F) === 0 && ((1 << (_la - 51)) & 125) !== 0))) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2650,14 +2663,14 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public explainCommand(): ExplainCommandContext { - let _localctx: ExplainCommandContext = new ExplainCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 92, esql_parser.RULE_explainCommand); + let localctx: ExplainCommandContext = new ExplainCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 92, esql_parser.RULE_explainCommand); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 473; this.match(esql_parser.EXPLAIN); @@ -2667,7 +2680,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2677,14 +2690,14 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public subqueryExpression(): SubqueryExpressionContext { - let _localctx: SubqueryExpressionContext = new SubqueryExpressionContext(this._ctx, this.state); - this.enterRule(_localctx, 94, esql_parser.RULE_subqueryExpression); + let localctx: SubqueryExpressionContext = new SubqueryExpressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 94, esql_parser.RULE_subqueryExpression); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 476; this.match(esql_parser.OPENING_BRACKET); @@ -2696,7 +2709,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2706,19 +2719,19 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public showCommand(): ShowCommandContext { - let _localctx: ShowCommandContext = new ShowCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 96, esql_parser.RULE_showCommand); + let localctx: ShowCommandContext = new ShowCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 96, esql_parser.RULE_showCommand); try { this.state = 484; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 45, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 45, this._ctx) ) { case 1: - _localctx = new ShowInfoContext(_localctx); - this.enterOuterAlt(_localctx, 1); + localctx = new ShowInfoContext(this, localctx); + this.enterOuterAlt(localctx, 1); { this.state = 480; this.match(esql_parser.SHOW); @@ -2726,10 +2739,9 @@ export class esql_parser extends Parser { this.match(esql_parser.INFO); } break; - case 2: - _localctx = new ShowFunctionsContext(_localctx); - this.enterOuterAlt(_localctx, 2); + localctx = new ShowFunctionsContext(this, localctx); + this.enterOuterAlt(localctx, 2); { this.state = 482; this.match(esql_parser.SHOW); @@ -2741,7 +2753,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2751,35 +2763,35 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public enrichCommand(): EnrichCommandContext { - let _localctx: EnrichCommandContext = new EnrichCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 98, esql_parser.RULE_enrichCommand); + let localctx: EnrichCommandContext = new EnrichCommandContext(this, this._ctx, this.state); + this.enterRule(localctx, 98, esql_parser.RULE_enrichCommand); try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 486; this.match(esql_parser.ENRICH); this.state = 487; - _localctx._policyName = this.match(esql_parser.ENRICH_POLICY_NAME); + localctx._policyName = this.match(esql_parser.ENRICH_POLICY_NAME); this.state = 490; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 46, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 46, this._ctx) ) { case 1: { this.state = 488; this.match(esql_parser.ON); this.state = 489; - _localctx._matchField = this.qualifiedNamePattern(); + localctx._matchField = this.qualifiedNamePattern(); } break; } this.state = 501; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 48, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 48, this._ctx) ) { case 1: { this.state = 492; @@ -2788,7 +2800,7 @@ export class esql_parser extends Parser { this.enrichWithClause(); this.state = 498; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 47, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 47, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { @@ -2802,7 +2814,7 @@ export class esql_parser extends Parser { } this.state = 500; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 47, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 47, this._ctx); } } break; @@ -2811,7 +2823,7 @@ export class esql_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2821,34 +2833,34 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public enrichWithClause(): EnrichWithClauseContext { - let _localctx: EnrichWithClauseContext = new EnrichWithClauseContext(this._ctx, this.state); - this.enterRule(_localctx, 100, esql_parser.RULE_enrichWithClause); + let localctx: EnrichWithClauseContext = new EnrichWithClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 100, esql_parser.RULE_enrichWithClause); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 506; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 49, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 49, this._ctx) ) { case 1: { this.state = 503; - _localctx._newName = this.qualifiedNamePattern(); + localctx._newName = this.qualifiedNamePattern(); this.state = 504; this.match(esql_parser.ASSIGN); } break; } this.state = 508; - _localctx._enrichField = this.qualifiedNamePattern(); + localctx._enrichField = this.qualifiedNamePattern(); } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2858,2498 +2870,2452 @@ export class esql_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } - public sempred(_localctx: RuleContext, ruleIndex: number, predIndex: number): boolean { + public sempred(localctx: RuleContext, ruleIndex: number, predIndex: number): boolean { switch (ruleIndex) { case 1: - return this.query_sempred(_localctx as QueryContext, predIndex); - + return this.query_sempred(localctx as QueryContext, predIndex); case 5: - return this.booleanExpression_sempred(_localctx as BooleanExpressionContext, predIndex); - + return this.booleanExpression_sempred(localctx as BooleanExpressionContext, predIndex); case 8: - return this.operatorExpression_sempred(_localctx as OperatorExpressionContext, predIndex); + return this.operatorExpression_sempred(localctx as OperatorExpressionContext, predIndex); } return true; } - private query_sempred(_localctx: QueryContext, predIndex: number): boolean { + private query_sempred(localctx: QueryContext, predIndex: number): boolean { switch (predIndex) { case 0: return this.precpred(this._ctx, 1); } return true; } - private booleanExpression_sempred(_localctx: BooleanExpressionContext, predIndex: number): boolean { + private booleanExpression_sempred(localctx: BooleanExpressionContext, predIndex: number): boolean { switch (predIndex) { case 1: return this.precpred(this._ctx, 4); - case 2: return this.precpred(this._ctx, 3); } return true; } - private operatorExpression_sempred(_localctx: OperatorExpressionContext, predIndex: number): boolean { + private operatorExpression_sempred(localctx: OperatorExpressionContext, predIndex: number): boolean { switch (predIndex) { case 3: return this.precpred(this._ctx, 2); - case 4: return this.precpred(this._ctx, 1); } return true; } - public static readonly _serializedATN: string = - "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03k\u0201\x04\x02" + - "\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04\x07" + - "\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r\t\r\x04" + - "\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t\x12\x04" + - "\x13\t\x13\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17\t\x17\x04" + - "\x18\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04\x1C\t\x1C\x04" + - "\x1D\t\x1D\x04\x1E\t\x1E\x04\x1F\t\x1F\x04 \t \x04!\t!\x04\"\t\"\x04#" + - "\t#\x04$\t$\x04%\t%\x04&\t&\x04\'\t\'\x04(\t(\x04)\t)\x04*\t*\x04+\t+" + - "\x04,\t,\x04-\t-\x04.\t.\x04/\t/\x040\t0\x041\t1\x042\t2\x043\t3\x044" + - "\t4\x03\x02\x03\x02\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" + - "\x03\x07\x03r\n\x03\f\x03\x0E\x03u\v\x03\x03\x04\x03\x04\x03\x04\x03\x04" + - "\x05\x04{\n\x04\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05" + - "\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x05\x05\x8A\n\x05\x03" + - "\x06\x03\x06\x03\x06\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03" + - "\x07\x05\x07\x96\n\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x07\x07" + - "\x9D\n\x07\f\x07\x0E\x07\xA0\v\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03" + - "\x07\x05\x07\xA7\n\x07\x03\x07\x03\x07\x05\x07\xAB\n\x07\x03\x07\x03\x07" + - "\x03\x07\x03\x07\x03\x07\x03\x07\x07\x07\xB3\n\x07\f\x07\x0E\x07\xB6\v" + - "\x07\x03\b\x03\b\x05\b\xBA\n\b\x03\b\x03\b\x03\b\x03\b\x03\b\x05\b\xC1" + - "\n\b\x03\b\x03\b\x03\b\x05\b\xC6\n\b\x03\t\x03\t\x03\t\x03\t\x03\t\x05" + - "\t\xCD\n\t\x03\n\x03\n\x03\n\x03\n\x05\n\xD3\n\n\x03\n\x03\n\x03\n\x03" + - "\n\x03\n\x03\n\x07\n\xDB\n\n\f\n\x0E\n\xDE\v\n\x03\v\x03\v\x03\v\x03\v" + - "\x03\v\x03\v\x03\v\x05\v\xE7\n\v\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x07" + - "\f\xEF\n\f\f\f\x0E\f\xF2\v\f\x05\f\xF4\n\f\x03\f\x03\f\x03\r\x03\r\x03" + - "\r\x03\x0E\x03\x0E\x03\x0E\x07\x0E\xFE\n\x0E\f\x0E\x0E\x0E\u0101\v\x0E" + - "\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x05\x0F\u0108\n\x0F\x03\x10\x03" + - "\x10\x03\x10\x03\x10\x07\x10\u010E\n\x10\f\x10\x0E\x10\u0111\v\x10\x03" + - "\x10\x05\x10\u0114\n\x10\x03\x11\x03\x11\x05\x11\u0118\n\x11\x03\x12\x03" + - "\x12\x03\x12\x03\x12\x07\x12\u011E\n\x12\f\x12\x0E\x12\u0121\v\x12\x03" + - "\x13\x03\x13\x03\x13\x03\x13\x03\x14\x03\x14\x03\x14\x03\x15\x03\x15\x05" + - "\x15\u012C\n\x15\x03\x15\x03\x15\x05\x15\u0130\n\x15\x03\x16\x03\x16\x03" + - "\x16\x03\x16\x05\x16\u0136\n\x16\x03\x17\x03\x17\x03\x18\x03\x18\x03\x18" + - "\x07\x18\u013D\n\x18\f\x18\x0E\x18\u0140\v\x18\x03\x19\x03\x19\x03\x19" + - "\x07\x19\u0145\n\x19\f\x19\x0E\x19\u0148\v\x19\x03\x1A\x03\x1A\x03\x1B" + - "\x03\x1B\x03\x1C\x03\x1C\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D" + - "\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x07\x1D\u015D" + - "\n\x1D\f\x1D\x0E\x1D\u0160\v\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D" + - "\x03\x1D\x07\x1D\u0168\n\x1D\f\x1D\x0E\x1D\u016B\v\x1D\x03\x1D\x03\x1D" + - "\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x07\x1D\u0173\n\x1D\f\x1D\x0E\x1D\u0176" + - "\v\x1D\x03\x1D\x03\x1D\x05\x1D\u017A\n\x1D\x03\x1E\x03\x1E\x03\x1E\x03" + - "\x1F\x03\x1F\x03\x1F\x03\x1F\x07\x1F\u0183\n\x1F\f\x1F\x0E\x1F\u0186\v" + - "\x1F\x03 \x03 \x05 \u018A\n \x03 \x03 \x05 \u018E\n \x03!\x03!\x03!\x03" + - "!\x07!\u0194\n!\f!\x0E!\u0197\v!\x03\"\x03\"\x03\"\x03\"\x07\"\u019D\n" + - "\"\f\"\x0E\"\u01A0\v\"\x03#\x03#\x03#\x03#\x07#\u01A6\n#\f#\x0E#\u01A9" + - "\v#\x03$\x03$\x03$\x03$\x03%\x03%\x03%\x03%\x05%\u01B3\n%\x03&\x03&\x03" + - "&\x03&\x03\'\x03\'\x03\'\x03(\x03(\x03(\x07(\u01BF\n(\f(\x0E(\u01C2\v" + - "(\x03)\x03)\x03)\x03)\x03*\x03*\x03+\x03+\x05+\u01CC\n+\x03,\x05,\u01CF" + - "\n,\x03,\x03,\x03-\x05-\u01D4\n-\x03-\x03-\x03.\x03.\x03/\x03/\x030\x03" + - "0\x030\x031\x031\x031\x031\x032\x032\x032\x032\x052\u01E7\n2\x033\x03" + - "3\x033\x033\x053\u01ED\n3\x033\x033\x033\x033\x073\u01F3\n3\f3\x0E3\u01F6" + - "\v3\x053\u01F8\n3\x034\x034\x034\x054\u01FD\n4\x034\x034\x034\x02\x02" + - "\x05\x04\f\x125\x02\x02\x04\x02\x06\x02\b\x02\n\x02\f\x02\x0E\x02\x10" + - "\x02\x12\x02\x14\x02\x16\x02\x18\x02\x1A\x02\x1C\x02\x1E\x02 \x02\"\x02" + - "$\x02&\x02(\x02*\x02,\x02.\x020\x022\x024\x026\x028\x02:\x02<\x02>\x02" + - "@\x02B\x02D\x02F\x02H\x02J\x02L\x02N\x02P\x02R\x02T\x02V\x02X\x02Z\x02" + - "\\\x02^\x02`\x02b\x02d\x02f\x02\x02\v\x03\x02<=\x03\x02>@\x04\x02DDII" + - "\x03\x02CD\x04\x02DDkk\x04\x02!!$$\x03\x02\'(\x04\x02&&44\x04\x02557;" + - "\x02\u021A\x02h\x03\x02\x02\x02\x04k\x03\x02\x02\x02\x06z\x03\x02\x02" + - "\x02\b\x89\x03\x02\x02\x02\n\x8B\x03\x02\x02\x02\f\xAA\x03\x02\x02\x02" + - "\x0E\xC5\x03\x02\x02\x02\x10\xCC\x03\x02\x02\x02\x12\xD2\x03\x02\x02\x02" + - "\x14\xE6\x03\x02\x02\x02\x16\xE8\x03\x02\x02\x02\x18\xF7\x03\x02\x02\x02" + - "\x1A\xFA\x03\x02\x02\x02\x1C\u0107\x03\x02\x02\x02\x1E\u0109\x03\x02\x02" + - "\x02 \u0117\x03\x02\x02\x02\"\u0119\x03\x02\x02\x02$\u0122\x03\x02\x02" + - "\x02&\u0126\x03\x02\x02\x02(\u0129\x03\x02\x02\x02*\u0131\x03\x02\x02" + - "\x02,\u0137\x03\x02\x02\x02.\u0139\x03\x02\x02\x020\u0141\x03\x02\x02" + - "\x022\u0149\x03\x02\x02\x024\u014B\x03\x02\x02\x026\u014D\x03\x02\x02" + - "\x028\u0179\x03\x02\x02\x02:\u017B\x03\x02\x02\x02<\u017E\x03\x02\x02" + - "\x02>\u0187\x03\x02\x02\x02@\u018F\x03\x02\x02\x02B\u0198\x03\x02\x02" + - "\x02D\u01A1\x03\x02\x02\x02F\u01AA\x03\x02\x02\x02H\u01AE\x03\x02\x02" + - "\x02J\u01B4\x03\x02\x02\x02L\u01B8\x03\x02\x02\x02N\u01BB\x03\x02\x02" + - "\x02P\u01C3\x03\x02\x02\x02R\u01C7\x03\x02\x02\x02T\u01CB\x03\x02\x02" + - "\x02V\u01CE\x03\x02\x02\x02X\u01D3\x03\x02\x02\x02Z\u01D7\x03\x02\x02" + - "\x02\\\u01D9\x03\x02\x02\x02^\u01DB\x03\x02\x02\x02`\u01DE\x03\x02\x02" + - "\x02b\u01E6\x03\x02\x02\x02d\u01E8\x03\x02\x02\x02f\u01FC\x03\x02\x02" + - "\x02hi\x05\x04\x03\x02ij\x07\x02\x02\x03j\x03\x03\x02\x02\x02kl\b\x03" + - "\x01\x02lm\x05\x06\x04\x02ms\x03\x02\x02\x02no\f\x03\x02\x02op\x07\x1B" + - "\x02\x02pr\x05\b\x05\x02qn\x03\x02\x02\x02ru\x03\x02\x02\x02sq\x03\x02" + - "\x02\x02st\x03\x02\x02\x02t\x05\x03\x02\x02\x02us\x03\x02\x02\x02v{\x05" + - "^0\x02w{\x05\x1E\x10\x02x{\x05\x18\r\x02y{\x05b2\x02zv\x03\x02\x02\x02" + - "zw\x03\x02\x02\x02zx\x03\x02\x02\x02zy\x03\x02\x02\x02{\x07\x03\x02\x02" + - "\x02|\x8A\x05&\x14\x02}\x8A\x05*\x16\x02~\x8A\x05:\x1E\x02\x7F\x8A\x05" + - "@!\x02\x80\x8A\x05<\x1F\x02\x81\x8A\x05(\x15\x02\x82\x8A\x05\n\x06\x02" + - "\x83\x8A\x05B\"\x02\x84\x8A\x05D#\x02\x85\x8A\x05H%\x02\x86\x8A\x05J&" + - "\x02\x87\x8A\x05d3\x02\x88\x8A\x05L\'\x02\x89|\x03\x02\x02\x02\x89}\x03" + - "\x02\x02\x02\x89~\x03\x02\x02\x02\x89\x7F\x03\x02\x02\x02\x89\x80\x03" + - "\x02\x02\x02\x89\x81\x03\x02\x02\x02\x89\x82\x03\x02\x02\x02\x89\x83\x03" + - "\x02\x02\x02\x89\x84\x03\x02\x02\x02\x89\x85\x03\x02\x02\x02\x89\x86\x03" + - "\x02\x02\x02\x89\x87\x03\x02\x02\x02\x89\x88\x03\x02\x02\x02\x8A\t\x03" + - "\x02\x02\x02\x8B\x8C\x07\x13\x02\x02\x8C\x8D\x05\f\x07\x02\x8D\v\x03\x02" + - "\x02\x02\x8E\x8F\b\x07\x01\x02\x8F\x90\x07-\x02\x02\x90\xAB\x05\f\x07" + - "\t\x91\xAB\x05\x10\t\x02\x92\xAB\x05\x0E\b\x02\x93\x95\x05\x10\t\x02\x94" + - "\x96\x07-\x02\x02\x95\x94\x03\x02\x02\x02\x95\x96\x03\x02\x02\x02\x96" + - "\x97\x03\x02\x02\x02\x97\x98\x07*\x02\x02\x98\x99\x07)\x02\x02\x99\x9E" + - "\x05\x10\t\x02\x9A\x9B\x07#\x02\x02\x9B\x9D\x05\x10\t\x02\x9C\x9A\x03" + - "\x02\x02\x02\x9D\xA0\x03\x02\x02\x02\x9E\x9C\x03\x02\x02\x02\x9E\x9F\x03" + - "\x02\x02\x02\x9F\xA1\x03\x02\x02\x02\xA0\x9E\x03\x02\x02\x02\xA1\xA2\x07" + - "3\x02\x02\xA2\xAB\x03\x02\x02\x02\xA3\xA4\x05\x10\t\x02\xA4\xA6\x07+\x02" + - "\x02\xA5\xA7\x07-\x02\x02\xA6\xA5\x03\x02\x02\x02\xA6\xA7\x03\x02\x02" + - "\x02\xA7\xA8\x03\x02\x02\x02\xA8\xA9\x07.\x02\x02\xA9\xAB\x03\x02\x02" + - "\x02\xAA\x8E\x03\x02\x02\x02\xAA\x91\x03\x02\x02\x02\xAA\x92\x03\x02\x02" + - "\x02\xAA\x93\x03\x02\x02\x02\xAA\xA3\x03\x02\x02\x02\xAB\xB4\x03\x02\x02" + - "\x02\xAC\xAD\f\x06\x02\x02\xAD\xAE\x07 \x02\x02\xAE\xB3\x05\f\x07\x07" + - "\xAF\xB0\f\x05\x02\x02\xB0\xB1\x070\x02\x02\xB1\xB3\x05\f\x07\x06\xB2" + - "\xAC\x03\x02\x02\x02\xB2\xAF\x03\x02\x02\x02\xB3\xB6\x03\x02\x02\x02\xB4" + - "\xB2\x03\x02\x02\x02\xB4\xB5\x03\x02\x02\x02\xB5\r\x03\x02\x02\x02\xB6" + - "\xB4\x03\x02\x02\x02\xB7\xB9\x05\x10\t\x02\xB8\xBA\x07-\x02\x02\xB9\xB8" + - "\x03\x02\x02\x02\xB9\xBA\x03\x02\x02\x02\xBA\xBB\x03\x02\x02\x02\xBB\xBC" + - "\x07,\x02\x02\xBC\xBD\x05Z.\x02\xBD\xC6\x03\x02\x02\x02\xBE\xC0\x05\x10" + - "\t\x02\xBF\xC1\x07-\x02\x02\xC0\xBF\x03\x02\x02\x02\xC0\xC1\x03\x02\x02" + - "\x02\xC1\xC2\x03\x02\x02\x02\xC2\xC3\x072\x02\x02\xC3\xC4\x05Z.\x02\xC4" + - "\xC6\x03\x02\x02\x02\xC5\xB7\x03\x02\x02\x02\xC5\xBE\x03\x02\x02\x02\xC6" + - "\x0F\x03\x02\x02\x02\xC7\xCD\x05\x12\n\x02\xC8\xC9\x05\x12\n\x02\xC9\xCA" + - "\x05\\/\x02\xCA\xCB\x05\x12\n\x02\xCB\xCD\x03\x02\x02\x02\xCC\xC7\x03" + - "\x02\x02\x02\xCC\xC8\x03\x02\x02\x02\xCD\x11\x03\x02\x02\x02\xCE\xCF\b" + - "\n\x01\x02\xCF\xD3\x05\x14\v\x02\xD0\xD1\t\x02\x02\x02\xD1\xD3\x05\x12" + - "\n\x05\xD2\xCE\x03\x02\x02\x02\xD2\xD0\x03\x02\x02\x02\xD3\xDC\x03\x02" + - "\x02\x02\xD4\xD5\f\x04\x02\x02\xD5\xD6\t\x03\x02\x02\xD6\xDB\x05\x12\n" + - "\x05\xD7\xD8\f\x03\x02\x02\xD8\xD9\t\x02\x02\x02\xD9\xDB\x05\x12\n\x04" + - "\xDA\xD4\x03\x02\x02\x02\xDA\xD7\x03\x02\x02\x02\xDB\xDE\x03\x02\x02\x02" + - "\xDC\xDA\x03\x02\x02\x02\xDC\xDD\x03\x02\x02\x02\xDD\x13\x03\x02\x02\x02" + - "\xDE\xDC\x03\x02\x02\x02\xDF\xE7\x058\x1D\x02\xE0\xE7\x05.\x18\x02\xE1" + - "\xE7\x05\x16\f\x02\xE2\xE3\x07)\x02\x02\xE3\xE4\x05\f\x07\x02\xE4\xE5" + - "\x073\x02\x02\xE5\xE7\x03\x02\x02\x02\xE6\xDF\x03\x02\x02\x02\xE6\xE0" + - "\x03\x02\x02\x02\xE6\xE1\x03\x02\x02\x02\xE6\xE2\x03\x02\x02\x02\xE7\x15" + - "\x03\x02\x02\x02\xE8\xE9\x052\x1A\x02\xE9\xF3\x07)\x02\x02\xEA\xF4\x07" + - ">\x02\x02\xEB\xF0\x05\f\x07\x02\xEC\xED\x07#\x02\x02\xED\xEF\x05\f\x07" + - "\x02\xEE\xEC\x03\x02\x02\x02\xEF\xF2\x03\x02\x02\x02\xF0\xEE\x03\x02\x02" + - "\x02\xF0\xF1\x03\x02\x02\x02\xF1\xF4\x03\x02\x02\x02\xF2\xF0\x03\x02\x02" + - "\x02\xF3\xEA\x03\x02\x02\x02\xF3\xEB\x03\x02\x02\x02\xF3\xF4\x03\x02\x02" + - "\x02\xF4\xF5\x03\x02\x02\x02\xF5\xF6\x073\x02\x02\xF6\x17\x03\x02\x02" + - "\x02\xF7\xF8\x07\x0F\x02\x02\xF8\xF9\x05\x1A\x0E\x02\xF9\x19\x03\x02\x02" + - "\x02\xFA\xFF\x05\x1C\x0F\x02\xFB\xFC\x07#\x02\x02\xFC\xFE\x05\x1C\x0F" + - "\x02\xFD\xFB\x03\x02\x02\x02\xFE\u0101\x03\x02\x02\x02\xFF\xFD\x03\x02" + - "\x02\x02\xFF\u0100\x03\x02\x02\x02\u0100\x1B\x03\x02\x02\x02\u0101\xFF" + - "\x03\x02\x02\x02\u0102\u0108\x05\f\x07\x02\u0103\u0104\x05.\x18\x02\u0104" + - "\u0105\x07\"\x02\x02\u0105\u0106\x05\f\x07\x02\u0106\u0108\x03\x02\x02" + - "\x02\u0107\u0102\x03\x02\x02\x02\u0107\u0103\x03\x02\x02\x02\u0108\x1D" + - "\x03\x02\x02\x02\u0109\u010A\x07\b\x02\x02\u010A\u010F\x05,\x17\x02\u010B" + - "\u010C\x07#\x02\x02\u010C\u010E\x05,\x17\x02\u010D\u010B\x03\x02\x02\x02" + - "\u010E\u0111\x03\x02\x02\x02\u010F\u010D\x03\x02\x02\x02\u010F\u0110\x03" + - "\x02\x02\x02\u0110\u0113\x03\x02\x02\x02\u0111\u010F\x03\x02\x02\x02\u0112" + - "\u0114\x05 \x11\x02\u0113\u0112\x03\x02\x02\x02\u0113\u0114\x03\x02\x02" + - "\x02\u0114\x1F\x03\x02\x02\x02\u0115\u0118\x05\"\x12\x02\u0116\u0118\x05" + - "$\x13\x02\u0117\u0115\x03\x02\x02\x02\u0117\u0116\x03\x02\x02\x02\u0118" + - "!\x03\x02\x02\x02\u0119\u011A\x07H\x02\x02\u011A\u011F\x05,\x17\x02\u011B" + - "\u011C\x07#\x02\x02\u011C\u011E\x05,\x17\x02\u011D\u011B\x03\x02\x02\x02" + - "\u011E\u0121\x03\x02\x02\x02\u011F\u011D\x03\x02\x02\x02\u011F\u0120\x03" + - "\x02\x02\x02\u0120#\x03\x02\x02\x02\u0121\u011F\x03\x02\x02\x02\u0122" + - "\u0123\x07A\x02\x02\u0123\u0124\x05\"\x12\x02\u0124\u0125\x07B\x02\x02" + - "\u0125%\x03\x02\x02\x02\u0126\u0127\x07\x06\x02\x02\u0127\u0128\x05\x1A" + - "\x0E\x02\u0128\'\x03\x02\x02\x02\u0129\u012B\x07\x12\x02\x02\u012A\u012C" + - "\x05\x1A\x0E\x02\u012B\u012A\x03\x02\x02\x02\u012B\u012C\x03\x02\x02\x02" + - "\u012C\u012F\x03\x02\x02\x02\u012D\u012E\x07\x1F\x02\x02\u012E\u0130\x05" + - "\x1A\x0E\x02\u012F\u012D\x03\x02\x02\x02\u012F\u0130\x03\x02\x02\x02\u0130" + - ")\x03\x02\x02\x02\u0131\u0132\x07\n\x02\x02\u0132\u0135\x05\x1A\x0E\x02" + - "\u0133\u0134\x07\x1F\x02\x02\u0134\u0136\x05\x1A\x0E\x02\u0135\u0133\x03" + - "\x02\x02\x02\u0135\u0136\x03\x02\x02\x02\u0136+\x03\x02\x02\x02\u0137" + - "\u0138\t\x04\x02\x02\u0138-\x03\x02\x02\x02\u0139\u013E\x052\x1A\x02\u013A" + - "\u013B\x07%\x02\x02\u013B\u013D\x052\x1A\x02\u013C\u013A\x03\x02\x02\x02" + - "\u013D\u0140\x03\x02\x02\x02\u013E\u013C\x03\x02\x02\x02\u013E\u013F\x03" + - "\x02\x02\x02\u013F/\x03\x02\x02\x02\u0140\u013E\x03\x02\x02\x02\u0141" + - "\u0146\x054\x1B\x02\u0142\u0143\x07%\x02\x02\u0143\u0145\x054\x1B\x02" + - "\u0144\u0142\x03\x02\x02\x02\u0145\u0148\x03\x02\x02\x02\u0146\u0144\x03" + - "\x02\x02\x02\u0146\u0147\x03\x02\x02\x02\u01471\x03\x02\x02\x02\u0148" + - "\u0146\x03\x02\x02\x02\u0149\u014A\t\x05\x02\x02\u014A3\x03\x02\x02\x02" + - "\u014B\u014C\x07M\x02\x02\u014C5\x03\x02\x02\x02\u014D\u014E\t\x06\x02" + - "\x02\u014E7\x03\x02\x02\x02\u014F\u017A\x07.\x02\x02\u0150\u0151\x05X" + - "-\x02\u0151\u0152\x07C\x02\x02\u0152\u017A\x03\x02\x02\x02\u0153\u017A" + - "\x05V,\x02\u0154\u017A\x05X-\x02\u0155\u017A\x05R*\x02\u0156\u017A\x07" + - "1\x02\x02\u0157\u017A\x05Z.\x02\u0158\u0159\x07A\x02\x02\u0159\u015E\x05" + - "T+\x02\u015A\u015B\x07#\x02\x02\u015B\u015D\x05T+\x02\u015C\u015A\x03" + - "\x02\x02\x02\u015D\u0160\x03\x02\x02\x02\u015E\u015C\x03\x02\x02\x02\u015E" + - "\u015F\x03\x02\x02\x02\u015F\u0161\x03\x02\x02\x02\u0160\u015E\x03\x02" + - "\x02\x02\u0161\u0162\x07B\x02\x02\u0162\u017A\x03\x02\x02\x02\u0163\u0164" + - "\x07A\x02\x02\u0164\u0169\x05R*\x02\u0165\u0166\x07#\x02\x02\u0166\u0168" + - "\x05R*\x02\u0167\u0165\x03\x02\x02\x02\u0168\u016B\x03\x02\x02\x02\u0169" + - "\u0167\x03\x02\x02\x02\u0169\u016A\x03\x02\x02\x02\u016A\u016C\x03\x02" + - "\x02\x02\u016B\u0169\x03\x02\x02\x02\u016C\u016D\x07B\x02\x02\u016D\u017A" + - "\x03\x02\x02\x02\u016E\u016F\x07A\x02\x02\u016F\u0174\x05Z.\x02\u0170" + - "\u0171\x07#\x02\x02\u0171\u0173\x05Z.\x02\u0172\u0170\x03\x02\x02\x02" + - "\u0173\u0176\x03\x02\x02\x02\u0174\u0172\x03\x02\x02\x02\u0174\u0175\x03" + - "\x02\x02\x02\u0175\u0177\x03\x02\x02\x02\u0176\u0174\x03\x02\x02\x02\u0177" + - "\u0178\x07B\x02\x02\u0178\u017A\x03\x02\x02\x02\u0179\u014F\x03\x02\x02" + - "\x02\u0179\u0150\x03\x02\x02\x02\u0179\u0153\x03\x02\x02\x02\u0179\u0154" + - "\x03\x02\x02\x02\u0179\u0155\x03\x02\x02\x02\u0179\u0156\x03\x02\x02\x02" + - "\u0179\u0157\x03\x02\x02\x02\u0179\u0158\x03\x02\x02\x02\u0179\u0163\x03" + - "\x02\x02\x02\u0179\u016E\x03\x02\x02\x02\u017A9\x03\x02\x02\x02\u017B" + - "\u017C\x07\f\x02\x02\u017C\u017D\x07\x1D\x02\x02\u017D;\x03\x02\x02\x02" + - "\u017E\u017F\x07\x11\x02\x02\u017F\u0184\x05> \x02\u0180\u0181\x07#\x02" + - "\x02\u0181\u0183\x05> \x02\u0182\u0180\x03\x02\x02\x02\u0183\u0186\x03" + - "\x02\x02\x02\u0184\u0182\x03\x02\x02\x02\u0184\u0185\x03\x02\x02\x02\u0185" + - "=\x03\x02\x02\x02\u0186\u0184\x03\x02\x02\x02\u0187\u0189\x05\f\x07\x02" + - "\u0188\u018A\t\x07\x02\x02\u0189\u0188\x03\x02\x02\x02\u0189\u018A\x03" + - "\x02\x02\x02\u018A\u018D\x03\x02\x02\x02\u018B\u018C\x07/\x02\x02\u018C" + - "\u018E\t\b\x02\x02\u018D\u018B\x03\x02\x02\x02\u018D\u018E\x03\x02\x02" + - "\x02\u018E?\x03\x02\x02\x02\u018F\u0190\x07\v\x02\x02\u0190\u0195\x05" + - "0\x19\x02\u0191\u0192\x07#\x02\x02\u0192\u0194\x050\x19\x02\u0193\u0191" + - "\x03\x02\x02\x02\u0194\u0197\x03\x02\x02\x02\u0195\u0193\x03\x02\x02\x02" + - "\u0195\u0196\x03\x02\x02\x02\u0196A\x03\x02\x02\x02\u0197\u0195\x03\x02" + - "\x02\x02\u0198\u0199\x07\x04\x02\x02\u0199\u019E\x050\x19\x02\u019A\u019B" + - "\x07#\x02\x02\u019B\u019D\x050\x19\x02\u019C\u019A\x03\x02\x02\x02\u019D" + - "\u01A0\x03\x02\x02\x02\u019E\u019C\x03\x02\x02\x02\u019E\u019F\x03\x02" + - "\x02\x02\u019FC\x03\x02\x02\x02\u01A0\u019E\x03\x02\x02\x02\u01A1\u01A2" + - "\x07\x0E\x02\x02\u01A2\u01A7\x05F$\x02\u01A3\u01A4\x07#\x02\x02\u01A4" + - "\u01A6\x05F$\x02\u01A5\u01A3\x03\x02\x02\x02\u01A6\u01A9\x03\x02\x02\x02" + - "\u01A7\u01A5\x03\x02\x02\x02\u01A7\u01A8\x03\x02\x02\x02\u01A8E\x03\x02" + - "\x02\x02\u01A9\u01A7\x03\x02\x02\x02\u01AA\u01AB\x050\x19\x02\u01AB\u01AC" + - "\x07Q\x02\x02\u01AC\u01AD\x050\x19\x02\u01ADG\x03\x02\x02\x02\u01AE\u01AF" + - "\x07\x03\x02\x02\u01AF\u01B0\x05\x14\v\x02\u01B0\u01B2\x05Z.\x02\u01B1" + - "\u01B3\x05N(\x02\u01B2\u01B1\x03\x02\x02\x02\u01B2\u01B3\x03\x02\x02\x02" + - "\u01B3I\x03\x02\x02\x02\u01B4\u01B5\x07\t\x02\x02\u01B5\u01B6\x05\x14" + - "\v\x02\u01B6\u01B7\x05Z.\x02\u01B7K\x03\x02\x02\x02\u01B8\u01B9\x07\r" + - "\x02\x02\u01B9\u01BA\x05.\x18\x02\u01BAM\x03\x02\x02\x02\u01BB\u01C0\x05" + - "P)\x02\u01BC\u01BD\x07#\x02\x02\u01BD\u01BF\x05P)\x02\u01BE\u01BC\x03" + - "\x02\x02\x02\u01BF\u01C2\x03\x02\x02\x02\u01C0\u01BE\x03\x02\x02\x02\u01C0" + - "\u01C1\x03\x02\x02\x02\u01C1O\x03\x02\x02\x02\u01C2\u01C0\x03\x02\x02" + - "\x02\u01C3\u01C4\x052\x1A\x02\u01C4\u01C5\x07\"\x02\x02\u01C5\u01C6\x05" + - "8\x1D\x02\u01C6Q\x03\x02\x02\x02\u01C7\u01C8\t\t\x02\x02\u01C8S\x03\x02" + - "\x02\x02\u01C9\u01CC\x05V,\x02\u01CA\u01CC\x05X-\x02\u01CB\u01C9\x03\x02" + - "\x02\x02\u01CB\u01CA\x03\x02\x02\x02\u01CCU\x03\x02\x02\x02\u01CD\u01CF" + - "\t\x02\x02\x02\u01CE\u01CD\x03\x02\x02\x02\u01CE\u01CF\x03\x02\x02\x02" + - "\u01CF\u01D0\x03\x02\x02\x02\u01D0\u01D1\x07\x1E\x02\x02\u01D1W\x03\x02" + - "\x02\x02\u01D2\u01D4\t\x02\x02\x02\u01D3\u01D2\x03\x02\x02\x02\u01D3\u01D4" + - "\x03\x02\x02\x02\u01D4\u01D5\x03\x02\x02\x02\u01D5\u01D6\x07\x1D\x02\x02" + - "\u01D6Y\x03\x02\x02\x02\u01D7\u01D8\x07\x1C\x02\x02\u01D8[\x03\x02\x02" + - "\x02\u01D9\u01DA\t\n\x02\x02\u01DA]\x03\x02\x02\x02\u01DB\u01DC\x07\x07" + - "\x02\x02\u01DC\u01DD\x05`1\x02\u01DD_\x03\x02\x02\x02\u01DE\u01DF\x07" + - "A\x02\x02\u01DF\u01E0\x05\x04\x03\x02\u01E0\u01E1\x07B\x02\x02\u01E1a" + - "\x03\x02\x02\x02\u01E2\u01E3\x07\x10\x02\x02\u01E3\u01E7\x07a\x02\x02" + - "\u01E4\u01E5\x07\x10\x02\x02\u01E5\u01E7\x07b\x02\x02\u01E6\u01E2\x03" + - "\x02\x02\x02\u01E6\u01E4\x03\x02\x02\x02\u01E7c\x03\x02\x02\x02\u01E8" + - "\u01E9\x07\x05\x02\x02\u01E9\u01EC\x07W\x02\x02\u01EA\u01EB\x07U\x02\x02" + - "\u01EB\u01ED\x050\x19\x02\u01EC\u01EA\x03\x02\x02\x02\u01EC\u01ED\x03" + - "\x02\x02\x02\u01ED\u01F7\x03\x02\x02\x02\u01EE\u01EF\x07V\x02\x02\u01EF" + - "\u01F4\x05f4\x02\u01F0\u01F1\x07#\x02\x02\u01F1\u01F3\x05f4\x02\u01F2" + - "\u01F0\x03\x02\x02\x02\u01F3\u01F6\x03\x02\x02\x02\u01F4\u01F2\x03\x02" + - "\x02\x02\u01F4\u01F5\x03\x02\x02\x02\u01F5\u01F8\x03\x02\x02\x02\u01F6" + - "\u01F4\x03\x02\x02\x02\u01F7\u01EE\x03\x02\x02\x02\u01F7\u01F8\x03\x02" + - "\x02\x02\u01F8e\x03\x02\x02\x02\u01F9\u01FA\x050\x19\x02\u01FA\u01FB\x07" + - "\"\x02\x02\u01FB\u01FD\x03\x02\x02\x02\u01FC\u01F9\x03\x02\x02\x02\u01FC" + - "\u01FD\x03\x02\x02\x02\u01FD\u01FE\x03\x02\x02\x02\u01FE\u01FF\x050\x19" + - "\x02\u01FFg\x03\x02\x02\x024sz\x89\x95\x9E\xA6\xAA\xB2\xB4\xB9\xC0\xC5" + - "\xCC\xD2\xDA\xDC\xE6\xF0\xF3\xFF\u0107\u010F\u0113\u0117\u011F\u012B\u012F" + - "\u0135\u013E\u0146\u015E\u0169\u0174\u0179\u0184\u0189\u018D\u0195\u019E" + - "\u01A7\u01B2\u01C0\u01CB\u01CE\u01D3\u01E6\u01EC\u01F4\u01F7\u01FC"; - public static __ATN: ATN; + public static readonly _serializedATN: number[] = [4,1,105,511,2,0,7,0, + 2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9, + 2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2, + 17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24, + 7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7, + 31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38, + 2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2, + 46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,1,0,1,0,1,0,1,1,1,1,1,1, + 1,1,1,1,1,1,5,1,112,8,1,10,1,12,1,115,9,1,1,2,1,2,1,2,1,2,3,2,121,8,2,1, + 3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,136,8,3,1,4,1,4,1, + 4,1,5,1,5,1,5,1,5,1,5,1,5,1,5,3,5,148,8,5,1,5,1,5,1,5,1,5,1,5,5,5,155,8, + 5,10,5,12,5,158,9,5,1,5,1,5,1,5,1,5,1,5,3,5,165,8,5,1,5,1,5,3,5,169,8,5, + 1,5,1,5,1,5,1,5,1,5,1,5,5,5,177,8,5,10,5,12,5,180,9,5,1,6,1,6,3,6,184,8, + 6,1,6,1,6,1,6,1,6,1,6,3,6,191,8,6,1,6,1,6,1,6,3,6,196,8,6,1,7,1,7,1,7,1, + 7,1,7,3,7,203,8,7,1,8,1,8,1,8,1,8,3,8,209,8,8,1,8,1,8,1,8,1,8,1,8,1,8,5, + 8,217,8,8,10,8,12,8,220,9,8,1,9,1,9,1,9,1,9,1,9,1,9,1,9,3,9,229,8,9,1,10, + 1,10,1,10,1,10,1,10,1,10,5,10,237,8,10,10,10,12,10,240,9,10,3,10,242,8, + 10,1,10,1,10,1,11,1,11,1,11,1,12,1,12,1,12,5,12,252,8,12,10,12,12,12,255, + 9,12,1,13,1,13,1,13,1,13,1,13,3,13,262,8,13,1,14,1,14,1,14,1,14,5,14,268, + 8,14,10,14,12,14,271,9,14,1,14,3,14,274,8,14,1,15,1,15,3,15,278,8,15,1, + 16,1,16,1,16,1,16,5,16,284,8,16,10,16,12,16,287,9,16,1,17,1,17,1,17,1,17, + 1,18,1,18,1,18,1,19,1,19,3,19,298,8,19,1,19,1,19,3,19,302,8,19,1,20,1,20, + 1,20,1,20,3,20,308,8,20,1,21,1,21,1,22,1,22,1,22,5,22,315,8,22,10,22,12, + 22,318,9,22,1,23,1,23,1,23,5,23,323,8,23,10,23,12,23,326,9,23,1,24,1,24, + 1,25,1,25,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1, + 27,1,27,1,27,5,27,347,8,27,10,27,12,27,350,9,27,1,27,1,27,1,27,1,27,1,27, + 1,27,5,27,358,8,27,10,27,12,27,361,9,27,1,27,1,27,1,27,1,27,1,27,1,27,5, + 27,369,8,27,10,27,12,27,372,9,27,1,27,1,27,3,27,376,8,27,1,28,1,28,1,28, + 1,29,1,29,1,29,1,29,5,29,385,8,29,10,29,12,29,388,9,29,1,30,1,30,3,30,392, + 8,30,1,30,1,30,3,30,396,8,30,1,31,1,31,1,31,1,31,5,31,402,8,31,10,31,12, + 31,405,9,31,1,32,1,32,1,32,1,32,5,32,411,8,32,10,32,12,32,414,9,32,1,33, + 1,33,1,33,1,33,5,33,420,8,33,10,33,12,33,423,9,33,1,34,1,34,1,34,1,34,1, + 35,1,35,1,35,1,35,3,35,433,8,35,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,38, + 1,38,1,38,5,38,445,8,38,10,38,12,38,448,9,38,1,39,1,39,1,39,1,39,1,40,1, + 40,1,41,1,41,3,41,458,8,41,1,42,3,42,461,8,42,1,42,1,42,1,43,3,43,466,8, + 43,1,43,1,43,1,44,1,44,1,45,1,45,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,48, + 1,48,1,48,1,48,3,48,485,8,48,1,49,1,49,1,49,1,49,3,49,491,8,49,1,49,1,49, + 1,49,1,49,5,49,497,8,49,10,49,12,49,500,9,49,3,49,502,8,49,1,50,1,50,1, + 50,3,50,507,8,50,1,50,1,50,1,50,0,3,2,10,16,51,0,2,4,6,8,10,12,14,16,18, + 20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66, + 68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,0,9,1,0,58,59,1,0,60, + 62,2,0,66,66,71,71,1,0,65,66,2,0,66,66,105,105,2,0,31,31,34,34,1,0,37,38, + 2,0,36,36,50,50,2,0,51,51,53,57,536,0,102,1,0,0,0,2,105,1,0,0,0,4,120,1, + 0,0,0,6,135,1,0,0,0,8,137,1,0,0,0,10,168,1,0,0,0,12,195,1,0,0,0,14,202, + 1,0,0,0,16,208,1,0,0,0,18,228,1,0,0,0,20,230,1,0,0,0,22,245,1,0,0,0,24, + 248,1,0,0,0,26,261,1,0,0,0,28,263,1,0,0,0,30,277,1,0,0,0,32,279,1,0,0,0, + 34,288,1,0,0,0,36,292,1,0,0,0,38,295,1,0,0,0,40,303,1,0,0,0,42,309,1,0, + 0,0,44,311,1,0,0,0,46,319,1,0,0,0,48,327,1,0,0,0,50,329,1,0,0,0,52,331, + 1,0,0,0,54,375,1,0,0,0,56,377,1,0,0,0,58,380,1,0,0,0,60,389,1,0,0,0,62, + 397,1,0,0,0,64,406,1,0,0,0,66,415,1,0,0,0,68,424,1,0,0,0,70,428,1,0,0,0, + 72,434,1,0,0,0,74,438,1,0,0,0,76,441,1,0,0,0,78,449,1,0,0,0,80,453,1,0, + 0,0,82,457,1,0,0,0,84,460,1,0,0,0,86,465,1,0,0,0,88,469,1,0,0,0,90,471, + 1,0,0,0,92,473,1,0,0,0,94,476,1,0,0,0,96,484,1,0,0,0,98,486,1,0,0,0,100, + 506,1,0,0,0,102,103,3,2,1,0,103,104,5,0,0,1,104,1,1,0,0,0,105,106,6,1,-1, + 0,106,107,3,4,2,0,107,113,1,0,0,0,108,109,10,1,0,0,109,110,5,25,0,0,110, + 112,3,6,3,0,111,108,1,0,0,0,112,115,1,0,0,0,113,111,1,0,0,0,113,114,1,0, + 0,0,114,3,1,0,0,0,115,113,1,0,0,0,116,121,3,92,46,0,117,121,3,28,14,0,118, + 121,3,22,11,0,119,121,3,96,48,0,120,116,1,0,0,0,120,117,1,0,0,0,120,118, + 1,0,0,0,120,119,1,0,0,0,121,5,1,0,0,0,122,136,3,36,18,0,123,136,3,40,20, + 0,124,136,3,56,28,0,125,136,3,62,31,0,126,136,3,58,29,0,127,136,3,38,19, + 0,128,136,3,8,4,0,129,136,3,64,32,0,130,136,3,66,33,0,131,136,3,70,35,0, + 132,136,3,72,36,0,133,136,3,98,49,0,134,136,3,74,37,0,135,122,1,0,0,0,135, + 123,1,0,0,0,135,124,1,0,0,0,135,125,1,0,0,0,135,126,1,0,0,0,135,127,1,0, + 0,0,135,128,1,0,0,0,135,129,1,0,0,0,135,130,1,0,0,0,135,131,1,0,0,0,135, + 132,1,0,0,0,135,133,1,0,0,0,135,134,1,0,0,0,136,7,1,0,0,0,137,138,5,17, + 0,0,138,139,3,10,5,0,139,9,1,0,0,0,140,141,6,5,-1,0,141,142,5,43,0,0,142, + 169,3,10,5,7,143,169,3,14,7,0,144,169,3,12,6,0,145,147,3,14,7,0,146,148, + 5,43,0,0,147,146,1,0,0,0,147,148,1,0,0,0,148,149,1,0,0,0,149,150,5,40,0, + 0,150,151,5,39,0,0,151,156,3,14,7,0,152,153,5,33,0,0,153,155,3,14,7,0,154, + 152,1,0,0,0,155,158,1,0,0,0,156,154,1,0,0,0,156,157,1,0,0,0,157,159,1,0, + 0,0,158,156,1,0,0,0,159,160,5,49,0,0,160,169,1,0,0,0,161,162,3,14,7,0,162, + 164,5,41,0,0,163,165,5,43,0,0,164,163,1,0,0,0,164,165,1,0,0,0,165,166,1, + 0,0,0,166,167,5,44,0,0,167,169,1,0,0,0,168,140,1,0,0,0,168,143,1,0,0,0, + 168,144,1,0,0,0,168,145,1,0,0,0,168,161,1,0,0,0,169,178,1,0,0,0,170,171, + 10,4,0,0,171,172,5,30,0,0,172,177,3,10,5,5,173,174,10,3,0,0,174,175,5,46, + 0,0,175,177,3,10,5,4,176,170,1,0,0,0,176,173,1,0,0,0,177,180,1,0,0,0,178, + 176,1,0,0,0,178,179,1,0,0,0,179,11,1,0,0,0,180,178,1,0,0,0,181,183,3,14, + 7,0,182,184,5,43,0,0,183,182,1,0,0,0,183,184,1,0,0,0,184,185,1,0,0,0,185, + 186,5,42,0,0,186,187,3,88,44,0,187,196,1,0,0,0,188,190,3,14,7,0,189,191, + 5,43,0,0,190,189,1,0,0,0,190,191,1,0,0,0,191,192,1,0,0,0,192,193,5,48,0, + 0,193,194,3,88,44,0,194,196,1,0,0,0,195,181,1,0,0,0,195,188,1,0,0,0,196, + 13,1,0,0,0,197,203,3,16,8,0,198,199,3,16,8,0,199,200,3,90,45,0,200,201, + 3,16,8,0,201,203,1,0,0,0,202,197,1,0,0,0,202,198,1,0,0,0,203,15,1,0,0,0, + 204,205,6,8,-1,0,205,209,3,18,9,0,206,207,7,0,0,0,207,209,3,16,8,3,208, + 204,1,0,0,0,208,206,1,0,0,0,209,218,1,0,0,0,210,211,10,2,0,0,211,212,7, + 1,0,0,212,217,3,16,8,3,213,214,10,1,0,0,214,215,7,0,0,0,215,217,3,16,8, + 2,216,210,1,0,0,0,216,213,1,0,0,0,217,220,1,0,0,0,218,216,1,0,0,0,218,219, + 1,0,0,0,219,17,1,0,0,0,220,218,1,0,0,0,221,229,3,54,27,0,222,229,3,44,22, + 0,223,229,3,20,10,0,224,225,5,39,0,0,225,226,3,10,5,0,226,227,5,49,0,0, + 227,229,1,0,0,0,228,221,1,0,0,0,228,222,1,0,0,0,228,223,1,0,0,0,228,224, + 1,0,0,0,229,19,1,0,0,0,230,231,3,48,24,0,231,241,5,39,0,0,232,242,5,60, + 0,0,233,238,3,10,5,0,234,235,5,33,0,0,235,237,3,10,5,0,236,234,1,0,0,0, + 237,240,1,0,0,0,238,236,1,0,0,0,238,239,1,0,0,0,239,242,1,0,0,0,240,238, + 1,0,0,0,241,232,1,0,0,0,241,233,1,0,0,0,241,242,1,0,0,0,242,243,1,0,0,0, + 243,244,5,49,0,0,244,21,1,0,0,0,245,246,5,13,0,0,246,247,3,24,12,0,247, + 23,1,0,0,0,248,253,3,26,13,0,249,250,5,33,0,0,250,252,3,26,13,0,251,249, + 1,0,0,0,252,255,1,0,0,0,253,251,1,0,0,0,253,254,1,0,0,0,254,25,1,0,0,0, + 255,253,1,0,0,0,256,262,3,10,5,0,257,258,3,44,22,0,258,259,5,32,0,0,259, + 260,3,10,5,0,260,262,1,0,0,0,261,256,1,0,0,0,261,257,1,0,0,0,262,27,1,0, + 0,0,263,264,5,6,0,0,264,269,3,42,21,0,265,266,5,33,0,0,266,268,3,42,21, + 0,267,265,1,0,0,0,268,271,1,0,0,0,269,267,1,0,0,0,269,270,1,0,0,0,270,273, + 1,0,0,0,271,269,1,0,0,0,272,274,3,30,15,0,273,272,1,0,0,0,273,274,1,0,0, + 0,274,29,1,0,0,0,275,278,3,32,16,0,276,278,3,34,17,0,277,275,1,0,0,0,277, + 276,1,0,0,0,278,31,1,0,0,0,279,280,5,70,0,0,280,285,3,42,21,0,281,282,5, + 33,0,0,282,284,3,42,21,0,283,281,1,0,0,0,284,287,1,0,0,0,285,283,1,0,0, + 0,285,286,1,0,0,0,286,33,1,0,0,0,287,285,1,0,0,0,288,289,5,63,0,0,289,290, + 3,32,16,0,290,291,5,64,0,0,291,35,1,0,0,0,292,293,5,4,0,0,293,294,3,24, + 12,0,294,37,1,0,0,0,295,297,5,16,0,0,296,298,3,24,12,0,297,296,1,0,0,0, + 297,298,1,0,0,0,298,301,1,0,0,0,299,300,5,29,0,0,300,302,3,24,12,0,301, + 299,1,0,0,0,301,302,1,0,0,0,302,39,1,0,0,0,303,304,5,8,0,0,304,307,3,24, + 12,0,305,306,5,29,0,0,306,308,3,24,12,0,307,305,1,0,0,0,307,308,1,0,0,0, + 308,41,1,0,0,0,309,310,7,2,0,0,310,43,1,0,0,0,311,316,3,48,24,0,312,313, + 5,35,0,0,313,315,3,48,24,0,314,312,1,0,0,0,315,318,1,0,0,0,316,314,1,0, + 0,0,316,317,1,0,0,0,317,45,1,0,0,0,318,316,1,0,0,0,319,324,3,50,25,0,320, + 321,5,35,0,0,321,323,3,50,25,0,322,320,1,0,0,0,323,326,1,0,0,0,324,322, + 1,0,0,0,324,325,1,0,0,0,325,47,1,0,0,0,326,324,1,0,0,0,327,328,7,3,0,0, + 328,49,1,0,0,0,329,330,5,75,0,0,330,51,1,0,0,0,331,332,7,4,0,0,332,53,1, + 0,0,0,333,376,5,44,0,0,334,335,3,86,43,0,335,336,5,65,0,0,336,376,1,0,0, + 0,337,376,3,84,42,0,338,376,3,86,43,0,339,376,3,80,40,0,340,376,5,47,0, + 0,341,376,3,88,44,0,342,343,5,63,0,0,343,348,3,82,41,0,344,345,5,33,0,0, + 345,347,3,82,41,0,346,344,1,0,0,0,347,350,1,0,0,0,348,346,1,0,0,0,348,349, + 1,0,0,0,349,351,1,0,0,0,350,348,1,0,0,0,351,352,5,64,0,0,352,376,1,0,0, + 0,353,354,5,63,0,0,354,359,3,80,40,0,355,356,5,33,0,0,356,358,3,80,40,0, + 357,355,1,0,0,0,358,361,1,0,0,0,359,357,1,0,0,0,359,360,1,0,0,0,360,362, + 1,0,0,0,361,359,1,0,0,0,362,363,5,64,0,0,363,376,1,0,0,0,364,365,5,63,0, + 0,365,370,3,88,44,0,366,367,5,33,0,0,367,369,3,88,44,0,368,366,1,0,0,0, + 369,372,1,0,0,0,370,368,1,0,0,0,370,371,1,0,0,0,371,373,1,0,0,0,372,370, + 1,0,0,0,373,374,5,64,0,0,374,376,1,0,0,0,375,333,1,0,0,0,375,334,1,0,0, + 0,375,337,1,0,0,0,375,338,1,0,0,0,375,339,1,0,0,0,375,340,1,0,0,0,375,341, + 1,0,0,0,375,342,1,0,0,0,375,353,1,0,0,0,375,364,1,0,0,0,376,55,1,0,0,0, + 377,378,5,10,0,0,378,379,5,27,0,0,379,57,1,0,0,0,380,381,5,15,0,0,381,386, + 3,60,30,0,382,383,5,33,0,0,383,385,3,60,30,0,384,382,1,0,0,0,385,388,1, + 0,0,0,386,384,1,0,0,0,386,387,1,0,0,0,387,59,1,0,0,0,388,386,1,0,0,0,389, + 391,3,10,5,0,390,392,7,5,0,0,391,390,1,0,0,0,391,392,1,0,0,0,392,395,1, + 0,0,0,393,394,5,45,0,0,394,396,7,6,0,0,395,393,1,0,0,0,395,396,1,0,0,0, + 396,61,1,0,0,0,397,398,5,9,0,0,398,403,3,46,23,0,399,400,5,33,0,0,400,402, + 3,46,23,0,401,399,1,0,0,0,402,405,1,0,0,0,403,401,1,0,0,0,403,404,1,0,0, + 0,404,63,1,0,0,0,405,403,1,0,0,0,406,407,5,2,0,0,407,412,3,46,23,0,408, + 409,5,33,0,0,409,411,3,46,23,0,410,408,1,0,0,0,411,414,1,0,0,0,412,410, + 1,0,0,0,412,413,1,0,0,0,413,65,1,0,0,0,414,412,1,0,0,0,415,416,5,12,0,0, + 416,421,3,68,34,0,417,418,5,33,0,0,418,420,3,68,34,0,419,417,1,0,0,0,420, + 423,1,0,0,0,421,419,1,0,0,0,421,422,1,0,0,0,422,67,1,0,0,0,423,421,1,0, + 0,0,424,425,3,46,23,0,425,426,5,79,0,0,426,427,3,46,23,0,427,69,1,0,0,0, + 428,429,5,1,0,0,429,430,3,18,9,0,430,432,3,88,44,0,431,433,3,76,38,0,432, + 431,1,0,0,0,432,433,1,0,0,0,433,71,1,0,0,0,434,435,5,7,0,0,435,436,3,18, + 9,0,436,437,3,88,44,0,437,73,1,0,0,0,438,439,5,11,0,0,439,440,3,44,22,0, + 440,75,1,0,0,0,441,446,3,78,39,0,442,443,5,33,0,0,443,445,3,78,39,0,444, + 442,1,0,0,0,445,448,1,0,0,0,446,444,1,0,0,0,446,447,1,0,0,0,447,77,1,0, + 0,0,448,446,1,0,0,0,449,450,3,48,24,0,450,451,5,32,0,0,451,452,3,54,27, + 0,452,79,1,0,0,0,453,454,7,7,0,0,454,81,1,0,0,0,455,458,3,84,42,0,456,458, + 3,86,43,0,457,455,1,0,0,0,457,456,1,0,0,0,458,83,1,0,0,0,459,461,7,0,0, + 0,460,459,1,0,0,0,460,461,1,0,0,0,461,462,1,0,0,0,462,463,5,28,0,0,463, + 85,1,0,0,0,464,466,7,0,0,0,465,464,1,0,0,0,465,466,1,0,0,0,466,467,1,0, + 0,0,467,468,5,27,0,0,468,87,1,0,0,0,469,470,5,26,0,0,470,89,1,0,0,0,471, + 472,7,8,0,0,472,91,1,0,0,0,473,474,5,5,0,0,474,475,3,94,47,0,475,93,1,0, + 0,0,476,477,5,63,0,0,477,478,3,2,1,0,478,479,5,64,0,0,479,95,1,0,0,0,480, + 481,5,14,0,0,481,485,5,95,0,0,482,483,5,14,0,0,483,485,5,96,0,0,484,480, + 1,0,0,0,484,482,1,0,0,0,485,97,1,0,0,0,486,487,5,3,0,0,487,490,5,85,0,0, + 488,489,5,83,0,0,489,491,3,46,23,0,490,488,1,0,0,0,490,491,1,0,0,0,491, + 501,1,0,0,0,492,493,5,84,0,0,493,498,3,100,50,0,494,495,5,33,0,0,495,497, + 3,100,50,0,496,494,1,0,0,0,497,500,1,0,0,0,498,496,1,0,0,0,498,499,1,0, + 0,0,499,502,1,0,0,0,500,498,1,0,0,0,501,492,1,0,0,0,501,502,1,0,0,0,502, + 99,1,0,0,0,503,504,3,46,23,0,504,505,5,32,0,0,505,507,1,0,0,0,506,503,1, + 0,0,0,506,507,1,0,0,0,507,508,1,0,0,0,508,509,3,46,23,0,509,101,1,0,0,0, + 50,113,120,135,147,156,164,168,176,178,183,190,195,202,208,216,218,228, + 238,241,253,261,269,273,277,285,297,301,307,316,324,348,359,370,375,386, + 391,395,403,412,421,432,446,457,460,465,484,490,498,501,506]; + + private static __ATN: ATN; public static get _ATN(): ATN { if (!esql_parser.__ATN) { - esql_parser.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(esql_parser._serializedATN)); + esql_parser.__ATN = new ATNDeserializer().deserialize(esql_parser._serializedATN); } return esql_parser.__ATN; } + + static DecisionsToDFA = esql_parser._ATN.decisionToState.map( (ds: DecisionState, index: number) => new DFA(ds, index) ); + } export class SingleStatementContext extends ParserRuleContext { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } public query(): QueryContext { - return this.getRuleContext(0, QueryContext); + return this.getTypedRuleContext(QueryContext, 0) as QueryContext; } - public EOF(): TerminalNode { return this.getToken(esql_parser.EOF, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public EOF(): TerminalNode { + return this.getToken(esql_parser.EOF, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_singleStatement; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_singleStatement; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterSingleStatement) { - listener.enterSingleStatement(this); + if(listener.enterSingleStatement) { + listener.enterSingleStatement(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitSingleStatement) { - listener.exitSingleStatement(this); + if(listener.exitSingleStatement) { + listener.exitSingleStatement(this); } } } export class QueryContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return esql_parser.RULE_query; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_query; } public copyFrom(ctx: QueryContext): void { super.copyFrom(ctx); } } -export class SingleCommandQueryContext extends QueryContext { - public sourceCommand(): SourceCommandContext { - return this.getRuleContext(0, SourceCommandContext); +export class CompositeQueryContext extends QueryContext { + constructor(parser: esql_parser, ctx: QueryContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public query(): QueryContext { + return this.getTypedRuleContext(QueryContext, 0) as QueryContext; + } + public PIPE(): TerminalNode { + return this.getToken(esql_parser.PIPE, 0); } - constructor(ctx: QueryContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public processingCommand(): ProcessingCommandContext { + return this.getTypedRuleContext(ProcessingCommandContext, 0) as ProcessingCommandContext; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterSingleCommandQuery) { - listener.enterSingleCommandQuery(this); + if(listener.enterCompositeQuery) { + listener.enterCompositeQuery(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitSingleCommandQuery) { - listener.exitSingleCommandQuery(this); + if(listener.exitCompositeQuery) { + listener.exitCompositeQuery(this); } } } -export class CompositeQueryContext extends QueryContext { - public query(): QueryContext { - return this.getRuleContext(0, QueryContext); - } - public PIPE(): TerminalNode { return this.getToken(esql_parser.PIPE, 0); } - public processingCommand(): ProcessingCommandContext { - return this.getRuleContext(0, ProcessingCommandContext); +export class SingleCommandQueryContext extends QueryContext { + constructor(parser: esql_parser, ctx: QueryContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - constructor(ctx: QueryContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public sourceCommand(): SourceCommandContext { + return this.getTypedRuleContext(SourceCommandContext, 0) as SourceCommandContext; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterCompositeQuery) { - listener.enterCompositeQuery(this); + if(listener.enterSingleCommandQuery) { + listener.enterSingleCommandQuery(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitCompositeQuery) { - listener.exitCompositeQuery(this); + if(listener.exitSingleCommandQuery) { + listener.exitSingleCommandQuery(this); } } } export class SourceCommandContext extends ParserRuleContext { - public explainCommand(): ExplainCommandContext | undefined { - return this.tryGetRuleContext(0, ExplainCommandContext); + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public explainCommand(): ExplainCommandContext { + return this.getTypedRuleContext(ExplainCommandContext, 0) as ExplainCommandContext; } - public fromCommand(): FromCommandContext | undefined { - return this.tryGetRuleContext(0, FromCommandContext); + public fromCommand(): FromCommandContext { + return this.getTypedRuleContext(FromCommandContext, 0) as FromCommandContext; } - public rowCommand(): RowCommandContext | undefined { - return this.tryGetRuleContext(0, RowCommandContext); + public rowCommand(): RowCommandContext { + return this.getTypedRuleContext(RowCommandContext, 0) as RowCommandContext; } - public showCommand(): ShowCommandContext | undefined { - return this.tryGetRuleContext(0, ShowCommandContext); + public showCommand(): ShowCommandContext { + return this.getTypedRuleContext(ShowCommandContext, 0) as ShowCommandContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public get ruleIndex(): number { + return esql_parser.RULE_sourceCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_sourceCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterSourceCommand) { - listener.enterSourceCommand(this); + if(listener.enterSourceCommand) { + listener.enterSourceCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitSourceCommand) { - listener.exitSourceCommand(this); + if(listener.exitSourceCommand) { + listener.exitSourceCommand(this); } } } export class ProcessingCommandContext extends ParserRuleContext { - public evalCommand(): EvalCommandContext | undefined { - return this.tryGetRuleContext(0, EvalCommandContext); + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; } - public inlinestatsCommand(): InlinestatsCommandContext | undefined { - return this.tryGetRuleContext(0, InlinestatsCommandContext); + public evalCommand(): EvalCommandContext { + return this.getTypedRuleContext(EvalCommandContext, 0) as EvalCommandContext; } - public limitCommand(): LimitCommandContext | undefined { - return this.tryGetRuleContext(0, LimitCommandContext); + public inlinestatsCommand(): InlinestatsCommandContext { + return this.getTypedRuleContext(InlinestatsCommandContext, 0) as InlinestatsCommandContext; } - public keepCommand(): KeepCommandContext | undefined { - return this.tryGetRuleContext(0, KeepCommandContext); + public limitCommand(): LimitCommandContext { + return this.getTypedRuleContext(LimitCommandContext, 0) as LimitCommandContext; } - public sortCommand(): SortCommandContext | undefined { - return this.tryGetRuleContext(0, SortCommandContext); + public keepCommand(): KeepCommandContext { + return this.getTypedRuleContext(KeepCommandContext, 0) as KeepCommandContext; } - public statsCommand(): StatsCommandContext | undefined { - return this.tryGetRuleContext(0, StatsCommandContext); + public sortCommand(): SortCommandContext { + return this.getTypedRuleContext(SortCommandContext, 0) as SortCommandContext; } - public whereCommand(): WhereCommandContext | undefined { - return this.tryGetRuleContext(0, WhereCommandContext); + public statsCommand(): StatsCommandContext { + return this.getTypedRuleContext(StatsCommandContext, 0) as StatsCommandContext; } - public dropCommand(): DropCommandContext | undefined { - return this.tryGetRuleContext(0, DropCommandContext); + public whereCommand(): WhereCommandContext { + return this.getTypedRuleContext(WhereCommandContext, 0) as WhereCommandContext; } - public renameCommand(): RenameCommandContext | undefined { - return this.tryGetRuleContext(0, RenameCommandContext); + public dropCommand(): DropCommandContext { + return this.getTypedRuleContext(DropCommandContext, 0) as DropCommandContext; } - public dissectCommand(): DissectCommandContext | undefined { - return this.tryGetRuleContext(0, DissectCommandContext); + public renameCommand(): RenameCommandContext { + return this.getTypedRuleContext(RenameCommandContext, 0) as RenameCommandContext; + } + public dissectCommand(): DissectCommandContext { + return this.getTypedRuleContext(DissectCommandContext, 0) as DissectCommandContext; } - public grokCommand(): GrokCommandContext | undefined { - return this.tryGetRuleContext(0, GrokCommandContext); + public grokCommand(): GrokCommandContext { + return this.getTypedRuleContext(GrokCommandContext, 0) as GrokCommandContext; } - public enrichCommand(): EnrichCommandContext | undefined { - return this.tryGetRuleContext(0, EnrichCommandContext); + public enrichCommand(): EnrichCommandContext { + return this.getTypedRuleContext(EnrichCommandContext, 0) as EnrichCommandContext; } - public mvExpandCommand(): MvExpandCommandContext | undefined { - return this.tryGetRuleContext(0, MvExpandCommandContext); + public mvExpandCommand(): MvExpandCommandContext { + return this.getTypedRuleContext(MvExpandCommandContext, 0) as MvExpandCommandContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public get ruleIndex(): number { + return esql_parser.RULE_processingCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_processingCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterProcessingCommand) { - listener.enterProcessingCommand(this); + if(listener.enterProcessingCommand) { + listener.enterProcessingCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitProcessingCommand) { - listener.exitProcessingCommand(this); + if(listener.exitProcessingCommand) { + listener.exitProcessingCommand(this); } } } export class WhereCommandContext extends ParserRuleContext { - public WHERE(): TerminalNode { return this.getToken(esql_parser.WHERE, 0); } + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public WHERE(): TerminalNode { + return this.getToken(esql_parser.WHERE, 0); + } public booleanExpression(): BooleanExpressionContext { - return this.getRuleContext(0, BooleanExpressionContext); + return this.getTypedRuleContext(BooleanExpressionContext, 0) as BooleanExpressionContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public get ruleIndex(): number { + return esql_parser.RULE_whereCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_whereCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterWhereCommand) { - listener.enterWhereCommand(this); + if(listener.enterWhereCommand) { + listener.enterWhereCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitWhereCommand) { - listener.exitWhereCommand(this); + if(listener.exitWhereCommand) { + listener.exitWhereCommand(this); } } } export class BooleanExpressionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return esql_parser.RULE_booleanExpression; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_booleanExpression; } public copyFrom(ctx: BooleanExpressionContext): void { super.copyFrom(ctx); } } export class LogicalNotContext extends BooleanExpressionContext { - public NOT(): TerminalNode { return this.getToken(esql_parser.NOT, 0); } - public booleanExpression(): BooleanExpressionContext { - return this.getRuleContext(0, BooleanExpressionContext); + constructor(parser: esql_parser, ctx: BooleanExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - constructor(ctx: BooleanExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public NOT(): TerminalNode { + return this.getToken(esql_parser.NOT, 0); + } + public booleanExpression(): BooleanExpressionContext { + return this.getTypedRuleContext(BooleanExpressionContext, 0) as BooleanExpressionContext; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterLogicalNot) { - listener.enterLogicalNot(this); + if(listener.enterLogicalNot) { + listener.enterLogicalNot(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitLogicalNot) { - listener.exitLogicalNot(this); + if(listener.exitLogicalNot) { + listener.exitLogicalNot(this); } } } export class BooleanDefaultContext extends BooleanExpressionContext { - public valueExpression(): ValueExpressionContext { - return this.getRuleContext(0, ValueExpressionContext); + constructor(parser: esql_parser, ctx: BooleanExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - constructor(ctx: BooleanExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public valueExpression(): ValueExpressionContext { + return this.getTypedRuleContext(ValueExpressionContext, 0) as ValueExpressionContext; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterBooleanDefault) { - listener.enterBooleanDefault(this); + if(listener.enterBooleanDefault) { + listener.enterBooleanDefault(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitBooleanDefault) { - listener.exitBooleanDefault(this); + if(listener.exitBooleanDefault) { + listener.exitBooleanDefault(this); } } } -export class RegexExpressionContext extends BooleanExpressionContext { - public regexBooleanExpression(): RegexBooleanExpressionContext { - return this.getRuleContext(0, RegexBooleanExpressionContext); +export class IsNullContext extends BooleanExpressionContext { + constructor(parser: esql_parser, ctx: BooleanExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public valueExpression(): ValueExpressionContext { + return this.getTypedRuleContext(ValueExpressionContext, 0) as ValueExpressionContext; + } + public IS(): TerminalNode { + return this.getToken(esql_parser.IS, 0); } - constructor(ctx: BooleanExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public NULL(): TerminalNode { + return this.getToken(esql_parser.NULL, 0); + } + public NOT(): TerminalNode { + return this.getToken(esql_parser.NOT, 0); } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterRegexExpression) { - listener.enterRegexExpression(this); + if(listener.enterIsNull) { + listener.enterIsNull(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitRegexExpression) { - listener.exitRegexExpression(this); + if(listener.exitIsNull) { + listener.exitIsNull(this); } } } -export class LogicalBinaryContext extends BooleanExpressionContext { - public _left: BooleanExpressionContext; - public _operator: Token; - public _right: BooleanExpressionContext; - public booleanExpression(): BooleanExpressionContext[]; - public booleanExpression(i: number): BooleanExpressionContext; - public booleanExpression(i?: number): BooleanExpressionContext | BooleanExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(BooleanExpressionContext); - } else { - return this.getRuleContext(i, BooleanExpressionContext); - } - } - public AND(): TerminalNode | undefined { return this.tryGetToken(esql_parser.AND, 0); } - public OR(): TerminalNode | undefined { return this.tryGetToken(esql_parser.OR, 0); } - constructor(ctx: BooleanExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override +export class RegexExpressionContext extends BooleanExpressionContext { + constructor(parser: esql_parser, ctx: BooleanExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public regexBooleanExpression(): RegexBooleanExpressionContext { + return this.getTypedRuleContext(RegexBooleanExpressionContext, 0) as RegexBooleanExpressionContext; + } public enterRule(listener: esql_parserListener): void { - if (listener.enterLogicalBinary) { - listener.enterLogicalBinary(this); + if(listener.enterRegexExpression) { + listener.enterRegexExpression(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitLogicalBinary) { - listener.exitLogicalBinary(this); + if(listener.exitRegexExpression) { + listener.exitRegexExpression(this); } } } export class LogicalInContext extends BooleanExpressionContext { - public valueExpression(): ValueExpressionContext[]; - public valueExpression(i: number): ValueExpressionContext; - public valueExpression(i?: number): ValueExpressionContext | ValueExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(ValueExpressionContext); - } else { - return this.getRuleContext(i, ValueExpressionContext); - } - } - public IN(): TerminalNode { return this.getToken(esql_parser.IN, 0); } - public LP(): TerminalNode { return this.getToken(esql_parser.LP, 0); } - public RP(): TerminalNode { return this.getToken(esql_parser.RP, 0); } - public NOT(): TerminalNode | undefined { return this.tryGetToken(esql_parser.NOT, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(esql_parser.COMMA); - } else { - return this.getToken(esql_parser.COMMA, i); - } - } - constructor(ctx: BooleanExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override + constructor(parser: esql_parser, ctx: BooleanExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public valueExpression_list(): ValueExpressionContext[] { + return this.getTypedRuleContexts(ValueExpressionContext) as ValueExpressionContext[]; + } + public valueExpression(i: number): ValueExpressionContext { + return this.getTypedRuleContext(ValueExpressionContext, i) as ValueExpressionContext; + } + public IN(): TerminalNode { + return this.getToken(esql_parser.IN, 0); + } + public LP(): TerminalNode { + return this.getToken(esql_parser.LP, 0); + } + public RP(): TerminalNode { + return this.getToken(esql_parser.RP, 0); + } + public NOT(): TerminalNode { + return this.getToken(esql_parser.NOT, 0); + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(esql_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(esql_parser.COMMA, i); + } public enterRule(listener: esql_parserListener): void { - if (listener.enterLogicalIn) { - listener.enterLogicalIn(this); + if(listener.enterLogicalIn) { + listener.enterLogicalIn(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitLogicalIn) { - listener.exitLogicalIn(this); + if(listener.exitLogicalIn) { + listener.exitLogicalIn(this); } } } -export class IsNullContext extends BooleanExpressionContext { - public valueExpression(): ValueExpressionContext { - return this.getRuleContext(0, ValueExpressionContext); +export class LogicalBinaryContext extends BooleanExpressionContext { + public _left!: BooleanExpressionContext; + public _operator!: Token; + public _right!: BooleanExpressionContext; + constructor(parser: esql_parser, ctx: BooleanExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public booleanExpression_list(): BooleanExpressionContext[] { + return this.getTypedRuleContexts(BooleanExpressionContext) as BooleanExpressionContext[]; } - public IS(): TerminalNode { return this.getToken(esql_parser.IS, 0); } - public NULL(): TerminalNode { return this.getToken(esql_parser.NULL, 0); } - public NOT(): TerminalNode | undefined { return this.tryGetToken(esql_parser.NOT, 0); } - constructor(ctx: BooleanExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public booleanExpression(i: number): BooleanExpressionContext { + return this.getTypedRuleContext(BooleanExpressionContext, i) as BooleanExpressionContext; + } + public AND(): TerminalNode { + return this.getToken(esql_parser.AND, 0); + } + public OR(): TerminalNode { + return this.getToken(esql_parser.OR, 0); } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterIsNull) { - listener.enterIsNull(this); + if(listener.enterLogicalBinary) { + listener.enterLogicalBinary(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitIsNull) { - listener.exitIsNull(this); + if(listener.exitLogicalBinary) { + listener.exitLogicalBinary(this); } } } export class RegexBooleanExpressionContext extends ParserRuleContext { - public _kind: Token; - public _pattern: StringContext; + public _kind!: Token; + public _pattern!: StringContext; + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } public valueExpression(): ValueExpressionContext { - return this.getRuleContext(0, ValueExpressionContext); + return this.getTypedRuleContext(ValueExpressionContext, 0) as ValueExpressionContext; } - public LIKE(): TerminalNode | undefined { return this.tryGetToken(esql_parser.LIKE, 0); } - public string(): StringContext { - return this.getRuleContext(0, StringContext); + public LIKE(): TerminalNode { + return this.getToken(esql_parser.LIKE, 0); } - public NOT(): TerminalNode | undefined { return this.tryGetToken(esql_parser.NOT, 0); } - public RLIKE(): TerminalNode | undefined { return this.tryGetToken(esql_parser.RLIKE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public string_(): StringContext { + return this.getTypedRuleContext(StringContext, 0) as StringContext; + } + public NOT(): TerminalNode { + return this.getToken(esql_parser.NOT, 0); + } + public RLIKE(): TerminalNode { + return this.getToken(esql_parser.RLIKE, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_regexBooleanExpression; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_regexBooleanExpression; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterRegexBooleanExpression) { - listener.enterRegexBooleanExpression(this); + if(listener.enterRegexBooleanExpression) { + listener.enterRegexBooleanExpression(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitRegexBooleanExpression) { - listener.exitRegexBooleanExpression(this); + if(listener.exitRegexBooleanExpression) { + listener.exitRegexBooleanExpression(this); } } } export class ValueExpressionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return esql_parser.RULE_valueExpression; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_valueExpression; } public copyFrom(ctx: ValueExpressionContext): void { super.copyFrom(ctx); } } export class ValueExpressionDefaultContext extends ValueExpressionContext { - public operatorExpression(): OperatorExpressionContext { - return this.getRuleContext(0, OperatorExpressionContext); + constructor(parser: esql_parser, ctx: ValueExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - constructor(ctx: ValueExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public operatorExpression(): OperatorExpressionContext { + return this.getTypedRuleContext(OperatorExpressionContext, 0) as OperatorExpressionContext; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterValueExpressionDefault) { - listener.enterValueExpressionDefault(this); + if(listener.enterValueExpressionDefault) { + listener.enterValueExpressionDefault(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitValueExpressionDefault) { - listener.exitValueExpressionDefault(this); + if(listener.exitValueExpressionDefault) { + listener.exitValueExpressionDefault(this); } } } export class ComparisonContext extends ValueExpressionContext { - public _left: OperatorExpressionContext; - public _right: OperatorExpressionContext; + public _left!: OperatorExpressionContext; + public _right!: OperatorExpressionContext; + constructor(parser: esql_parser, ctx: ValueExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } public comparisonOperator(): ComparisonOperatorContext { - return this.getRuleContext(0, ComparisonOperatorContext); + return this.getTypedRuleContext(ComparisonOperatorContext, 0) as ComparisonOperatorContext; } - public operatorExpression(): OperatorExpressionContext[]; - public operatorExpression(i: number): OperatorExpressionContext; - public operatorExpression(i?: number): OperatorExpressionContext | OperatorExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(OperatorExpressionContext); - } else { - return this.getRuleContext(i, OperatorExpressionContext); - } + public operatorExpression_list(): OperatorExpressionContext[] { + return this.getTypedRuleContexts(OperatorExpressionContext) as OperatorExpressionContext[]; } - constructor(ctx: ValueExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public operatorExpression(i: number): OperatorExpressionContext { + return this.getTypedRuleContext(OperatorExpressionContext, i) as OperatorExpressionContext; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterComparison) { - listener.enterComparison(this); + if(listener.enterComparison) { + listener.enterComparison(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitComparison) { - listener.exitComparison(this); + if(listener.exitComparison) { + listener.exitComparison(this); } } } export class OperatorExpressionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return esql_parser.RULE_operatorExpression; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_operatorExpression; } public copyFrom(ctx: OperatorExpressionContext): void { super.copyFrom(ctx); } } export class OperatorExpressionDefaultContext extends OperatorExpressionContext { - public primaryExpression(): PrimaryExpressionContext { - return this.getRuleContext(0, PrimaryExpressionContext); + constructor(parser: esql_parser, ctx: OperatorExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - constructor(ctx: OperatorExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public primaryExpression(): PrimaryExpressionContext { + return this.getTypedRuleContext(PrimaryExpressionContext, 0) as PrimaryExpressionContext; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterOperatorExpressionDefault) { - listener.enterOperatorExpressionDefault(this); + if(listener.enterOperatorExpressionDefault) { + listener.enterOperatorExpressionDefault(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitOperatorExpressionDefault) { - listener.exitOperatorExpressionDefault(this); + if(listener.exitOperatorExpressionDefault) { + listener.exitOperatorExpressionDefault(this); } } } -export class ArithmeticUnaryContext extends OperatorExpressionContext { - public _operator: Token; - public operatorExpression(): OperatorExpressionContext { - return this.getRuleContext(0, OperatorExpressionContext); +export class ArithmeticBinaryContext extends OperatorExpressionContext { + public _left!: OperatorExpressionContext; + public _operator!: Token; + public _right!: OperatorExpressionContext; + constructor(parser: esql_parser, ctx: OperatorExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public operatorExpression_list(): OperatorExpressionContext[] { + return this.getTypedRuleContexts(OperatorExpressionContext) as OperatorExpressionContext[]; } - public MINUS(): TerminalNode | undefined { return this.tryGetToken(esql_parser.MINUS, 0); } - public PLUS(): TerminalNode | undefined { return this.tryGetToken(esql_parser.PLUS, 0); } - constructor(ctx: OperatorExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public operatorExpression(i: number): OperatorExpressionContext { + return this.getTypedRuleContext(OperatorExpressionContext, i) as OperatorExpressionContext; + } + public ASTERISK(): TerminalNode { + return this.getToken(esql_parser.ASTERISK, 0); + } + public SLASH(): TerminalNode { + return this.getToken(esql_parser.SLASH, 0); + } + public PERCENT(): TerminalNode { + return this.getToken(esql_parser.PERCENT, 0); + } + public PLUS(): TerminalNode { + return this.getToken(esql_parser.PLUS, 0); + } + public MINUS(): TerminalNode { + return this.getToken(esql_parser.MINUS, 0); } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterArithmeticUnary) { - listener.enterArithmeticUnary(this); + if(listener.enterArithmeticBinary) { + listener.enterArithmeticBinary(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitArithmeticUnary) { - listener.exitArithmeticUnary(this); + if(listener.exitArithmeticBinary) { + listener.exitArithmeticBinary(this); } } } -export class ArithmeticBinaryContext extends OperatorExpressionContext { - public _left: OperatorExpressionContext; - public _operator: Token; - public _right: OperatorExpressionContext; - public operatorExpression(): OperatorExpressionContext[]; - public operatorExpression(i: number): OperatorExpressionContext; - public operatorExpression(i?: number): OperatorExpressionContext | OperatorExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(OperatorExpressionContext); - } else { - return this.getRuleContext(i, OperatorExpressionContext); - } - } - public ASTERISK(): TerminalNode | undefined { return this.tryGetToken(esql_parser.ASTERISK, 0); } - public SLASH(): TerminalNode | undefined { return this.tryGetToken(esql_parser.SLASH, 0); } - public PERCENT(): TerminalNode | undefined { return this.tryGetToken(esql_parser.PERCENT, 0); } - public PLUS(): TerminalNode | undefined { return this.tryGetToken(esql_parser.PLUS, 0); } - public MINUS(): TerminalNode | undefined { return this.tryGetToken(esql_parser.MINUS, 0); } - constructor(ctx: OperatorExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override +export class ArithmeticUnaryContext extends OperatorExpressionContext { + public _operator!: Token; + constructor(parser: esql_parser, ctx: OperatorExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public operatorExpression(): OperatorExpressionContext { + return this.getTypedRuleContext(OperatorExpressionContext, 0) as OperatorExpressionContext; + } + public MINUS(): TerminalNode { + return this.getToken(esql_parser.MINUS, 0); + } + public PLUS(): TerminalNode { + return this.getToken(esql_parser.PLUS, 0); + } public enterRule(listener: esql_parserListener): void { - if (listener.enterArithmeticBinary) { - listener.enterArithmeticBinary(this); + if(listener.enterArithmeticUnary) { + listener.enterArithmeticUnary(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitArithmeticBinary) { - listener.exitArithmeticBinary(this); + if(listener.exitArithmeticUnary) { + listener.exitArithmeticUnary(this); } } } export class PrimaryExpressionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return esql_parser.RULE_primaryExpression; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_primaryExpression; } public copyFrom(ctx: PrimaryExpressionContext): void { super.copyFrom(ctx); } } -export class ConstantDefaultContext extends PrimaryExpressionContext { - public constant(): ConstantContext { - return this.getRuleContext(0, ConstantContext); +export class DereferenceContext extends PrimaryExpressionContext { + constructor(parser: esql_parser, ctx: PrimaryExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - constructor(ctx: PrimaryExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public qualifiedName(): QualifiedNameContext { + return this.getTypedRuleContext(QualifiedNameContext, 0) as QualifiedNameContext; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterConstantDefault) { - listener.enterConstantDefault(this); + if(listener.enterDereference) { + listener.enterDereference(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitConstantDefault) { - listener.exitConstantDefault(this); + if(listener.exitDereference) { + listener.exitDereference(this); } } } -export class DereferenceContext extends PrimaryExpressionContext { - public qualifiedName(): QualifiedNameContext { - return this.getRuleContext(0, QualifiedNameContext); +export class ConstantDefaultContext extends PrimaryExpressionContext { + constructor(parser: esql_parser, ctx: PrimaryExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - constructor(ctx: PrimaryExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public constant(): ConstantContext { + return this.getTypedRuleContext(ConstantContext, 0) as ConstantContext; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterDereference) { - listener.enterDereference(this); + if(listener.enterConstantDefault) { + listener.enterConstantDefault(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitDereference) { - listener.exitDereference(this); + if(listener.exitConstantDefault) { + listener.exitConstantDefault(this); } } } -export class FunctionContext extends PrimaryExpressionContext { - public functionExpression(): FunctionExpressionContext { - return this.getRuleContext(0, FunctionExpressionContext); +export class ParenthesizedExpressionContext extends PrimaryExpressionContext { + constructor(parser: esql_parser, ctx: PrimaryExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - constructor(ctx: PrimaryExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public LP(): TerminalNode { + return this.getToken(esql_parser.LP, 0); + } + public booleanExpression(): BooleanExpressionContext { + return this.getTypedRuleContext(BooleanExpressionContext, 0) as BooleanExpressionContext; + } + public RP(): TerminalNode { + return this.getToken(esql_parser.RP, 0); } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterFunction) { - listener.enterFunction(this); + if(listener.enterParenthesizedExpression) { + listener.enterParenthesizedExpression(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitFunction) { - listener.exitFunction(this); + if(listener.exitParenthesizedExpression) { + listener.exitParenthesizedExpression(this); } } } -export class ParenthesizedExpressionContext extends PrimaryExpressionContext { - public LP(): TerminalNode { return this.getToken(esql_parser.LP, 0); } - public booleanExpression(): BooleanExpressionContext { - return this.getRuleContext(0, BooleanExpressionContext); +export class FunctionContext extends PrimaryExpressionContext { + constructor(parser: esql_parser, ctx: PrimaryExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - public RP(): TerminalNode { return this.getToken(esql_parser.RP, 0); } - constructor(ctx: PrimaryExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public functionExpression(): FunctionExpressionContext { + return this.getTypedRuleContext(FunctionExpressionContext, 0) as FunctionExpressionContext; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterParenthesizedExpression) { - listener.enterParenthesizedExpression(this); + if(listener.enterFunction) { + listener.enterFunction(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitParenthesizedExpression) { - listener.exitParenthesizedExpression(this); + if(listener.exitFunction) { + listener.exitFunction(this); } } } export class FunctionExpressionContext extends ParserRuleContext { - public identifier(): IdentifierContext { - return this.getRuleContext(0, IdentifierContext); - } - public LP(): TerminalNode { return this.getToken(esql_parser.LP, 0); } - public RP(): TerminalNode { return this.getToken(esql_parser.RP, 0); } - public ASTERISK(): TerminalNode | undefined { return this.tryGetToken(esql_parser.ASTERISK, 0); } - public booleanExpression(): BooleanExpressionContext[]; - public booleanExpression(i: number): BooleanExpressionContext; - public booleanExpression(i?: number): BooleanExpressionContext | BooleanExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(BooleanExpressionContext); - } else { - return this.getRuleContext(i, BooleanExpressionContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(esql_parser.COMMA); - } else { - return this.getToken(esql_parser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public identifier(): IdentifierContext { + return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext; + } + public LP(): TerminalNode { + return this.getToken(esql_parser.LP, 0); + } + public RP(): TerminalNode { + return this.getToken(esql_parser.RP, 0); + } + public ASTERISK(): TerminalNode { + return this.getToken(esql_parser.ASTERISK, 0); + } + public booleanExpression_list(): BooleanExpressionContext[] { + return this.getTypedRuleContexts(BooleanExpressionContext) as BooleanExpressionContext[]; + } + public booleanExpression(i: number): BooleanExpressionContext { + return this.getTypedRuleContext(BooleanExpressionContext, i) as BooleanExpressionContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(esql_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(esql_parser.COMMA, i); + } + public get ruleIndex(): number { + return esql_parser.RULE_functionExpression; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_functionExpression; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterFunctionExpression) { - listener.enterFunctionExpression(this); + if(listener.enterFunctionExpression) { + listener.enterFunctionExpression(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitFunctionExpression) { - listener.exitFunctionExpression(this); + if(listener.exitFunctionExpression) { + listener.exitFunctionExpression(this); } } } export class RowCommandContext extends ParserRuleContext { - public ROW(): TerminalNode { return this.getToken(esql_parser.ROW, 0); } + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public ROW(): TerminalNode { + return this.getToken(esql_parser.ROW, 0); + } public fields(): FieldsContext { - return this.getRuleContext(0, FieldsContext); + return this.getTypedRuleContext(FieldsContext, 0) as FieldsContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public get ruleIndex(): number { + return esql_parser.RULE_rowCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_rowCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterRowCommand) { - listener.enterRowCommand(this); + if(listener.enterRowCommand) { + listener.enterRowCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitRowCommand) { - listener.exitRowCommand(this); + if(listener.exitRowCommand) { + listener.exitRowCommand(this); } } } export class FieldsContext extends ParserRuleContext { - public field(): FieldContext[]; - public field(i: number): FieldContext; - public field(i?: number): FieldContext | FieldContext[] { - if (i === undefined) { - return this.getRuleContexts(FieldContext); - } else { - return this.getRuleContext(i, FieldContext); - } + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(esql_parser.COMMA); - } else { - return this.getToken(esql_parser.COMMA, i); - } + public field_list(): FieldContext[] { + return this.getTypedRuleContexts(FieldContext) as FieldContext[]; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public field(i: number): FieldContext { + return this.getTypedRuleContext(FieldContext, i) as FieldContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(esql_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(esql_parser.COMMA, i); + } + public get ruleIndex(): number { + return esql_parser.RULE_fields; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_fields; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterFields) { - listener.enterFields(this); + if(listener.enterFields) { + listener.enterFields(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitFields) { - listener.exitFields(this); + if(listener.exitFields) { + listener.exitFields(this); } } } export class FieldContext extends ParserRuleContext { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } public booleanExpression(): BooleanExpressionContext { - return this.getRuleContext(0, BooleanExpressionContext); + return this.getTypedRuleContext(BooleanExpressionContext, 0) as BooleanExpressionContext; + } + public qualifiedName(): QualifiedNameContext { + return this.getTypedRuleContext(QualifiedNameContext, 0) as QualifiedNameContext; } - public qualifiedName(): QualifiedNameContext | undefined { - return this.tryGetRuleContext(0, QualifiedNameContext); + public ASSIGN(): TerminalNode { + return this.getToken(esql_parser.ASSIGN, 0); } - public ASSIGN(): TerminalNode | undefined { return this.tryGetToken(esql_parser.ASSIGN, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public get ruleIndex(): number { + return esql_parser.RULE_field; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_field; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterField) { - listener.enterField(this); + if(listener.enterField) { + listener.enterField(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitField) { - listener.exitField(this); + if(listener.exitField) { + listener.exitField(this); } } } export class FromCommandContext extends ParserRuleContext { - public FROM(): TerminalNode { return this.getToken(esql_parser.FROM, 0); } - public fromIdentifier(): FromIdentifierContext[]; - public fromIdentifier(i: number): FromIdentifierContext; - public fromIdentifier(i?: number): FromIdentifierContext | FromIdentifierContext[] { - if (i === undefined) { - return this.getRuleContexts(FromIdentifierContext); - } else { - return this.getRuleContext(i, FromIdentifierContext); - } + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(esql_parser.COMMA); - } else { - return this.getToken(esql_parser.COMMA, i); - } + public FROM(): TerminalNode { + return this.getToken(esql_parser.FROM, 0); } - public metadata(): MetadataContext | undefined { - return this.tryGetRuleContext(0, MetadataContext); + public fromIdentifier_list(): FromIdentifierContext[] { + return this.getTypedRuleContexts(FromIdentifierContext) as FromIdentifierContext[]; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public fromIdentifier(i: number): FromIdentifierContext { + return this.getTypedRuleContext(FromIdentifierContext, i) as FromIdentifierContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(esql_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(esql_parser.COMMA, i); + } + public metadata(): MetadataContext { + return this.getTypedRuleContext(MetadataContext, 0) as MetadataContext; + } + public get ruleIndex(): number { + return esql_parser.RULE_fromCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_fromCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterFromCommand) { - listener.enterFromCommand(this); + if(listener.enterFromCommand) { + listener.enterFromCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitFromCommand) { - listener.exitFromCommand(this); + if(listener.exitFromCommand) { + listener.exitFromCommand(this); } } } export class MetadataContext extends ParserRuleContext { - public metadataOption(): MetadataOptionContext | undefined { - return this.tryGetRuleContext(0, MetadataOptionContext); + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; } - public deprecated_metadata(): Deprecated_metadataContext | undefined { - return this.tryGetRuleContext(0, Deprecated_metadataContext); + public metadataOption(): MetadataOptionContext { + return this.getTypedRuleContext(MetadataOptionContext, 0) as MetadataOptionContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public deprecated_metadata(): Deprecated_metadataContext { + return this.getTypedRuleContext(Deprecated_metadataContext, 0) as Deprecated_metadataContext; + } + public get ruleIndex(): number { + return esql_parser.RULE_metadata; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_metadata; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterMetadata) { - listener.enterMetadata(this); + if(listener.enterMetadata) { + listener.enterMetadata(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitMetadata) { - listener.exitMetadata(this); + if(listener.exitMetadata) { + listener.exitMetadata(this); } } } export class MetadataOptionContext extends ParserRuleContext { - public METADATA(): TerminalNode { return this.getToken(esql_parser.METADATA, 0); } - public fromIdentifier(): FromIdentifierContext[]; - public fromIdentifier(i: number): FromIdentifierContext; - public fromIdentifier(i?: number): FromIdentifierContext | FromIdentifierContext[] { - if (i === undefined) { - return this.getRuleContexts(FromIdentifierContext); - } else { - return this.getRuleContext(i, FromIdentifierContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(esql_parser.COMMA); - } else { - return this.getToken(esql_parser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public METADATA(): TerminalNode { + return this.getToken(esql_parser.METADATA, 0); + } + public fromIdentifier_list(): FromIdentifierContext[] { + return this.getTypedRuleContexts(FromIdentifierContext) as FromIdentifierContext[]; + } + public fromIdentifier(i: number): FromIdentifierContext { + return this.getTypedRuleContext(FromIdentifierContext, i) as FromIdentifierContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(esql_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(esql_parser.COMMA, i); + } + public get ruleIndex(): number { + return esql_parser.RULE_metadataOption; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_metadataOption; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterMetadataOption) { - listener.enterMetadataOption(this); + if(listener.enterMetadataOption) { + listener.enterMetadataOption(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitMetadataOption) { - listener.exitMetadataOption(this); + if(listener.exitMetadataOption) { + listener.exitMetadataOption(this); } } } export class Deprecated_metadataContext extends ParserRuleContext { - public OPENING_BRACKET(): TerminalNode { return this.getToken(esql_parser.OPENING_BRACKET, 0); } + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public OPENING_BRACKET(): TerminalNode { + return this.getToken(esql_parser.OPENING_BRACKET, 0); + } public metadataOption(): MetadataOptionContext { - return this.getRuleContext(0, MetadataOptionContext); + return this.getTypedRuleContext(MetadataOptionContext, 0) as MetadataOptionContext; } - public CLOSING_BRACKET(): TerminalNode { return this.getToken(esql_parser.CLOSING_BRACKET, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public CLOSING_BRACKET(): TerminalNode { + return this.getToken(esql_parser.CLOSING_BRACKET, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_deprecated_metadata; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_deprecated_metadata; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterDeprecated_metadata) { - listener.enterDeprecated_metadata(this); + if(listener.enterDeprecated_metadata) { + listener.enterDeprecated_metadata(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitDeprecated_metadata) { - listener.exitDeprecated_metadata(this); + if(listener.exitDeprecated_metadata) { + listener.exitDeprecated_metadata(this); } } } export class EvalCommandContext extends ParserRuleContext { - public EVAL(): TerminalNode { return this.getToken(esql_parser.EVAL, 0); } + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public EVAL(): TerminalNode { + return this.getToken(esql_parser.EVAL, 0); + } public fields(): FieldsContext { - return this.getRuleContext(0, FieldsContext); + return this.getTypedRuleContext(FieldsContext, 0) as FieldsContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public get ruleIndex(): number { + return esql_parser.RULE_evalCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_evalCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterEvalCommand) { - listener.enterEvalCommand(this); + if(listener.enterEvalCommand) { + listener.enterEvalCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitEvalCommand) { - listener.exitEvalCommand(this); + if(listener.exitEvalCommand) { + listener.exitEvalCommand(this); } } } export class StatsCommandContext extends ParserRuleContext { - public _stats: FieldsContext; - public _grouping: FieldsContext; - public STATS(): TerminalNode { return this.getToken(esql_parser.STATS, 0); } - public BY(): TerminalNode | undefined { return this.tryGetToken(esql_parser.BY, 0); } - public fields(): FieldsContext[]; - public fields(i: number): FieldsContext; - public fields(i?: number): FieldsContext | FieldsContext[] { - if (i === undefined) { - return this.getRuleContexts(FieldsContext); - } else { - return this.getRuleContext(i, FieldsContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + public _stats!: FieldsContext; + public _grouping!: FieldsContext; + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public STATS(): TerminalNode { + return this.getToken(esql_parser.STATS, 0); + } + public BY(): TerminalNode { + return this.getToken(esql_parser.BY, 0); + } + public fields_list(): FieldsContext[] { + return this.getTypedRuleContexts(FieldsContext) as FieldsContext[]; + } + public fields(i: number): FieldsContext { + return this.getTypedRuleContext(FieldsContext, i) as FieldsContext; + } + public get ruleIndex(): number { + return esql_parser.RULE_statsCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_statsCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterStatsCommand) { - listener.enterStatsCommand(this); + if(listener.enterStatsCommand) { + listener.enterStatsCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitStatsCommand) { - listener.exitStatsCommand(this); + if(listener.exitStatsCommand) { + listener.exitStatsCommand(this); } } } export class InlinestatsCommandContext extends ParserRuleContext { - public _stats: FieldsContext; - public _grouping: FieldsContext; - public INLINESTATS(): TerminalNode { return this.getToken(esql_parser.INLINESTATS, 0); } - public fields(): FieldsContext[]; - public fields(i: number): FieldsContext; - public fields(i?: number): FieldsContext | FieldsContext[] { - if (i === undefined) { - return this.getRuleContexts(FieldsContext); - } else { - return this.getRuleContext(i, FieldsContext); - } - } - public BY(): TerminalNode | undefined { return this.tryGetToken(esql_parser.BY, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + public _stats!: FieldsContext; + public _grouping!: FieldsContext; + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public INLINESTATS(): TerminalNode { + return this.getToken(esql_parser.INLINESTATS, 0); + } + public fields_list(): FieldsContext[] { + return this.getTypedRuleContexts(FieldsContext) as FieldsContext[]; + } + public fields(i: number): FieldsContext { + return this.getTypedRuleContext(FieldsContext, i) as FieldsContext; + } + public BY(): TerminalNode { + return this.getToken(esql_parser.BY, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_inlinestatsCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_inlinestatsCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterInlinestatsCommand) { - listener.enterInlinestatsCommand(this); + if(listener.enterInlinestatsCommand) { + listener.enterInlinestatsCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitInlinestatsCommand) { - listener.exitInlinestatsCommand(this); + if(listener.exitInlinestatsCommand) { + listener.exitInlinestatsCommand(this); } } } export class FromIdentifierContext extends ParserRuleContext { - public FROM_UNQUOTED_IDENTIFIER(): TerminalNode | undefined { return this.tryGetToken(esql_parser.FROM_UNQUOTED_IDENTIFIER, 0); } - public QUOTED_IDENTIFIER(): TerminalNode | undefined { return this.tryGetToken(esql_parser.QUOTED_IDENTIFIER, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public FROM_UNQUOTED_IDENTIFIER(): TerminalNode { + return this.getToken(esql_parser.FROM_UNQUOTED_IDENTIFIER, 0); + } + public QUOTED_IDENTIFIER(): TerminalNode { + return this.getToken(esql_parser.QUOTED_IDENTIFIER, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_fromIdentifier; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_fromIdentifier; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterFromIdentifier) { - listener.enterFromIdentifier(this); + if(listener.enterFromIdentifier) { + listener.enterFromIdentifier(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitFromIdentifier) { - listener.exitFromIdentifier(this); + if(listener.exitFromIdentifier) { + listener.exitFromIdentifier(this); } } } export class QualifiedNameContext extends ParserRuleContext { - public identifier(): IdentifierContext[]; - public identifier(i: number): IdentifierContext; - public identifier(i?: number): IdentifierContext | IdentifierContext[] { - if (i === undefined) { - return this.getRuleContexts(IdentifierContext); - } else { - return this.getRuleContext(i, IdentifierContext); - } + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; } - public DOT(): TerminalNode[]; - public DOT(i: number): TerminalNode; - public DOT(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(esql_parser.DOT); - } else { - return this.getToken(esql_parser.DOT, i); - } + public identifier_list(): IdentifierContext[] { + return this.getTypedRuleContexts(IdentifierContext) as IdentifierContext[]; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public identifier(i: number): IdentifierContext { + return this.getTypedRuleContext(IdentifierContext, i) as IdentifierContext; + } + public DOT_list(): TerminalNode[] { + return this.getTokens(esql_parser.DOT); + } + public DOT(i: number): TerminalNode { + return this.getToken(esql_parser.DOT, i); + } + public get ruleIndex(): number { + return esql_parser.RULE_qualifiedName; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_qualifiedName; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterQualifiedName) { - listener.enterQualifiedName(this); + if(listener.enterQualifiedName) { + listener.enterQualifiedName(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitQualifiedName) { - listener.exitQualifiedName(this); + if(listener.exitQualifiedName) { + listener.exitQualifiedName(this); } } } export class QualifiedNamePatternContext extends ParserRuleContext { - public identifierPattern(): IdentifierPatternContext[]; - public identifierPattern(i: number): IdentifierPatternContext; - public identifierPattern(i?: number): IdentifierPatternContext | IdentifierPatternContext[] { - if (i === undefined) { - return this.getRuleContexts(IdentifierPatternContext); - } else { - return this.getRuleContext(i, IdentifierPatternContext); - } + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; } - public DOT(): TerminalNode[]; - public DOT(i: number): TerminalNode; - public DOT(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(esql_parser.DOT); - } else { - return this.getToken(esql_parser.DOT, i); - } + public identifierPattern_list(): IdentifierPatternContext[] { + return this.getTypedRuleContexts(IdentifierPatternContext) as IdentifierPatternContext[]; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public identifierPattern(i: number): IdentifierPatternContext { + return this.getTypedRuleContext(IdentifierPatternContext, i) as IdentifierPatternContext; + } + public DOT_list(): TerminalNode[] { + return this.getTokens(esql_parser.DOT); + } + public DOT(i: number): TerminalNode { + return this.getToken(esql_parser.DOT, i); + } + public get ruleIndex(): number { + return esql_parser.RULE_qualifiedNamePattern; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_qualifiedNamePattern; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterQualifiedNamePattern) { - listener.enterQualifiedNamePattern(this); + if(listener.enterQualifiedNamePattern) { + listener.enterQualifiedNamePattern(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitQualifiedNamePattern) { - listener.exitQualifiedNamePattern(this); + if(listener.exitQualifiedNamePattern) { + listener.exitQualifiedNamePattern(this); } } } export class IdentifierContext extends ParserRuleContext { - public UNQUOTED_IDENTIFIER(): TerminalNode | undefined { return this.tryGetToken(esql_parser.UNQUOTED_IDENTIFIER, 0); } - public QUOTED_IDENTIFIER(): TerminalNode | undefined { return this.tryGetToken(esql_parser.QUOTED_IDENTIFIER, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public UNQUOTED_IDENTIFIER(): TerminalNode { + return this.getToken(esql_parser.UNQUOTED_IDENTIFIER, 0); + } + public QUOTED_IDENTIFIER(): TerminalNode { + return this.getToken(esql_parser.QUOTED_IDENTIFIER, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_identifier; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_identifier; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterIdentifier) { - listener.enterIdentifier(this); + if(listener.enterIdentifier) { + listener.enterIdentifier(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitIdentifier) { - listener.exitIdentifier(this); + if(listener.exitIdentifier) { + listener.exitIdentifier(this); } } } export class IdentifierPatternContext extends ParserRuleContext { - public ID_PATTERN(): TerminalNode { return this.getToken(esql_parser.ID_PATTERN, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public ID_PATTERN(): TerminalNode { + return this.getToken(esql_parser.ID_PATTERN, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_identifierPattern; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_identifierPattern; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterIdentifierPattern) { - listener.enterIdentifierPattern(this); + if(listener.enterIdentifierPattern) { + listener.enterIdentifierPattern(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitIdentifierPattern) { - listener.exitIdentifierPattern(this); + if(listener.exitIdentifierPattern) { + listener.exitIdentifierPattern(this); } } } export class IdPatternContext extends ParserRuleContext { - public UNQUOTED_ID_PATTERN(): TerminalNode | undefined { return this.tryGetToken(esql_parser.UNQUOTED_ID_PATTERN, 0); } - public QUOTED_IDENTIFIER(): TerminalNode | undefined { return this.tryGetToken(esql_parser.QUOTED_IDENTIFIER, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public UNQUOTED_ID_PATTERN(): TerminalNode { + return this.getToken(esql_parser.UNQUOTED_ID_PATTERN, 0); + } + public QUOTED_IDENTIFIER(): TerminalNode { + return this.getToken(esql_parser.QUOTED_IDENTIFIER, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_idPattern; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_idPattern; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterIdPattern) { - listener.enterIdPattern(this); + if(listener.enterIdPattern) { + listener.enterIdPattern(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitIdPattern) { - listener.exitIdPattern(this); + if(listener.exitIdPattern) { + listener.exitIdPattern(this); } } } export class ConstantContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return esql_parser.RULE_constant; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_constant; } public copyFrom(ctx: ConstantContext): void { super.copyFrom(ctx); } } -export class NullLiteralContext extends ConstantContext { - public NULL(): TerminalNode { return this.getToken(esql_parser.NULL, 0); } - constructor(ctx: ConstantContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); +export class BooleanArrayLiteralContext extends ConstantContext { + constructor(parser: esql_parser, ctx: ConstantContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public OPENING_BRACKET(): TerminalNode { + return this.getToken(esql_parser.OPENING_BRACKET, 0); + } + public booleanValue_list(): BooleanValueContext[] { + return this.getTypedRuleContexts(BooleanValueContext) as BooleanValueContext[]; + } + public booleanValue(i: number): BooleanValueContext { + return this.getTypedRuleContext(BooleanValueContext, i) as BooleanValueContext; + } + public CLOSING_BRACKET(): TerminalNode { + return this.getToken(esql_parser.CLOSING_BRACKET, 0); + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(esql_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(esql_parser.COMMA, i); } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterNullLiteral) { - listener.enterNullLiteral(this); + if(listener.enterBooleanArrayLiteral) { + listener.enterBooleanArrayLiteral(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitNullLiteral) { - listener.exitNullLiteral(this); + if(listener.exitBooleanArrayLiteral) { + listener.exitBooleanArrayLiteral(this); } } } -export class QualifiedIntegerLiteralContext extends ConstantContext { - public integerValue(): IntegerValueContext { - return this.getRuleContext(0, IntegerValueContext); +export class DecimalLiteralContext extends ConstantContext { + constructor(parser: esql_parser, ctx: ConstantContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - public UNQUOTED_IDENTIFIER(): TerminalNode { return this.getToken(esql_parser.UNQUOTED_IDENTIFIER, 0); } - constructor(ctx: ConstantContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public decimalValue(): DecimalValueContext { + return this.getTypedRuleContext(DecimalValueContext, 0) as DecimalValueContext; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterQualifiedIntegerLiteral) { - listener.enterQualifiedIntegerLiteral(this); + if(listener.enterDecimalLiteral) { + listener.enterDecimalLiteral(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitQualifiedIntegerLiteral) { - listener.exitQualifiedIntegerLiteral(this); + if(listener.exitDecimalLiteral) { + listener.exitDecimalLiteral(this); } } } -export class DecimalLiteralContext extends ConstantContext { - public decimalValue(): DecimalValueContext { - return this.getRuleContext(0, DecimalValueContext); +export class NullLiteralContext extends ConstantContext { + constructor(parser: esql_parser, ctx: ConstantContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - constructor(ctx: ConstantContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public NULL(): TerminalNode { + return this.getToken(esql_parser.NULL, 0); } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterDecimalLiteral) { - listener.enterDecimalLiteral(this); + if(listener.enterNullLiteral) { + listener.enterNullLiteral(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitDecimalLiteral) { - listener.exitDecimalLiteral(this); + if(listener.exitNullLiteral) { + listener.exitNullLiteral(this); } } } -export class IntegerLiteralContext extends ConstantContext { +export class QualifiedIntegerLiteralContext extends ConstantContext { + constructor(parser: esql_parser, ctx: ConstantContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } public integerValue(): IntegerValueContext { - return this.getRuleContext(0, IntegerValueContext); + return this.getTypedRuleContext(IntegerValueContext, 0) as IntegerValueContext; } - constructor(ctx: ConstantContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public UNQUOTED_IDENTIFIER(): TerminalNode { + return this.getToken(esql_parser.UNQUOTED_IDENTIFIER, 0); } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterIntegerLiteral) { - listener.enterIntegerLiteral(this); + if(listener.enterQualifiedIntegerLiteral) { + listener.enterQualifiedIntegerLiteral(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitIntegerLiteral) { - listener.exitIntegerLiteral(this); + if(listener.exitQualifiedIntegerLiteral) { + listener.exitQualifiedIntegerLiteral(this); } } } -export class BooleanLiteralContext extends ConstantContext { - public booleanValue(): BooleanValueContext { - return this.getRuleContext(0, BooleanValueContext); +export class StringArrayLiteralContext extends ConstantContext { + constructor(parser: esql_parser, ctx: ConstantContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public OPENING_BRACKET(): TerminalNode { + return this.getToken(esql_parser.OPENING_BRACKET, 0); + } + public string__list(): StringContext[] { + return this.getTypedRuleContexts(StringContext) as StringContext[]; + } + public string_(i: number): StringContext { + return this.getTypedRuleContext(StringContext, i) as StringContext; + } + public CLOSING_BRACKET(): TerminalNode { + return this.getToken(esql_parser.CLOSING_BRACKET, 0); + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(esql_parser.COMMA); } - constructor(ctx: ConstantContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public COMMA(i: number): TerminalNode { + return this.getToken(esql_parser.COMMA, i); } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterBooleanLiteral) { - listener.enterBooleanLiteral(this); + if(listener.enterStringArrayLiteral) { + listener.enterStringArrayLiteral(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitBooleanLiteral) { - listener.exitBooleanLiteral(this); + if(listener.exitStringArrayLiteral) { + listener.exitStringArrayLiteral(this); } } } -export class InputParamContext extends ConstantContext { - public PARAM(): TerminalNode { return this.getToken(esql_parser.PARAM, 0); } - constructor(ctx: ConstantContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); +export class StringLiteralContext extends ConstantContext { + constructor(parser: esql_parser, ctx: ConstantContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public string_(): StringContext { + return this.getTypedRuleContext(StringContext, 0) as StringContext; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterInputParam) { - listener.enterInputParam(this); + if(listener.enterStringLiteral) { + listener.enterStringLiteral(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitInputParam) { - listener.exitInputParam(this); + if(listener.exitStringLiteral) { + listener.exitStringLiteral(this); } } } -export class StringLiteralContext extends ConstantContext { - public string(): StringContext { - return this.getRuleContext(0, StringContext); +export class NumericArrayLiteralContext extends ConstantContext { + constructor(parser: esql_parser, ctx: ConstantContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public OPENING_BRACKET(): TerminalNode { + return this.getToken(esql_parser.OPENING_BRACKET, 0); } - constructor(ctx: ConstantContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public numericValue_list(): NumericValueContext[] { + return this.getTypedRuleContexts(NumericValueContext) as NumericValueContext[]; + } + public numericValue(i: number): NumericValueContext { + return this.getTypedRuleContext(NumericValueContext, i) as NumericValueContext; + } + public CLOSING_BRACKET(): TerminalNode { + return this.getToken(esql_parser.CLOSING_BRACKET, 0); + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(esql_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(esql_parser.COMMA, i); } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterStringLiteral) { - listener.enterStringLiteral(this); + if(listener.enterNumericArrayLiteral) { + listener.enterNumericArrayLiteral(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitStringLiteral) { - listener.exitStringLiteral(this); + if(listener.exitNumericArrayLiteral) { + listener.exitNumericArrayLiteral(this); } } } -export class NumericArrayLiteralContext extends ConstantContext { - public OPENING_BRACKET(): TerminalNode { return this.getToken(esql_parser.OPENING_BRACKET, 0); } - public numericValue(): NumericValueContext[]; - public numericValue(i: number): NumericValueContext; - public numericValue(i?: number): NumericValueContext | NumericValueContext[] { - if (i === undefined) { - return this.getRuleContexts(NumericValueContext); - } else { - return this.getRuleContext(i, NumericValueContext); - } - } - public CLOSING_BRACKET(): TerminalNode { return this.getToken(esql_parser.CLOSING_BRACKET, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(esql_parser.COMMA); - } else { - return this.getToken(esql_parser.COMMA, i); - } - } - constructor(ctx: ConstantContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override +export class InputParamContext extends ConstantContext { + constructor(parser: esql_parser, ctx: ConstantContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public PARAM(): TerminalNode { + return this.getToken(esql_parser.PARAM, 0); + } public enterRule(listener: esql_parserListener): void { - if (listener.enterNumericArrayLiteral) { - listener.enterNumericArrayLiteral(this); + if(listener.enterInputParam) { + listener.enterInputParam(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitNumericArrayLiteral) { - listener.exitNumericArrayLiteral(this); + if(listener.exitInputParam) { + listener.exitInputParam(this); } } } -export class BooleanArrayLiteralContext extends ConstantContext { - public OPENING_BRACKET(): TerminalNode { return this.getToken(esql_parser.OPENING_BRACKET, 0); } - public booleanValue(): BooleanValueContext[]; - public booleanValue(i: number): BooleanValueContext; - public booleanValue(i?: number): BooleanValueContext | BooleanValueContext[] { - if (i === undefined) { - return this.getRuleContexts(BooleanValueContext); - } else { - return this.getRuleContext(i, BooleanValueContext); - } - } - public CLOSING_BRACKET(): TerminalNode { return this.getToken(esql_parser.CLOSING_BRACKET, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(esql_parser.COMMA); - } else { - return this.getToken(esql_parser.COMMA, i); - } - } - constructor(ctx: ConstantContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override +export class IntegerLiteralContext extends ConstantContext { + constructor(parser: esql_parser, ctx: ConstantContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public integerValue(): IntegerValueContext { + return this.getTypedRuleContext(IntegerValueContext, 0) as IntegerValueContext; + } public enterRule(listener: esql_parserListener): void { - if (listener.enterBooleanArrayLiteral) { - listener.enterBooleanArrayLiteral(this); + if(listener.enterIntegerLiteral) { + listener.enterIntegerLiteral(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitBooleanArrayLiteral) { - listener.exitBooleanArrayLiteral(this); + if(listener.exitIntegerLiteral) { + listener.exitIntegerLiteral(this); } } } -export class StringArrayLiteralContext extends ConstantContext { - public OPENING_BRACKET(): TerminalNode { return this.getToken(esql_parser.OPENING_BRACKET, 0); } - public string(): StringContext[]; - public string(i: number): StringContext; - public string(i?: number): StringContext | StringContext[] { - if (i === undefined) { - return this.getRuleContexts(StringContext); - } else { - return this.getRuleContext(i, StringContext); - } - } - public CLOSING_BRACKET(): TerminalNode { return this.getToken(esql_parser.CLOSING_BRACKET, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(esql_parser.COMMA); - } else { - return this.getToken(esql_parser.COMMA, i); - } - } - constructor(ctx: ConstantContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override +export class BooleanLiteralContext extends ConstantContext { + constructor(parser: esql_parser, ctx: ConstantContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public booleanValue(): BooleanValueContext { + return this.getTypedRuleContext(BooleanValueContext, 0) as BooleanValueContext; + } public enterRule(listener: esql_parserListener): void { - if (listener.enterStringArrayLiteral) { - listener.enterStringArrayLiteral(this); + if(listener.enterBooleanLiteral) { + listener.enterBooleanLiteral(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitStringArrayLiteral) { - listener.exitStringArrayLiteral(this); + if(listener.exitBooleanLiteral) { + listener.exitBooleanLiteral(this); } } } export class LimitCommandContext extends ParserRuleContext { - public LIMIT(): TerminalNode { return this.getToken(esql_parser.LIMIT, 0); } - public INTEGER_LITERAL(): TerminalNode { return this.getToken(esql_parser.INTEGER_LITERAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public LIMIT(): TerminalNode { + return this.getToken(esql_parser.LIMIT, 0); + } + public INTEGER_LITERAL(): TerminalNode { + return this.getToken(esql_parser.INTEGER_LITERAL, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_limitCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_limitCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterLimitCommand) { - listener.enterLimitCommand(this); + if(listener.enterLimitCommand) { + listener.enterLimitCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitLimitCommand) { - listener.exitLimitCommand(this); + if(listener.exitLimitCommand) { + listener.exitLimitCommand(this); } } } export class SortCommandContext extends ParserRuleContext { - public SORT(): TerminalNode { return this.getToken(esql_parser.SORT, 0); } - public orderExpression(): OrderExpressionContext[]; - public orderExpression(i: number): OrderExpressionContext; - public orderExpression(i?: number): OrderExpressionContext | OrderExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(OrderExpressionContext); - } else { - return this.getRuleContext(i, OrderExpressionContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(esql_parser.COMMA); - } else { - return this.getToken(esql_parser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public SORT(): TerminalNode { + return this.getToken(esql_parser.SORT, 0); + } + public orderExpression_list(): OrderExpressionContext[] { + return this.getTypedRuleContexts(OrderExpressionContext) as OrderExpressionContext[]; + } + public orderExpression(i: number): OrderExpressionContext { + return this.getTypedRuleContext(OrderExpressionContext, i) as OrderExpressionContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(esql_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(esql_parser.COMMA, i); + } + public get ruleIndex(): number { + return esql_parser.RULE_sortCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_sortCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterSortCommand) { - listener.enterSortCommand(this); + if(listener.enterSortCommand) { + listener.enterSortCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitSortCommand) { - listener.exitSortCommand(this); + if(listener.exitSortCommand) { + listener.exitSortCommand(this); } } } export class OrderExpressionContext extends ParserRuleContext { - public _ordering: Token; - public _nullOrdering: Token; - public booleanExpression(): BooleanExpressionContext { - return this.getRuleContext(0, BooleanExpressionContext); - } - public NULLS(): TerminalNode | undefined { return this.tryGetToken(esql_parser.NULLS, 0); } - public ASC(): TerminalNode | undefined { return this.tryGetToken(esql_parser.ASC, 0); } - public DESC(): TerminalNode | undefined { return this.tryGetToken(esql_parser.DESC, 0); } - public FIRST(): TerminalNode | undefined { return this.tryGetToken(esql_parser.FIRST, 0); } - public LAST(): TerminalNode | undefined { return this.tryGetToken(esql_parser.LAST, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + public _ordering!: Token; + public _nullOrdering!: Token; + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public booleanExpression(): BooleanExpressionContext { + return this.getTypedRuleContext(BooleanExpressionContext, 0) as BooleanExpressionContext; + } + public NULLS(): TerminalNode { + return this.getToken(esql_parser.NULLS, 0); + } + public ASC(): TerminalNode { + return this.getToken(esql_parser.ASC, 0); + } + public DESC(): TerminalNode { + return this.getToken(esql_parser.DESC, 0); + } + public FIRST(): TerminalNode { + return this.getToken(esql_parser.FIRST, 0); + } + public LAST(): TerminalNode { + return this.getToken(esql_parser.LAST, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_orderExpression; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_orderExpression; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterOrderExpression) { - listener.enterOrderExpression(this); + if(listener.enterOrderExpression) { + listener.enterOrderExpression(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitOrderExpression) { - listener.exitOrderExpression(this); + if(listener.exitOrderExpression) { + listener.exitOrderExpression(this); } } } export class KeepCommandContext extends ParserRuleContext { - public KEEP(): TerminalNode { return this.getToken(esql_parser.KEEP, 0); } - public qualifiedNamePattern(): QualifiedNamePatternContext[]; - public qualifiedNamePattern(i: number): QualifiedNamePatternContext; - public qualifiedNamePattern(i?: number): QualifiedNamePatternContext | QualifiedNamePatternContext[] { - if (i === undefined) { - return this.getRuleContexts(QualifiedNamePatternContext); - } else { - return this.getRuleContext(i, QualifiedNamePatternContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(esql_parser.COMMA); - } else { - return this.getToken(esql_parser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public KEEP(): TerminalNode { + return this.getToken(esql_parser.KEEP, 0); + } + public qualifiedNamePattern_list(): QualifiedNamePatternContext[] { + return this.getTypedRuleContexts(QualifiedNamePatternContext) as QualifiedNamePatternContext[]; + } + public qualifiedNamePattern(i: number): QualifiedNamePatternContext { + return this.getTypedRuleContext(QualifiedNamePatternContext, i) as QualifiedNamePatternContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(esql_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(esql_parser.COMMA, i); + } + public get ruleIndex(): number { + return esql_parser.RULE_keepCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_keepCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterKeepCommand) { - listener.enterKeepCommand(this); + if(listener.enterKeepCommand) { + listener.enterKeepCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitKeepCommand) { - listener.exitKeepCommand(this); + if(listener.exitKeepCommand) { + listener.exitKeepCommand(this); } } } export class DropCommandContext extends ParserRuleContext { - public DROP(): TerminalNode { return this.getToken(esql_parser.DROP, 0); } - public qualifiedNamePattern(): QualifiedNamePatternContext[]; - public qualifiedNamePattern(i: number): QualifiedNamePatternContext; - public qualifiedNamePattern(i?: number): QualifiedNamePatternContext | QualifiedNamePatternContext[] { - if (i === undefined) { - return this.getRuleContexts(QualifiedNamePatternContext); - } else { - return this.getRuleContext(i, QualifiedNamePatternContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(esql_parser.COMMA); - } else { - return this.getToken(esql_parser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public DROP(): TerminalNode { + return this.getToken(esql_parser.DROP, 0); + } + public qualifiedNamePattern_list(): QualifiedNamePatternContext[] { + return this.getTypedRuleContexts(QualifiedNamePatternContext) as QualifiedNamePatternContext[]; + } + public qualifiedNamePattern(i: number): QualifiedNamePatternContext { + return this.getTypedRuleContext(QualifiedNamePatternContext, i) as QualifiedNamePatternContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(esql_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(esql_parser.COMMA, i); + } + public get ruleIndex(): number { + return esql_parser.RULE_dropCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_dropCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterDropCommand) { - listener.enterDropCommand(this); + if(listener.enterDropCommand) { + listener.enterDropCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitDropCommand) { - listener.exitDropCommand(this); + if(listener.exitDropCommand) { + listener.exitDropCommand(this); } } } export class RenameCommandContext extends ParserRuleContext { - public RENAME(): TerminalNode { return this.getToken(esql_parser.RENAME, 0); } - public renameClause(): RenameClauseContext[]; - public renameClause(i: number): RenameClauseContext; - public renameClause(i?: number): RenameClauseContext | RenameClauseContext[] { - if (i === undefined) { - return this.getRuleContexts(RenameClauseContext); - } else { - return this.getRuleContext(i, RenameClauseContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(esql_parser.COMMA); - } else { - return this.getToken(esql_parser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public RENAME(): TerminalNode { + return this.getToken(esql_parser.RENAME, 0); + } + public renameClause_list(): RenameClauseContext[] { + return this.getTypedRuleContexts(RenameClauseContext) as RenameClauseContext[]; + } + public renameClause(i: number): RenameClauseContext { + return this.getTypedRuleContext(RenameClauseContext, i) as RenameClauseContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(esql_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(esql_parser.COMMA, i); + } + public get ruleIndex(): number { + return esql_parser.RULE_renameCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_renameCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterRenameCommand) { - listener.enterRenameCommand(this); + if(listener.enterRenameCommand) { + listener.enterRenameCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitRenameCommand) { - listener.exitRenameCommand(this); + if(listener.exitRenameCommand) { + listener.exitRenameCommand(this); } } } export class RenameClauseContext extends ParserRuleContext { - public _oldName: QualifiedNamePatternContext; - public _newName: QualifiedNamePatternContext; - public AS(): TerminalNode { return this.getToken(esql_parser.AS, 0); } - public qualifiedNamePattern(): QualifiedNamePatternContext[]; - public qualifiedNamePattern(i: number): QualifiedNamePatternContext; - public qualifiedNamePattern(i?: number): QualifiedNamePatternContext | QualifiedNamePatternContext[] { - if (i === undefined) { - return this.getRuleContexts(QualifiedNamePatternContext); - } else { - return this.getRuleContext(i, QualifiedNamePatternContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + public _oldName!: QualifiedNamePatternContext; + public _newName!: QualifiedNamePatternContext; + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public AS(): TerminalNode { + return this.getToken(esql_parser.AS, 0); + } + public qualifiedNamePattern_list(): QualifiedNamePatternContext[] { + return this.getTypedRuleContexts(QualifiedNamePatternContext) as QualifiedNamePatternContext[]; + } + public qualifiedNamePattern(i: number): QualifiedNamePatternContext { + return this.getTypedRuleContext(QualifiedNamePatternContext, i) as QualifiedNamePatternContext; + } + public get ruleIndex(): number { + return esql_parser.RULE_renameClause; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_renameClause; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterRenameClause) { - listener.enterRenameClause(this); + if(listener.enterRenameClause) { + listener.enterRenameClause(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitRenameClause) { - listener.exitRenameClause(this); + if(listener.exitRenameClause) { + listener.exitRenameClause(this); } } } export class DissectCommandContext extends ParserRuleContext { - public DISSECT(): TerminalNode { return this.getToken(esql_parser.DISSECT, 0); } + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public DISSECT(): TerminalNode { + return this.getToken(esql_parser.DISSECT, 0); + } public primaryExpression(): PrimaryExpressionContext { - return this.getRuleContext(0, PrimaryExpressionContext); + return this.getTypedRuleContext(PrimaryExpressionContext, 0) as PrimaryExpressionContext; } - public string(): StringContext { - return this.getRuleContext(0, StringContext); + public string_(): StringContext { + return this.getTypedRuleContext(StringContext, 0) as StringContext; } - public commandOptions(): CommandOptionsContext | undefined { - return this.tryGetRuleContext(0, CommandOptionsContext); + public commandOptions(): CommandOptionsContext { + return this.getTypedRuleContext(CommandOptionsContext, 0) as CommandOptionsContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public get ruleIndex(): number { + return esql_parser.RULE_dissectCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_dissectCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterDissectCommand) { - listener.enterDissectCommand(this); + if(listener.enterDissectCommand) { + listener.enterDissectCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitDissectCommand) { - listener.exitDissectCommand(this); + if(listener.exitDissectCommand) { + listener.exitDissectCommand(this); } } } export class GrokCommandContext extends ParserRuleContext { - public GROK(): TerminalNode { return this.getToken(esql_parser.GROK, 0); } + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public GROK(): TerminalNode { + return this.getToken(esql_parser.GROK, 0); + } public primaryExpression(): PrimaryExpressionContext { - return this.getRuleContext(0, PrimaryExpressionContext); + return this.getTypedRuleContext(PrimaryExpressionContext, 0) as PrimaryExpressionContext; } - public string(): StringContext { - return this.getRuleContext(0, StringContext); + public string_(): StringContext { + return this.getTypedRuleContext(StringContext, 0) as StringContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public get ruleIndex(): number { + return esql_parser.RULE_grokCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_grokCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterGrokCommand) { - listener.enterGrokCommand(this); + if(listener.enterGrokCommand) { + listener.enterGrokCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitGrokCommand) { - listener.exitGrokCommand(this); + if(listener.exitGrokCommand) { + listener.exitGrokCommand(this); } } } export class MvExpandCommandContext extends ParserRuleContext { - public MV_EXPAND(): TerminalNode { return this.getToken(esql_parser.MV_EXPAND, 0); } + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public MV_EXPAND(): TerminalNode { + return this.getToken(esql_parser.MV_EXPAND, 0); + } public qualifiedName(): QualifiedNameContext { - return this.getRuleContext(0, QualifiedNameContext); + return this.getTypedRuleContext(QualifiedNameContext, 0) as QualifiedNameContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public get ruleIndex(): number { + return esql_parser.RULE_mvExpandCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_mvExpandCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterMvExpandCommand) { - listener.enterMvExpandCommand(this); + if(listener.enterMvExpandCommand) { + listener.enterMvExpandCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitMvExpandCommand) { - listener.exitMvExpandCommand(this); + if(listener.exitMvExpandCommand) { + listener.exitMvExpandCommand(this); } } } export class CommandOptionsContext extends ParserRuleContext { - public commandOption(): CommandOptionContext[]; - public commandOption(i: number): CommandOptionContext; - public commandOption(i?: number): CommandOptionContext | CommandOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(CommandOptionContext); - } else { - return this.getRuleContext(i, CommandOptionContext); - } + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(esql_parser.COMMA); - } else { - return this.getToken(esql_parser.COMMA, i); - } + public commandOption_list(): CommandOptionContext[] { + return this.getTypedRuleContexts(CommandOptionContext) as CommandOptionContext[]; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public commandOption(i: number): CommandOptionContext { + return this.getTypedRuleContext(CommandOptionContext, i) as CommandOptionContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(esql_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(esql_parser.COMMA, i); + } + public get ruleIndex(): number { + return esql_parser.RULE_commandOptions; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_commandOptions; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterCommandOptions) { - listener.enterCommandOptions(this); + if(listener.enterCommandOptions) { + listener.enterCommandOptions(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitCommandOptions) { - listener.exitCommandOptions(this); + if(listener.exitCommandOptions) { + listener.exitCommandOptions(this); } } } export class CommandOptionContext extends ParserRuleContext { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } public identifier(): IdentifierContext { - return this.getRuleContext(0, IdentifierContext); + return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext; + } + public ASSIGN(): TerminalNode { + return this.getToken(esql_parser.ASSIGN, 0); } - public ASSIGN(): TerminalNode { return this.getToken(esql_parser.ASSIGN, 0); } public constant(): ConstantContext { - return this.getRuleContext(0, ConstantContext); + return this.getTypedRuleContext(ConstantContext, 0) as ConstantContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public get ruleIndex(): number { + return esql_parser.RULE_commandOption; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_commandOption; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterCommandOption) { - listener.enterCommandOption(this); + if(listener.enterCommandOption) { + listener.enterCommandOption(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitCommandOption) { - listener.exitCommandOption(this); + if(listener.exitCommandOption) { + listener.exitCommandOption(this); } } } export class BooleanValueContext extends ParserRuleContext { - public TRUE(): TerminalNode | undefined { return this.tryGetToken(esql_parser.TRUE, 0); } - public FALSE(): TerminalNode | undefined { return this.tryGetToken(esql_parser.FALSE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public TRUE(): TerminalNode { + return this.getToken(esql_parser.TRUE, 0); + } + public FALSE(): TerminalNode { + return this.getToken(esql_parser.FALSE, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_booleanValue; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_booleanValue; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterBooleanValue) { - listener.enterBooleanValue(this); + if(listener.enterBooleanValue) { + listener.enterBooleanValue(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitBooleanValue) { - listener.exitBooleanValue(this); + if(listener.exitBooleanValue) { + listener.exitBooleanValue(this); } } } export class NumericValueContext extends ParserRuleContext { - public decimalValue(): DecimalValueContext | undefined { - return this.tryGetRuleContext(0, DecimalValueContext); + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; } - public integerValue(): IntegerValueContext | undefined { - return this.tryGetRuleContext(0, IntegerValueContext); + public decimalValue(): DecimalValueContext { + return this.getTypedRuleContext(DecimalValueContext, 0) as DecimalValueContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public integerValue(): IntegerValueContext { + return this.getTypedRuleContext(IntegerValueContext, 0) as IntegerValueContext; + } + public get ruleIndex(): number { + return esql_parser.RULE_numericValue; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_numericValue; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterNumericValue) { - listener.enterNumericValue(this); + if(listener.enterNumericValue) { + listener.enterNumericValue(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitNumericValue) { - listener.exitNumericValue(this); + if(listener.exitNumericValue) { + listener.exitNumericValue(this); } } } export class DecimalValueContext extends ParserRuleContext { - public DECIMAL_LITERAL(): TerminalNode { return this.getToken(esql_parser.DECIMAL_LITERAL, 0); } - public PLUS(): TerminalNode | undefined { return this.tryGetToken(esql_parser.PLUS, 0); } - public MINUS(): TerminalNode | undefined { return this.tryGetToken(esql_parser.MINUS, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public DECIMAL_LITERAL(): TerminalNode { + return this.getToken(esql_parser.DECIMAL_LITERAL, 0); + } + public PLUS(): TerminalNode { + return this.getToken(esql_parser.PLUS, 0); + } + public MINUS(): TerminalNode { + return this.getToken(esql_parser.MINUS, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_decimalValue; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_decimalValue; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterDecimalValue) { - listener.enterDecimalValue(this); + if(listener.enterDecimalValue) { + listener.enterDecimalValue(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitDecimalValue) { - listener.exitDecimalValue(this); + if(listener.exitDecimalValue) { + listener.exitDecimalValue(this); } } } export class IntegerValueContext extends ParserRuleContext { - public INTEGER_LITERAL(): TerminalNode { return this.getToken(esql_parser.INTEGER_LITERAL, 0); } - public PLUS(): TerminalNode | undefined { return this.tryGetToken(esql_parser.PLUS, 0); } - public MINUS(): TerminalNode | undefined { return this.tryGetToken(esql_parser.MINUS, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public INTEGER_LITERAL(): TerminalNode { + return this.getToken(esql_parser.INTEGER_LITERAL, 0); + } + public PLUS(): TerminalNode { + return this.getToken(esql_parser.PLUS, 0); + } + public MINUS(): TerminalNode { + return this.getToken(esql_parser.MINUS, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_integerValue; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_integerValue; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterIntegerValue) { - listener.enterIntegerValue(this); + if(listener.enterIntegerValue) { + listener.enterIntegerValue(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitIntegerValue) { - listener.exitIntegerValue(this); + if(listener.exitIntegerValue) { + listener.exitIntegerValue(this); } } } export class StringContext extends ParserRuleContext { - public STRING(): TerminalNode { return this.getToken(esql_parser.STRING, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public STRING(): TerminalNode { + return this.getToken(esql_parser.STRING, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_string; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_string; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterString) { - listener.enterString(this); + if(listener.enterString) { + listener.enterString(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitString) { - listener.exitString(this); + if(listener.exitString) { + listener.exitString(this); } } } export class ComparisonOperatorContext extends ParserRuleContext { - public EQ(): TerminalNode | undefined { return this.tryGetToken(esql_parser.EQ, 0); } - public NEQ(): TerminalNode | undefined { return this.tryGetToken(esql_parser.NEQ, 0); } - public LT(): TerminalNode | undefined { return this.tryGetToken(esql_parser.LT, 0); } - public LTE(): TerminalNode | undefined { return this.tryGetToken(esql_parser.LTE, 0); } - public GT(): TerminalNode | undefined { return this.tryGetToken(esql_parser.GT, 0); } - public GTE(): TerminalNode | undefined { return this.tryGetToken(esql_parser.GTE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public EQ(): TerminalNode { + return this.getToken(esql_parser.EQ, 0); + } + public NEQ(): TerminalNode { + return this.getToken(esql_parser.NEQ, 0); + } + public LT(): TerminalNode { + return this.getToken(esql_parser.LT, 0); + } + public LTE(): TerminalNode { + return this.getToken(esql_parser.LTE, 0); + } + public GT(): TerminalNode { + return this.getToken(esql_parser.GT, 0); + } + public GTE(): TerminalNode { + return this.getToken(esql_parser.GTE, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_comparisonOperator; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_comparisonOperator; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterComparisonOperator) { - listener.enterComparisonOperator(this); + if(listener.enterComparisonOperator) { + listener.enterComparisonOperator(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitComparisonOperator) { - listener.exitComparisonOperator(this); + if(listener.exitComparisonOperator) { + listener.exitComparisonOperator(this); } } } export class ExplainCommandContext extends ParserRuleContext { - public EXPLAIN(): TerminalNode { return this.getToken(esql_parser.EXPLAIN, 0); } + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public EXPLAIN(): TerminalNode { + return this.getToken(esql_parser.EXPLAIN, 0); + } public subqueryExpression(): SubqueryExpressionContext { - return this.getRuleContext(0, SubqueryExpressionContext); + return this.getTypedRuleContext(SubqueryExpressionContext, 0) as SubqueryExpressionContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public get ruleIndex(): number { + return esql_parser.RULE_explainCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_explainCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterExplainCommand) { - listener.enterExplainCommand(this); + if(listener.enterExplainCommand) { + listener.enterExplainCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitExplainCommand) { - listener.exitExplainCommand(this); + if(listener.exitExplainCommand) { + listener.exitExplainCommand(this); } } } export class SubqueryExpressionContext extends ParserRuleContext { - public OPENING_BRACKET(): TerminalNode { return this.getToken(esql_parser.OPENING_BRACKET, 0); } + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public OPENING_BRACKET(): TerminalNode { + return this.getToken(esql_parser.OPENING_BRACKET, 0); + } public query(): QueryContext { - return this.getRuleContext(0, QueryContext); + return this.getTypedRuleContext(QueryContext, 0) as QueryContext; } - public CLOSING_BRACKET(): TerminalNode { return this.getToken(esql_parser.CLOSING_BRACKET, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public CLOSING_BRACKET(): TerminalNode { + return this.getToken(esql_parser.CLOSING_BRACKET, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_subqueryExpression; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_subqueryExpression; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterSubqueryExpression) { - listener.enterSubqueryExpression(this); + if(listener.enterSubqueryExpression) { + listener.enterSubqueryExpression(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitSubqueryExpression) { - listener.exitSubqueryExpression(this); + if(listener.exitSubqueryExpression) { + listener.exitSubqueryExpression(this); } } } export class ShowCommandContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return esql_parser.RULE_showCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_showCommand; } public copyFrom(ctx: ShowCommandContext): void { super.copyFrom(ctx); } } export class ShowInfoContext extends ShowCommandContext { - public SHOW(): TerminalNode { return this.getToken(esql_parser.SHOW, 0); } - public INFO(): TerminalNode { return this.getToken(esql_parser.INFO, 0); } - constructor(ctx: ShowCommandContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + constructor(parser: esql_parser, ctx: ShowCommandContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public SHOW(): TerminalNode { + return this.getToken(esql_parser.SHOW, 0); + } + public INFO(): TerminalNode { + return this.getToken(esql_parser.INFO, 0); } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterShowInfo) { - listener.enterShowInfo(this); + if(listener.enterShowInfo) { + listener.enterShowInfo(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitShowInfo) { - listener.exitShowInfo(this); + if(listener.exitShowInfo) { + listener.exitShowInfo(this); } } } export class ShowFunctionsContext extends ShowCommandContext { - public SHOW(): TerminalNode { return this.getToken(esql_parser.SHOW, 0); } - public FUNCTIONS(): TerminalNode { return this.getToken(esql_parser.FUNCTIONS, 0); } - constructor(ctx: ShowCommandContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + constructor(parser: esql_parser, ctx: ShowCommandContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public SHOW(): TerminalNode { + return this.getToken(esql_parser.SHOW, 0); + } + public FUNCTIONS(): TerminalNode { + return this.getToken(esql_parser.FUNCTIONS, 0); } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterShowFunctions) { - listener.enterShowFunctions(this); + if(listener.enterShowFunctions) { + listener.enterShowFunctions(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitShowFunctions) { - listener.exitShowFunctions(this); + if(listener.exitShowFunctions) { + listener.exitShowFunctions(this); } } } export class EnrichCommandContext extends ParserRuleContext { - public _policyName: Token; - public _matchField: QualifiedNamePatternContext; - public ENRICH(): TerminalNode { return this.getToken(esql_parser.ENRICH, 0); } - public ENRICH_POLICY_NAME(): TerminalNode { return this.getToken(esql_parser.ENRICH_POLICY_NAME, 0); } - public ON(): TerminalNode | undefined { return this.tryGetToken(esql_parser.ON, 0); } - public WITH(): TerminalNode | undefined { return this.tryGetToken(esql_parser.WITH, 0); } - public enrichWithClause(): EnrichWithClauseContext[]; - public enrichWithClause(i: number): EnrichWithClauseContext; - public enrichWithClause(i?: number): EnrichWithClauseContext | EnrichWithClauseContext[] { - if (i === undefined) { - return this.getRuleContexts(EnrichWithClauseContext); - } else { - return this.getRuleContext(i, EnrichWithClauseContext); - } - } - public qualifiedNamePattern(): QualifiedNamePatternContext | undefined { - return this.tryGetRuleContext(0, QualifiedNamePatternContext); - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(esql_parser.COMMA); - } else { - return this.getToken(esql_parser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + public _policyName!: Token; + public _matchField!: QualifiedNamePatternContext; + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public ENRICH(): TerminalNode { + return this.getToken(esql_parser.ENRICH, 0); + } + public ENRICH_POLICY_NAME(): TerminalNode { + return this.getToken(esql_parser.ENRICH_POLICY_NAME, 0); + } + public ON(): TerminalNode { + return this.getToken(esql_parser.ON, 0); + } + public WITH(): TerminalNode { + return this.getToken(esql_parser.WITH, 0); + } + public enrichWithClause_list(): EnrichWithClauseContext[] { + return this.getTypedRuleContexts(EnrichWithClauseContext) as EnrichWithClauseContext[]; + } + public enrichWithClause(i: number): EnrichWithClauseContext { + return this.getTypedRuleContext(EnrichWithClauseContext, i) as EnrichWithClauseContext; + } + public qualifiedNamePattern(): QualifiedNamePatternContext { + return this.getTypedRuleContext(QualifiedNamePatternContext, 0) as QualifiedNamePatternContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(esql_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(esql_parser.COMMA, i); + } + public get ruleIndex(): number { + return esql_parser.RULE_enrichCommand; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_enrichCommand; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterEnrichCommand) { - listener.enterEnrichCommand(this); + if(listener.enterEnrichCommand) { + listener.enterEnrichCommand(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitEnrichCommand) { - listener.exitEnrichCommand(this); + if(listener.exitEnrichCommand) { + listener.exitEnrichCommand(this); } } } export class EnrichWithClauseContext extends ParserRuleContext { - public _newName: QualifiedNamePatternContext; - public _enrichField: QualifiedNamePatternContext; - public qualifiedNamePattern(): QualifiedNamePatternContext[]; - public qualifiedNamePattern(i: number): QualifiedNamePatternContext; - public qualifiedNamePattern(i?: number): QualifiedNamePatternContext | QualifiedNamePatternContext[] { - if (i === undefined) { - return this.getRuleContexts(QualifiedNamePatternContext); - } else { - return this.getRuleContext(i, QualifiedNamePatternContext); - } - } - public ASSIGN(): TerminalNode | undefined { return this.tryGetToken(esql_parser.ASSIGN, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + public _newName!: QualifiedNamePatternContext; + public _enrichField!: QualifiedNamePatternContext; + constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public qualifiedNamePattern_list(): QualifiedNamePatternContext[] { + return this.getTypedRuleContexts(QualifiedNamePatternContext) as QualifiedNamePatternContext[]; + } + public qualifiedNamePattern(i: number): QualifiedNamePatternContext { + return this.getTypedRuleContext(QualifiedNamePatternContext, i) as QualifiedNamePatternContext; + } + public ASSIGN(): TerminalNode { + return this.getToken(esql_parser.ASSIGN, 0); + } + public get ruleIndex(): number { + return esql_parser.RULE_enrichWithClause; } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_enrichWithClause; } - // @Override public enterRule(listener: esql_parserListener): void { - if (listener.enterEnrichWithClause) { - listener.enterEnrichWithClause(this); + if(listener.enterEnrichWithClause) { + listener.enterEnrichWithClause(this); } } - // @Override public exitRule(listener: esql_parserListener): void { - if (listener.exitEnrichWithClause) { - listener.exitEnrichWithClause(this); + if(listener.exitEnrichWithClause) { + listener.exitEnrichWithClause(this); } } } - - diff --git a/packages/kbn-monaco/src/esql/antlr/esql_parser_listener.ts b/packages/kbn-monaco/src/esql/antlr/esql_parser_listener.ts index 60e6b32cce3ac..d340b1176084d 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_parser_listener.ts +++ b/packages/kbn-monaco/src/esql/antlr/esql_parser_listener.ts @@ -1,48 +1,31 @@ // @ts-nocheck -// Generated from src/esql/antlr/esql_parser.g4 by ANTLR 4.7.3-SNAPSHOT +// Generated from src/esql/antlr/esql_parser.g4 by ANTLR 4.13.1 +import {ParseTreeListener} from "antlr4"; -import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener"; -import { NullLiteralContext } from "./esql_parser"; -import { QualifiedIntegerLiteralContext } from "./esql_parser"; -import { DecimalLiteralContext } from "./esql_parser"; -import { IntegerLiteralContext } from "./esql_parser"; -import { BooleanLiteralContext } from "./esql_parser"; -import { InputParamContext } from "./esql_parser"; -import { StringLiteralContext } from "./esql_parser"; -import { NumericArrayLiteralContext } from "./esql_parser"; -import { BooleanArrayLiteralContext } from "./esql_parser"; -import { StringArrayLiteralContext } from "./esql_parser"; -import { SingleCommandQueryContext } from "./esql_parser"; +import { SingleStatementContext } from "./esql_parser"; import { CompositeQueryContext } from "./esql_parser"; -import { OperatorExpressionDefaultContext } from "./esql_parser"; -import { ArithmeticUnaryContext } from "./esql_parser"; -import { ArithmeticBinaryContext } from "./esql_parser"; +import { SingleCommandQueryContext } from "./esql_parser"; +import { SourceCommandContext } from "./esql_parser"; +import { ProcessingCommandContext } from "./esql_parser"; +import { WhereCommandContext } from "./esql_parser"; +import { LogicalNotContext } from "./esql_parser"; +import { BooleanDefaultContext } from "./esql_parser"; +import { IsNullContext } from "./esql_parser"; +import { RegexExpressionContext } from "./esql_parser"; +import { LogicalInContext } from "./esql_parser"; +import { LogicalBinaryContext } from "./esql_parser"; +import { RegexBooleanExpressionContext } from "./esql_parser"; import { ValueExpressionDefaultContext } from "./esql_parser"; import { ComparisonContext } from "./esql_parser"; -import { ShowInfoContext } from "./esql_parser"; -import { ShowFunctionsContext } from "./esql_parser"; +import { OperatorExpressionDefaultContext } from "./esql_parser"; +import { ArithmeticBinaryContext } from "./esql_parser"; +import { ArithmeticUnaryContext } from "./esql_parser"; import { ConstantDefaultContext } from "./esql_parser"; import { DereferenceContext } from "./esql_parser"; import { FunctionContext } from "./esql_parser"; import { ParenthesizedExpressionContext } from "./esql_parser"; -import { LogicalNotContext } from "./esql_parser"; -import { BooleanDefaultContext } from "./esql_parser"; -import { RegexExpressionContext } from "./esql_parser"; -import { LogicalBinaryContext } from "./esql_parser"; -import { LogicalInContext } from "./esql_parser"; -import { IsNullContext } from "./esql_parser"; -import { SingleStatementContext } from "./esql_parser"; -import { QueryContext } from "./esql_parser"; -import { SourceCommandContext } from "./esql_parser"; -import { ProcessingCommandContext } from "./esql_parser"; -import { WhereCommandContext } from "./esql_parser"; -import { BooleanExpressionContext } from "./esql_parser"; -import { RegexBooleanExpressionContext } from "./esql_parser"; -import { ValueExpressionContext } from "./esql_parser"; -import { OperatorExpressionContext } from "./esql_parser"; -import { PrimaryExpressionContext } from "./esql_parser"; import { FunctionExpressionContext } from "./esql_parser"; import { RowCommandContext } from "./esql_parser"; import { FieldsContext } from "./esql_parser"; @@ -60,7 +43,16 @@ import { QualifiedNamePatternContext } from "./esql_parser"; import { IdentifierContext } from "./esql_parser"; import { IdentifierPatternContext } from "./esql_parser"; import { IdPatternContext } from "./esql_parser"; -import { ConstantContext } from "./esql_parser"; +import { NullLiteralContext } from "./esql_parser"; +import { QualifiedIntegerLiteralContext } from "./esql_parser"; +import { DecimalLiteralContext } from "./esql_parser"; +import { IntegerLiteralContext } from "./esql_parser"; +import { BooleanLiteralContext } from "./esql_parser"; +import { InputParamContext } from "./esql_parser"; +import { StringLiteralContext } from "./esql_parser"; +import { NumericArrayLiteralContext } from "./esql_parser"; +import { BooleanArrayLiteralContext } from "./esql_parser"; +import { StringArrayLiteralContext } from "./esql_parser"; import { LimitCommandContext } from "./esql_parser"; import { SortCommandContext } from "./esql_parser"; import { OrderExpressionContext } from "./esql_parser"; @@ -81,7 +73,8 @@ import { StringContext } from "./esql_parser"; import { ComparisonOperatorContext } from "./esql_parser"; import { ExplainCommandContext } from "./esql_parser"; import { SubqueryExpressionContext } from "./esql_parser"; -import { ShowCommandContext } from "./esql_parser"; +import { ShowInfoContext } from "./esql_parser"; +import { ShowFunctionsContext } from "./esql_parser"; import { EnrichCommandContext } from "./esql_parser"; import { EnrichWithClauseContext } from "./esql_parser"; @@ -90,150 +83,17 @@ import { EnrichWithClauseContext } from "./esql_parser"; * This interface defines a complete listener for a parse tree produced by * `esql_parser`. */ -export interface esql_parserListener extends ParseTreeListener { - /** - * Enter a parse tree produced by the `nullLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - enterNullLiteral?: (ctx: NullLiteralContext) => void; - /** - * Exit a parse tree produced by the `nullLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - exitNullLiteral?: (ctx: NullLiteralContext) => void; - - /** - * Enter a parse tree produced by the `qualifiedIntegerLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - enterQualifiedIntegerLiteral?: (ctx: QualifiedIntegerLiteralContext) => void; - /** - * Exit a parse tree produced by the `qualifiedIntegerLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - exitQualifiedIntegerLiteral?: (ctx: QualifiedIntegerLiteralContext) => void; - - /** - * Enter a parse tree produced by the `decimalLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - enterDecimalLiteral?: (ctx: DecimalLiteralContext) => void; - /** - * Exit a parse tree produced by the `decimalLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - exitDecimalLiteral?: (ctx: DecimalLiteralContext) => void; - - /** - * Enter a parse tree produced by the `integerLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - enterIntegerLiteral?: (ctx: IntegerLiteralContext) => void; - /** - * Exit a parse tree produced by the `integerLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - exitIntegerLiteral?: (ctx: IntegerLiteralContext) => void; - - /** - * Enter a parse tree produced by the `booleanLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - enterBooleanLiteral?: (ctx: BooleanLiteralContext) => void; - /** - * Exit a parse tree produced by the `booleanLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - exitBooleanLiteral?: (ctx: BooleanLiteralContext) => void; - - /** - * Enter a parse tree produced by the `inputParam` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - enterInputParam?: (ctx: InputParamContext) => void; - /** - * Exit a parse tree produced by the `inputParam` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - exitInputParam?: (ctx: InputParamContext) => void; - - /** - * Enter a parse tree produced by the `stringLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - enterStringLiteral?: (ctx: StringLiteralContext) => void; - /** - * Exit a parse tree produced by the `stringLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - exitStringLiteral?: (ctx: StringLiteralContext) => void; - - /** - * Enter a parse tree produced by the `numericArrayLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - enterNumericArrayLiteral?: (ctx: NumericArrayLiteralContext) => void; - /** - * Exit a parse tree produced by the `numericArrayLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - exitNumericArrayLiteral?: (ctx: NumericArrayLiteralContext) => void; - - /** - * Enter a parse tree produced by the `booleanArrayLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - enterBooleanArrayLiteral?: (ctx: BooleanArrayLiteralContext) => void; - /** - * Exit a parse tree produced by the `booleanArrayLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - exitBooleanArrayLiteral?: (ctx: BooleanArrayLiteralContext) => void; - - /** - * Enter a parse tree produced by the `stringArrayLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - enterStringArrayLiteral?: (ctx: StringArrayLiteralContext) => void; - /** - * Exit a parse tree produced by the `stringArrayLiteral` - * labeled alternative in `esql_parser.constant`. - * @param ctx the parse tree - */ - exitStringArrayLiteral?: (ctx: StringArrayLiteralContext) => void; - +export default class esql_parserListener extends ParseTreeListener { /** - * Enter a parse tree produced by the `singleCommandQuery` - * labeled alternative in `esql_parser.query`. + * Enter a parse tree produced by `esql_parser.singleStatement`. * @param ctx the parse tree */ - enterSingleCommandQuery?: (ctx: SingleCommandQueryContext) => void; + enterSingleStatement?: (ctx: SingleStatementContext) => void; /** - * Exit a parse tree produced by the `singleCommandQuery` - * labeled alternative in `esql_parser.query`. + * Exit a parse tree produced by `esql_parser.singleStatement`. * @param ctx the parse tree */ - exitSingleCommandQuery?: (ctx: SingleCommandQueryContext) => void; - + exitSingleStatement?: (ctx: SingleStatementContext) => void; /** * Enter a parse tree produced by the `compositeQuery` * labeled alternative in `esql_parser.query`. @@ -246,150 +106,48 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitCompositeQuery?: (ctx: CompositeQueryContext) => void; - - /** - * Enter a parse tree produced by the `operatorExpressionDefault` - * labeled alternative in `esql_parser.operatorExpression`. - * @param ctx the parse tree - */ - enterOperatorExpressionDefault?: (ctx: OperatorExpressionDefaultContext) => void; - /** - * Exit a parse tree produced by the `operatorExpressionDefault` - * labeled alternative in `esql_parser.operatorExpression`. - * @param ctx the parse tree - */ - exitOperatorExpressionDefault?: (ctx: OperatorExpressionDefaultContext) => void; - - /** - * Enter a parse tree produced by the `arithmeticUnary` - * labeled alternative in `esql_parser.operatorExpression`. - * @param ctx the parse tree - */ - enterArithmeticUnary?: (ctx: ArithmeticUnaryContext) => void; - /** - * Exit a parse tree produced by the `arithmeticUnary` - * labeled alternative in `esql_parser.operatorExpression`. - * @param ctx the parse tree - */ - exitArithmeticUnary?: (ctx: ArithmeticUnaryContext) => void; - - /** - * Enter a parse tree produced by the `arithmeticBinary` - * labeled alternative in `esql_parser.operatorExpression`. - * @param ctx the parse tree - */ - enterArithmeticBinary?: (ctx: ArithmeticBinaryContext) => void; - /** - * Exit a parse tree produced by the `arithmeticBinary` - * labeled alternative in `esql_parser.operatorExpression`. - * @param ctx the parse tree - */ - exitArithmeticBinary?: (ctx: ArithmeticBinaryContext) => void; - - /** - * Enter a parse tree produced by the `valueExpressionDefault` - * labeled alternative in `esql_parser.valueExpression`. - * @param ctx the parse tree - */ - enterValueExpressionDefault?: (ctx: ValueExpressionDefaultContext) => void; - /** - * Exit a parse tree produced by the `valueExpressionDefault` - * labeled alternative in `esql_parser.valueExpression`. - * @param ctx the parse tree - */ - exitValueExpressionDefault?: (ctx: ValueExpressionDefaultContext) => void; - - /** - * Enter a parse tree produced by the `comparison` - * labeled alternative in `esql_parser.valueExpression`. - * @param ctx the parse tree - */ - enterComparison?: (ctx: ComparisonContext) => void; - /** - * Exit a parse tree produced by the `comparison` - * labeled alternative in `esql_parser.valueExpression`. - * @param ctx the parse tree - */ - exitComparison?: (ctx: ComparisonContext) => void; - /** - * Enter a parse tree produced by the `showInfo` - * labeled alternative in `esql_parser.showCommand`. - * @param ctx the parse tree - */ - enterShowInfo?: (ctx: ShowInfoContext) => void; - /** - * Exit a parse tree produced by the `showInfo` - * labeled alternative in `esql_parser.showCommand`. - * @param ctx the parse tree - */ - exitShowInfo?: (ctx: ShowInfoContext) => void; - - /** - * Enter a parse tree produced by the `showFunctions` - * labeled alternative in `esql_parser.showCommand`. - * @param ctx the parse tree - */ - enterShowFunctions?: (ctx: ShowFunctionsContext) => void; - /** - * Exit a parse tree produced by the `showFunctions` - * labeled alternative in `esql_parser.showCommand`. - * @param ctx the parse tree - */ - exitShowFunctions?: (ctx: ShowFunctionsContext) => void; - - /** - * Enter a parse tree produced by the `constantDefault` - * labeled alternative in `esql_parser.primaryExpression`. + * Enter a parse tree produced by the `singleCommandQuery` + * labeled alternative in `esql_parser.query`. * @param ctx the parse tree */ - enterConstantDefault?: (ctx: ConstantDefaultContext) => void; + enterSingleCommandQuery?: (ctx: SingleCommandQueryContext) => void; /** - * Exit a parse tree produced by the `constantDefault` - * labeled alternative in `esql_parser.primaryExpression`. + * Exit a parse tree produced by the `singleCommandQuery` + * labeled alternative in `esql_parser.query`. * @param ctx the parse tree */ - exitConstantDefault?: (ctx: ConstantDefaultContext) => void; - + exitSingleCommandQuery?: (ctx: SingleCommandQueryContext) => void; /** - * Enter a parse tree produced by the `dereference` - * labeled alternative in `esql_parser.primaryExpression`. + * Enter a parse tree produced by `esql_parser.sourceCommand`. * @param ctx the parse tree */ - enterDereference?: (ctx: DereferenceContext) => void; + enterSourceCommand?: (ctx: SourceCommandContext) => void; /** - * Exit a parse tree produced by the `dereference` - * labeled alternative in `esql_parser.primaryExpression`. + * Exit a parse tree produced by `esql_parser.sourceCommand`. * @param ctx the parse tree */ - exitDereference?: (ctx: DereferenceContext) => void; - + exitSourceCommand?: (ctx: SourceCommandContext) => void; /** - * Enter a parse tree produced by the `function` - * labeled alternative in `esql_parser.primaryExpression`. + * Enter a parse tree produced by `esql_parser.processingCommand`. * @param ctx the parse tree */ - enterFunction?: (ctx: FunctionContext) => void; + enterProcessingCommand?: (ctx: ProcessingCommandContext) => void; /** - * Exit a parse tree produced by the `function` - * labeled alternative in `esql_parser.primaryExpression`. + * Exit a parse tree produced by `esql_parser.processingCommand`. * @param ctx the parse tree */ - exitFunction?: (ctx: FunctionContext) => void; - + exitProcessingCommand?: (ctx: ProcessingCommandContext) => void; /** - * Enter a parse tree produced by the `parenthesizedExpression` - * labeled alternative in `esql_parser.primaryExpression`. + * Enter a parse tree produced by `esql_parser.whereCommand`. * @param ctx the parse tree */ - enterParenthesizedExpression?: (ctx: ParenthesizedExpressionContext) => void; + enterWhereCommand?: (ctx: WhereCommandContext) => void; /** - * Exit a parse tree produced by the `parenthesizedExpression` - * labeled alternative in `esql_parser.primaryExpression`. + * Exit a parse tree produced by `esql_parser.whereCommand`. * @param ctx the parse tree */ - exitParenthesizedExpression?: (ctx: ParenthesizedExpressionContext) => void; - + exitWhereCommand?: (ctx: WhereCommandContext) => void; /** * Enter a parse tree produced by the `logicalNot` * labeled alternative in `esql_parser.booleanExpression`. @@ -402,7 +160,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitLogicalNot?: (ctx: LogicalNotContext) => void; - /** * Enter a parse tree produced by the `booleanDefault` * labeled alternative in `esql_parser.booleanExpression`. @@ -415,33 +172,30 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitBooleanDefault?: (ctx: BooleanDefaultContext) => void; - /** - * Enter a parse tree produced by the `regexExpression` + * Enter a parse tree produced by the `isNull` * labeled alternative in `esql_parser.booleanExpression`. * @param ctx the parse tree */ - enterRegexExpression?: (ctx: RegexExpressionContext) => void; + enterIsNull?: (ctx: IsNullContext) => void; /** - * Exit a parse tree produced by the `regexExpression` + * Exit a parse tree produced by the `isNull` * labeled alternative in `esql_parser.booleanExpression`. * @param ctx the parse tree */ - exitRegexExpression?: (ctx: RegexExpressionContext) => void; - + exitIsNull?: (ctx: IsNullContext) => void; /** - * Enter a parse tree produced by the `logicalBinary` + * Enter a parse tree produced by the `regexExpression` * labeled alternative in `esql_parser.booleanExpression`. * @param ctx the parse tree */ - enterLogicalBinary?: (ctx: LogicalBinaryContext) => void; + enterRegexExpression?: (ctx: RegexExpressionContext) => void; /** - * Exit a parse tree produced by the `logicalBinary` + * Exit a parse tree produced by the `regexExpression` * labeled alternative in `esql_parser.booleanExpression`. * @param ctx the parse tree */ - exitLogicalBinary?: (ctx: LogicalBinaryContext) => void; - + exitRegexExpression?: (ctx: RegexExpressionContext) => void; /** * Enter a parse tree produced by the `logicalIn` * labeled alternative in `esql_parser.booleanExpression`. @@ -454,130 +208,136 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitLogicalIn?: (ctx: LogicalInContext) => void; - /** - * Enter a parse tree produced by the `isNull` + * Enter a parse tree produced by the `logicalBinary` * labeled alternative in `esql_parser.booleanExpression`. * @param ctx the parse tree */ - enterIsNull?: (ctx: IsNullContext) => void; + enterLogicalBinary?: (ctx: LogicalBinaryContext) => void; /** - * Exit a parse tree produced by the `isNull` + * Exit a parse tree produced by the `logicalBinary` * labeled alternative in `esql_parser.booleanExpression`. * @param ctx the parse tree */ - exitIsNull?: (ctx: IsNullContext) => void; - + exitLogicalBinary?: (ctx: LogicalBinaryContext) => void; /** - * Enter a parse tree produced by `esql_parser.singleStatement`. + * Enter a parse tree produced by `esql_parser.regexBooleanExpression`. * @param ctx the parse tree */ - enterSingleStatement?: (ctx: SingleStatementContext) => void; + enterRegexBooleanExpression?: (ctx: RegexBooleanExpressionContext) => void; /** - * Exit a parse tree produced by `esql_parser.singleStatement`. + * Exit a parse tree produced by `esql_parser.regexBooleanExpression`. * @param ctx the parse tree */ - exitSingleStatement?: (ctx: SingleStatementContext) => void; - + exitRegexBooleanExpression?: (ctx: RegexBooleanExpressionContext) => void; /** - * Enter a parse tree produced by `esql_parser.query`. + * Enter a parse tree produced by the `valueExpressionDefault` + * labeled alternative in `esql_parser.valueExpression`. * @param ctx the parse tree */ - enterQuery?: (ctx: QueryContext) => void; + enterValueExpressionDefault?: (ctx: ValueExpressionDefaultContext) => void; /** - * Exit a parse tree produced by `esql_parser.query`. + * Exit a parse tree produced by the `valueExpressionDefault` + * labeled alternative in `esql_parser.valueExpression`. * @param ctx the parse tree */ - exitQuery?: (ctx: QueryContext) => void; - + exitValueExpressionDefault?: (ctx: ValueExpressionDefaultContext) => void; /** - * Enter a parse tree produced by `esql_parser.sourceCommand`. + * Enter a parse tree produced by the `comparison` + * labeled alternative in `esql_parser.valueExpression`. * @param ctx the parse tree */ - enterSourceCommand?: (ctx: SourceCommandContext) => void; + enterComparison?: (ctx: ComparisonContext) => void; /** - * Exit a parse tree produced by `esql_parser.sourceCommand`. + * Exit a parse tree produced by the `comparison` + * labeled alternative in `esql_parser.valueExpression`. * @param ctx the parse tree */ - exitSourceCommand?: (ctx: SourceCommandContext) => void; - + exitComparison?: (ctx: ComparisonContext) => void; /** - * Enter a parse tree produced by `esql_parser.processingCommand`. + * Enter a parse tree produced by the `operatorExpressionDefault` + * labeled alternative in `esql_parser.operatorExpression`. * @param ctx the parse tree */ - enterProcessingCommand?: (ctx: ProcessingCommandContext) => void; + enterOperatorExpressionDefault?: (ctx: OperatorExpressionDefaultContext) => void; /** - * Exit a parse tree produced by `esql_parser.processingCommand`. + * Exit a parse tree produced by the `operatorExpressionDefault` + * labeled alternative in `esql_parser.operatorExpression`. * @param ctx the parse tree */ - exitProcessingCommand?: (ctx: ProcessingCommandContext) => void; - + exitOperatorExpressionDefault?: (ctx: OperatorExpressionDefaultContext) => void; /** - * Enter a parse tree produced by `esql_parser.whereCommand`. + * Enter a parse tree produced by the `arithmeticBinary` + * labeled alternative in `esql_parser.operatorExpression`. * @param ctx the parse tree */ - enterWhereCommand?: (ctx: WhereCommandContext) => void; + enterArithmeticBinary?: (ctx: ArithmeticBinaryContext) => void; /** - * Exit a parse tree produced by `esql_parser.whereCommand`. + * Exit a parse tree produced by the `arithmeticBinary` + * labeled alternative in `esql_parser.operatorExpression`. * @param ctx the parse tree */ - exitWhereCommand?: (ctx: WhereCommandContext) => void; - + exitArithmeticBinary?: (ctx: ArithmeticBinaryContext) => void; /** - * Enter a parse tree produced by `esql_parser.booleanExpression`. + * Enter a parse tree produced by the `arithmeticUnary` + * labeled alternative in `esql_parser.operatorExpression`. * @param ctx the parse tree */ - enterBooleanExpression?: (ctx: BooleanExpressionContext) => void; + enterArithmeticUnary?: (ctx: ArithmeticUnaryContext) => void; /** - * Exit a parse tree produced by `esql_parser.booleanExpression`. + * Exit a parse tree produced by the `arithmeticUnary` + * labeled alternative in `esql_parser.operatorExpression`. * @param ctx the parse tree */ - exitBooleanExpression?: (ctx: BooleanExpressionContext) => void; - + exitArithmeticUnary?: (ctx: ArithmeticUnaryContext) => void; /** - * Enter a parse tree produced by `esql_parser.regexBooleanExpression`. + * Enter a parse tree produced by the `constantDefault` + * labeled alternative in `esql_parser.primaryExpression`. * @param ctx the parse tree */ - enterRegexBooleanExpression?: (ctx: RegexBooleanExpressionContext) => void; + enterConstantDefault?: (ctx: ConstantDefaultContext) => void; /** - * Exit a parse tree produced by `esql_parser.regexBooleanExpression`. + * Exit a parse tree produced by the `constantDefault` + * labeled alternative in `esql_parser.primaryExpression`. * @param ctx the parse tree */ - exitRegexBooleanExpression?: (ctx: RegexBooleanExpressionContext) => void; - + exitConstantDefault?: (ctx: ConstantDefaultContext) => void; /** - * Enter a parse tree produced by `esql_parser.valueExpression`. + * Enter a parse tree produced by the `dereference` + * labeled alternative in `esql_parser.primaryExpression`. * @param ctx the parse tree */ - enterValueExpression?: (ctx: ValueExpressionContext) => void; + enterDereference?: (ctx: DereferenceContext) => void; /** - * Exit a parse tree produced by `esql_parser.valueExpression`. + * Exit a parse tree produced by the `dereference` + * labeled alternative in `esql_parser.primaryExpression`. * @param ctx the parse tree */ - exitValueExpression?: (ctx: ValueExpressionContext) => void; - + exitDereference?: (ctx: DereferenceContext) => void; /** - * Enter a parse tree produced by `esql_parser.operatorExpression`. + * Enter a parse tree produced by the `function` + * labeled alternative in `esql_parser.primaryExpression`. * @param ctx the parse tree */ - enterOperatorExpression?: (ctx: OperatorExpressionContext) => void; + enterFunction?: (ctx: FunctionContext) => void; /** - * Exit a parse tree produced by `esql_parser.operatorExpression`. + * Exit a parse tree produced by the `function` + * labeled alternative in `esql_parser.primaryExpression`. * @param ctx the parse tree */ - exitOperatorExpression?: (ctx: OperatorExpressionContext) => void; - + exitFunction?: (ctx: FunctionContext) => void; /** - * Enter a parse tree produced by `esql_parser.primaryExpression`. + * Enter a parse tree produced by the `parenthesizedExpression` + * labeled alternative in `esql_parser.primaryExpression`. * @param ctx the parse tree */ - enterPrimaryExpression?: (ctx: PrimaryExpressionContext) => void; + enterParenthesizedExpression?: (ctx: ParenthesizedExpressionContext) => void; /** - * Exit a parse tree produced by `esql_parser.primaryExpression`. + * Exit a parse tree produced by the `parenthesizedExpression` + * labeled alternative in `esql_parser.primaryExpression`. * @param ctx the parse tree */ - exitPrimaryExpression?: (ctx: PrimaryExpressionContext) => void; - + exitParenthesizedExpression?: (ctx: ParenthesizedExpressionContext) => void; /** * Enter a parse tree produced by `esql_parser.functionExpression`. * @param ctx the parse tree @@ -588,7 +348,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitFunctionExpression?: (ctx: FunctionExpressionContext) => void; - /** * Enter a parse tree produced by `esql_parser.rowCommand`. * @param ctx the parse tree @@ -599,7 +358,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitRowCommand?: (ctx: RowCommandContext) => void; - /** * Enter a parse tree produced by `esql_parser.fields`. * @param ctx the parse tree @@ -610,7 +368,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitFields?: (ctx: FieldsContext) => void; - /** * Enter a parse tree produced by `esql_parser.field`. * @param ctx the parse tree @@ -621,7 +378,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitField?: (ctx: FieldContext) => void; - /** * Enter a parse tree produced by `esql_parser.fromCommand`. * @param ctx the parse tree @@ -632,7 +388,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitFromCommand?: (ctx: FromCommandContext) => void; - /** * Enter a parse tree produced by `esql_parser.metadata`. * @param ctx the parse tree @@ -643,7 +398,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitMetadata?: (ctx: MetadataContext) => void; - /** * Enter a parse tree produced by `esql_parser.metadataOption`. * @param ctx the parse tree @@ -654,7 +408,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitMetadataOption?: (ctx: MetadataOptionContext) => void; - /** * Enter a parse tree produced by `esql_parser.deprecated_metadata`. * @param ctx the parse tree @@ -665,7 +418,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitDeprecated_metadata?: (ctx: Deprecated_metadataContext) => void; - /** * Enter a parse tree produced by `esql_parser.evalCommand`. * @param ctx the parse tree @@ -676,7 +428,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitEvalCommand?: (ctx: EvalCommandContext) => void; - /** * Enter a parse tree produced by `esql_parser.statsCommand`. * @param ctx the parse tree @@ -687,7 +438,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitStatsCommand?: (ctx: StatsCommandContext) => void; - /** * Enter a parse tree produced by `esql_parser.inlinestatsCommand`. * @param ctx the parse tree @@ -698,7 +448,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitInlinestatsCommand?: (ctx: InlinestatsCommandContext) => void; - /** * Enter a parse tree produced by `esql_parser.fromIdentifier`. * @param ctx the parse tree @@ -709,7 +458,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitFromIdentifier?: (ctx: FromIdentifierContext) => void; - /** * Enter a parse tree produced by `esql_parser.qualifiedName`. * @param ctx the parse tree @@ -720,7 +468,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitQualifiedName?: (ctx: QualifiedNameContext) => void; - /** * Enter a parse tree produced by `esql_parser.qualifiedNamePattern`. * @param ctx the parse tree @@ -731,7 +478,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitQualifiedNamePattern?: (ctx: QualifiedNamePatternContext) => void; - /** * Enter a parse tree produced by `esql_parser.identifier`. * @param ctx the parse tree @@ -742,7 +488,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitIdentifier?: (ctx: IdentifierContext) => void; - /** * Enter a parse tree produced by `esql_parser.identifierPattern`. * @param ctx the parse tree @@ -753,7 +498,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitIdentifierPattern?: (ctx: IdentifierPatternContext) => void; - /** * Enter a parse tree produced by `esql_parser.idPattern`. * @param ctx the parse tree @@ -764,18 +508,126 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitIdPattern?: (ctx: IdPatternContext) => void; - /** - * Enter a parse tree produced by `esql_parser.constant`. + * Enter a parse tree produced by the `nullLiteral` + * labeled alternative in `esql_parser.constant`. * @param ctx the parse tree */ - enterConstant?: (ctx: ConstantContext) => void; + enterNullLiteral?: (ctx: NullLiteralContext) => void; /** - * Exit a parse tree produced by `esql_parser.constant`. + * Exit a parse tree produced by the `nullLiteral` + * labeled alternative in `esql_parser.constant`. * @param ctx the parse tree */ - exitConstant?: (ctx: ConstantContext) => void; - + exitNullLiteral?: (ctx: NullLiteralContext) => void; + /** + * Enter a parse tree produced by the `qualifiedIntegerLiteral` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + enterQualifiedIntegerLiteral?: (ctx: QualifiedIntegerLiteralContext) => void; + /** + * Exit a parse tree produced by the `qualifiedIntegerLiteral` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + exitQualifiedIntegerLiteral?: (ctx: QualifiedIntegerLiteralContext) => void; + /** + * Enter a parse tree produced by the `decimalLiteral` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + enterDecimalLiteral?: (ctx: DecimalLiteralContext) => void; + /** + * Exit a parse tree produced by the `decimalLiteral` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + exitDecimalLiteral?: (ctx: DecimalLiteralContext) => void; + /** + * Enter a parse tree produced by the `integerLiteral` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + enterIntegerLiteral?: (ctx: IntegerLiteralContext) => void; + /** + * Exit a parse tree produced by the `integerLiteral` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + exitIntegerLiteral?: (ctx: IntegerLiteralContext) => void; + /** + * Enter a parse tree produced by the `booleanLiteral` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + enterBooleanLiteral?: (ctx: BooleanLiteralContext) => void; + /** + * Exit a parse tree produced by the `booleanLiteral` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + exitBooleanLiteral?: (ctx: BooleanLiteralContext) => void; + /** + * Enter a parse tree produced by the `inputParam` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + enterInputParam?: (ctx: InputParamContext) => void; + /** + * Exit a parse tree produced by the `inputParam` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + exitInputParam?: (ctx: InputParamContext) => void; + /** + * Enter a parse tree produced by the `stringLiteral` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + enterStringLiteral?: (ctx: StringLiteralContext) => void; + /** + * Exit a parse tree produced by the `stringLiteral` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + exitStringLiteral?: (ctx: StringLiteralContext) => void; + /** + * Enter a parse tree produced by the `numericArrayLiteral` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + enterNumericArrayLiteral?: (ctx: NumericArrayLiteralContext) => void; + /** + * Exit a parse tree produced by the `numericArrayLiteral` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + exitNumericArrayLiteral?: (ctx: NumericArrayLiteralContext) => void; + /** + * Enter a parse tree produced by the `booleanArrayLiteral` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + enterBooleanArrayLiteral?: (ctx: BooleanArrayLiteralContext) => void; + /** + * Exit a parse tree produced by the `booleanArrayLiteral` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + exitBooleanArrayLiteral?: (ctx: BooleanArrayLiteralContext) => void; + /** + * Enter a parse tree produced by the `stringArrayLiteral` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + enterStringArrayLiteral?: (ctx: StringArrayLiteralContext) => void; + /** + * Exit a parse tree produced by the `stringArrayLiteral` + * labeled alternative in `esql_parser.constant`. + * @param ctx the parse tree + */ + exitStringArrayLiteral?: (ctx: StringArrayLiteralContext) => void; /** * Enter a parse tree produced by `esql_parser.limitCommand`. * @param ctx the parse tree @@ -786,7 +638,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitLimitCommand?: (ctx: LimitCommandContext) => void; - /** * Enter a parse tree produced by `esql_parser.sortCommand`. * @param ctx the parse tree @@ -797,7 +648,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitSortCommand?: (ctx: SortCommandContext) => void; - /** * Enter a parse tree produced by `esql_parser.orderExpression`. * @param ctx the parse tree @@ -808,7 +658,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitOrderExpression?: (ctx: OrderExpressionContext) => void; - /** * Enter a parse tree produced by `esql_parser.keepCommand`. * @param ctx the parse tree @@ -819,7 +668,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitKeepCommand?: (ctx: KeepCommandContext) => void; - /** * Enter a parse tree produced by `esql_parser.dropCommand`. * @param ctx the parse tree @@ -830,7 +678,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitDropCommand?: (ctx: DropCommandContext) => void; - /** * Enter a parse tree produced by `esql_parser.renameCommand`. * @param ctx the parse tree @@ -841,7 +688,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitRenameCommand?: (ctx: RenameCommandContext) => void; - /** * Enter a parse tree produced by `esql_parser.renameClause`. * @param ctx the parse tree @@ -852,7 +698,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitRenameClause?: (ctx: RenameClauseContext) => void; - /** * Enter a parse tree produced by `esql_parser.dissectCommand`. * @param ctx the parse tree @@ -863,7 +708,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitDissectCommand?: (ctx: DissectCommandContext) => void; - /** * Enter a parse tree produced by `esql_parser.grokCommand`. * @param ctx the parse tree @@ -874,7 +718,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitGrokCommand?: (ctx: GrokCommandContext) => void; - /** * Enter a parse tree produced by `esql_parser.mvExpandCommand`. * @param ctx the parse tree @@ -885,7 +728,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitMvExpandCommand?: (ctx: MvExpandCommandContext) => void; - /** * Enter a parse tree produced by `esql_parser.commandOptions`. * @param ctx the parse tree @@ -896,7 +738,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitCommandOptions?: (ctx: CommandOptionsContext) => void; - /** * Enter a parse tree produced by `esql_parser.commandOption`. * @param ctx the parse tree @@ -907,7 +748,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitCommandOption?: (ctx: CommandOptionContext) => void; - /** * Enter a parse tree produced by `esql_parser.booleanValue`. * @param ctx the parse tree @@ -918,7 +758,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitBooleanValue?: (ctx: BooleanValueContext) => void; - /** * Enter a parse tree produced by `esql_parser.numericValue`. * @param ctx the parse tree @@ -929,7 +768,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitNumericValue?: (ctx: NumericValueContext) => void; - /** * Enter a parse tree produced by `esql_parser.decimalValue`. * @param ctx the parse tree @@ -940,7 +778,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitDecimalValue?: (ctx: DecimalValueContext) => void; - /** * Enter a parse tree produced by `esql_parser.integerValue`. * @param ctx the parse tree @@ -951,7 +788,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitIntegerValue?: (ctx: IntegerValueContext) => void; - /** * Enter a parse tree produced by `esql_parser.string`. * @param ctx the parse tree @@ -962,7 +798,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitString?: (ctx: StringContext) => void; - /** * Enter a parse tree produced by `esql_parser.comparisonOperator`. * @param ctx the parse tree @@ -973,7 +808,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitComparisonOperator?: (ctx: ComparisonOperatorContext) => void; - /** * Enter a parse tree produced by `esql_parser.explainCommand`. * @param ctx the parse tree @@ -984,7 +818,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitExplainCommand?: (ctx: ExplainCommandContext) => void; - /** * Enter a parse tree produced by `esql_parser.subqueryExpression`. * @param ctx the parse tree @@ -995,18 +828,30 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitSubqueryExpression?: (ctx: SubqueryExpressionContext) => void; - /** - * Enter a parse tree produced by `esql_parser.showCommand`. + * Enter a parse tree produced by the `showInfo` + * labeled alternative in `esql_parser.showCommand`. + * @param ctx the parse tree + */ + enterShowInfo?: (ctx: ShowInfoContext) => void; + /** + * Exit a parse tree produced by the `showInfo` + * labeled alternative in `esql_parser.showCommand`. * @param ctx the parse tree */ - enterShowCommand?: (ctx: ShowCommandContext) => void; + exitShowInfo?: (ctx: ShowInfoContext) => void; /** - * Exit a parse tree produced by `esql_parser.showCommand`. + * Enter a parse tree produced by the `showFunctions` + * labeled alternative in `esql_parser.showCommand`. * @param ctx the parse tree */ - exitShowCommand?: (ctx: ShowCommandContext) => void; - + enterShowFunctions?: (ctx: ShowFunctionsContext) => void; + /** + * Exit a parse tree produced by the `showFunctions` + * labeled alternative in `esql_parser.showCommand`. + * @param ctx the parse tree + */ + exitShowFunctions?: (ctx: ShowFunctionsContext) => void; /** * Enter a parse tree produced by `esql_parser.enrichCommand`. * @param ctx the parse tree @@ -1017,7 +862,6 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitEnrichCommand?: (ctx: EnrichCommandContext) => void; - /** * Enter a parse tree produced by `esql_parser.enrichWithClause`. * @param ctx the parse tree diff --git a/packages/kbn-monaco/src/esql/language.ts b/packages/kbn-monaco/src/esql/language.ts index c37e19fb81d93..90d73af3e02f5 100644 --- a/packages/kbn-monaco/src/esql/language.ts +++ b/packages/kbn-monaco/src/esql/language.ts @@ -13,7 +13,6 @@ import { ESQL_LANG_ID } from './lib/constants'; import type { CustomLangModuleType } from '../types'; import type { ESQLWorker } from './worker/esql_worker'; -import { DiagnosticsAdapter } from '../common/diagnostics_adapter'; import { WorkerProxyService } from '../common/worker_proxy'; import type { ESQLCallbacks } from './lib/ast/shared/types'; import { ESQLAstAdapter } from './lib/monaco/esql_ast_provider'; @@ -28,10 +27,6 @@ export const ESQLLang: CustomLangModuleType = { workerProxyService.setup(ESQL_LANG_ID); monaco.languages.setTokensProvider(ESQL_LANG_ID, new ESQLTokensProvider()); - - // handle syntax errors via the diagnostic adapter - // but then enrich them via the separate validate function - new DiagnosticsAdapter(ESQL_LANG_ID, (...uris) => workerProxyService.getWorker(uris)); }, languageConfiguration: { brackets: [ diff --git a/packages/kbn-monaco/src/esql/lib/antlr_facade.ts b/packages/kbn-monaco/src/esql/lib/antlr_facade.ts index ffa69ba2a8f4c..a7a9fb2104938 100644 --- a/packages/kbn-monaco/src/esql/lib/antlr_facade.ts +++ b/packages/kbn-monaco/src/esql/lib/antlr_facade.ts @@ -6,17 +6,17 @@ * Side Public License, v 1. */ -import { CommonTokenStream, type CodePointCharStream, type ANTLRErrorListener } from 'antlr4ts'; +import { CommonTokenStream, type CharStream, type ErrorListener } from 'antlr4'; -import { esql_lexer as ESQLLexer } from '../antlr/esql_lexer'; -import { esql_parser as ESQLParser } from '../antlr/esql_parser'; -import type { esql_parserListener as ESQLParserListener } from '../antlr/esql_parser_listener'; +import { default as ESQLLexer } from '../antlr/esql_lexer'; +import { default as ESQLParser } from '../antlr/esql_parser'; +import { default as ESQLParserListener } from '../antlr/esql_parser_listener'; export const ROOT_STATEMENT = 'singleStatement'; export const getParser = ( - inputStream: CodePointCharStream, - errorListener: ANTLRErrorListener, + inputStream: CharStream, + errorListener: ErrorListener, parseListener?: ESQLParserListener ) => { const lexer = getLexer(inputStream, errorListener); @@ -27,16 +27,15 @@ export const getParser = ( parser.addErrorListener(errorListener); if (parseListener) { + // @ts-expect-error the addParseListener API does exist and is documented here + // https://github.com/antlr/antlr4/blob/dev/doc/listeners.md parser.addParseListener(parseListener); } return parser; }; -export const getLexer = ( - inputStream: CodePointCharStream, - errorListener: ANTLRErrorListener -) => { +export const getLexer = (inputStream: CharStream, errorListener: ErrorListener) => { const lexer = new ESQLLexer(inputStream); lexer.removeErrorListeners(); diff --git a/packages/kbn-monaco/src/esql/lib/ast/ast_errors.ts b/packages/kbn-monaco/src/esql/lib/ast/ast_errors.ts index 01d16a46b2502..976de99250d4d 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/ast_errors.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/ast_errors.ts @@ -6,45 +6,15 @@ * Side Public License, v 1. */ -import type { RecognitionException } from 'antlr4ts'; -import { esql_parser } from '../../antlr/esql_parser'; +import type { RecognitionException } from 'antlr4'; import { getPosition } from './ast_position_utils'; -function getExpectedSymbols(expectedTokens: RecognitionException['expectedTokens']) { - const tokenIds = expectedTokens?.toIntegerList().toArray() || []; - const list = []; - for (const tokenId of tokenIds) { - if (esql_parser.VOCABULARY.getSymbolicName(tokenId)) { - const symbol = esql_parser.VOCABULARY.getSymbolicName(tokenId); - list.push(symbol === 'EOF' ? `<${symbol}>` : symbol); - } - } - return list; -} - export function createError(exception: RecognitionException) { - const token = exception.getOffendingToken(); - if (token) { - const expectedSymbols = getExpectedSymbols(exception.expectedTokens); - if ( - ['ASTERISK', 'UNQUOTED_IDENTIFIER', 'QUOTED_IDENTIFIER'].every( - (s, i) => expectedSymbols[i] === s - ) - ) { - return { - type: 'error' as const, - text: `Unknown column ${token.text}`, - location: getPosition(token), - }; - } - } + const token = exception.offendingToken; + return { type: 'error' as const, - text: token - ? `SyntaxError: expected {${getExpectedSymbols(exception.expectedTokens).join( - ', ' - )}} but found "${token.text}"` - : exception.message, + text: `SyntaxError: ${exception.message}`, location: getPosition(token), }; } diff --git a/packages/kbn-monaco/src/esql/lib/ast/ast_factory.ts b/packages/kbn-monaco/src/esql/lib/ast/ast_factory.ts index 328dfd51bc9bc..c543cc9c52caa 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/ast_factory.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/ast_factory.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +import type { ErrorNode, ParserRuleContext, TerminalNode } from 'antlr4'; import { type ShowInfoContext, type ShowFunctionsContext, @@ -25,9 +26,9 @@ import { type ShowCommandContext, type EnrichCommandContext, type WhereCommandContext, - esql_parser, + default as esql_parser, } from '../../antlr/esql_parser'; -import { esql_parserListener as ESQLParserListener } from '../../antlr/esql_parser_listener'; +import { default as ESQLParserListener } from '../../antlr/esql_parser_listener'; import { createCommand, createFunction, createOption, createLiteral } from './ast_helpers'; import { getPosition } from './ast_position_utils'; import { @@ -62,7 +63,7 @@ export class AstListener implements ESQLParserListener { const commandAst = createCommand('show', ctx); this.ast.push(commandAst); - commandAst.text = ctx.text; + commandAst.text = ctx.getText(); commandAst?.args.push(createFunction('info', ctx, getPosition(ctx.INFO().symbol))); } @@ -75,7 +76,7 @@ export class AstListener implements ESQLParserListener { const commandAst = createCommand('show', ctx); this.ast.push(commandAst); // update the text - commandAst.text = ctx.text; + commandAst.text = ctx.getText(); commandAst?.args.push(createFunction('functions', ctx, getPosition(ctx.FUNCTIONS().symbol))); } @@ -119,7 +120,10 @@ export class AstListener implements ESQLParserListener { const metadataContent = metadataContext?.deprecated_metadata()?.metadataOption() || metadataContext?.metadataOption(); if (metadataContent) { - const option = createOption(metadataContent.METADATA().text.toLowerCase(), metadataContent); + const option = createOption( + metadataContent.METADATA().getText().toLowerCase(), + metadataContent + ); commandAst.args.push(option); option.args.push(...collectAllColumnIdentifiers(metadataContent)); } @@ -142,13 +146,13 @@ export class AstListener implements ESQLParserListener { exitStatsCommand(ctx: StatsCommandContext) { const command = createCommand('stats', ctx); this.ast.push(command); - const fields = ctx.fields(); + // STATS expression is optional if (ctx._stats) { - command.args.push(...collectAllFieldsStatements(fields[0])); + command.args.push(...collectAllFieldsStatements(ctx.fields(0))); } if (ctx._grouping) { - command.args.push(...visitByOption(ctx, ctx._stats ? fields[1] : fields[0])); + command.args.push(...visitByOption(ctx, ctx._stats ? ctx.fields(1) : ctx.fields(0))); } } @@ -159,7 +163,7 @@ export class AstListener implements ESQLParserListener { exitLimitCommand(ctx: LimitCommandContext) { const command = createCommand('limit', ctx); this.ast.push(command); - if (ctx.tryGetToken(esql_parser.INTEGER_LITERAL, 0)) { + if (ctx.getToken(esql_parser.INTEGER_LITERAL, 0)) { const literal = createLiteral('number', ctx.INTEGER_LITERAL()); if (literal) { command.args.push(literal); @@ -174,7 +178,7 @@ export class AstListener implements ESQLParserListener { exitSortCommand(ctx: SortCommandContext) { const command = createCommand('sort', ctx); this.ast.push(command); - command.args.push(...visitOrderExpression(ctx.orderExpression())); + command.args.push(...visitOrderExpression(ctx.orderExpression_list())); } /** @@ -204,7 +208,7 @@ export class AstListener implements ESQLParserListener { exitRenameCommand(ctx: RenameCommandContext) { const command = createCommand('rename', ctx); this.ast.push(command); - command.args.push(...visitRenameClauses(ctx.renameClause())); + command.args.push(...visitRenameClauses(ctx.renameClause_list())); } /** @@ -254,4 +258,20 @@ export class AstListener implements ESQLParserListener { this.ast.push(command); command.args.push(...getPolicyName(ctx), ...getMatchField(ctx), ...getEnrichClauses(ctx)); } + + enterEveryRule(ctx: ParserRuleContext): void { + // method not implemented, added to satisfy interface expectation + } + + visitErrorNode(node: ErrorNode): void { + // method not implemented, added to satisfy interface expectation + } + + visitTerminal(node: TerminalNode): void { + // method not implemented, added to satisfy interface expectation + } + + exitEveryRule(ctx: ParserRuleContext): void { + // method not implemented, added to satisfy interface expectation + } } diff --git a/packages/kbn-monaco/src/esql/lib/ast/ast_helpers.ts b/packages/kbn-monaco/src/esql/lib/ast/ast_helpers.ts index 7b6256db8c96b..c339342a0718d 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/ast_helpers.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/ast_helpers.ts @@ -10,10 +10,7 @@ * In case of changes in the grammar, this script should be updated: esql_update_ast_script.js */ -import { Token } from 'antlr4ts'; -import type { ParserRuleContext } from 'antlr4ts/ParserRuleContext'; -import { ErrorNode } from 'antlr4ts/tree/ErrorNode'; -import type { TerminalNode } from 'antlr4ts/tree/TerminalNode'; +import { type Token, type ParserRuleContext, type TerminalNode } from 'antlr4'; import type { ArithmeticUnaryContext, DecimalValueContext, @@ -44,7 +41,7 @@ export function createCommand(name: string, ctx: ParserRuleContext): ESQLCommand return { type: 'command', name, - text: ctx.text, + text: ctx.getText(), args: [], location: getPosition(ctx.start, ctx.stop), incomplete: Boolean(ctx.exception), @@ -54,16 +51,16 @@ export function createCommand(name: string, ctx: ParserRuleContext): ESQLCommand export function createList(ctx: ParserRuleContext, values: ESQLLiteral[]): ESQLList { return { type: 'list', - name: ctx.text, + name: ctx.getText(), values, - text: ctx.text, + text: ctx.getText(), location: getPosition(ctx.start, ctx.stop), incomplete: Boolean(ctx.exception), }; } export function createNumericLiteral(ctx: DecimalValueContext | IntegerValueContext): ESQLLiteral { - const text = ctx.text; + const text = ctx.getText(); return { type: 'literal', literalType: 'number', @@ -79,8 +76,8 @@ export function createFakeMultiplyLiteral(ctx: ArithmeticUnaryContext): ESQLLite return { type: 'literal', literalType: 'number', - text: ctx.text, - name: ctx.text, + text: ctx.getText(), + name: ctx.getText(), value: ctx.PLUS() ? 1 : -1, location: getPosition(ctx.start, ctx.stop), incomplete: Boolean(ctx.exception), @@ -115,7 +112,7 @@ export function createLiteral( if (!node) { return; } - const text = node.text; + const text = node.getText(); return { type: 'literal', literalType: type, @@ -123,18 +120,20 @@ export function createLiteral( name: text, value: type === 'number' ? Number(text) : text, location: getPosition(node.symbol), - incomplete: isMissingText(node.text), + incomplete: isMissingText(node.getText()), }; } export function createTimeUnit(ctx: QualifiedIntegerLiteralContext): ESQLTimeInterval { return { type: 'timeInterval', - quantity: Number(ctx.integerValue().text), - unit: ctx.UNQUOTED_IDENTIFIER().text, - text: ctx.text, + quantity: Number(ctx.integerValue().INTEGER_LITERAL().getText()), + unit: ctx.UNQUOTED_IDENTIFIER().symbol.text, + text: ctx.getText(), location: getPosition(ctx.start, ctx.stop), - name: `${ctx.integerValue().text} ${ctx.UNQUOTED_IDENTIFIER().text}`, + name: `${ctx.integerValue().INTEGER_LITERAL().getText()} ${ + ctx.UNQUOTED_IDENTIFIER().symbol.text + }`, incomplete: Boolean(ctx.exception), }; } @@ -147,7 +146,7 @@ export function createFunction( return { type: 'function', name, - text: ctx.text, + text: ctx.getText(), location: customPosition ?? getPosition(ctx.start, ctx.stop), args: [], incomplete: Boolean(ctx.exception), @@ -203,7 +202,7 @@ export function computeLocationExtends(fn: ESQLFunction) { /* SCRIPT_MARKER_START */ function getQuotedText(ctx: ParserRuleContext) { return [66 /* esql_parser.QUOTED_IDENTIFIER */] - .map((keyCode) => ctx.tryGetToken(keyCode, 0)) + .map((keyCode) => ctx.getToken(keyCode, 0)) .filter(nonNullable)[0]; } @@ -212,7 +211,7 @@ function getUnquotedText(ctx: ParserRuleContext) { 65 /* esql_parser.UNQUOTED_IDENTIFIER */, 71 /* esql_parser.FROM_UNQUOTED_IDENTIFIER */, 105 /* esql_parser.UNQUOTED_ID_PATTERN */, ] - .map((keyCode) => ctx.tryGetToken(keyCode, 0)) + .map((keyCode) => ctx.getToken(keyCode, 0)) .filter(nonNullable)[0]; } /* SCRIPT_MARKER_END */ @@ -230,11 +229,11 @@ function safeBackticksRemoval(text: string | undefined) { return text?.replace(TICKS_REGEX, '').replace(DOUBLE_TICKS_REGEX, SINGLE_BACKTICK) || ''; } -export function sanifyIdentifierString(ctx: ParserRuleContext) { +export function sanitizeIdentifierString(ctx: ParserRuleContext) { return ( - getUnquotedText(ctx)?.text || - safeBackticksRemoval(getQuotedText(ctx)?.text) || - safeBackticksRemoval(ctx.text) // for some reason some quoted text is not detected correctly by the parser + getUnquotedText(ctx)?.getText() || + safeBackticksRemoval(getQuotedText(ctx)?.getText()) || + safeBackticksRemoval(ctx.getText()) // for some reason some quoted text is not detected correctly by the parser ); } @@ -247,7 +246,7 @@ export function createSetting(policyName: Token, mode: string): ESQLCommandMode type: 'mode', name: mode.replace('_', '').toLowerCase(), text: mode, - location: getPosition(policyName, { stopIndex: policyName.startIndex + mode.length - 1 }), // unfortunately this is the only location we have + location: getPosition(policyName, { stop: policyName.start + mode.length - 1 }), // unfortunately this is the only location we have incomplete: false, }; } @@ -263,8 +262,8 @@ export function createPolicy(token: Token, policy: string): ESQLSource { text: policy, sourceType: 'policy', location: getPosition({ - startIndex: token.stopIndex - policy.length + 1, - stopIndex: token.stopIndex, + start: token.stop - policy.length + 1, + stop: token.stop, }), // take into account ccq modes incomplete: false, }; @@ -274,7 +273,7 @@ export function createSource( ctx: ParserRuleContext, type: 'index' | 'policy' = 'index' ): ESQLSource { - const text = sanifyIdentifierString(ctx); + const text = sanitizeIdentifierString(ctx); return { type: 'source', name: text, @@ -288,21 +287,21 @@ export function createSource( export function createColumnStar(ctx: TerminalNode): ESQLColumn { return { type: 'column', - name: ctx.text, - text: ctx.text, + name: ctx.getText(), + text: ctx.getText(), location: getPosition(ctx.symbol), - incomplete: ctx.text === '', + incomplete: ctx.getText() === '', quoted: false, }; } export function createColumn(ctx: ParserRuleContext): ESQLColumn { - const text = sanifyIdentifierString(ctx); - const hasQuotes = Boolean(getQuotedText(ctx) || isQuoted(ctx.text)); + const text = sanitizeIdentifierString(ctx); + const hasQuotes = Boolean(getQuotedText(ctx) || isQuoted(ctx.getText())); return { type: 'column' as const, name: text, - text: ctx.text, + text: ctx.getText(), location: getPosition(ctx.start, ctx.stop), incomplete: Boolean(ctx.exception || text === ''), quoted: hasQuotes, @@ -313,9 +312,15 @@ export function createOption(name: string, ctx: ParserRuleContext): ESQLCommandO return { type: 'option', name, - text: ctx.text, + text: ctx.getText(), location: getPosition(ctx.start, ctx.stop), args: [], - incomplete: Boolean(ctx.exception || ctx.children?.some((c) => c instanceof ErrorNode)), + incomplete: Boolean( + ctx.exception || + ctx.children?.some((c) => { + // @ts-expect-error not exposed in type but exists see https://github.com/antlr/antlr4/blob/v4.11.1/runtime/JavaScript/src/antlr4/tree/ErrorNodeImpl.js#L19 + return Boolean(c.isErrorNode); + }) + ), }; } diff --git a/packages/kbn-monaco/src/esql/lib/ast/ast_position_utils.ts b/packages/kbn-monaco/src/esql/lib/ast/ast_position_utils.ts index 24d3a806ace01..6c0c6bf9e7b37 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/ast_position_utils.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/ast_position_utils.ts @@ -6,20 +6,19 @@ * Side Public License, v 1. */ -import type { Token } from 'antlr4ts'; +import type { Token } from 'antlr4'; export function getPosition( - token: Pick | undefined, - lastToken?: Pick | undefined + token: Pick | null, + lastToken?: Pick | undefined ) { - if (!token || token.startIndex < 0) { + if (!token || token.start < 0) { return { min: 0, max: 0 }; } - const endFirstToken = - token.stopIndex > -1 ? Math.max(token.stopIndex + 1, token.startIndex) : undefined; - const endLastToken = lastToken?.stopIndex; + const endFirstToken = token.stop > -1 ? Math.max(token.stop + 1, token.start) : undefined; + const endLastToken = lastToken?.stop; return { - min: token.startIndex, + min: token.start, max: endLastToken ?? endFirstToken ?? Infinity, }; } diff --git a/packages/kbn-monaco/src/esql/lib/ast/ast_walker.ts b/packages/kbn-monaco/src/esql/lib/ast/ast_walker.ts index 0b05cd6452873..f9976901cdd19 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/ast_walker.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/ast_walker.ts @@ -6,8 +6,9 @@ * Side Public License, v 1. */ -import type { ParserRuleContext } from 'antlr4ts/ParserRuleContext'; +import { type ParserRuleContext } from 'antlr4'; import { + default as esql_parser, ArithmeticBinaryContext, ArithmeticUnaryContext, BooleanArrayLiteralContext, @@ -25,7 +26,6 @@ import { type DissectCommandContext, type DropCommandContext, type EnrichCommandContext, - esql_parser, type FieldContext, type FieldsContext, type FromCommandContext, @@ -69,7 +69,7 @@ import { createFakeMultiplyLiteral, createList, createNumericLiteral, - sanifyIdentifierString, + sanitizeIdentifierString, computeLocationExtends, createColumnStar, wrapIdentifierAsArray, @@ -87,25 +87,27 @@ import type { } from './types'; export function collectAllSourceIdentifiers(ctx: FromCommandContext): ESQLAstItem[] { - return ctx.getRuleContexts(FromIdentifierContext).map((sourceCtx) => createSource(sourceCtx)); + return ctx + .getTypedRuleContexts(FromIdentifierContext) + .map((sourceCtx) => createSource(sourceCtx)); } function extractIdentifiers( ctx: KeepCommandContext | DropCommandContext | MvExpandCommandContext | MetadataOptionContext ) { if (ctx instanceof MetadataOptionContext) { - return wrapIdentifierAsArray(ctx.fromIdentifier()); + return wrapIdentifierAsArray(ctx.fromIdentifier_list()); } if (ctx instanceof MvExpandCommandContext) { return wrapIdentifierAsArray(ctx.qualifiedName()); } - return wrapIdentifierAsArray(ctx.qualifiedNamePattern()); + return wrapIdentifierAsArray(ctx.qualifiedNamePattern_list()); } function makeColumnsOutOfIdentifiers(identifiers: ParserRuleContext[]) { const args: ESQLColumn[] = identifiers - .filter((child) => textExistsAndIsValid(child.text)) + .filter((child) => textExistsAndIsValid(child.getText())) .map((sourceContext) => { return createColumn(sourceContext); }) ?? []; @@ -137,8 +139,8 @@ export function getMatchField(ctx: EnrichCommandContext) { } const identifier = ctx.qualifiedNamePattern(); if (identifier) { - const fn = createOption(ctx.ON()!.text.toLowerCase(), ctx); - if (textExistsAndIsValid(identifier.text)) { + const fn = createOption(ctx.ON()!.getText().toLowerCase(), ctx); + if (textExistsAndIsValid(identifier.getText())) { fn.args.push(createColumn(identifier)); } // overwrite the location inferring the correct position @@ -151,21 +153,21 @@ export function getMatchField(ctx: EnrichCommandContext) { export function getEnrichClauses(ctx: EnrichCommandContext) { const ast: ESQLCommandOption[] = []; if (ctx.WITH()) { - const option = createOption(ctx.WITH()!.text.toLowerCase(), ctx); + const option = createOption(ctx.WITH()!.getText().toLowerCase(), ctx); ast.push(option); - const clauses = ctx.enrichWithClause(); + const clauses = ctx.enrichWithClause_list(); for (const clause of clauses) { if (clause._enrichField) { const args = []; if (clause.ASSIGN()) { args.push(createColumn(clause._newName)); - if (textExistsAndIsValid(clause._enrichField?.text)) { + if (textExistsAndIsValid(clause._enrichField?.getText())) { args.push(createColumn(clause._enrichField)); } } else { // if an explicit assign is not set, create a fake assign with // both left and right value with the same column - if (textExistsAndIsValid(clause._enrichField?.text)) { + if (textExistsAndIsValid(clause._enrichField?.getText())) { args.push(createColumn(clause._enrichField), createColumn(clause._enrichField)); } } @@ -202,7 +204,7 @@ function visitLogicalAndsOrs(ctx: LogicalBinaryContext) { function visitLogicalIns(ctx: LogicalInContext) { const fn = createFunction(ctx.NOT() ? 'not_in' : 'in', ctx); - const [left, ...list] = ctx.valueExpression(); + const [left, ...list] = ctx.valueExpression_list(); const leftArg = visitValueExpression(left); if (leftArg) { fn.args.push(...(Array.isArray(leftArg) ? leftArg : [leftArg])); @@ -211,7 +213,7 @@ function visitLogicalIns(ctx: LogicalInContext) { .filter(nonNullable) .flatMap((arg) => (Array.isArray(arg) ? arg.filter(nonNullable) : arg)); // distinguish between missing brackets (missing text error) and an empty list - if (textExistsAndIsValid(ctx.text)) { + if (textExistsAndIsValid(ctx.getText())) { fn.args.push(listArgs); } } @@ -223,29 +225,16 @@ function visitLogicalIns(ctx: LogicalInContext) { function getMathOperation(ctx: ArithmeticBinaryContext) { return ( - ctx.PLUS()?.text || - ctx.MINUS()?.text || - ctx.ASTERISK()?.text || - ctx.SLASH()?.text || - ctx.PERCENT()?.text || - '' + (ctx.PLUS() || ctx.MINUS() || ctx.ASTERISK() || ctx.SLASH() || ctx.PERCENT()).getText() || '' ); } function getComparisonName(ctx: ComparisonOperatorContext) { - return ( - ctx.EQ()?.text || - ctx.NEQ()?.text || - ctx.LT()?.text || - ctx.LTE()?.text || - ctx.GT()?.text || - ctx.GTE()?.text || - '' - ); + return (ctx.EQ() || ctx.NEQ() || ctx.LT() || ctx.LTE() || ctx.GT() || ctx.GTE()).getText() || ''; } function visitValueExpression(ctx: ValueExpressionContext) { - if (!textExistsAndIsValid(ctx.text)) { + if (!textExistsAndIsValid(ctx.getText())) { return []; } if (ctx instanceof ValueExpressionDefaultContext) { @@ -322,7 +311,7 @@ function getConstant(ctx: ConstantContext | undefined): ESQLAstItem | undefined return getBooleanValue(ctx); } if (ctx instanceof StringLiteralContext) { - return createLiteral('string', ctx.string().STRING()); + return createLiteral('string', ctx.string_().STRING()); } if ( ctx instanceof NumericArrayLiteralContext || @@ -330,14 +319,14 @@ function getConstant(ctx: ConstantContext | undefined): ESQLAstItem | undefined ctx instanceof StringArrayLiteralContext ) { const values: ESQLLiteral[] = []; - for (const numericValue of ctx.getRuleContexts(NumericValueContext)) { + for (const numericValue of ctx.getTypedRuleContexts(NumericValueContext)) { const value = numericValue.decimalValue() || numericValue.integerValue(); values.push(createNumericLiteral(value!)); } - for (const booleanValue of ctx.getRuleContexts(BooleanValueContext)) { + for (const booleanValue of ctx.getTypedRuleContexts(BooleanValueContext)) { values.push(getBooleanValue(booleanValue)!); } - for (const string of ctx.getRuleContexts(StringContext)) { + for (const string of ctx.getTypedRuleContexts(StringContext)) { const literal = createLiteral('string', string.STRING()); if (literal) { values.push(literal); @@ -350,16 +339,16 @@ function getConstant(ctx: ConstantContext | undefined): ESQLAstItem | undefined export function visitRenameClauses(clausesCtx: RenameClauseContext[]): ESQLAstItem[] { return clausesCtx .map((clause) => { - const asToken = clause.tryGetToken(esql_parser.AS, 0); + const asToken = clause.getToken(esql_parser.AS, 0); if (asToken) { - const fn = createOption(asToken.text.toLowerCase(), clause); + const fn = createOption(asToken.getText().toLowerCase(), clause); for (const arg of [clause._oldName, clause._newName]) { - if (textExistsAndIsValid(arg.text)) { + if (textExistsAndIsValid(arg.getText())) { fn.args.push(createColumn(arg)); } } return fn; - } else if (textExistsAndIsValid(clause._oldName?.text)) { + } else if (textExistsAndIsValid(clause._oldName?.getText())) { return createColumn(clause._oldName); } }) @@ -380,7 +369,7 @@ export function visitPrimaryExpression( } if (ctx instanceof FunctionContext) { const functionExpressionCtx = ctx.functionExpression(); - const fn = createFunction(functionExpressionCtx.identifier().text.toLowerCase(), ctx); + const fn = createFunction(functionExpressionCtx.identifier().getText().toLowerCase(), ctx); const asteriskArg = functionExpressionCtx.ASTERISK() ? createColumnStar(functionExpressionCtx.ASTERISK()!) : undefined; @@ -388,7 +377,7 @@ export function visitPrimaryExpression( fn.args.push(asteriskArg); } const functionArgs = functionExpressionCtx - .booleanExpression() + .booleanExpression_list() .flatMap(collectBooleanExpression) .filter(nonNullable); if (functionArgs.length) { @@ -412,7 +401,7 @@ export function collectLogicalExpression(ctx: BooleanExpressionContext) { } function collectRegexExpression(ctx: BooleanExpressionContext): ESQLFunction[] { - const regexes = ctx.getRuleContexts(RegexBooleanExpressionContext); + const regexes = ctx.getTypedRuleContexts(RegexBooleanExpressionContext); const ret: ESQLFunction[] = []; return ret.concat( regexes.map((regex) => { @@ -472,7 +461,7 @@ export function collectBooleanExpression(ctx: BooleanExpressionContext | undefin export function visitField(ctx: FieldContext) { if (ctx.qualifiedName() && ctx.ASSIGN()) { - const fn = createFunction(ctx.ASSIGN()!.text, ctx); + const fn = createFunction(ctx.ASSIGN()!.getText(), ctx); fn.args.push( createColumn(ctx.qualifiedName()!), collectBooleanExpression(ctx.booleanExpression()) @@ -491,7 +480,7 @@ export function collectAllFieldsStatements(ctx: FieldsContext | undefined): ESQL return ast; } try { - for (const field of ctx.field()) { + for (const field of ctx.field_list()) { ast.push(...visitField(field)); } } catch (e) { @@ -504,7 +493,7 @@ export function visitByOption(ctx: StatsCommandContext, expr: FieldsContext | un if (!ctx.BY() || !expr) { return []; } - const option = createOption(ctx.BY()!.text.toLowerCase(), ctx); + const option = createOption(ctx.BY()!.getText().toLowerCase(), ctx); option.args.push(...collectAllFieldsStatements(expr)); return [option]; } @@ -515,7 +504,7 @@ export function visitOrderExpression(ctx: OrderExpressionContext[]) { const expression = collectBooleanExpression(orderCtx.booleanExpression()); if (orderCtx._ordering) { const terminalNode = - orderCtx.tryGetToken(esql_parser.ASC, 0) || orderCtx.tryGetToken(esql_parser.DESC, 0); + orderCtx.getToken(esql_parser.ASC, 0) || orderCtx.getToken(esql_parser.DESC, 0); const literal = createLiteral('string', terminalNode); if (literal) { expression.push(literal); @@ -525,7 +514,7 @@ export function visitOrderExpression(ctx: OrderExpressionContext[]) { expression.push(createLiteral('string', orderCtx.NULLS()!)!); if (orderCtx._nullOrdering) { const innerTerminalNode = - orderCtx.tryGetToken(esql_parser.FIRST, 0) || orderCtx.tryGetToken(esql_parser.LAST, 0); + orderCtx.getToken(esql_parser.FIRST, 0) || orderCtx.getToken(esql_parser.LAST, 0); const literal = createLiteral('string', innerTerminalNode); if (literal) { expression.push(literal); @@ -541,20 +530,22 @@ export function visitOrderExpression(ctx: OrderExpressionContext[]) { } export function visitDissect(ctx: DissectCommandContext) { - const pattern = ctx.string().tryGetToken(esql_parser.STRING, 0); + const pattern = ctx.string_().getToken(esql_parser.STRING, 0); return [ visitPrimaryExpression(ctx.primaryExpression()), - ...(pattern && textExistsAndIsValid(pattern.text) + ...(pattern && textExistsAndIsValid(pattern.getText()) ? [createLiteral('string', pattern), ...visitDissectOptions(ctx.commandOptions())] : []), ].filter(nonNullable); } export function visitGrok(ctx: GrokCommandContext) { - const pattern = ctx.string().tryGetToken(esql_parser.STRING, 0); + const pattern = ctx.string_().getToken(esql_parser.STRING, 0); return [ visitPrimaryExpression(ctx.primaryExpression()), - ...(pattern && textExistsAndIsValid(pattern.text) ? [createLiteral('string', pattern)] : []), + ...(pattern && textExistsAndIsValid(pattern.getText()) + ? [createLiteral('string', pattern)] + : []), ].filter(nonNullable); } @@ -563,9 +554,9 @@ function visitDissectOptions(ctx: CommandOptionsContext | undefined) { return []; } const options: ESQLCommandOption[] = []; - for (const optionCtx of ctx.commandOption()) { + for (const optionCtx of ctx.commandOption_list()) { const option = createOption( - sanifyIdentifierString(optionCtx.identifier()).toLowerCase(), + sanitizeIdentifierString(optionCtx.identifier()).toLowerCase(), optionCtx ); options.push(option); diff --git a/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.test.ts b/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.test.ts index 960eaaeedd813..8c24c7186cc01 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.test.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.test.ts @@ -7,7 +7,7 @@ */ import { monaco } from '../../../../monaco_imports'; -import { CharStreams } from 'antlr4ts'; +import { CharStreams } from 'antlr4'; import { suggest } from './autocomplete'; import { getParser, ROOT_STATEMENT } from '../../antlr_facade'; import { ESQLErrorListener } from '../../monaco/esql_error_listener'; diff --git a/packages/kbn-monaco/src/esql/lib/ast/code_actions/actions.test.ts b/packages/kbn-monaco/src/esql/lib/ast/code_actions/actions.test.ts index 4e82def27cb55..c3e21a4c43bed 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/code_actions/actions.test.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/code_actions/actions.test.ts @@ -7,7 +7,7 @@ */ import { EditorError } from '../../../../types'; -import { CharStreams } from 'antlr4ts'; +import { CharStreams } from 'antlr4'; import { getActions } from './actions'; import { getParser, ROOT_STATEMENT } from '../../antlr_facade'; import { ESQLErrorListener } from '../../monaco/esql_error_listener'; diff --git a/packages/kbn-monaco/src/esql/lib/ast/code_actions/actions.ts b/packages/kbn-monaco/src/esql/lib/ast/code_actions/actions.ts index 77b376b197b8a..bb2b5170d1c7b 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/code_actions/actions.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/code_actions/actions.ts @@ -332,10 +332,17 @@ function wrapIntoSpellingChangeAction( ); } -function inferCodeFromError(error: monaco.editor.IMarkerData & { owner?: string }) { - if (error.message.includes('missing STRING')) { - const [, value] = error.message.split('at '); - return value.startsWith("'") && value.endsWith("'") ? 'wrongQuotes' : undefined; +function extractQuotedText(rawText: string, error: monaco.editor.IMarkerData) { + return rawText.substring(error.startColumn - 2, error.endColumn); +} + +function inferCodeFromError( + error: monaco.editor.IMarkerData & { owner?: string }, + rawText: string +) { + if (error.message.endsWith('expecting STRING')) { + const value = extractQuotedText(rawText, error); + return /^'(.)*'$/.test(value) ? 'wrongQuotes' : undefined; } } @@ -371,7 +378,7 @@ export async function getActions( // so unless there are multiple error/markers for the same area, there's just one // in some cases, like syntax + semantic errors (i.e. unquoted fields eval field-1 ), there might be more than one for (const error of context.markers) { - const code = error.code ?? inferCodeFromError(error); + const code = error.code ?? inferCodeFromError(error, innerText); switch (code) { case 'unknownColumn': const [columnsSpellChanges, columnsQuotedChanges] = await Promise.all([ @@ -421,7 +428,7 @@ export async function getActions( break; case 'wrongQuotes': // it is a syntax error, so location won't be helpful here - const [, errorText] = error.message.split('at '); + const errorText = extractQuotedText(innerText, error); actions.push( createAction( i18n.translate('monaco.esql.quickfix.replaceWithQuote', { @@ -429,7 +436,11 @@ export async function getActions( }), errorText.replaceAll("'", '"'), // override the location - { ...error, endColumn: error.startColumn + errorText.length }, + { + ...error, + startColumn: error.startColumn - 1, + endColumn: error.startColumn + errorText.length, + }, model.uri ) ); diff --git a/packages/kbn-monaco/src/esql/lib/ast/hover/hover.test.ts b/packages/kbn-monaco/src/esql/lib/ast/hover/hover.test.ts index 960adfeba0a25..c2a28f28ba3d6 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/hover/hover.test.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/hover/hover.test.ts @@ -7,7 +7,7 @@ */ import { monaco } from '../../../../monaco_imports'; -import { CharStreams } from 'antlr4ts'; +import { CharStreams } from 'antlr4'; import { getParser, ROOT_STATEMENT } from '../../antlr_facade'; import { ESQLErrorListener } from '../../monaco/esql_error_listener'; import { AstListener } from '../ast_factory'; diff --git a/packages/kbn-monaco/src/esql/lib/ast/shared/resources_helpers.ts b/packages/kbn-monaco/src/esql/lib/ast/shared/resources_helpers.ts index d4d5087e1464c..c02d5db099f2b 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/shared/resources_helpers.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/shared/resources_helpers.ts @@ -8,7 +8,7 @@ import type { ESQLCallbacks } from './types'; import type { ESQLRealField } from '../validation/types'; -import { ESQLAst } from '../types'; +import type { ESQLAst } from '../types'; export function buildQueryUntilPreviousCommand(ast: ESQLAst, queryString: string) { const prevCommand = ast[Math.max(ast.length - 2, 0)]; diff --git a/packages/kbn-monaco/src/esql/lib/ast/validation/helpers.ts b/packages/kbn-monaco/src/esql/lib/ast/validation/helpers.ts index c93a8ad560349..e7999e4e63a9a 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/validation/helpers.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/validation/helpers.ts @@ -11,6 +11,9 @@ import type { ESQLPolicy } from './types'; export function buildQueryForFieldsFromSource(queryString: string, ast: ESQLAst) { const firstCommand = ast[0]; + if (firstCommand == null) { + return ''; + } return queryString.substring(0, firstCommand.location.max + 1); } diff --git a/packages/kbn-monaco/src/esql/lib/ast/validation/validation.test.ts b/packages/kbn-monaco/src/esql/lib/ast/validation/validation.test.ts index 199911fb2fc0a..10a4a2135fd6d 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/validation/validation.test.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/validation/validation.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { CharStreams } from 'antlr4ts'; +import { CharStreams } from 'antlr4'; import { getParser, ROOT_STATEMENT } from '../../antlr_facade'; import { join } from 'path'; import { writeFile } from 'fs/promises'; @@ -345,13 +345,15 @@ describe('validation logic', () => { ['eval', 'stats', 'rename', 'limit', 'keep', 'drop', 'mv_expand', 'dissect', 'grok'].map( (command) => testErrorsAndWarnings(command, [ - `SyntaxError: expected {EXPLAIN, FROM, ROW, SHOW} but found "${command}"`, + `SyntaxError: mismatched input '${command}' expecting {EXPLAIN, FROM, ROW, SHOW}`, ]) ); }); describe('from', () => { - testErrorsAndWarnings('f', ['SyntaxError: expected {EXPLAIN, FROM, ROW, SHOW} but found "f"']); + testErrorsAndWarnings('f', [ + "SyntaxError: mismatched input 'f' expecting {EXPLAIN, FROM, ROW, SHOW}", + ]); testErrorsAndWarnings(`from `, [ "SyntaxError: missing {QUOTED_IDENTIFIER, FROM_UNQUOTED_IDENTIFIER} at ''", ]); @@ -359,7 +361,7 @@ describe('validation logic', () => { "SyntaxError: missing {QUOTED_IDENTIFIER, FROM_UNQUOTED_IDENTIFIER} at ''", ]); testErrorsAndWarnings(`from assignment = 1`, [ - 'SyntaxError: expected {, PIPE, COMMA, OPENING_BRACKET, METADATA} but found "="', + "SyntaxError: mismatched input '=' expecting ", 'Unknown index [assignment]', ]); testErrorsAndWarnings(`from index`, []); @@ -399,8 +401,8 @@ describe('validation logic', () => { `from index ${setWrapping('metadata _id, _source')} ${setWrapping('METADATA _id2')}`, [ isWrapped - ? 'SyntaxError: expected {COMMA, CLOSING_BRACKET} but found "["' - : 'SyntaxError: expected {, PIPE, COMMA} but found "METADATA"', + ? "SyntaxError: mismatched input '[' expecting " + : "SyntaxError: mismatched input 'METADATA' expecting ", ], addBracketsWarning() ); @@ -417,7 +419,7 @@ describe('validation logic', () => { ); } testErrorsAndWarnings(`from index (metadata _id)`, [ - 'SyntaxError: expected {, PIPE, COMMA, OPENING_BRACKET, METADATA} but found "(metadata"', + "SyntaxError: mismatched input '(metadata' expecting ", ]); testErrorsAndWarnings(`from ind*, other*`, []); testErrorsAndWarnings(`from index*`, []); @@ -438,7 +440,7 @@ describe('validation logic', () => { describe('row', () => { testErrorsAndWarnings('row', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NOT, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found ""', + "SyntaxError: mismatched input '' expecting {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, '(', NOT, NULL, '?', TRUE, '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}", ]); testErrorsAndWarnings('row missing_column', ['Unknown column [missing_column]']); testErrorsAndWarnings('row fn()', ['Unknown function [fn]']); @@ -455,7 +457,7 @@ describe('validation logic', () => { testErrorsAndWarnings('row a = null', []); testErrorsAndWarnings('row a = (1)', []); testErrorsAndWarnings('row a = (1, 2, 3)', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NOT, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found ","', + "SyntaxError: no viable alternative at input '(1,'", "SyntaxError: extraneous input ')' expecting ", ]); for (const bool of ['true', 'false']) { @@ -463,12 +465,16 @@ describe('validation logic', () => { testErrorsAndWarnings(`row NOT ${bool}`, []); } - testErrorsAndWarnings('row var = 1 in ', ['SyntaxError: expected {LP} but found ""']); + testErrorsAndWarnings('row var = 1 in ', [ + "SyntaxError: mismatched input '' expecting '('", + ]); testErrorsAndWarnings('row var = 1 in (', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found ""', + "SyntaxError: mismatched input '' expecting {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, '(', NULL, '?', TRUE, '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}", 'Error: [in] function expects exactly 2 arguments, got 1.', ]); - testErrorsAndWarnings('row var = 1 not in ', ['SyntaxError: expected {LP} but found ""']); + testErrorsAndWarnings('row var = 1 not in ', [ + "SyntaxError: mismatched input '' expecting '('", + ]); testErrorsAndWarnings('row var = 1 in (1, 2, 3)', []); testErrorsAndWarnings('row var = 5 in (1, 2, 3)', []); testErrorsAndWarnings('row var = 5 not in (1, 2, 3)', []); @@ -642,7 +648,7 @@ describe('validation logic', () => { }); describe('show', () => { - testErrorsAndWarnings('show', ['SyntaxError: expected {SHOW} but found ""']); + testErrorsAndWarnings('show', ["SyntaxError: no viable alternative at input 'show'"]); testErrorsAndWarnings('show functions', []); testErrorsAndWarnings('show info', []); testErrorsAndWarnings('show functions()', [ @@ -666,7 +672,7 @@ describe('validation logic', () => { "SyntaxError: token recognition error at: 'e'", "SyntaxError: token recognition error at: 'l'", "SyntaxError: token recognition error at: 'd'", - 'SyntaxError: expected {SHOW} but found ""', + "SyntaxError: no viable alternative at input 'show '", ]); }); @@ -676,16 +682,16 @@ describe('validation logic', () => { ]); testErrorsAndWarnings('from index | limit 4 ', []); testErrorsAndWarnings('from index | limit 4.5', [ - 'SyntaxError: expected {INTEGER_LITERAL} but found "4.5"', + "SyntaxError: mismatched input '4.5' expecting INTEGER_LITERAL", ]); testErrorsAndWarnings('from index | limit a', [ - 'SyntaxError: expected {INTEGER_LITERAL} but found "a"', + "SyntaxError: mismatched input 'a' expecting INTEGER_LITERAL", ]); testErrorsAndWarnings('from index | limit numberField', [ - 'SyntaxError: expected {INTEGER_LITERAL} but found "numberField"', + "SyntaxError: mismatched input 'numberField' expecting INTEGER_LITERAL", ]); testErrorsAndWarnings('from index | limit stringField', [ - 'SyntaxError: expected {INTEGER_LITERAL} but found "stringField"', + "SyntaxError: mismatched input 'stringField' expecting INTEGER_LITERAL", ]); testErrorsAndWarnings('from index | limit 4', []); }); @@ -706,16 +712,16 @@ describe('validation logic', () => { ]); testErrorsAndWarnings('from index | keep `any#Char$Field`', []); testErrorsAndWarnings('from index | project ', [ - `SyntaxError: expected {DISSECT, DROP, ENRICH, EVAL, GROK, INLINESTATS, KEEP, LIMIT, MV_EXPAND, RENAME, SORT, STATS, WHERE} but found \"project\"`, + "SyntaxError: mismatched input 'project' expecting {DISSECT, DROP, ENRICH, EVAL, GROK, INLINESTATS, KEEP, LIMIT, MV_EXPAND, RENAME, SORT, STATS, WHERE}", ]); testErrorsAndWarnings('from index | project stringField, numberField, dateField', [ - `SyntaxError: expected {DISSECT, DROP, ENRICH, EVAL, GROK, INLINESTATS, KEEP, LIMIT, MV_EXPAND, RENAME, SORT, STATS, WHERE} but found \"project\"`, + "SyntaxError: mismatched input 'project' expecting {DISSECT, DROP, ENRICH, EVAL, GROK, INLINESTATS, KEEP, LIMIT, MV_EXPAND, RENAME, SORT, STATS, WHERE}", ]); testErrorsAndWarnings('from index | PROJECT stringField, numberField, dateField', [ - `SyntaxError: expected {DISSECT, DROP, ENRICH, EVAL, GROK, INLINESTATS, KEEP, LIMIT, MV_EXPAND, RENAME, SORT, STATS, WHERE} but found \"PROJECT\"`, + "SyntaxError: mismatched input 'PROJECT' expecting {DISSECT, DROP, ENRICH, EVAL, GROK, INLINESTATS, KEEP, LIMIT, MV_EXPAND, RENAME, SORT, STATS, WHERE}", ]); testErrorsAndWarnings('from index | project missingField, numberField, dateField', [ - `SyntaxError: expected {DISSECT, DROP, ENRICH, EVAL, GROK, INLINESTATS, KEEP, LIMIT, MV_EXPAND, RENAME, SORT, STATS, WHERE} but found \"project\"`, + "SyntaxError: mismatched input 'project' expecting {DISSECT, DROP, ENRICH, EVAL, GROK, INLINESTATS, KEEP, LIMIT, MV_EXPAND, RENAME, SORT, STATS, WHERE}", ]); testErrorsAndWarnings('from index | keep s*', []); testErrorsAndWarnings('from index | keep *Field', []); @@ -808,12 +814,14 @@ describe('validation logic', () => { }); describe('rename', () => { - testErrorsAndWarnings('from a_index | rename', ["SyntaxError: missing ID_PATTERN at ''"]); + testErrorsAndWarnings('from a_index | rename', [ + "SyntaxError: mismatched input '' expecting ID_PATTERN", + ]); testErrorsAndWarnings('from a_index | rename stringField', [ - 'SyntaxError: expected {DOT, AS} but found ""', + "SyntaxError: mismatched input '' expecting AS", ]); testErrorsAndWarnings('from a_index | rename a', [ - 'SyntaxError: expected {DOT, AS} but found ""', + "SyntaxError: mismatched input '' expecting AS", 'Unknown column [a]', ]); testErrorsAndWarnings('from a_index | rename stringField as', [ @@ -850,26 +858,27 @@ describe('validation logic', () => { ]); testErrorsAndWarnings('row a = 10 | rename a as `this``is fine`', []); testErrorsAndWarnings('row a = 10 | rename a as this is fine', [ - 'SyntaxError: expected {DOT, AS} but found "is"', + "SyntaxError: mismatched input 'is' expecting ", ]); }); describe('dissect', () => { testErrorsAndWarnings('from a_index | dissect', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found ""', + "SyntaxError: mismatched input '' expecting {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, '(', NULL, '?', TRUE, '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}", ]); testErrorsAndWarnings('from a_index | dissect stringField', [ "SyntaxError: missing STRING at ''", ]); testErrorsAndWarnings('from a_index | dissect stringField 2', [ - 'SyntaxError: expected {STRING, DOT} but found "2"', + "SyntaxError: mismatched input '2' expecting STRING", ]); testErrorsAndWarnings('from a_index | dissect stringField .', [ - "SyntaxError: missing {UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} at ''", + "SyntaxError: mismatched input '' expecting {UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}", 'Unknown column [stringField.]', ]); testErrorsAndWarnings('from a_index | dissect stringField %a', [ - "SyntaxError: missing STRING at '%'", + "SyntaxError: mismatched input '%' expecting STRING", + "SyntaxError: mismatched input '' expecting '='", ]); // Do not try to validate the dissect pattern string testErrorsAndWarnings('from a_index | dissect stringField "%{firstWord}"', []); @@ -877,10 +886,10 @@ describe('validation logic', () => { 'DISSECT only supports string type values, found [numberField] of type [number]', ]); testErrorsAndWarnings('from a_index | dissect stringField "%{firstWord}" option ', [ - 'SyntaxError: expected {ASSIGN} but found ""', + "SyntaxError: mismatched input '' expecting '='", ]); testErrorsAndWarnings('from a_index | dissect stringField "%{firstWord}" option = ', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET} but found ""', + "SyntaxError: mismatched input '' expecting {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, NULL, '?', TRUE, '+', '-', OPENING_BRACKET}", 'Invalid option for DISSECT: [option]', ]); testErrorsAndWarnings('from a_index | dissect stringField "%{firstWord}" option = 1', [ @@ -906,20 +915,20 @@ describe('validation logic', () => { describe('grok', () => { testErrorsAndWarnings('from a_index | grok', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found ""', + "SyntaxError: mismatched input '' expecting {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, '(', NULL, '?', TRUE, '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}", ]); testErrorsAndWarnings('from a_index | grok stringField', [ "SyntaxError: missing STRING at ''", ]); testErrorsAndWarnings('from a_index | grok stringField 2', [ - 'SyntaxError: expected {STRING, DOT} but found "2"', + "SyntaxError: mismatched input '2' expecting STRING", ]); testErrorsAndWarnings('from a_index | grok stringField .', [ - "SyntaxError: missing {UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} at ''", + "SyntaxError: mismatched input '' expecting {UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}", 'Unknown column [stringField.]', ]); testErrorsAndWarnings('from a_index | grok stringField %a', [ - "SyntaxError: missing STRING at '%'", + "SyntaxError: mismatched input '%' expecting STRING", ]); // Do not try to validate the grok pattern string testErrorsAndWarnings('from a_index | grok stringField "%{firstWord}"', []); @@ -1103,29 +1112,29 @@ describe('validation logic', () => { describe('eval', () => { testErrorsAndWarnings('from a_index | eval ', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NOT, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found ""', + "SyntaxError: mismatched input '' expecting {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, '(', NOT, NULL, '?', TRUE, '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}", ]); testErrorsAndWarnings('from a_index | eval stringField ', []); testErrorsAndWarnings('from a_index | eval b = stringField', []); testErrorsAndWarnings('from a_index | eval numberField + 1', []); testErrorsAndWarnings('from a_index | eval numberField + ', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NOT, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found ""', + "SyntaxError: no viable alternative at input 'numberField + '", ]); testErrorsAndWarnings('from a_index | eval stringField + 1', [ 'Argument of [+] must be [number], found value [stringField] type [string]', ]); testErrorsAndWarnings('from a_index | eval a=b', ['Unknown column [b]']); testErrorsAndWarnings('from a_index | eval a=b, ', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NOT, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found ""', + "SyntaxError: mismatched input '' expecting {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, '(', NOT, NULL, '?', TRUE, '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}", 'Unknown column [b]', ]); testErrorsAndWarnings('from a_index | eval a=round', ['Unknown column [round]']); testErrorsAndWarnings('from a_index | eval a=round(', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NOT, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found ""', + "SyntaxError: no viable alternative at input 'round('", ]); testErrorsAndWarnings('from a_index | eval a=round(numberField) ', []); testErrorsAndWarnings('from a_index | eval a=round(numberField), ', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NOT, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found ""', + "SyntaxError: mismatched input '' expecting {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, '(', NOT, NULL, '?', TRUE, '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}", ]); testErrorsAndWarnings('from a_index | eval a=round(numberField) + round(numberField) ', []); testErrorsAndWarnings('from a_index | eval a=round(numberField) + round(stringField) ', [ @@ -1475,16 +1484,16 @@ describe('validation logic', () => { [] ); testErrorsAndWarnings('from a_index | eval not', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NOT, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found ""', + "SyntaxError: mismatched input '' expecting {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, '(', NOT, NULL, '?', TRUE, '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}", 'Error: [not] function expects exactly one argument, got 0.', ]); testErrorsAndWarnings('from a_index | eval in', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NOT, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found "in"', + "SyntaxError: mismatched input 'in' expecting {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, '(', NOT, NULL, '?', TRUE, '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}", ]); testErrorsAndWarnings('from a_index | eval stringField in stringField', [ "SyntaxError: missing '(' at 'stringField'", - 'SyntaxError: expected {COMMA, RP} but found ""', + "SyntaxError: mismatched input '' expecting {',', ')'}", ]); testErrorsAndWarnings('from a_index | eval stringField in stringField)', [ @@ -1493,7 +1502,7 @@ describe('validation logic', () => { ]); testErrorsAndWarnings('from a_index | eval stringField not in stringField', [ "SyntaxError: missing '(' at 'stringField'", - 'SyntaxError: expected {COMMA, RP} but found ""', + "SyntaxError: mismatched input '' expecting {',', ')'}", ]); describe('date math', () => { @@ -1548,16 +1557,16 @@ describe('validation logic', () => { ]); testErrorsAndWarnings('from a_index | stats by stringField', []); testErrorsAndWarnings('from a_index | stats by ', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NOT, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found ""', + "SyntaxError: mismatched input '' expecting {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, '(', NOT, NULL, '?', TRUE, '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}", ]); testErrorsAndWarnings('from a_index | stats numberField ', [ 'Expected an aggregate function or group but got [numberField] of type [FieldAttribute]', ]); testErrorsAndWarnings('from a_index | stats numberField=', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NOT, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found ""', + "SyntaxError: mismatched input '' expecting {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, '(', NOT, NULL, '?', TRUE, '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}", ]); testErrorsAndWarnings('from a_index | stats numberField=5 by ', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NOT, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found ""', + "SyntaxError: mismatched input '' expecting {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, '(', NOT, NULL, '?', TRUE, '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}", ]); testErrorsAndWarnings('from a_index | stats avg(numberField) by wrongField', [ 'Unknown column [wrongField]', @@ -1584,7 +1593,7 @@ describe('validation logic', () => { testErrorsAndWarnings( 'from a_index | stats avg(numberField) by stringField, percentile(numberField) by ipField', [ - 'SyntaxError: expected {, PIPE, AND, COMMA, OR, PLUS, MINUS, ASTERISK, SLASH, PERCENT} but found "by"', + "SyntaxError: mismatched input 'by' expecting ", 'STATS BY does not support function percentile', ] ); @@ -1605,10 +1614,10 @@ describe('validation logic', () => { ); } testErrorsAndWarnings('from a_index | stats count(* + 1) BY ipField', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NOT, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found "+"', + "SyntaxError: no viable alternative at input 'count(* +'", ]); testErrorsAndWarnings('from a_index | stats count(* + round(numberField)) BY ipField', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NOT, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found "+"', + "SyntaxError: no viable alternative at input 'count(* +'", ]); testErrorsAndWarnings('from a_index | stats count(round(*)) BY ipField', [ 'Using wildcards (*) in round is not allowed', @@ -1952,12 +1961,12 @@ describe('validation logic', () => { describe('sort', () => { testErrorsAndWarnings('from a_index | sort ', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NOT, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found ""', + "SyntaxError: mismatched input '' expecting {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, '(', NOT, NULL, '?', TRUE, '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}", ]); testErrorsAndWarnings('from a_index | sort "field" ', []); testErrorsAndWarnings('from a_index | sort wrongField ', ['Unknown column [wrongField]']); testErrorsAndWarnings('from a_index | sort numberField, ', [ - 'SyntaxError: expected {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, LP, NOT, NULL, PARAM, TRUE, PLUS, MINUS, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} but found ""', + "SyntaxError: mismatched input '' expecting {STRING, INTEGER_LITERAL, DECIMAL_LITERAL, FALSE, '(', NOT, NULL, '?', TRUE, '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}", ]); testErrorsAndWarnings('from a_index | sort numberField, stringField', []); for (const dir of ['desc', 'asc']) { @@ -2011,10 +2020,10 @@ describe('validation logic', () => { ]); testErrorsAndWarnings(`from a_index | enrich policy `, []); testErrorsAndWarnings('from a_index | enrich `this``is fine`', [ - 'SyntaxError: expected {ENRICH_POLICY_NAME} but found "`this``is fine`"', + "SyntaxError: mismatched input '`this``is fine`' expecting ENRICH_POLICY_NAME", ]); testErrorsAndWarnings('from a_index | enrich this is fine', [ - 'SyntaxError: expected {, PIPE, ON, WITH} but found "is"', + "SyntaxError: mismatched input 'is' expecting ", 'Unknown policy [this]', ]); for (const value of ['any', 'coordinator', 'remote']) { @@ -2048,11 +2057,11 @@ describe('validation logic', () => { 'Unknown column [this`is fine]', ]); testErrorsAndWarnings('from a_index | enrich policy on this is fine', [ - 'SyntaxError: expected {, PIPE, DOT, WITH} but found "is"', + "SyntaxError: mismatched input 'is' expecting ", 'Unknown column [this]', ]); testErrorsAndWarnings(`from a_index | enrich policy on stringField with `, [ - 'SyntaxError: expected {ID_PATTERN} but found ""', + "SyntaxError: mismatched input '' expecting ID_PATTERN", ]); testErrorsAndWarnings(`from a_index | enrich policy on stringField with var0 `, [ 'Unknown column [var0]', @@ -2071,7 +2080,7 @@ describe('validation logic', () => { // ]); testErrorsAndWarnings(`from a_index |enrich policy on numberField with var0 = , `, [ "SyntaxError: missing ID_PATTERN at ','", - 'SyntaxError: expected {ID_PATTERN} but found ""', + "SyntaxError: mismatched input '' expecting ID_PATTERN", 'Unknown column [var0]', ]); testErrorsAndWarnings( @@ -2100,7 +2109,7 @@ describe('validation logic', () => { [] ); testErrorsAndWarnings(`from a_index | enrich policy with `, [ - 'SyntaxError: expected {ID_PATTERN} but found ""', + "SyntaxError: mismatched input '' expecting ID_PATTERN", ]); testErrorsAndWarnings(`from a_index | enrich policy with otherField`, []); testErrorsAndWarnings(`from a_index | enrich policy | eval otherField`, []); diff --git a/packages/kbn-monaco/src/esql/lib/ast/validation/validation.ts b/packages/kbn-monaco/src/esql/lib/ast/validation/validation.ts index b1f960d8ea320..410ce7dba15a1 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/validation/validation.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/validation/validation.ts @@ -882,6 +882,7 @@ export async function validateAst( }); messages.push(...commandMessages); } + return { errors: [...errors, ...messages.filter(({ type }) => type === 'error')], warnings: messages.filter(({ type }) => type === 'warning'), diff --git a/packages/kbn-monaco/src/esql/lib/monaco/esql_error_listener.ts b/packages/kbn-monaco/src/esql/lib/monaco/esql_error_listener.ts index 8881c9b458cc0..c6c68b6e73909 100644 --- a/packages/kbn-monaco/src/esql/lib/monaco/esql_error_listener.ts +++ b/packages/kbn-monaco/src/esql/lib/monaco/esql_error_listener.ts @@ -6,36 +6,24 @@ * Side Public License, v 1. */ -import type { ANTLRErrorListener, Recognizer, RecognitionException } from 'antlr4ts'; -import type { EditorError } from '../../../types'; -import { createError } from '../ast/ast_errors'; - -export class ESQLErrorListener implements ANTLRErrorListener { - private errors: EditorError[] = []; +import type { Recognizer, RecognitionException } from 'antlr4'; +import { ANTLRErrorListener } from '../../../common/error_listener'; +import { getPosition } from '../ast/ast_position_utils'; +export class ESQLErrorListener extends ANTLRErrorListener { syntaxError( - recognizer: Recognizer, + recognizer: Recognizer, offendingSymbol: any, line: number, column: number, message: string, error: RecognitionException | undefined ): void { - const higherLevelError = error ? createError(error) : undefined; - const textMessage = - higherLevelError?.text && higherLevelError.text !== error?.message - ? higherLevelError.text - : `SyntaxError: ${message}`; - - let endColumn = column + 1; - let startColumn = column; + const textMessage = `SyntaxError: ${message}`; - if (higherLevelError) { - startColumn = higherLevelError.location.min + 1; - endColumn = higherLevelError.location.max + 1; - } else if (offendingSymbol?._text) { - endColumn = column + offendingSymbol._text.length; - } + const tokenPosition = getPosition(offendingSymbol); + const startColumn = tokenPosition?.min + 1 || column; + const endColumn = tokenPosition?.max + 1 || column + 1; this.errors.push({ startLineNumber: line, @@ -46,8 +34,4 @@ export class ESQLErrorListener implements ANTLRErrorListener { severity: 8, // monaco.MarkerSeverity.Error, }); } - - getErrors(): EditorError[] { - return this.errors; - } } diff --git a/packages/kbn-monaco/src/esql/lib/monaco/esql_tokens_provider.ts b/packages/kbn-monaco/src/esql/lib/monaco/esql_tokens_provider.ts index ce521d1c9dfac..35689e0b56694 100644 --- a/packages/kbn-monaco/src/esql/lib/monaco/esql_tokens_provider.ts +++ b/packages/kbn-monaco/src/esql/lib/monaco/esql_tokens_provider.ts @@ -6,9 +6,9 @@ * Side Public License, v 1. */ -import { CharStreams, type Token } from 'antlr4ts'; +import { CharStreams, type Token } from 'antlr4'; import { monaco } from '../../../monaco_imports'; -import { ANTLREErrorListener } from '../../../common/error_listener'; +import { ESQLErrorListener } from './esql_error_listener'; import { ESQLToken } from './esql_token'; import { ESQLLineTokens } from './esql_line_tokens'; @@ -27,7 +27,7 @@ export class ESQLTokensProvider implements monaco.languages.TokensProvider { tokenize(line: string, prevState: ESQLState): monaco.languages.ILineTokens { const errorStartingPoints: number[] = []; - const errorListener = new ANTLREErrorListener(); + const errorListener = new ESQLErrorListener(); // This has the drawback of not styling any ESQL wrong query as // | from ... const cleanedLine = @@ -54,14 +54,14 @@ export class ESQLTokensProvider implements monaco.languages.TokensProvider { if (token.type === EOF) { done = true; } else { - const tokenTypeName = lexer.vocabulary.getSymbolicName(token.type); + const tokenTypeName = lexer.symbolicNames[token.type]; if (tokenTypeName) { const indexOffset = cleanedLine === line ? 0 : line.length - cleanedLine.length; const myToken = new ESQLToken( tokenTypeName, - token.startIndex + indexOffset, - token.stopIndex + indexOffset + token.start + indexOffset, + token.stop + indexOffset ); myTokens.push(myToken); } @@ -75,7 +75,7 @@ export class ESQLTokensProvider implements monaco.languages.TokensProvider { myTokens.sort((a, b) => a.startIndex - b.startIndex); - // special tratement for functions + // special treatment for functions // the previous custom Kibana grammar baked functions directly as tokens, so highlight was easier // The ES grammar doesn't have the token concept of "function" const tokensWithFunctions = enrichTokensWithFunctionsMetadata(myTokens); diff --git a/packages/kbn-monaco/src/esql/worker/esql_worker.ts b/packages/kbn-monaco/src/esql/worker/esql_worker.ts index db3e01ae220e5..537b08d9702aa 100644 --- a/packages/kbn-monaco/src/esql/worker/esql_worker.ts +++ b/packages/kbn-monaco/src/esql/worker/esql_worker.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { CharStreams } from 'antlr4ts'; +import { CharStreams } from 'antlr4'; import type { monaco } from '../../monaco_imports'; import type { BaseWorkerDefinition } from '../../types'; import { getParser, ROOT_STATEMENT } from '../lib/antlr_facade'; diff --git a/packages/kbn-monaco/src/painless/README.md b/packages/kbn-monaco/src/painless/README.md index 6357243347f6b..dc748e5bf8ced 100644 --- a/packages/kbn-monaco/src/painless/README.md +++ b/packages/kbn-monaco/src/painless/README.md @@ -111,12 +111,12 @@ To add additional contexts, edit the `supportedContexts` constant in `kbn-monaco [ANTLR](https://www.antlr.org/) generates lexical and syntax errors out of the box, which we can use to set error markers in monaco. -Elasticsearch has defined [lexer and parser grammar](https://github.com/elastic/elasticsearch/tree/master/modules/lang-painless/src/main/antlr) for the Painless language. For now, these rules have been largely copied from ES to Kibana and reside in the `antlr` directory with the `.g4` file extension. We then use [antlr4ts](https://github.com/tunnelvisionlabs/antlr4ts) to generate a lexer and a parser in Typescript. +Elasticsearch has defined [lexer and parser grammar](https://github.com/elastic/elasticsearch/tree/master/modules/lang-painless/src/main/antlr) for the Painless language. For now, these rules have been largely copied from ES to Kibana and reside in the `antlr` directory with the `.g4` file extension. We then generate a Typescript target for the lexer and a parser. To regenerate the lexer and parser, run the following script: ``` -npm run build:antlr4ts +npm run build:antlr4 ``` *Note:* This script should only need to be run if a change has been made to `painless_lexer.g4` or `painless_parser.g4`. diff --git a/packages/kbn-monaco/src/painless/antlr/painless_lexer.interp b/packages/kbn-monaco/src/painless/antlr/painless_lexer.interp index ab7a7e876df8e..4a39e8dd20d0c 100644 --- a/packages/kbn-monaco/src/painless/antlr/painless_lexer.interp +++ b/packages/kbn-monaco/src/painless/antlr/painless_lexer.interp @@ -273,4 +273,4 @@ DEFAULT_MODE AFTER_DOT atn: -[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 2, 88, 638, 8, 1, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 3, 2, 6, 2, 178, 10, 2, 13, 2, 14, 2, 179, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 7, 3, 188, 10, 3, 12, 3, 14, 3, 191, 11, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 3, 198, 10, 3, 12, 3, 14, 3, 201, 11, 3, 3, 3, 3, 3, 5, 3, 205, 10, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 3, 9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 31, 3, 31, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 35, 3, 35, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 49, 3, 49, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 71, 3, 71, 3, 72, 3, 72, 3, 72, 3, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 74, 3, 74, 6, 74, 446, 10, 74, 13, 74, 14, 74, 447, 3, 74, 5, 74, 451, 10, 74, 3, 75, 3, 75, 3, 75, 6, 75, 456, 10, 75, 13, 75, 14, 75, 457, 3, 75, 5, 75, 461, 10, 75, 3, 76, 3, 76, 3, 76, 7, 76, 466, 10, 76, 12, 76, 14, 76, 469, 11, 76, 5, 76, 471, 10, 76, 3, 76, 5, 76, 474, 10, 76, 3, 77, 3, 77, 3, 77, 7, 77, 479, 10, 77, 12, 77, 14, 77, 482, 11, 77, 5, 77, 484, 10, 77, 3, 77, 3, 77, 6, 77, 488, 10, 77, 13, 77, 14, 77, 489, 5, 77, 492, 10, 77, 3, 77, 3, 77, 5, 77, 496, 10, 77, 3, 77, 6, 77, 499, 10, 77, 13, 77, 14, 77, 500, 5, 77, 503, 10, 77, 3, 77, 5, 77, 506, 10, 77, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 7, 78, 514, 10, 78, 12, 78, 14, 78, 517, 11, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 7, 78, 526, 10, 78, 12, 78, 14, 78, 529, 11, 78, 3, 78, 5, 78, 532, 10, 78, 3, 79, 3, 79, 3, 79, 3, 79, 6, 79, 538, 10, 79, 13, 79, 14, 79, 539, 3, 79, 3, 79, 7, 79, 544, 10, 79, 12, 79, 14, 79, 547, 11, 79, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 5, 83, 605, 10, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 7, 85, 613, 10, 85, 12, 85, 14, 85, 616, 11, 85, 3, 86, 3, 86, 3, 86, 7, 86, 621, 10, 86, 12, 86, 14, 86, 624, 11, 86, 5, 86, 626, 10, 86, 3, 86, 3, 86, 3, 87, 3, 87, 7, 87, 632, 10, 87, 12, 87, 14, 87, 635, 11, 87, 3, 87, 3, 87, 7, 189, 199, 515, 527, 539, 2, 2, 88, 4, 2, 3, 6, 2, 4, 8, 2, 5, 10, 2, 6, 12, 2, 7, 14, 2, 8, 16, 2, 9, 18, 2, 10, 20, 2, 11, 22, 2, 12, 24, 2, 13, 26, 2, 14, 28, 2, 15, 30, 2, 16, 32, 2, 17, 34, 2, 18, 36, 2, 19, 38, 2, 20, 40, 2, 21, 42, 2, 22, 44, 2, 23, 46, 2, 24, 48, 2, 25, 50, 2, 26, 52, 2, 27, 54, 2, 28, 56, 2, 29, 58, 2, 30, 60, 2, 31, 62, 2, 32, 64, 2, 33, 66, 2, 34, 68, 2, 35, 70, 2, 36, 72, 2, 37, 74, 2, 38, 76, 2, 39, 78, 2, 40, 80, 2, 41, 82, 2, 42, 84, 2, 43, 86, 2, 44, 88, 2, 45, 90, 2, 46, 92, 2, 47, 94, 2, 48, 96, 2, 49, 98, 2, 50, 100, 2, 51, 102, 2, 52, 104, 2, 53, 106, 2, 54, 108, 2, 55, 110, 2, 56, 112, 2, 57, 114, 2, 58, 116, 2, 59, 118, 2, 60, 120, 2, 61, 122, 2, 62, 124, 2, 63, 126, 2, 64, 128, 2, 65, 130, 2, 66, 132, 2, 67, 134, 2, 68, 136, 2, 69, 138, 2, 70, 140, 2, 71, 142, 2, 72, 144, 2, 73, 146, 2, 74, 148, 2, 75, 150, 2, 76, 152, 2, 77, 154, 2, 78, 156, 2, 79, 158, 2, 80, 160, 2, 81, 162, 2, 82, 164, 2, 83, 166, 2, 84, 168, 2, 85, 170, 2, 86, 172, 2, 87, 174, 2, 88, 4, 2, 3, 21, 5, 2, 11, 12, 15, 15, 34, 34, 4, 2, 12, 12, 15, 15, 3, 2, 50, 57, 4, 2, 78, 78, 110, 110, 4, 2, 90, 90, 122, 122, 5, 2, 50, 59, 67, 72, 99, 104, 3, 2, 51, 59, 3, 2, 50, 59, 8, 2, 70, 70, 72, 72, 78, 78, 102, 102, 104, 104, 110, 110, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 6, 2, 70, 70, 72, 72, 102, 102, 104, 104, 4, 2, 36, 36, 94, 94, 4, 2, 41, 41, 94, 94, 3, 2, 12, 12, 4, 2, 12, 12, 49, 49, 9, 2, 87, 87, 101, 101, 107, 107, 110, 111, 117, 117, 119, 119, 122, 122, 5, 2, 67, 92, 97, 97, 99, 124, 6, 2, 50, 59, 67, 92, 97, 97, 99, 124, 2, 676, 2, 4, 3, 2, 2, 2, 2, 6, 3, 2, 2, 2, 2, 8, 3, 2, 2, 2, 2, 10, 3, 2, 2, 2, 2, 12, 3, 2, 2, 2, 2, 14, 3, 2, 2, 2, 2, 16, 3, 2, 2, 2, 2, 18, 3, 2, 2, 2, 2, 20, 3, 2, 2, 2, 2, 22, 3, 2, 2, 2, 2, 24, 3, 2, 2, 2, 2, 26, 3, 2, 2, 2, 2, 28, 3, 2, 2, 2, 2, 30, 3, 2, 2, 2, 2, 32, 3, 2, 2, 2, 2, 34, 3, 2, 2, 2, 2, 36, 3, 2, 2, 2, 2, 38, 3, 2, 2, 2, 2, 40, 3, 2, 2, 2, 2, 42, 3, 2, 2, 2, 2, 44, 3, 2, 2, 2, 2, 46, 3, 2, 2, 2, 2, 48, 3, 2, 2, 2, 2, 50, 3, 2, 2, 2, 2, 52, 3, 2, 2, 2, 2, 54, 3, 2, 2, 2, 2, 56, 3, 2, 2, 2, 2, 58, 3, 2, 2, 2, 2, 60, 3, 2, 2, 2, 2, 62, 3, 2, 2, 2, 2, 64, 3, 2, 2, 2, 2, 66, 3, 2, 2, 2, 2, 68, 3, 2, 2, 2, 2, 70, 3, 2, 2, 2, 2, 72, 3, 2, 2, 2, 2, 74, 3, 2, 2, 2, 2, 76, 3, 2, 2, 2, 2, 78, 3, 2, 2, 2, 2, 80, 3, 2, 2, 2, 2, 82, 3, 2, 2, 2, 2, 84, 3, 2, 2, 2, 2, 86, 3, 2, 2, 2, 2, 88, 3, 2, 2, 2, 2, 90, 3, 2, 2, 2, 2, 92, 3, 2, 2, 2, 2, 94, 3, 2, 2, 2, 2, 96, 3, 2, 2, 2, 2, 98, 3, 2, 2, 2, 2, 100, 3, 2, 2, 2, 2, 102, 3, 2, 2, 2, 2, 104, 3, 2, 2, 2, 2, 106, 3, 2, 2, 2, 2, 108, 3, 2, 2, 2, 2, 110, 3, 2, 2, 2, 2, 112, 3, 2, 2, 2, 2, 114, 3, 2, 2, 2, 2, 116, 3, 2, 2, 2, 2, 118, 3, 2, 2, 2, 2, 120, 3, 2, 2, 2, 2, 122, 3, 2, 2, 2, 2, 124, 3, 2, 2, 2, 2, 126, 3, 2, 2, 2, 2, 128, 3, 2, 2, 2, 2, 130, 3, 2, 2, 2, 2, 132, 3, 2, 2, 2, 2, 134, 3, 2, 2, 2, 2, 136, 3, 2, 2, 2, 2, 138, 3, 2, 2, 2, 2, 140, 3, 2, 2, 2, 2, 142, 3, 2, 2, 2, 2, 144, 3, 2, 2, 2, 2, 146, 3, 2, 2, 2, 2, 148, 3, 2, 2, 2, 2, 150, 3, 2, 2, 2, 2, 152, 3, 2, 2, 2, 2, 154, 3, 2, 2, 2, 2, 156, 3, 2, 2, 2, 2, 158, 3, 2, 2, 2, 2, 160, 3, 2, 2, 2, 2, 162, 3, 2, 2, 2, 2, 164, 3, 2, 2, 2, 2, 166, 3, 2, 2, 2, 2, 168, 3, 2, 2, 2, 2, 170, 3, 2, 2, 2, 3, 172, 3, 2, 2, 2, 3, 174, 3, 2, 2, 2, 4, 177, 3, 2, 2, 2, 6, 204, 3, 2, 2, 2, 8, 208, 3, 2, 2, 2, 10, 210, 3, 2, 2, 2, 12, 212, 3, 2, 2, 2, 14, 214, 3, 2, 2, 2, 16, 216, 3, 2, 2, 2, 18, 218, 3, 2, 2, 2, 20, 220, 3, 2, 2, 2, 22, 222, 3, 2, 2, 2, 24, 226, 3, 2, 2, 2, 26, 231, 3, 2, 2, 2, 28, 233, 3, 2, 2, 2, 30, 235, 3, 2, 2, 2, 32, 238, 3, 2, 2, 2, 34, 241, 3, 2, 2, 2, 36, 246, 3, 2, 2, 2, 38, 252, 3, 2, 2, 2, 40, 255, 3, 2, 2, 2, 42, 259, 3, 2, 2, 2, 44, 268, 3, 2, 2, 2, 46, 274, 3, 2, 2, 2, 48, 281, 3, 2, 2, 2, 50, 285, 3, 2, 2, 2, 52, 289, 3, 2, 2, 2, 54, 295, 3, 2, 2, 2, 56, 301, 3, 2, 2, 2, 58, 306, 3, 2, 2, 2, 60, 317, 3, 2, 2, 2, 62, 319, 3, 2, 2, 2, 64, 321, 3, 2, 2, 2, 66, 323, 3, 2, 2, 2, 68, 326, 3, 2, 2, 2, 70, 328, 3, 2, 2, 2, 72, 330, 3, 2, 2, 2, 74, 332, 3, 2, 2, 2, 76, 335, 3, 2, 2, 2, 78, 338, 3, 2, 2, 2, 80, 342, 3, 2, 2, 2, 82, 344, 3, 2, 2, 2, 84, 347, 3, 2, 2, 2, 86, 349, 3, 2, 2, 2, 88, 352, 3, 2, 2, 2, 90, 355, 3, 2, 2, 2, 92, 359, 3, 2, 2, 2, 94, 362, 3, 2, 2, 2, 96, 366, 3, 2, 2, 2, 98, 368, 3, 2, 2, 2, 100, 370, 3, 2, 2, 2, 102, 372, 3, 2, 2, 2, 104, 375, 3, 2, 2, 2, 106, 378, 3, 2, 2, 2, 108, 380, 3, 2, 2, 2, 110, 382, 3, 2, 2, 2, 112, 385, 3, 2, 2, 2, 114, 388, 3, 2, 2, 2, 116, 391, 3, 2, 2, 2, 118, 394, 3, 2, 2, 2, 120, 398, 3, 2, 2, 2, 122, 401, 3, 2, 2, 2, 124, 404, 3, 2, 2, 2, 126, 406, 3, 2, 2, 2, 128, 409, 3, 2, 2, 2, 130, 412, 3, 2, 2, 2, 132, 415, 3, 2, 2, 2, 134, 418, 3, 2, 2, 2, 136, 421, 3, 2, 2, 2, 138, 424, 3, 2, 2, 2, 140, 427, 3, 2, 2, 2, 142, 430, 3, 2, 2, 2, 144, 434, 3, 2, 2, 2, 146, 438, 3, 2, 2, 2, 148, 443, 3, 2, 2, 2, 150, 452, 3, 2, 2, 2, 152, 470, 3, 2, 2, 2, 154, 483, 3, 2, 2, 2, 156, 531, 3, 2, 2, 2, 158, 533, 3, 2, 2, 2, 160, 550, 3, 2, 2, 2, 162, 555, 3, 2, 2, 2, 164, 561, 3, 2, 2, 2, 166, 604, 3, 2, 2, 2, 168, 606, 3, 2, 2, 2, 170, 610, 3, 2, 2, 2, 172, 625, 3, 2, 2, 2, 174, 629, 3, 2, 2, 2, 176, 178, 9, 2, 2, 2, 177, 176, 3, 2, 2, 2, 178, 179, 3, 2, 2, 2, 179, 177, 3, 2, 2, 2, 179, 180, 3, 2, 2, 2, 180, 181, 3, 2, 2, 2, 181, 182, 8, 2, 2, 2, 182, 5, 3, 2, 2, 2, 183, 184, 7, 49, 2, 2, 184, 185, 7, 49, 2, 2, 185, 189, 3, 2, 2, 2, 186, 188, 11, 2, 2, 2, 187, 186, 3, 2, 2, 2, 188, 191, 3, 2, 2, 2, 189, 190, 3, 2, 2, 2, 189, 187, 3, 2, 2, 2, 190, 192, 3, 2, 2, 2, 191, 189, 3, 2, 2, 2, 192, 205, 9, 3, 2, 2, 193, 194, 7, 49, 2, 2, 194, 195, 7, 44, 2, 2, 195, 199, 3, 2, 2, 2, 196, 198, 11, 2, 2, 2, 197, 196, 3, 2, 2, 2, 198, 201, 3, 2, 2, 2, 199, 200, 3, 2, 2, 2, 199, 197, 3, 2, 2, 2, 200, 202, 3, 2, 2, 2, 201, 199, 3, 2, 2, 2, 202, 203, 7, 44, 2, 2, 203, 205, 7, 49, 2, 2, 204, 183, 3, 2, 2, 2, 204, 193, 3, 2, 2, 2, 205, 206, 3, 2, 2, 2, 206, 207, 8, 3, 2, 2, 207, 7, 3, 2, 2, 2, 208, 209, 7, 125, 2, 2, 209, 9, 3, 2, 2, 2, 210, 211, 7, 127, 2, 2, 211, 11, 3, 2, 2, 2, 212, 213, 7, 93, 2, 2, 213, 13, 3, 2, 2, 2, 214, 215, 7, 95, 2, 2, 215, 15, 3, 2, 2, 2, 216, 217, 7, 42, 2, 2, 217, 17, 3, 2, 2, 2, 218, 219, 7, 43, 2, 2, 219, 19, 3, 2, 2, 2, 220, 221, 7, 38, 2, 2, 221, 21, 3, 2, 2, 2, 222, 223, 7, 48, 2, 2, 223, 224, 3, 2, 2, 2, 224, 225, 8, 11, 3, 2, 225, 23, 3, 2, 2, 2, 226, 227, 7, 65, 2, 2, 227, 228, 7, 48, 2, 2, 228, 229, 3, 2, 2, 2, 229, 230, 8, 12, 3, 2, 230, 25, 3, 2, 2, 2, 231, 232, 7, 46, 2, 2, 232, 27, 3, 2, 2, 2, 233, 234, 7, 61, 2, 2, 234, 29, 3, 2, 2, 2, 235, 236, 7, 107, 2, 2, 236, 237, 7, 104, 2, 2, 237, 31, 3, 2, 2, 2, 238, 239, 7, 107, 2, 2, 239, 240, 7, 112, 2, 2, 240, 33, 3, 2, 2, 2, 241, 242, 7, 103, 2, 2, 242, 243, 7, 110, 2, 2, 243, 244, 7, 117, 2, 2, 244, 245, 7, 103, 2, 2, 245, 35, 3, 2, 2, 2, 246, 247, 7, 121, 2, 2, 247, 248, 7, 106, 2, 2, 248, 249, 7, 107, 2, 2, 249, 250, 7, 110, 2, 2, 250, 251, 7, 103, 2, 2, 251, 37, 3, 2, 2, 2, 252, 253, 7, 102, 2, 2, 253, 254, 7, 113, 2, 2, 254, 39, 3, 2, 2, 2, 255, 256, 7, 104, 2, 2, 256, 257, 7, 113, 2, 2, 257, 258, 7, 116, 2, 2, 258, 41, 3, 2, 2, 2, 259, 260, 7, 101, 2, 2, 260, 261, 7, 113, 2, 2, 261, 262, 7, 112, 2, 2, 262, 263, 7, 118, 2, 2, 263, 264, 7, 107, 2, 2, 264, 265, 7, 112, 2, 2, 265, 266, 7, 119, 2, 2, 266, 267, 7, 103, 2, 2, 267, 43, 3, 2, 2, 2, 268, 269, 7, 100, 2, 2, 269, 270, 7, 116, 2, 2, 270, 271, 7, 103, 2, 2, 271, 272, 7, 99, 2, 2, 272, 273, 7, 109, 2, 2, 273, 45, 3, 2, 2, 2, 274, 275, 7, 116, 2, 2, 275, 276, 7, 103, 2, 2, 276, 277, 7, 118, 2, 2, 277, 278, 7, 119, 2, 2, 278, 279, 7, 116, 2, 2, 279, 280, 7, 112, 2, 2, 280, 47, 3, 2, 2, 2, 281, 282, 7, 112, 2, 2, 282, 283, 7, 103, 2, 2, 283, 284, 7, 121, 2, 2, 284, 49, 3, 2, 2, 2, 285, 286, 7, 118, 2, 2, 286, 287, 7, 116, 2, 2, 287, 288, 7, 123, 2, 2, 288, 51, 3, 2, 2, 2, 289, 290, 7, 101, 2, 2, 290, 291, 7, 99, 2, 2, 291, 292, 7, 118, 2, 2, 292, 293, 7, 101, 2, 2, 293, 294, 7, 106, 2, 2, 294, 53, 3, 2, 2, 2, 295, 296, 7, 118, 2, 2, 296, 297, 7, 106, 2, 2, 297, 298, 7, 116, 2, 2, 298, 299, 7, 113, 2, 2, 299, 300, 7, 121, 2, 2, 300, 55, 3, 2, 2, 2, 301, 302, 7, 118, 2, 2, 302, 303, 7, 106, 2, 2, 303, 304, 7, 107, 2, 2, 304, 305, 7, 117, 2, 2, 305, 57, 3, 2, 2, 2, 306, 307, 7, 107, 2, 2, 307, 308, 7, 112, 2, 2, 308, 309, 7, 117, 2, 2, 309, 310, 7, 118, 2, 2, 310, 311, 7, 99, 2, 2, 311, 312, 7, 112, 2, 2, 312, 313, 7, 101, 2, 2, 313, 314, 7, 103, 2, 2, 314, 315, 7, 113, 2, 2, 315, 316, 7, 104, 2, 2, 316, 59, 3, 2, 2, 2, 317, 318, 7, 35, 2, 2, 318, 61, 3, 2, 2, 2, 319, 320, 7, 128, 2, 2, 320, 63, 3, 2, 2, 2, 321, 322, 7, 44, 2, 2, 322, 65, 3, 2, 2, 2, 323, 324, 7, 49, 2, 2, 324, 325, 6, 33, 2, 2, 325, 67, 3, 2, 2, 2, 326, 327, 7, 39, 2, 2, 327, 69, 3, 2, 2, 2, 328, 329, 7, 45, 2, 2, 329, 71, 3, 2, 2, 2, 330, 331, 7, 47, 2, 2, 331, 73, 3, 2, 2, 2, 332, 333, 7, 62, 2, 2, 333, 334, 7, 62, 2, 2, 334, 75, 3, 2, 2, 2, 335, 336, 7, 64, 2, 2, 336, 337, 7, 64, 2, 2, 337, 77, 3, 2, 2, 2, 338, 339, 7, 64, 2, 2, 339, 340, 7, 64, 2, 2, 340, 341, 7, 64, 2, 2, 341, 79, 3, 2, 2, 2, 342, 343, 7, 62, 2, 2, 343, 81, 3, 2, 2, 2, 344, 345, 7, 62, 2, 2, 345, 346, 7, 63, 2, 2, 346, 83, 3, 2, 2, 2, 347, 348, 7, 64, 2, 2, 348, 85, 3, 2, 2, 2, 349, 350, 7, 64, 2, 2, 350, 351, 7, 63, 2, 2, 351, 87, 3, 2, 2, 2, 352, 353, 7, 63, 2, 2, 353, 354, 7, 63, 2, 2, 354, 89, 3, 2, 2, 2, 355, 356, 7, 63, 2, 2, 356, 357, 7, 63, 2, 2, 357, 358, 7, 63, 2, 2, 358, 91, 3, 2, 2, 2, 359, 360, 7, 35, 2, 2, 360, 361, 7, 63, 2, 2, 361, 93, 3, 2, 2, 2, 362, 363, 7, 35, 2, 2, 363, 364, 7, 63, 2, 2, 364, 365, 7, 63, 2, 2, 365, 95, 3, 2, 2, 2, 366, 367, 7, 40, 2, 2, 367, 97, 3, 2, 2, 2, 368, 369, 7, 96, 2, 2, 369, 99, 3, 2, 2, 2, 370, 371, 7, 126, 2, 2, 371, 101, 3, 2, 2, 2, 372, 373, 7, 40, 2, 2, 373, 374, 7, 40, 2, 2, 374, 103, 3, 2, 2, 2, 375, 376, 7, 126, 2, 2, 376, 377, 7, 126, 2, 2, 377, 105, 3, 2, 2, 2, 378, 379, 7, 65, 2, 2, 379, 107, 3, 2, 2, 2, 380, 381, 7, 60, 2, 2, 381, 109, 3, 2, 2, 2, 382, 383, 7, 65, 2, 2, 383, 384, 7, 60, 2, 2, 384, 111, 3, 2, 2, 2, 385, 386, 7, 60, 2, 2, 386, 387, 7, 60, 2, 2, 387, 113, 3, 2, 2, 2, 388, 389, 7, 47, 2, 2, 389, 390, 7, 64, 2, 2, 390, 115, 3, 2, 2, 2, 391, 392, 7, 63, 2, 2, 392, 393, 7, 128, 2, 2, 393, 117, 3, 2, 2, 2, 394, 395, 7, 63, 2, 2, 395, 396, 7, 63, 2, 2, 396, 397, 7, 128, 2, 2, 397, 119, 3, 2, 2, 2, 398, 399, 7, 45, 2, 2, 399, 400, 7, 45, 2, 2, 400, 121, 3, 2, 2, 2, 401, 402, 7, 47, 2, 2, 402, 403, 7, 47, 2, 2, 403, 123, 3, 2, 2, 2, 404, 405, 7, 63, 2, 2, 405, 125, 3, 2, 2, 2, 406, 407, 7, 45, 2, 2, 407, 408, 7, 63, 2, 2, 408, 127, 3, 2, 2, 2, 409, 410, 7, 47, 2, 2, 410, 411, 7, 63, 2, 2, 411, 129, 3, 2, 2, 2, 412, 413, 7, 44, 2, 2, 413, 414, 7, 63, 2, 2, 414, 131, 3, 2, 2, 2, 415, 416, 7, 49, 2, 2, 416, 417, 7, 63, 2, 2, 417, 133, 3, 2, 2, 2, 418, 419, 7, 39, 2, 2, 419, 420, 7, 63, 2, 2, 420, 135, 3, 2, 2, 2, 421, 422, 7, 40, 2, 2, 422, 423, 7, 63, 2, 2, 423, 137, 3, 2, 2, 2, 424, 425, 7, 96, 2, 2, 425, 426, 7, 63, 2, 2, 426, 139, 3, 2, 2, 2, 427, 428, 7, 126, 2, 2, 428, 429, 7, 63, 2, 2, 429, 141, 3, 2, 2, 2, 430, 431, 7, 62, 2, 2, 431, 432, 7, 62, 2, 2, 432, 433, 7, 63, 2, 2, 433, 143, 3, 2, 2, 2, 434, 435, 7, 64, 2, 2, 435, 436, 7, 64, 2, 2, 436, 437, 7, 63, 2, 2, 437, 145, 3, 2, 2, 2, 438, 439, 7, 64, 2, 2, 439, 440, 7, 64, 2, 2, 440, 441, 7, 64, 2, 2, 441, 442, 7, 63, 2, 2, 442, 147, 3, 2, 2, 2, 443, 445, 7, 50, 2, 2, 444, 446, 9, 4, 2, 2, 445, 444, 3, 2, 2, 2, 446, 447, 3, 2, 2, 2, 447, 445, 3, 2, 2, 2, 447, 448, 3, 2, 2, 2, 448, 450, 3, 2, 2, 2, 449, 451, 9, 5, 2, 2, 450, 449, 3, 2, 2, 2, 450, 451, 3, 2, 2, 2, 451, 149, 3, 2, 2, 2, 452, 453, 7, 50, 2, 2, 453, 455, 9, 6, 2, 2, 454, 456, 9, 7, 2, 2, 455, 454, 3, 2, 2, 2, 456, 457, 3, 2, 2, 2, 457, 455, 3, 2, 2, 2, 457, 458, 3, 2, 2, 2, 458, 460, 3, 2, 2, 2, 459, 461, 9, 5, 2, 2, 460, 459, 3, 2, 2, 2, 460, 461, 3, 2, 2, 2, 461, 151, 3, 2, 2, 2, 462, 471, 7, 50, 2, 2, 463, 467, 9, 8, 2, 2, 464, 466, 9, 9, 2, 2, 465, 464, 3, 2, 2, 2, 466, 469, 3, 2, 2, 2, 467, 465, 3, 2, 2, 2, 467, 468, 3, 2, 2, 2, 468, 471, 3, 2, 2, 2, 469, 467, 3, 2, 2, 2, 470, 462, 3, 2, 2, 2, 470, 463, 3, 2, 2, 2, 471, 473, 3, 2, 2, 2, 472, 474, 9, 10, 2, 2, 473, 472, 3, 2, 2, 2, 473, 474, 3, 2, 2, 2, 474, 153, 3, 2, 2, 2, 475, 484, 7, 50, 2, 2, 476, 480, 9, 8, 2, 2, 477, 479, 9, 9, 2, 2, 478, 477, 3, 2, 2, 2, 479, 482, 3, 2, 2, 2, 480, 478, 3, 2, 2, 2, 480, 481, 3, 2, 2, 2, 481, 484, 3, 2, 2, 2, 482, 480, 3, 2, 2, 2, 483, 475, 3, 2, 2, 2, 483, 476, 3, 2, 2, 2, 484, 491, 3, 2, 2, 2, 485, 487, 5, 22, 11, 2, 486, 488, 9, 9, 2, 2, 487, 486, 3, 2, 2, 2, 488, 489, 3, 2, 2, 2, 489, 487, 3, 2, 2, 2, 489, 490, 3, 2, 2, 2, 490, 492, 3, 2, 2, 2, 491, 485, 3, 2, 2, 2, 491, 492, 3, 2, 2, 2, 492, 502, 3, 2, 2, 2, 493, 495, 9, 11, 2, 2, 494, 496, 9, 12, 2, 2, 495, 494, 3, 2, 2, 2, 495, 496, 3, 2, 2, 2, 496, 498, 3, 2, 2, 2, 497, 499, 9, 9, 2, 2, 498, 497, 3, 2, 2, 2, 499, 500, 3, 2, 2, 2, 500, 498, 3, 2, 2, 2, 500, 501, 3, 2, 2, 2, 501, 503, 3, 2, 2, 2, 502, 493, 3, 2, 2, 2, 502, 503, 3, 2, 2, 2, 503, 505, 3, 2, 2, 2, 504, 506, 9, 13, 2, 2, 505, 504, 3, 2, 2, 2, 505, 506, 3, 2, 2, 2, 506, 155, 3, 2, 2, 2, 507, 515, 7, 36, 2, 2, 508, 509, 7, 94, 2, 2, 509, 514, 7, 36, 2, 2, 510, 511, 7, 94, 2, 2, 511, 514, 7, 94, 2, 2, 512, 514, 10, 14, 2, 2, 513, 508, 3, 2, 2, 2, 513, 510, 3, 2, 2, 2, 513, 512, 3, 2, 2, 2, 514, 517, 3, 2, 2, 2, 515, 516, 3, 2, 2, 2, 515, 513, 3, 2, 2, 2, 516, 518, 3, 2, 2, 2, 517, 515, 3, 2, 2, 2, 518, 532, 7, 36, 2, 2, 519, 527, 7, 41, 2, 2, 520, 521, 7, 94, 2, 2, 521, 526, 7, 41, 2, 2, 522, 523, 7, 94, 2, 2, 523, 526, 7, 94, 2, 2, 524, 526, 10, 15, 2, 2, 525, 520, 3, 2, 2, 2, 525, 522, 3, 2, 2, 2, 525, 524, 3, 2, 2, 2, 526, 529, 3, 2, 2, 2, 527, 528, 3, 2, 2, 2, 527, 525, 3, 2, 2, 2, 528, 530, 3, 2, 2, 2, 529, 527, 3, 2, 2, 2, 530, 532, 7, 41, 2, 2, 531, 507, 3, 2, 2, 2, 531, 519, 3, 2, 2, 2, 532, 157, 3, 2, 2, 2, 533, 537, 7, 49, 2, 2, 534, 535, 7, 94, 2, 2, 535, 538, 10, 16, 2, 2, 536, 538, 10, 17, 2, 2, 537, 534, 3, 2, 2, 2, 537, 536, 3, 2, 2, 2, 538, 539, 3, 2, 2, 2, 539, 540, 3, 2, 2, 2, 539, 537, 3, 2, 2, 2, 540, 541, 3, 2, 2, 2, 541, 545, 7, 49, 2, 2, 542, 544, 9, 18, 2, 2, 543, 542, 3, 2, 2, 2, 544, 547, 3, 2, 2, 2, 545, 543, 3, 2, 2, 2, 545, 546, 3, 2, 2, 2, 546, 548, 3, 2, 2, 2, 547, 545, 3, 2, 2, 2, 548, 549, 6, 79, 3, 2, 549, 159, 3, 2, 2, 2, 550, 551, 7, 118, 2, 2, 551, 552, 7, 116, 2, 2, 552, 553, 7, 119, 2, 2, 553, 554, 7, 103, 2, 2, 554, 161, 3, 2, 2, 2, 555, 556, 7, 104, 2, 2, 556, 557, 7, 99, 2, 2, 557, 558, 7, 110, 2, 2, 558, 559, 7, 117, 2, 2, 559, 560, 7, 103, 2, 2, 560, 163, 3, 2, 2, 2, 561, 562, 7, 112, 2, 2, 562, 563, 7, 119, 2, 2, 563, 564, 7, 110, 2, 2, 564, 565, 7, 110, 2, 2, 565, 165, 3, 2, 2, 2, 566, 567, 7, 100, 2, 2, 567, 568, 7, 113, 2, 2, 568, 569, 7, 113, 2, 2, 569, 570, 7, 110, 2, 2, 570, 571, 7, 103, 2, 2, 571, 572, 7, 99, 2, 2, 572, 605, 7, 112, 2, 2, 573, 574, 7, 100, 2, 2, 574, 575, 7, 123, 2, 2, 575, 576, 7, 118, 2, 2, 576, 605, 7, 103, 2, 2, 577, 578, 7, 117, 2, 2, 578, 579, 7, 106, 2, 2, 579, 580, 7, 113, 2, 2, 580, 581, 7, 116, 2, 2, 581, 605, 7, 118, 2, 2, 582, 583, 7, 101, 2, 2, 583, 584, 7, 106, 2, 2, 584, 585, 7, 99, 2, 2, 585, 605, 7, 116, 2, 2, 586, 587, 7, 107, 2, 2, 587, 588, 7, 112, 2, 2, 588, 605, 7, 118, 2, 2, 589, 590, 7, 110, 2, 2, 590, 591, 7, 113, 2, 2, 591, 592, 7, 112, 2, 2, 592, 605, 7, 105, 2, 2, 593, 594, 7, 104, 2, 2, 594, 595, 7, 110, 2, 2, 595, 596, 7, 113, 2, 2, 596, 597, 7, 99, 2, 2, 597, 605, 7, 118, 2, 2, 598, 599, 7, 102, 2, 2, 599, 600, 7, 113, 2, 2, 600, 601, 7, 119, 2, 2, 601, 602, 7, 100, 2, 2, 602, 603, 7, 110, 2, 2, 603, 605, 7, 103, 2, 2, 604, 566, 3, 2, 2, 2, 604, 573, 3, 2, 2, 2, 604, 577, 3, 2, 2, 2, 604, 582, 3, 2, 2, 2, 604, 586, 3, 2, 2, 2, 604, 589, 3, 2, 2, 2, 604, 593, 3, 2, 2, 2, 604, 598, 3, 2, 2, 2, 605, 167, 3, 2, 2, 2, 606, 607, 7, 102, 2, 2, 607, 608, 7, 103, 2, 2, 608, 609, 7, 104, 2, 2, 609, 169, 3, 2, 2, 2, 610, 614, 9, 19, 2, 2, 611, 613, 9, 20, 2, 2, 612, 611, 3, 2, 2, 2, 613, 616, 3, 2, 2, 2, 614, 612, 3, 2, 2, 2, 614, 615, 3, 2, 2, 2, 615, 171, 3, 2, 2, 2, 616, 614, 3, 2, 2, 2, 617, 626, 7, 50, 2, 2, 618, 622, 9, 8, 2, 2, 619, 621, 9, 9, 2, 2, 620, 619, 3, 2, 2, 2, 621, 624, 3, 2, 2, 2, 622, 620, 3, 2, 2, 2, 622, 623, 3, 2, 2, 2, 623, 626, 3, 2, 2, 2, 624, 622, 3, 2, 2, 2, 625, 617, 3, 2, 2, 2, 625, 618, 3, 2, 2, 2, 626, 627, 3, 2, 2, 2, 627, 628, 8, 86, 4, 2, 628, 173, 3, 2, 2, 2, 629, 633, 9, 19, 2, 2, 630, 632, 9, 20, 2, 2, 631, 630, 3, 2, 2, 2, 632, 635, 3, 2, 2, 2, 633, 631, 3, 2, 2, 2, 633, 634, 3, 2, 2, 2, 634, 636, 3, 2, 2, 2, 635, 633, 3, 2, 2, 2, 636, 637, 8, 87, 4, 2, 637, 175, 3, 2, 2, 2, 36, 2, 3, 179, 189, 199, 204, 447, 450, 457, 460, 467, 470, 473, 480, 483, 489, 491, 495, 500, 502, 505, 513, 515, 525, 527, 531, 537, 539, 545, 604, 614, 622, 625, 633, 5, 8, 2, 2, 4, 3, 2, 4, 2, 2] \ No newline at end of file +[4, 0, 86, 636, 6, -1, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 1, 0, 4, 0, 176, 8, 0, 11, 0, 12, 0, 177, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 186, 8, 1, 10, 1, 12, 1, 189, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 196, 8, 1, 10, 1, 12, 1, 199, 9, 1, 1, 1, 1, 1, 3, 1, 203, 8, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 47, 1, 47, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 4, 72, 444, 8, 72, 11, 72, 12, 72, 445, 1, 72, 3, 72, 449, 8, 72, 1, 73, 1, 73, 1, 73, 4, 73, 454, 8, 73, 11, 73, 12, 73, 455, 1, 73, 3, 73, 459, 8, 73, 1, 74, 1, 74, 1, 74, 5, 74, 464, 8, 74, 10, 74, 12, 74, 467, 9, 74, 3, 74, 469, 8, 74, 1, 74, 3, 74, 472, 8, 74, 1, 75, 1, 75, 1, 75, 5, 75, 477, 8, 75, 10, 75, 12, 75, 480, 9, 75, 3, 75, 482, 8, 75, 1, 75, 1, 75, 4, 75, 486, 8, 75, 11, 75, 12, 75, 487, 3, 75, 490, 8, 75, 1, 75, 1, 75, 3, 75, 494, 8, 75, 1, 75, 4, 75, 497, 8, 75, 11, 75, 12, 75, 498, 3, 75, 501, 8, 75, 1, 75, 3, 75, 504, 8, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 5, 76, 512, 8, 76, 10, 76, 12, 76, 515, 9, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 5, 76, 524, 8, 76, 10, 76, 12, 76, 527, 9, 76, 1, 76, 3, 76, 530, 8, 76, 1, 77, 1, 77, 1, 77, 1, 77, 4, 77, 536, 8, 77, 11, 77, 12, 77, 537, 1, 77, 1, 77, 5, 77, 542, 8, 77, 10, 77, 12, 77, 545, 9, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 3, 81, 603, 8, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 5, 83, 611, 8, 83, 10, 83, 12, 83, 614, 9, 83, 1, 84, 1, 84, 1, 84, 5, 84, 619, 8, 84, 10, 84, 12, 84, 622, 9, 84, 3, 84, 624, 8, 84, 1, 84, 1, 84, 1, 85, 1, 85, 5, 85, 630, 8, 85, 10, 85, 12, 85, 633, 9, 85, 1, 85, 1, 85, 5, 187, 197, 513, 525, 537, 0, 86, 2, 1, 4, 2, 6, 3, 8, 4, 10, 5, 12, 6, 14, 7, 16, 8, 18, 9, 20, 10, 22, 11, 24, 12, 26, 13, 28, 14, 30, 15, 32, 16, 34, 17, 36, 18, 38, 19, 40, 20, 42, 21, 44, 22, 46, 23, 48, 24, 50, 25, 52, 26, 54, 27, 56, 28, 58, 29, 60, 30, 62, 31, 64, 32, 66, 33, 68, 34, 70, 35, 72, 36, 74, 37, 76, 38, 78, 39, 80, 40, 82, 41, 84, 42, 86, 43, 88, 44, 90, 45, 92, 46, 94, 47, 96, 48, 98, 49, 100, 50, 102, 51, 104, 52, 106, 53, 108, 54, 110, 55, 112, 56, 114, 57, 116, 58, 118, 59, 120, 60, 122, 61, 124, 62, 126, 63, 128, 64, 130, 65, 132, 66, 134, 67, 136, 68, 138, 69, 140, 70, 142, 71, 144, 72, 146, 73, 148, 74, 150, 75, 152, 76, 154, 77, 156, 78, 158, 79, 160, 80, 162, 81, 164, 82, 166, 83, 168, 84, 170, 85, 172, 86, 2, 0, 1, 19, 3, 0, 9, 10, 13, 13, 32, 32, 2, 0, 10, 10, 13, 13, 1, 0, 48, 55, 2, 0, 76, 76, 108, 108, 2, 0, 88, 88, 120, 120, 3, 0, 48, 57, 65, 70, 97, 102, 1, 0, 49, 57, 1, 0, 48, 57, 6, 0, 68, 68, 70, 70, 76, 76, 100, 100, 102, 102, 108, 108, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 4, 0, 68, 68, 70, 70, 100, 100, 102, 102, 2, 0, 34, 34, 92, 92, 2, 0, 39, 39, 92, 92, 1, 0, 10, 10, 2, 0, 10, 10, 47, 47, 7, 0, 85, 85, 99, 99, 105, 105, 108, 109, 115, 115, 117, 117, 120, 120, 3, 0, 65, 90, 95, 95, 97, 122, 4, 0, 48, 57, 65, 90, 95, 95, 97, 122, 674, 0, 2, 1, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 6, 1, 0, 0, 0, 0, 8, 1, 0, 0, 0, 0, 10, 1, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 14, 1, 0, 0, 0, 0, 16, 1, 0, 0, 0, 0, 18, 1, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 24, 1, 0, 0, 0, 0, 26, 1, 0, 0, 0, 0, 28, 1, 0, 0, 0, 0, 30, 1, 0, 0, 0, 0, 32, 1, 0, 0, 0, 0, 34, 1, 0, 0, 0, 0, 36, 1, 0, 0, 0, 0, 38, 1, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 42, 1, 0, 0, 0, 0, 44, 1, 0, 0, 0, 0, 46, 1, 0, 0, 0, 0, 48, 1, 0, 0, 0, 0, 50, 1, 0, 0, 0, 0, 52, 1, 0, 0, 0, 0, 54, 1, 0, 0, 0, 0, 56, 1, 0, 0, 0, 0, 58, 1, 0, 0, 0, 0, 60, 1, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 66, 1, 0, 0, 0, 0, 68, 1, 0, 0, 0, 0, 70, 1, 0, 0, 0, 0, 72, 1, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 76, 1, 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 80, 1, 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 84, 1, 0, 0, 0, 0, 86, 1, 0, 0, 0, 0, 88, 1, 0, 0, 0, 0, 90, 1, 0, 0, 0, 0, 92, 1, 0, 0, 0, 0, 94, 1, 0, 0, 0, 0, 96, 1, 0, 0, 0, 0, 98, 1, 0, 0, 0, 0, 100, 1, 0, 0, 0, 0, 102, 1, 0, 0, 0, 0, 104, 1, 0, 0, 0, 0, 106, 1, 0, 0, 0, 0, 108, 1, 0, 0, 0, 0, 110, 1, 0, 0, 0, 0, 112, 1, 0, 0, 0, 0, 114, 1, 0, 0, 0, 0, 116, 1, 0, 0, 0, 0, 118, 1, 0, 0, 0, 0, 120, 1, 0, 0, 0, 0, 122, 1, 0, 0, 0, 0, 124, 1, 0, 0, 0, 0, 126, 1, 0, 0, 0, 0, 128, 1, 0, 0, 0, 0, 130, 1, 0, 0, 0, 0, 132, 1, 0, 0, 0, 0, 134, 1, 0, 0, 0, 0, 136, 1, 0, 0, 0, 0, 138, 1, 0, 0, 0, 0, 140, 1, 0, 0, 0, 0, 142, 1, 0, 0, 0, 0, 144, 1, 0, 0, 0, 0, 146, 1, 0, 0, 0, 0, 148, 1, 0, 0, 0, 0, 150, 1, 0, 0, 0, 0, 152, 1, 0, 0, 0, 0, 154, 1, 0, 0, 0, 0, 156, 1, 0, 0, 0, 0, 158, 1, 0, 0, 0, 0, 160, 1, 0, 0, 0, 0, 162, 1, 0, 0, 0, 0, 164, 1, 0, 0, 0, 0, 166, 1, 0, 0, 0, 0, 168, 1, 0, 0, 0, 1, 170, 1, 0, 0, 0, 1, 172, 1, 0, 0, 0, 2, 175, 1, 0, 0, 0, 4, 202, 1, 0, 0, 0, 6, 206, 1, 0, 0, 0, 8, 208, 1, 0, 0, 0, 10, 210, 1, 0, 0, 0, 12, 212, 1, 0, 0, 0, 14, 214, 1, 0, 0, 0, 16, 216, 1, 0, 0, 0, 18, 218, 1, 0, 0, 0, 20, 220, 1, 0, 0, 0, 22, 224, 1, 0, 0, 0, 24, 229, 1, 0, 0, 0, 26, 231, 1, 0, 0, 0, 28, 233, 1, 0, 0, 0, 30, 236, 1, 0, 0, 0, 32, 239, 1, 0, 0, 0, 34, 244, 1, 0, 0, 0, 36, 250, 1, 0, 0, 0, 38, 253, 1, 0, 0, 0, 40, 257, 1, 0, 0, 0, 42, 266, 1, 0, 0, 0, 44, 272, 1, 0, 0, 0, 46, 279, 1, 0, 0, 0, 48, 283, 1, 0, 0, 0, 50, 287, 1, 0, 0, 0, 52, 293, 1, 0, 0, 0, 54, 299, 1, 0, 0, 0, 56, 304, 1, 0, 0, 0, 58, 315, 1, 0, 0, 0, 60, 317, 1, 0, 0, 0, 62, 319, 1, 0, 0, 0, 64, 321, 1, 0, 0, 0, 66, 324, 1, 0, 0, 0, 68, 326, 1, 0, 0, 0, 70, 328, 1, 0, 0, 0, 72, 330, 1, 0, 0, 0, 74, 333, 1, 0, 0, 0, 76, 336, 1, 0, 0, 0, 78, 340, 1, 0, 0, 0, 80, 342, 1, 0, 0, 0, 82, 345, 1, 0, 0, 0, 84, 347, 1, 0, 0, 0, 86, 350, 1, 0, 0, 0, 88, 353, 1, 0, 0, 0, 90, 357, 1, 0, 0, 0, 92, 360, 1, 0, 0, 0, 94, 364, 1, 0, 0, 0, 96, 366, 1, 0, 0, 0, 98, 368, 1, 0, 0, 0, 100, 370, 1, 0, 0, 0, 102, 373, 1, 0, 0, 0, 104, 376, 1, 0, 0, 0, 106, 378, 1, 0, 0, 0, 108, 380, 1, 0, 0, 0, 110, 383, 1, 0, 0, 0, 112, 386, 1, 0, 0, 0, 114, 389, 1, 0, 0, 0, 116, 392, 1, 0, 0, 0, 118, 396, 1, 0, 0, 0, 120, 399, 1, 0, 0, 0, 122, 402, 1, 0, 0, 0, 124, 404, 1, 0, 0, 0, 126, 407, 1, 0, 0, 0, 128, 410, 1, 0, 0, 0, 130, 413, 1, 0, 0, 0, 132, 416, 1, 0, 0, 0, 134, 419, 1, 0, 0, 0, 136, 422, 1, 0, 0, 0, 138, 425, 1, 0, 0, 0, 140, 428, 1, 0, 0, 0, 142, 432, 1, 0, 0, 0, 144, 436, 1, 0, 0, 0, 146, 441, 1, 0, 0, 0, 148, 450, 1, 0, 0, 0, 150, 468, 1, 0, 0, 0, 152, 481, 1, 0, 0, 0, 154, 529, 1, 0, 0, 0, 156, 531, 1, 0, 0, 0, 158, 548, 1, 0, 0, 0, 160, 553, 1, 0, 0, 0, 162, 559, 1, 0, 0, 0, 164, 602, 1, 0, 0, 0, 166, 604, 1, 0, 0, 0, 168, 608, 1, 0, 0, 0, 170, 623, 1, 0, 0, 0, 172, 627, 1, 0, 0, 0, 174, 176, 7, 0, 0, 0, 175, 174, 1, 0, 0, 0, 176, 177, 1, 0, 0, 0, 177, 175, 1, 0, 0, 0, 177, 178, 1, 0, 0, 0, 178, 179, 1, 0, 0, 0, 179, 180, 6, 0, 0, 0, 180, 3, 1, 0, 0, 0, 181, 182, 5, 47, 0, 0, 182, 183, 5, 47, 0, 0, 183, 187, 1, 0, 0, 0, 184, 186, 9, 0, 0, 0, 185, 184, 1, 0, 0, 0, 186, 189, 1, 0, 0, 0, 187, 188, 1, 0, 0, 0, 187, 185, 1, 0, 0, 0, 188, 190, 1, 0, 0, 0, 189, 187, 1, 0, 0, 0, 190, 203, 7, 1, 0, 0, 191, 192, 5, 47, 0, 0, 192, 193, 5, 42, 0, 0, 193, 197, 1, 0, 0, 0, 194, 196, 9, 0, 0, 0, 195, 194, 1, 0, 0, 0, 196, 199, 1, 0, 0, 0, 197, 198, 1, 0, 0, 0, 197, 195, 1, 0, 0, 0, 198, 200, 1, 0, 0, 0, 199, 197, 1, 0, 0, 0, 200, 201, 5, 42, 0, 0, 201, 203, 5, 47, 0, 0, 202, 181, 1, 0, 0, 0, 202, 191, 1, 0, 0, 0, 203, 204, 1, 0, 0, 0, 204, 205, 6, 1, 0, 0, 205, 5, 1, 0, 0, 0, 206, 207, 5, 123, 0, 0, 207, 7, 1, 0, 0, 0, 208, 209, 5, 125, 0, 0, 209, 9, 1, 0, 0, 0, 210, 211, 5, 91, 0, 0, 211, 11, 1, 0, 0, 0, 212, 213, 5, 93, 0, 0, 213, 13, 1, 0, 0, 0, 214, 215, 5, 40, 0, 0, 215, 15, 1, 0, 0, 0, 216, 217, 5, 41, 0, 0, 217, 17, 1, 0, 0, 0, 218, 219, 5, 36, 0, 0, 219, 19, 1, 0, 0, 0, 220, 221, 5, 46, 0, 0, 221, 222, 1, 0, 0, 0, 222, 223, 6, 9, 1, 0, 223, 21, 1, 0, 0, 0, 224, 225, 5, 63, 0, 0, 225, 226, 5, 46, 0, 0, 226, 227, 1, 0, 0, 0, 227, 228, 6, 10, 1, 0, 228, 23, 1, 0, 0, 0, 229, 230, 5, 44, 0, 0, 230, 25, 1, 0, 0, 0, 231, 232, 5, 59, 0, 0, 232, 27, 1, 0, 0, 0, 233, 234, 5, 105, 0, 0, 234, 235, 5, 102, 0, 0, 235, 29, 1, 0, 0, 0, 236, 237, 5, 105, 0, 0, 237, 238, 5, 110, 0, 0, 238, 31, 1, 0, 0, 0, 239, 240, 5, 101, 0, 0, 240, 241, 5, 108, 0, 0, 241, 242, 5, 115, 0, 0, 242, 243, 5, 101, 0, 0, 243, 33, 1, 0, 0, 0, 244, 245, 5, 119, 0, 0, 245, 246, 5, 104, 0, 0, 246, 247, 5, 105, 0, 0, 247, 248, 5, 108, 0, 0, 248, 249, 5, 101, 0, 0, 249, 35, 1, 0, 0, 0, 250, 251, 5, 100, 0, 0, 251, 252, 5, 111, 0, 0, 252, 37, 1, 0, 0, 0, 253, 254, 5, 102, 0, 0, 254, 255, 5, 111, 0, 0, 255, 256, 5, 114, 0, 0, 256, 39, 1, 0, 0, 0, 257, 258, 5, 99, 0, 0, 258, 259, 5, 111, 0, 0, 259, 260, 5, 110, 0, 0, 260, 261, 5, 116, 0, 0, 261, 262, 5, 105, 0, 0, 262, 263, 5, 110, 0, 0, 263, 264, 5, 117, 0, 0, 264, 265, 5, 101, 0, 0, 265, 41, 1, 0, 0, 0, 266, 267, 5, 98, 0, 0, 267, 268, 5, 114, 0, 0, 268, 269, 5, 101, 0, 0, 269, 270, 5, 97, 0, 0, 270, 271, 5, 107, 0, 0, 271, 43, 1, 0, 0, 0, 272, 273, 5, 114, 0, 0, 273, 274, 5, 101, 0, 0, 274, 275, 5, 116, 0, 0, 275, 276, 5, 117, 0, 0, 276, 277, 5, 114, 0, 0, 277, 278, 5, 110, 0, 0, 278, 45, 1, 0, 0, 0, 279, 280, 5, 110, 0, 0, 280, 281, 5, 101, 0, 0, 281, 282, 5, 119, 0, 0, 282, 47, 1, 0, 0, 0, 283, 284, 5, 116, 0, 0, 284, 285, 5, 114, 0, 0, 285, 286, 5, 121, 0, 0, 286, 49, 1, 0, 0, 0, 287, 288, 5, 99, 0, 0, 288, 289, 5, 97, 0, 0, 289, 290, 5, 116, 0, 0, 290, 291, 5, 99, 0, 0, 291, 292, 5, 104, 0, 0, 292, 51, 1, 0, 0, 0, 293, 294, 5, 116, 0, 0, 294, 295, 5, 104, 0, 0, 295, 296, 5, 114, 0, 0, 296, 297, 5, 111, 0, 0, 297, 298, 5, 119, 0, 0, 298, 53, 1, 0, 0, 0, 299, 300, 5, 116, 0, 0, 300, 301, 5, 104, 0, 0, 301, 302, 5, 105, 0, 0, 302, 303, 5, 115, 0, 0, 303, 55, 1, 0, 0, 0, 304, 305, 5, 105, 0, 0, 305, 306, 5, 110, 0, 0, 306, 307, 5, 115, 0, 0, 307, 308, 5, 116, 0, 0, 308, 309, 5, 97, 0, 0, 309, 310, 5, 110, 0, 0, 310, 311, 5, 99, 0, 0, 311, 312, 5, 101, 0, 0, 312, 313, 5, 111, 0, 0, 313, 314, 5, 102, 0, 0, 314, 57, 1, 0, 0, 0, 315, 316, 5, 33, 0, 0, 316, 59, 1, 0, 0, 0, 317, 318, 5, 126, 0, 0, 318, 61, 1, 0, 0, 0, 319, 320, 5, 42, 0, 0, 320, 63, 1, 0, 0, 0, 321, 322, 5, 47, 0, 0, 322, 323, 4, 31, 0, 0, 323, 65, 1, 0, 0, 0, 324, 325, 5, 37, 0, 0, 325, 67, 1, 0, 0, 0, 326, 327, 5, 43, 0, 0, 327, 69, 1, 0, 0, 0, 328, 329, 5, 45, 0, 0, 329, 71, 1, 0, 0, 0, 330, 331, 5, 60, 0, 0, 331, 332, 5, 60, 0, 0, 332, 73, 1, 0, 0, 0, 333, 334, 5, 62, 0, 0, 334, 335, 5, 62, 0, 0, 335, 75, 1, 0, 0, 0, 336, 337, 5, 62, 0, 0, 337, 338, 5, 62, 0, 0, 338, 339, 5, 62, 0, 0, 339, 77, 1, 0, 0, 0, 340, 341, 5, 60, 0, 0, 341, 79, 1, 0, 0, 0, 342, 343, 5, 60, 0, 0, 343, 344, 5, 61, 0, 0, 344, 81, 1, 0, 0, 0, 345, 346, 5, 62, 0, 0, 346, 83, 1, 0, 0, 0, 347, 348, 5, 62, 0, 0, 348, 349, 5, 61, 0, 0, 349, 85, 1, 0, 0, 0, 350, 351, 5, 61, 0, 0, 351, 352, 5, 61, 0, 0, 352, 87, 1, 0, 0, 0, 353, 354, 5, 61, 0, 0, 354, 355, 5, 61, 0, 0, 355, 356, 5, 61, 0, 0, 356, 89, 1, 0, 0, 0, 357, 358, 5, 33, 0, 0, 358, 359, 5, 61, 0, 0, 359, 91, 1, 0, 0, 0, 360, 361, 5, 33, 0, 0, 361, 362, 5, 61, 0, 0, 362, 363, 5, 61, 0, 0, 363, 93, 1, 0, 0, 0, 364, 365, 5, 38, 0, 0, 365, 95, 1, 0, 0, 0, 366, 367, 5, 94, 0, 0, 367, 97, 1, 0, 0, 0, 368, 369, 5, 124, 0, 0, 369, 99, 1, 0, 0, 0, 370, 371, 5, 38, 0, 0, 371, 372, 5, 38, 0, 0, 372, 101, 1, 0, 0, 0, 373, 374, 5, 124, 0, 0, 374, 375, 5, 124, 0, 0, 375, 103, 1, 0, 0, 0, 376, 377, 5, 63, 0, 0, 377, 105, 1, 0, 0, 0, 378, 379, 5, 58, 0, 0, 379, 107, 1, 0, 0, 0, 380, 381, 5, 63, 0, 0, 381, 382, 5, 58, 0, 0, 382, 109, 1, 0, 0, 0, 383, 384, 5, 58, 0, 0, 384, 385, 5, 58, 0, 0, 385, 111, 1, 0, 0, 0, 386, 387, 5, 45, 0, 0, 387, 388, 5, 62, 0, 0, 388, 113, 1, 0, 0, 0, 389, 390, 5, 61, 0, 0, 390, 391, 5, 126, 0, 0, 391, 115, 1, 0, 0, 0, 392, 393, 5, 61, 0, 0, 393, 394, 5, 61, 0, 0, 394, 395, 5, 126, 0, 0, 395, 117, 1, 0, 0, 0, 396, 397, 5, 43, 0, 0, 397, 398, 5, 43, 0, 0, 398, 119, 1, 0, 0, 0, 399, 400, 5, 45, 0, 0, 400, 401, 5, 45, 0, 0, 401, 121, 1, 0, 0, 0, 402, 403, 5, 61, 0, 0, 403, 123, 1, 0, 0, 0, 404, 405, 5, 43, 0, 0, 405, 406, 5, 61, 0, 0, 406, 125, 1, 0, 0, 0, 407, 408, 5, 45, 0, 0, 408, 409, 5, 61, 0, 0, 409, 127, 1, 0, 0, 0, 410, 411, 5, 42, 0, 0, 411, 412, 5, 61, 0, 0, 412, 129, 1, 0, 0, 0, 413, 414, 5, 47, 0, 0, 414, 415, 5, 61, 0, 0, 415, 131, 1, 0, 0, 0, 416, 417, 5, 37, 0, 0, 417, 418, 5, 61, 0, 0, 418, 133, 1, 0, 0, 0, 419, 420, 5, 38, 0, 0, 420, 421, 5, 61, 0, 0, 421, 135, 1, 0, 0, 0, 422, 423, 5, 94, 0, 0, 423, 424, 5, 61, 0, 0, 424, 137, 1, 0, 0, 0, 425, 426, 5, 124, 0, 0, 426, 427, 5, 61, 0, 0, 427, 139, 1, 0, 0, 0, 428, 429, 5, 60, 0, 0, 429, 430, 5, 60, 0, 0, 430, 431, 5, 61, 0, 0, 431, 141, 1, 0, 0, 0, 432, 433, 5, 62, 0, 0, 433, 434, 5, 62, 0, 0, 434, 435, 5, 61, 0, 0, 435, 143, 1, 0, 0, 0, 436, 437, 5, 62, 0, 0, 437, 438, 5, 62, 0, 0, 438, 439, 5, 62, 0, 0, 439, 440, 5, 61, 0, 0, 440, 145, 1, 0, 0, 0, 441, 443, 5, 48, 0, 0, 442, 444, 7, 2, 0, 0, 443, 442, 1, 0, 0, 0, 444, 445, 1, 0, 0, 0, 445, 443, 1, 0, 0, 0, 445, 446, 1, 0, 0, 0, 446, 448, 1, 0, 0, 0, 447, 449, 7, 3, 0, 0, 448, 447, 1, 0, 0, 0, 448, 449, 1, 0, 0, 0, 449, 147, 1, 0, 0, 0, 450, 451, 5, 48, 0, 0, 451, 453, 7, 4, 0, 0, 452, 454, 7, 5, 0, 0, 453, 452, 1, 0, 0, 0, 454, 455, 1, 0, 0, 0, 455, 453, 1, 0, 0, 0, 455, 456, 1, 0, 0, 0, 456, 458, 1, 0, 0, 0, 457, 459, 7, 3, 0, 0, 458, 457, 1, 0, 0, 0, 458, 459, 1, 0, 0, 0, 459, 149, 1, 0, 0, 0, 460, 469, 5, 48, 0, 0, 461, 465, 7, 6, 0, 0, 462, 464, 7, 7, 0, 0, 463, 462, 1, 0, 0, 0, 464, 467, 1, 0, 0, 0, 465, 463, 1, 0, 0, 0, 465, 466, 1, 0, 0, 0, 466, 469, 1, 0, 0, 0, 467, 465, 1, 0, 0, 0, 468, 460, 1, 0, 0, 0, 468, 461, 1, 0, 0, 0, 469, 471, 1, 0, 0, 0, 470, 472, 7, 8, 0, 0, 471, 470, 1, 0, 0, 0, 471, 472, 1, 0, 0, 0, 472, 151, 1, 0, 0, 0, 473, 482, 5, 48, 0, 0, 474, 478, 7, 6, 0, 0, 475, 477, 7, 7, 0, 0, 476, 475, 1, 0, 0, 0, 477, 480, 1, 0, 0, 0, 478, 476, 1, 0, 0, 0, 478, 479, 1, 0, 0, 0, 479, 482, 1, 0, 0, 0, 480, 478, 1, 0, 0, 0, 481, 473, 1, 0, 0, 0, 481, 474, 1, 0, 0, 0, 482, 489, 1, 0, 0, 0, 483, 485, 3, 20, 9, 0, 484, 486, 7, 7, 0, 0, 485, 484, 1, 0, 0, 0, 486, 487, 1, 0, 0, 0, 487, 485, 1, 0, 0, 0, 487, 488, 1, 0, 0, 0, 488, 490, 1, 0, 0, 0, 489, 483, 1, 0, 0, 0, 489, 490, 1, 0, 0, 0, 490, 500, 1, 0, 0, 0, 491, 493, 7, 9, 0, 0, 492, 494, 7, 10, 0, 0, 493, 492, 1, 0, 0, 0, 493, 494, 1, 0, 0, 0, 494, 496, 1, 0, 0, 0, 495, 497, 7, 7, 0, 0, 496, 495, 1, 0, 0, 0, 497, 498, 1, 0, 0, 0, 498, 496, 1, 0, 0, 0, 498, 499, 1, 0, 0, 0, 499, 501, 1, 0, 0, 0, 500, 491, 1, 0, 0, 0, 500, 501, 1, 0, 0, 0, 501, 503, 1, 0, 0, 0, 502, 504, 7, 11, 0, 0, 503, 502, 1, 0, 0, 0, 503, 504, 1, 0, 0, 0, 504, 153, 1, 0, 0, 0, 505, 513, 5, 34, 0, 0, 506, 507, 5, 92, 0, 0, 507, 512, 5, 34, 0, 0, 508, 509, 5, 92, 0, 0, 509, 512, 5, 92, 0, 0, 510, 512, 8, 12, 0, 0, 511, 506, 1, 0, 0, 0, 511, 508, 1, 0, 0, 0, 511, 510, 1, 0, 0, 0, 512, 515, 1, 0, 0, 0, 513, 514, 1, 0, 0, 0, 513, 511, 1, 0, 0, 0, 514, 516, 1, 0, 0, 0, 515, 513, 1, 0, 0, 0, 516, 530, 5, 34, 0, 0, 517, 525, 5, 39, 0, 0, 518, 519, 5, 92, 0, 0, 519, 524, 5, 39, 0, 0, 520, 521, 5, 92, 0, 0, 521, 524, 5, 92, 0, 0, 522, 524, 8, 13, 0, 0, 523, 518, 1, 0, 0, 0, 523, 520, 1, 0, 0, 0, 523, 522, 1, 0, 0, 0, 524, 527, 1, 0, 0, 0, 525, 526, 1, 0, 0, 0, 525, 523, 1, 0, 0, 0, 526, 528, 1, 0, 0, 0, 527, 525, 1, 0, 0, 0, 528, 530, 5, 39, 0, 0, 529, 505, 1, 0, 0, 0, 529, 517, 1, 0, 0, 0, 530, 155, 1, 0, 0, 0, 531, 535, 5, 47, 0, 0, 532, 533, 5, 92, 0, 0, 533, 536, 8, 14, 0, 0, 534, 536, 8, 15, 0, 0, 535, 532, 1, 0, 0, 0, 535, 534, 1, 0, 0, 0, 536, 537, 1, 0, 0, 0, 537, 538, 1, 0, 0, 0, 537, 535, 1, 0, 0, 0, 538, 539, 1, 0, 0, 0, 539, 543, 5, 47, 0, 0, 540, 542, 7, 16, 0, 0, 541, 540, 1, 0, 0, 0, 542, 545, 1, 0, 0, 0, 543, 541, 1, 0, 0, 0, 543, 544, 1, 0, 0, 0, 544, 546, 1, 0, 0, 0, 545, 543, 1, 0, 0, 0, 546, 547, 4, 77, 1, 0, 547, 157, 1, 0, 0, 0, 548, 549, 5, 116, 0, 0, 549, 550, 5, 114, 0, 0, 550, 551, 5, 117, 0, 0, 551, 552, 5, 101, 0, 0, 552, 159, 1, 0, 0, 0, 553, 554, 5, 102, 0, 0, 554, 555, 5, 97, 0, 0, 555, 556, 5, 108, 0, 0, 556, 557, 5, 115, 0, 0, 557, 558, 5, 101, 0, 0, 558, 161, 1, 0, 0, 0, 559, 560, 5, 110, 0, 0, 560, 561, 5, 117, 0, 0, 561, 562, 5, 108, 0, 0, 562, 563, 5, 108, 0, 0, 563, 163, 1, 0, 0, 0, 564, 565, 5, 98, 0, 0, 565, 566, 5, 111, 0, 0, 566, 567, 5, 111, 0, 0, 567, 568, 5, 108, 0, 0, 568, 569, 5, 101, 0, 0, 569, 570, 5, 97, 0, 0, 570, 603, 5, 110, 0, 0, 571, 572, 5, 98, 0, 0, 572, 573, 5, 121, 0, 0, 573, 574, 5, 116, 0, 0, 574, 603, 5, 101, 0, 0, 575, 576, 5, 115, 0, 0, 576, 577, 5, 104, 0, 0, 577, 578, 5, 111, 0, 0, 578, 579, 5, 114, 0, 0, 579, 603, 5, 116, 0, 0, 580, 581, 5, 99, 0, 0, 581, 582, 5, 104, 0, 0, 582, 583, 5, 97, 0, 0, 583, 603, 5, 114, 0, 0, 584, 585, 5, 105, 0, 0, 585, 586, 5, 110, 0, 0, 586, 603, 5, 116, 0, 0, 587, 588, 5, 108, 0, 0, 588, 589, 5, 111, 0, 0, 589, 590, 5, 110, 0, 0, 590, 603, 5, 103, 0, 0, 591, 592, 5, 102, 0, 0, 592, 593, 5, 108, 0, 0, 593, 594, 5, 111, 0, 0, 594, 595, 5, 97, 0, 0, 595, 603, 5, 116, 0, 0, 596, 597, 5, 100, 0, 0, 597, 598, 5, 111, 0, 0, 598, 599, 5, 117, 0, 0, 599, 600, 5, 98, 0, 0, 600, 601, 5, 108, 0, 0, 601, 603, 5, 101, 0, 0, 602, 564, 1, 0, 0, 0, 602, 571, 1, 0, 0, 0, 602, 575, 1, 0, 0, 0, 602, 580, 1, 0, 0, 0, 602, 584, 1, 0, 0, 0, 602, 587, 1, 0, 0, 0, 602, 591, 1, 0, 0, 0, 602, 596, 1, 0, 0, 0, 603, 165, 1, 0, 0, 0, 604, 605, 5, 100, 0, 0, 605, 606, 5, 101, 0, 0, 606, 607, 5, 102, 0, 0, 607, 167, 1, 0, 0, 0, 608, 612, 7, 17, 0, 0, 609, 611, 7, 18, 0, 0, 610, 609, 1, 0, 0, 0, 611, 614, 1, 0, 0, 0, 612, 610, 1, 0, 0, 0, 612, 613, 1, 0, 0, 0, 613, 169, 1, 0, 0, 0, 614, 612, 1, 0, 0, 0, 615, 624, 5, 48, 0, 0, 616, 620, 7, 6, 0, 0, 617, 619, 7, 7, 0, 0, 618, 617, 1, 0, 0, 0, 619, 622, 1, 0, 0, 0, 620, 618, 1, 0, 0, 0, 620, 621, 1, 0, 0, 0, 621, 624, 1, 0, 0, 0, 622, 620, 1, 0, 0, 0, 623, 615, 1, 0, 0, 0, 623, 616, 1, 0, 0, 0, 624, 625, 1, 0, 0, 0, 625, 626, 6, 84, 2, 0, 626, 171, 1, 0, 0, 0, 627, 631, 7, 17, 0, 0, 628, 630, 7, 18, 0, 0, 629, 628, 1, 0, 0, 0, 630, 633, 1, 0, 0, 0, 631, 629, 1, 0, 0, 0, 631, 632, 1, 0, 0, 0, 632, 634, 1, 0, 0, 0, 633, 631, 1, 0, 0, 0, 634, 635, 6, 85, 2, 0, 635, 173, 1, 0, 0, 0, 34, 0, 1, 177, 187, 197, 202, 445, 448, 455, 458, 465, 468, 471, 478, 481, 487, 489, 493, 498, 500, 503, 511, 513, 523, 525, 529, 535, 537, 543, 602, 612, 620, 623, 631, 3, 6, 0, 0, 2, 1, 0, 2, 0, 0] \ No newline at end of file diff --git a/packages/kbn-monaco/src/painless/antlr/painless_lexer.ts b/packages/kbn-monaco/src/painless/antlr/painless_lexer.ts index 6e13dec86c908..a4f059b8f895e 100644 --- a/packages/kbn-monaco/src/painless/antlr/painless_lexer.ts +++ b/packages/kbn-monaco/src/painless/antlr/painless_lexer.ts @@ -1,22 +1,18 @@ // @ts-nocheck -// Generated from ./src/painless/antlr/painless_lexer.g4 by ANTLR 4.7.3-SNAPSHOT - - -import { ATN } from "antlr4ts/atn/ATN"; -import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer"; -import { CharStream } from "antlr4ts/CharStream"; -import { Lexer } from "antlr4ts/Lexer"; -import { LexerATNSimulator } from "antlr4ts/atn/LexerATNSimulator"; -import { NotNull } from "antlr4ts/Decorators"; -import { Override } from "antlr4ts/Decorators"; -import { RuleContext } from "antlr4ts/RuleContext"; -import { Vocabulary } from "antlr4ts/Vocabulary"; -import { VocabularyImpl } from "antlr4ts/VocabularyImpl"; - -import * as Utils from "antlr4ts/misc/Utils"; - - -export class painless_lexer extends Lexer { +// Generated from ./src/painless/antlr/painless_lexer.g4 by ANTLR 4.13.1 +// noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols +import { + ATN, + ATNDeserializer, + CharStream, + DecisionState, DFA, + Lexer, + LexerATNSimulator, + RuleContext, + PredictionContextCache, + Token +} from "antlr4"; +export default class painless_lexer extends Lexer { public static readonly WS = 1; public static readonly COMMENT = 2; public static readonly LBRACK = 3; @@ -103,17 +99,102 @@ export class painless_lexer extends Lexer { public static readonly ID = 84; public static readonly DOTINTEGER = 85; public static readonly DOTID = 86; + public static readonly EOF = Token.EOF; public static readonly AFTER_DOT = 1; - // tslint:disable:no-trailing-whitespace - public static readonly channelNames: string[] = [ - "DEFAULT_TOKEN_CHANNEL", "HIDDEN", - ]; - - // tslint:disable:no-trailing-whitespace - public static readonly modeNames: string[] = [ - "DEFAULT_MODE", "AFTER_DOT", - ]; + public static readonly channelNames: string[] = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; + public static readonly literalNames: (string | null)[] = [ null, null, + null, "'{'", + "'}'", "'['", + "']'", "'('", + "')'", "'$'", + "'.'", "'?.'", + "','", "';'", + "'if'", "'in'", + "'else'", "'while'", + "'do'", "'for'", + "'continue'", + "'break'", "'return'", + "'new'", "'try'", + "'catch'", "'throw'", + "'this'", "'instanceof'", + "'!'", "'~'", + "'*'", "'/'", + "'%'", "'+'", + "'-'", "'<<'", + "'>>'", "'>>>'", + "'<'", "'<='", + "'>'", "'>='", + "'=='", "'==='", + "'!='", "'!=='", + "'&'", "'^'", + "'|'", "'&&'", + "'||'", "'?'", + "':'", "'?:'", + "'::'", "'->'", + "'=~'", "'==~'", + "'++'", "'--'", + "'='", "'+='", + "'-='", "'*='", + "'/='", "'%='", + "'&='", "'^='", + "'|='", "'<<='", + "'>>='", "'>>>='", + null, null, + null, null, + null, null, + "'true'", "'false'", + "'null'", null, + "'def'" ]; + public static readonly symbolicNames: (string | null)[] = [ null, "WS", + "COMMENT", + "LBRACK", "RBRACK", + "LBRACE", "RBRACE", + "LP", "RP", + "DOLLAR", "DOT", + "NSDOT", "COMMA", + "SEMICOLON", + "IF", "IN", + "ELSE", "WHILE", + "DO", "FOR", + "CONTINUE", + "BREAK", "RETURN", + "NEW", "TRY", + "CATCH", "THROW", + "THIS", "INSTANCEOF", + "BOOLNOT", + "BWNOT", "MUL", + "DIV", "REM", + "ADD", "SUB", + "LSH", "RSH", + "USH", "LT", + "LTE", "GT", + "GTE", "EQ", + "EQR", "NE", + "NER", "BWAND", + "XOR", "BWOR", + "BOOLAND", + "BOOLOR", "COND", + "COLON", "ELVIS", + "REF", "ARROW", + "FIND", "MATCH", + "INCR", "DECR", + "ASSIGN", "AADD", + "ASUB", "AMUL", + "ADIV", "AREM", + "AAND", "AXOR", + "AOR", "ALSH", + "ARSH", "AUSH", + "OCTAL", "HEX", + "INTEGER", + "DECIMAL", + "STRING", "REGEX", + "TRUE", "FALSE", + "NULL", "PRIMITIVE", + "DEF", "ID", + "DOTINTEGER", + "DOTID" ]; + public static readonly modeNames: string[] = [ "DEFAULT_MODE", "AFTER_DOT", ]; public static readonly ruleNames: string[] = [ "WS", "COMMENT", "LBRACK", "RBRACK", "LBRACE", "RBRACE", "LP", "RP", "DOLLAR", @@ -128,79 +209,42 @@ export class painless_lexer extends Lexer { "NULL", "PRIMITIVE", "DEF", "ID", "DOTINTEGER", "DOTID", ]; - private static readonly _LITERAL_NAMES: Array = [ - undefined, undefined, undefined, "'{'", "'}'", "'['", "']'", "'('", "')'", - "'$'", "'.'", "'?.'", "','", "';'", "'if'", "'in'", "'else'", "'while'", - "'do'", "'for'", "'continue'", "'break'", "'return'", "'new'", "'try'", - "'catch'", "'throw'", "'this'", "'instanceof'", "'!'", "'~'", "'*'", "'/'", - "'%'", "'+'", "'-'", "'<<'", "'>>'", "'>>>'", "'<'", "'<='", "'>'", "'>='", - "'=='", "'==='", "'!='", "'!=='", "'&'", "'^'", "'|'", "'&&'", "'||'", - "'?'", "':'", "'?:'", "'::'", "'->'", "'=~'", "'==~'", "'++'", "'--'", - "'='", "'+='", "'-='", "'*='", "'/='", "'%='", "'&='", "'^='", "'|='", - "'<<='", "'>>='", "'>>>='", undefined, undefined, undefined, undefined, - undefined, undefined, "'true'", "'false'", "'null'", undefined, "'def'", - ]; - private static readonly _SYMBOLIC_NAMES: Array = [ - undefined, "WS", "COMMENT", "LBRACK", "RBRACK", "LBRACE", "RBRACE", "LP", - "RP", "DOLLAR", "DOT", "NSDOT", "COMMA", "SEMICOLON", "IF", "IN", "ELSE", - "WHILE", "DO", "FOR", "CONTINUE", "BREAK", "RETURN", "NEW", "TRY", "CATCH", - "THROW", "THIS", "INSTANCEOF", "BOOLNOT", "BWNOT", "MUL", "DIV", "REM", - "ADD", "SUB", "LSH", "RSH", "USH", "LT", "LTE", "GT", "GTE", "EQ", "EQR", - "NE", "NER", "BWAND", "XOR", "BWOR", "BOOLAND", "BOOLOR", "COND", "COLON", - "ELVIS", "REF", "ARROW", "FIND", "MATCH", "INCR", "DECR", "ASSIGN", "AADD", - "ASUB", "AMUL", "ADIV", "AREM", "AAND", "AXOR", "AOR", "ALSH", "ARSH", - "AUSH", "OCTAL", "HEX", "INTEGER", "DECIMAL", "STRING", "REGEX", "TRUE", - "FALSE", "NULL", "PRIMITIVE", "DEF", "ID", "DOTINTEGER", "DOTID", - ]; - public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(painless_lexer._LITERAL_NAMES, painless_lexer._SYMBOLIC_NAMES, []); - - // @Override - // @NotNull - public get vocabulary(): Vocabulary { - return painless_lexer.VOCABULARY; - } - // tslint:enable:no-trailing-whitespace - constructor(input: CharStream) { super(input); - this._interp = new LexerATNSimulator(painless_lexer._ATN, this); + this._interp = new LexerATNSimulator(this, painless_lexer._ATN, painless_lexer.DecisionsToDFA, new PredictionContextCache()); } - // @Override public get grammarFileName(): string { return "painless_lexer.g4"; } - // @Override + public get literalNames(): (string | null)[] { return painless_lexer.literalNames; } + public get symbolicNames(): (string | null)[] { return painless_lexer.symbolicNames; } public get ruleNames(): string[] { return painless_lexer.ruleNames; } - // @Override - public get serializedATN(): string { return painless_lexer._serializedATN; } + public get serializedATN(): number[] { return painless_lexer._serializedATN; } - // @Override public get channelNames(): string[] { return painless_lexer.channelNames; } - // @Override public get modeNames(): string[] { return painless_lexer.modeNames; } // @Override - public sempred(_localctx: RuleContext, ruleIndex: number, predIndex: number): boolean { + public sempred(localctx: RuleContext, ruleIndex: number, predIndex: number): boolean { switch (ruleIndex) { case 31: - return this.DIV_sempred(_localctx, predIndex); - + return this.DIV_sempred(localctx, predIndex); case 77: - return this.REGEX_sempred(_localctx, predIndex); + return this.REGEX_sempred(localctx, predIndex); } return true; } - private DIV_sempred(_localctx: RuleContext, predIndex: number): boolean { + private DIV_sempred(localctx: RuleContext, predIndex: number): boolean { switch (predIndex) { case 0: return this.isSlashRegex() == false ; } return true; } - private REGEX_sempred(_localctx: RuleContext, predIndex: number): boolean { + private REGEX_sempred(localctx: RuleContext, predIndex: number): boolean { switch (predIndex) { case 1: return this.isSlashRegex() ; @@ -208,330 +252,229 @@ export class painless_lexer extends Lexer { return true; } - private static readonly _serializedATNSegments: number = 2; - private static readonly _serializedATNSegment0: string = - "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02X\u027E\b\x01" + - "\b\x01\x04\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06" + - "\t\x06\x04\x07\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f" + - "\x04\r\t\r\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04" + - "\x12\t\x12\x04\x13\t\x13\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04" + - "\x17\t\x17\x04\x18\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04" + - "\x1C\t\x1C\x04\x1D\t\x1D\x04\x1E\t\x1E\x04\x1F\t\x1F\x04 \t \x04!\t!\x04" + - "\"\t\"\x04#\t#\x04$\t$\x04%\t%\x04&\t&\x04\'\t\'\x04(\t(\x04)\t)\x04*" + - "\t*\x04+\t+\x04,\t,\x04-\t-\x04.\t.\x04/\t/\x040\t0\x041\t1\x042\t2\x04" + - "3\t3\x044\t4\x045\t5\x046\t6\x047\t7\x048\t8\x049\t9\x04:\t:\x04;\t;\x04" + - "<\t<\x04=\t=\x04>\t>\x04?\t?\x04@\t@\x04A\tA\x04B\tB\x04C\tC\x04D\tD\x04" + - "E\tE\x04F\tF\x04G\tG\x04H\tH\x04I\tI\x04J\tJ\x04K\tK\x04L\tL\x04M\tM\x04" + - "N\tN\x04O\tO\x04P\tP\x04Q\tQ\x04R\tR\x04S\tS\x04T\tT\x04U\tU\x04V\tV\x04" + - "W\tW\x03\x02\x06\x02\xB2\n\x02\r\x02\x0E\x02\xB3\x03\x02\x03\x02\x03\x03" + - "\x03\x03\x03\x03\x03\x03\x07\x03\xBC\n\x03\f\x03\x0E\x03\xBF\v\x03\x03" + - "\x03\x03\x03\x03\x03\x03\x03\x03\x03\x07\x03\xC6\n\x03\f\x03\x0E\x03\xC9" + - "\v\x03\x03\x03\x03\x03\x05\x03\xCD\n\x03\x03\x03\x03\x03\x03\x04\x03\x04" + - "\x03\x05\x03\x05\x03\x06\x03\x06\x03\x07\x03\x07\x03\b\x03\b\x03\t\x03" + - "\t\x03\n\x03\n\x03\v\x03\v\x03\v\x03\v\x03\f\x03\f\x03\f\x03\f\x03\f\x03" + - "\r\x03\r\x03\x0E\x03\x0E\x03\x0F\x03\x0F\x03\x0F\x03\x10\x03\x10\x03\x10" + - "\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x12\x03\x12\x03\x12\x03\x12" + - "\x03\x12\x03\x12\x03\x13\x03\x13\x03\x13\x03\x14\x03\x14\x03\x14\x03\x14" + - "\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15" + - "\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x17\x03\x17\x03\x17" + - "\x03\x17\x03\x17\x03\x17\x03\x17\x03\x18\x03\x18\x03\x18\x03\x18\x03\x19" + - "\x03\x19\x03\x19\x03\x19\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A" + - "\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1C\x03\x1C\x03\x1C" + - "\x03\x1C\x03\x1C\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D" + - "\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1E\x03\x1E\x03\x1F\x03\x1F\x03 " + - "\x03 \x03!\x03!\x03!\x03\"\x03\"\x03#\x03#\x03$\x03$\x03%\x03%\x03%\x03" + - "&\x03&\x03&\x03\'\x03\'\x03\'\x03\'\x03(\x03(\x03)\x03)\x03)\x03*\x03" + - "*\x03+\x03+\x03+\x03,\x03,\x03,\x03-\x03-\x03-\x03-\x03.\x03.\x03.\x03" + - "/\x03/\x03/\x03/\x030\x030\x031\x031\x032\x032\x033\x033\x033\x034\x03" + - "4\x034\x035\x035\x036\x036\x037\x037\x037\x038\x038\x038\x039\x039\x03" + - "9\x03:\x03:\x03:\x03;\x03;\x03;\x03;\x03<\x03<\x03<\x03=\x03=\x03=\x03" + - ">\x03>\x03?\x03?\x03?\x03@\x03@\x03@\x03A\x03A\x03A\x03B\x03B\x03B\x03" + - "C\x03C\x03C\x03D\x03D\x03D\x03E\x03E\x03E\x03F\x03F\x03F\x03G\x03G\x03" + - "G\x03G\x03H\x03H\x03H\x03H\x03I\x03I\x03I\x03I\x03I\x03J\x03J\x06J\u01BE" + - "\nJ\rJ\x0EJ\u01BF\x03J\x05J\u01C3\nJ\x03K\x03K\x03K\x06K\u01C8\nK\rK\x0E" + - "K\u01C9\x03K\x05K\u01CD\nK\x03L\x03L\x03L\x07L\u01D2\nL\fL\x0EL\u01D5" + - "\vL\x05L\u01D7\nL\x03L\x05L\u01DA\nL\x03M\x03M\x03M\x07M\u01DF\nM\fM\x0E" + - "M\u01E2\vM\x05M\u01E4\nM\x03M\x03M\x06M\u01E8\nM\rM\x0EM\u01E9\x05M\u01EC" + - "\nM\x03M\x03M\x05M\u01F0\nM\x03M\x06M\u01F3\nM\rM\x0EM\u01F4\x05M\u01F7" + - "\nM\x03M\x05M\u01FA\nM\x03N\x03N\x03N\x03N\x03N\x03N\x07N\u0202\nN\fN" + - "\x0EN\u0205\vN\x03N\x03N\x03N\x03N\x03N\x03N\x03N\x07N\u020E\nN\fN\x0E" + - "N\u0211\vN\x03N\x05N\u0214\nN\x03O\x03O\x03O\x03O\x06O\u021A\nO\rO\x0E" + - "O\u021B\x03O\x03O\x07O\u0220\nO\fO\x0EO\u0223\vO\x03O\x03O\x03P\x03P\x03" + - "P\x03P\x03P\x03Q\x03Q\x03Q\x03Q\x03Q\x03Q\x03R\x03R\x03R\x03R\x03R\x03" + - "S\x03S\x03S\x03S\x03S\x03S\x03S\x03S\x03S\x03S\x03S\x03S\x03S\x03S\x03" + - "S\x03S\x03S\x03S\x03S\x03S\x03S\x03S\x03S\x03S\x03S\x03S\x03S\x03S\x03" + - "S\x03S\x03S\x03S\x03S\x03S\x03S\x03S\x03S\x03S\x05S\u025D\nS\x03T\x03" + - "T\x03T\x03T\x03U\x03U\x07U\u0265\nU\fU\x0EU\u0268\vU\x03V\x03V\x03V\x07" + - "V\u026D\nV\fV\x0EV\u0270\vV\x05V\u0272\nV\x03V\x03V\x03W\x03W\x07W\u0278" + - "\nW\fW\x0EW\u027B\vW\x03W\x03W\x07\xBD\xC7\u0203\u020F\u021B\x02\x02X" + - "\x04\x02\x03\x06\x02\x04\b\x02\x05\n\x02\x06\f\x02\x07\x0E\x02\b\x10\x02" + - "\t\x12\x02\n\x14\x02\v\x16\x02\f\x18\x02\r\x1A\x02\x0E\x1C\x02\x0F\x1E" + - "\x02\x10 \x02\x11\"\x02\x12$\x02\x13&\x02\x14(\x02\x15*\x02\x16,\x02\x17" + - ".\x02\x180\x02\x192\x02\x1A4\x02\x1B6\x02\x1C8\x02\x1D:\x02\x1E<\x02\x1F" + - ">\x02 @\x02!B\x02\"D\x02#F\x02$H\x02%J\x02&L\x02\'N\x02(P\x02)R\x02*T" + - "\x02+V\x02,X\x02-Z\x02.\\\x02/^\x020`\x021b\x022d\x023f\x024h\x025j\x02" + - "6l\x027n\x028p\x029r\x02:t\x02;v\x02|\x02?~\x02@\x80\x02" + - "A\x82\x02B\x84\x02C\x86\x02D\x88\x02E\x8A\x02F\x8C\x02G\x8E\x02H\x90\x02" + - "I\x92\x02J\x94\x02K\x96\x02L\x98\x02M\x9A\x02N\x9C\x02O\x9E\x02P\xA0\x02" + - "Q\xA2\x02R\xA4\x02S\xA6\x02T\xA8\x02U\xAA\x02V\xAC\x02W\xAE\x02X\x04\x02" + - "\x03\x15\x05\x02\v\f\x0F\x0F\"\"\x04\x02\f\f\x0F\x0F\x03\x0229\x04\x02" + - "NNnn\x04\x02ZZzz\x05\x022;CHch\x03\x023;\x03\x022;\b\x02FFHHNNffhhnn\x04" + - "\x02GGgg\x04\x02--//\x06\x02FFHHffhh\x04\x02$$^^\x04\x02))^^\x03\x02\f" + - "\f\x04\x02\f\f11\t\x02WWeekknouuwwzz\x05\x02C\\aac|\x06\x022;C\\aac|\x02" + - "\u02A4\x02\x04\x03\x02\x02\x02\x02\x06\x03\x02\x02\x02\x02\b\x03\x02\x02" + - "\x02\x02\n\x03\x02\x02\x02\x02\f\x03\x02\x02\x02\x02\x0E\x03\x02\x02\x02" + - "\x02\x10\x03\x02\x02\x02\x02\x12\x03\x02\x02\x02\x02\x14\x03\x02\x02\x02" + - "\x02\x16\x03\x02\x02\x02\x02\x18\x03\x02\x02\x02\x02\x1A\x03\x02\x02\x02" + - "\x02\x1C\x03\x02\x02\x02\x02\x1E\x03\x02\x02\x02\x02 \x03\x02\x02\x02" + - "\x02\"\x03\x02\x02\x02\x02$\x03\x02\x02\x02\x02&\x03\x02\x02\x02\x02(" + - "\x03\x02\x02\x02\x02*\x03\x02\x02\x02\x02,\x03\x02\x02\x02\x02.\x03\x02" + - "\x02\x02\x020\x03\x02\x02\x02\x022\x03\x02\x02\x02\x024\x03\x02\x02\x02" + - "\x026\x03\x02\x02\x02\x028\x03\x02\x02\x02\x02:\x03\x02\x02\x02\x02<\x03" + - "\x02\x02\x02\x02>\x03\x02\x02\x02\x02@\x03\x02\x02\x02\x02B\x03\x02\x02" + - "\x02\x02D\x03\x02\x02\x02\x02F\x03\x02\x02\x02\x02H\x03\x02\x02\x02\x02" + - "J\x03\x02\x02\x02\x02L\x03\x02\x02\x02\x02N\x03\x02\x02\x02\x02P\x03\x02" + - "\x02\x02\x02R\x03\x02\x02\x02\x02T\x03\x02\x02\x02\x02V\x03\x02\x02\x02" + - "\x02X\x03\x02\x02\x02\x02Z\x03\x02\x02\x02\x02\\\x03\x02\x02\x02\x02^" + - "\x03\x02\x02\x02\x02`\x03\x02\x02\x02\x02b\x03\x02\x02\x02\x02d\x03\x02" + - "\x02\x02\x02f\x03\x02\x02\x02\x02h\x03\x02\x02\x02\x02j\x03\x02\x02\x02" + - "\x02l\x03\x02\x02\x02\x02n\x03\x02\x02\x02\x02p\x03\x02\x02\x02\x02r\x03" + - "\x02\x02\x02\x02t\x03\x02\x02\x02\x02v\x03\x02\x02\x02\x02x\x03\x02\x02" + - "\x02\x02z\x03\x02\x02\x02\x02|\x03\x02\x02\x02\x02~\x03\x02\x02\x02\x02" + - "\x80\x03\x02\x02\x02\x02\x82\x03\x02\x02\x02\x02\x84\x03\x02\x02\x02\x02" + - "\x86\x03\x02\x02\x02\x02\x88\x03\x02\x02\x02\x02\x8A\x03\x02\x02\x02\x02" + - "\x8C\x03\x02\x02\x02\x02\x8E\x03\x02\x02\x02\x02\x90\x03\x02\x02\x02\x02" + - "\x92\x03\x02\x02\x02\x02\x94\x03\x02\x02\x02\x02\x96\x03\x02\x02\x02\x02" + - "\x98\x03\x02\x02\x02\x02\x9A\x03\x02\x02\x02\x02\x9C\x03\x02\x02\x02\x02" + - "\x9E\x03\x02\x02\x02\x02\xA0\x03\x02\x02\x02\x02\xA2\x03\x02\x02\x02\x02" + - "\xA4\x03\x02\x02\x02\x02\xA6\x03\x02\x02\x02\x02\xA8\x03\x02\x02\x02\x02" + - "\xAA\x03\x02\x02\x02\x03\xAC\x03\x02\x02\x02\x03\xAE\x03\x02\x02\x02\x04" + - "\xB1\x03\x02\x02\x02\x06\xCC\x03\x02\x02\x02\b\xD0\x03\x02\x02\x02\n\xD2" + - "\x03\x02\x02\x02\f\xD4\x03\x02\x02\x02\x0E\xD6\x03\x02\x02\x02\x10\xD8" + - "\x03\x02\x02\x02\x12\xDA\x03\x02\x02\x02\x14\xDC\x03\x02\x02\x02\x16\xDE" + - "\x03\x02\x02\x02\x18\xE2\x03\x02\x02\x02\x1A\xE7\x03\x02\x02\x02\x1C\xE9" + - "\x03\x02\x02\x02\x1E\xEB\x03\x02\x02\x02 \xEE\x03\x02\x02\x02\"\xF1\x03" + - "\x02\x02\x02$\xF6\x03\x02\x02\x02&\xFC\x03\x02\x02\x02(\xFF\x03\x02\x02" + - "\x02*\u0103\x03\x02\x02\x02,\u010C\x03\x02\x02\x02.\u0112\x03\x02\x02" + - "\x020\u0119\x03\x02\x02\x022\u011D\x03\x02\x02\x024\u0121\x03\x02\x02" + - "\x026\u0127\x03\x02\x02\x028\u012D\x03\x02\x02\x02:\u0132\x03\x02\x02" + - "\x02<\u013D\x03\x02\x02\x02>\u013F\x03\x02\x02\x02@\u0141\x03\x02\x02" + - "\x02B\u0143\x03\x02\x02\x02D\u0146\x03\x02\x02\x02F\u0148\x03\x02\x02" + - "\x02H\u014A\x03\x02\x02\x02J\u014C\x03\x02\x02\x02L\u014F\x03\x02\x02" + - "\x02N\u0152\x03\x02\x02\x02P\u0156\x03\x02\x02\x02R\u0158\x03\x02\x02" + - "\x02T\u015B\x03\x02\x02\x02V\u015D\x03\x02\x02\x02X\u0160\x03\x02\x02" + - "\x02Z\u0163\x03\x02\x02\x02\\\u0167\x03\x02\x02\x02^\u016A\x03\x02\x02" + - "\x02`\u016E\x03\x02\x02\x02b\u0170\x03\x02\x02\x02d\u0172\x03\x02\x02" + - "\x02f\u0174\x03\x02\x02\x02h\u0177\x03\x02\x02\x02j\u017A\x03\x02\x02" + - "\x02l\u017C\x03\x02\x02\x02n\u017E\x03\x02\x02\x02p\u0181\x03\x02\x02" + - "\x02r\u0184\x03\x02\x02\x02t\u0187\x03\x02\x02\x02v\u018A\x03\x02\x02" + - "\x02x\u018E\x03\x02\x02\x02z\u0191\x03\x02\x02\x02|\u0194\x03\x02\x02" + - "\x02~\u0196\x03\x02\x02\x02\x80\u0199\x03\x02\x02\x02\x82\u019C\x03\x02" + - "\x02\x02\x84\u019F\x03\x02\x02\x02\x86\u01A2\x03\x02\x02\x02\x88\u01A5" + - "\x03\x02\x02\x02\x8A\u01A8\x03\x02\x02\x02\x8C\u01AB\x03\x02\x02\x02\x8E" + - "\u01AE\x03\x02\x02\x02\x90\u01B2\x03\x02\x02\x02\x92\u01B6\x03\x02\x02" + - "\x02\x94\u01BB\x03\x02\x02\x02\x96\u01C4\x03\x02\x02\x02\x98\u01D6\x03" + - "\x02\x02\x02\x9A\u01E3\x03\x02\x02\x02\x9C\u0213\x03\x02\x02\x02\x9E\u0215" + - "\x03\x02\x02\x02\xA0\u0226\x03\x02\x02\x02\xA2\u022B\x03\x02\x02\x02\xA4" + - "\u0231\x03\x02\x02\x02\xA6\u025C\x03\x02\x02\x02\xA8\u025E\x03\x02\x02" + - "\x02\xAA\u0262\x03\x02\x02\x02\xAC\u0271\x03\x02\x02\x02\xAE\u0275\x03" + - "\x02\x02\x02\xB0\xB2\t\x02\x02\x02\xB1\xB0\x03\x02\x02\x02\xB2\xB3\x03" + - "\x02\x02\x02\xB3\xB1\x03\x02\x02\x02\xB3\xB4\x03\x02\x02\x02\xB4\xB5\x03" + - "\x02\x02\x02\xB5\xB6\b\x02\x02\x02\xB6\x05\x03\x02\x02\x02\xB7\xB8\x07" + - "1\x02\x02\xB8\xB9\x071\x02\x02\xB9\xBD\x03\x02\x02\x02\xBA\xBC\v\x02\x02" + - "\x02\xBB\xBA\x03\x02\x02\x02\xBC\xBF\x03\x02\x02\x02\xBD\xBE\x03\x02\x02" + - "\x02\xBD\xBB\x03\x02\x02\x02\xBE\xC0\x03\x02\x02\x02\xBF\xBD\x03\x02\x02" + - "\x02\xC0\xCD\t\x03\x02\x02\xC1\xC2\x071\x02\x02\xC2\xC3\x07,\x02\x02\xC3" + - "\xC7\x03\x02\x02\x02\xC4\xC6\v\x02\x02\x02\xC5\xC4\x03\x02\x02\x02\xC6" + - "\xC9\x03\x02\x02\x02\xC7\xC8\x03\x02\x02\x02\xC7\xC5\x03\x02\x02\x02\xC8" + - "\xCA\x03\x02\x02\x02\xC9\xC7\x03\x02\x02\x02\xCA\xCB\x07,\x02\x02\xCB" + - "\xCD\x071\x02\x02\xCC\xB7\x03\x02\x02\x02\xCC\xC1\x03\x02\x02\x02\xCD" + - "\xCE\x03\x02\x02\x02\xCE\xCF\b\x03\x02\x02\xCF\x07\x03\x02\x02\x02\xD0" + - "\xD1\x07}\x02\x02\xD1\t\x03\x02\x02\x02\xD2\xD3\x07\x7F\x02\x02\xD3\v" + - "\x03\x02\x02\x02\xD4\xD5\x07]\x02\x02\xD5\r\x03\x02\x02\x02\xD6\xD7\x07" + - "_\x02\x02\xD7\x0F\x03\x02\x02\x02\xD8\xD9\x07*\x02\x02\xD9\x11\x03\x02" + - "\x02\x02\xDA\xDB\x07+\x02\x02\xDB\x13\x03\x02\x02\x02\xDC\xDD\x07&\x02" + - "\x02\xDD\x15\x03\x02\x02\x02\xDE\xDF\x070\x02\x02\xDF\xE0\x03\x02\x02" + - "\x02\xE0\xE1\b\v\x03\x02\xE1\x17\x03\x02\x02\x02\xE2\xE3\x07A\x02\x02" + - "\xE3\xE4\x070\x02\x02\xE4\xE5\x03\x02\x02\x02\xE5\xE6\b\f\x03\x02\xE6" + - "\x19\x03\x02\x02\x02\xE7\xE8\x07.\x02\x02\xE8\x1B\x03\x02\x02\x02\xE9" + - "\xEA\x07=\x02\x02\xEA\x1D\x03\x02\x02\x02\xEB\xEC\x07k\x02\x02\xEC\xED" + - "\x07h\x02\x02\xED\x1F\x03\x02\x02\x02\xEE\xEF\x07k\x02\x02\xEF\xF0\x07" + - "p\x02\x02\xF0!\x03\x02\x02\x02\xF1\xF2\x07g\x02\x02\xF2\xF3\x07n\x02\x02" + - "\xF3\xF4\x07u\x02\x02\xF4\xF5\x07g\x02\x02\xF5#\x03\x02\x02\x02\xF6\xF7" + - "\x07y\x02\x02\xF7\xF8\x07j\x02\x02\xF8\xF9\x07k\x02\x02\xF9\xFA\x07n\x02" + - "\x02\xFA\xFB\x07g\x02\x02\xFB%\x03\x02\x02\x02\xFC\xFD\x07f\x02\x02\xFD" + - "\xFE\x07q\x02\x02\xFE\'\x03\x02\x02\x02\xFF\u0100\x07h\x02\x02\u0100\u0101" + - "\x07q\x02\x02\u0101\u0102\x07t\x02\x02\u0102)\x03\x02\x02\x02\u0103\u0104" + - "\x07e\x02\x02\u0104\u0105\x07q\x02\x02\u0105\u0106\x07p\x02\x02\u0106" + - "\u0107\x07v\x02\x02\u0107\u0108\x07k\x02\x02\u0108\u0109\x07p\x02\x02" + - "\u0109\u010A\x07w\x02\x02\u010A\u010B\x07g\x02\x02\u010B+\x03\x02\x02" + - "\x02\u010C\u010D\x07d\x02\x02\u010D\u010E\x07t\x02\x02\u010E\u010F\x07" + - "g\x02\x02\u010F\u0110\x07c\x02\x02\u0110\u0111\x07m\x02\x02\u0111-\x03" + - "\x02\x02\x02\u0112\u0113\x07t\x02\x02\u0113\u0114\x07g\x02\x02\u0114\u0115" + - "\x07v\x02\x02\u0115\u0116\x07w\x02\x02\u0116\u0117\x07t\x02\x02\u0117" + - "\u0118\x07p\x02\x02\u0118/\x03\x02\x02\x02\u0119\u011A\x07p\x02\x02\u011A" + - "\u011B\x07g\x02\x02\u011B\u011C\x07y\x02\x02\u011C1\x03\x02\x02\x02\u011D" + - "\u011E\x07v\x02\x02\u011E\u011F\x07t\x02\x02\u011F\u0120\x07{\x02\x02" + - "\u01203\x03\x02\x02\x02\u0121\u0122\x07e\x02\x02\u0122\u0123\x07c\x02" + - "\x02\u0123\u0124\x07v\x02\x02\u0124\u0125\x07e\x02\x02\u0125\u0126\x07" + - "j\x02\x02\u01265\x03\x02\x02\x02\u0127\u0128\x07v\x02\x02\u0128\u0129" + - "\x07j\x02\x02\u0129\u012A\x07t\x02\x02\u012A\u012B\x07q\x02\x02\u012B" + - "\u012C\x07y\x02\x02\u012C7\x03\x02\x02\x02\u012D\u012E\x07v\x02\x02\u012E" + - "\u012F\x07j\x02\x02\u012F\u0130\x07k\x02\x02\u0130\u0131\x07u\x02\x02" + - "\u01319\x03\x02\x02\x02\u0132\u0133\x07k\x02\x02\u0133\u0134\x07p\x02" + - "\x02\u0134\u0135\x07u\x02\x02\u0135\u0136\x07v\x02\x02\u0136\u0137\x07" + - "c\x02\x02\u0137\u0138\x07p\x02\x02\u0138\u0139\x07e\x02\x02\u0139\u013A" + - "\x07g\x02\x02\u013A\u013B\x07q\x02\x02\u013B\u013C\x07h\x02\x02\u013C" + - ";\x03\x02\x02\x02\u013D\u013E\x07#\x02\x02\u013E=\x03\x02\x02\x02\u013F" + - "\u0140\x07\x80\x02\x02\u0140?\x03\x02\x02\x02\u0141\u0142\x07,\x02\x02" + - "\u0142A\x03\x02\x02\x02\u0143\u0144\x071\x02\x02\u0144\u0145\x06!\x02" + - "\x02\u0145C\x03\x02\x02\x02\u0146\u0147\x07\'\x02\x02\u0147E\x03\x02\x02" + - "\x02\u0148\u0149\x07-\x02\x02\u0149G\x03\x02\x02\x02\u014A\u014B\x07/" + - "\x02\x02\u014BI\x03\x02\x02\x02\u014C\u014D\x07>\x02\x02\u014D\u014E\x07" + - ">\x02\x02\u014EK\x03\x02\x02\x02\u014F\u0150\x07@\x02\x02\u0150\u0151" + - "\x07@\x02\x02\u0151M\x03\x02\x02\x02\u0152\u0153\x07@\x02\x02\u0153\u0154" + - "\x07@\x02\x02\u0154\u0155\x07@\x02\x02\u0155O\x03\x02\x02\x02\u0156\u0157" + - "\x07>\x02\x02\u0157Q\x03\x02\x02\x02\u0158\u0159\x07>\x02\x02\u0159\u015A" + - "\x07?\x02\x02\u015AS\x03\x02\x02\x02\u015B\u015C\x07@\x02\x02\u015CU\x03" + - "\x02\x02\x02\u015D\u015E\x07@\x02\x02\u015E\u015F\x07?\x02\x02\u015FW" + - "\x03\x02\x02\x02\u0160\u0161\x07?\x02\x02\u0161\u0162\x07?\x02\x02\u0162" + - "Y\x03\x02\x02\x02\u0163\u0164\x07?\x02\x02\u0164\u0165\x07?\x02\x02\u0165" + - "\u0166\x07?\x02\x02\u0166[\x03\x02\x02\x02\u0167\u0168\x07#\x02\x02\u0168" + - "\u0169\x07?\x02\x02\u0169]\x03\x02\x02\x02\u016A\u016B\x07#\x02\x02\u016B" + - "\u016C\x07?\x02\x02\u016C\u016D\x07?\x02\x02\u016D_\x03\x02\x02\x02\u016E" + - "\u016F\x07(\x02\x02\u016Fa\x03\x02\x02\x02\u0170\u0171\x07`\x02\x02\u0171" + - "c\x03\x02\x02\x02\u0172\u0173\x07~\x02\x02\u0173e\x03\x02\x02\x02\u0174" + - "\u0175\x07(\x02\x02\u0175\u0176\x07(\x02\x02\u0176g\x03\x02\x02\x02\u0177" + - "\u0178\x07~\x02\x02\u0178\u0179\x07~\x02\x02\u0179i\x03\x02\x02\x02\u017A" + - "\u017B\x07A\x02\x02\u017Bk\x03\x02\x02\x02\u017C\u017D\x07<\x02\x02\u017D" + - "m\x03\x02\x02\x02\u017E\u017F\x07A\x02\x02\u017F\u0180\x07<\x02\x02\u0180" + - "o\x03\x02\x02\x02\u0181\u0182\x07<\x02\x02\u0182\u0183\x07<\x02\x02\u0183" + - "q\x03\x02\x02\x02\u0184\u0185\x07/\x02\x02\u0185\u0186\x07@\x02\x02\u0186" + - "s\x03\x02\x02\x02\u0187\u0188\x07?\x02\x02\u0188\u0189\x07\x80\x02\x02" + - "\u0189u\x03\x02\x02\x02\u018A\u018B\x07?\x02\x02\u018B\u018C\x07?\x02" + - "\x02\u018C\u018D\x07\x80\x02\x02\u018Dw\x03\x02\x02\x02\u018E\u018F\x07" + - "-\x02\x02\u018F\u0190\x07-\x02\x02\u0190y\x03\x02\x02\x02\u0191\u0192" + - "\x07/\x02\x02\u0192\u0193\x07/\x02\x02\u0193{\x03\x02\x02\x02\u0194\u0195" + - "\x07?\x02\x02\u0195}\x03\x02\x02\x02\u0196\u0197\x07-\x02\x02\u0197\u0198" + - "\x07?\x02\x02\u0198\x7F\x03\x02\x02\x02\u0199\u019A\x07/\x02\x02\u019A" + - "\u019B\x07?\x02\x02\u019B\x81\x03\x02\x02\x02\u019C\u019D\x07,\x02\x02" + - "\u019D\u019E\x07?\x02\x02\u019E\x83\x03\x02\x02\x02\u019F\u01A0\x071\x02" + - "\x02\u01A0\u01A1\x07?\x02\x02\u01A1\x85\x03\x02\x02\x02\u01A2\u01A3\x07" + - "\'\x02\x02\u01A3\u01A4\x07?\x02\x02\u01A4\x87\x03\x02\x02\x02\u01A5\u01A6" + - "\x07(\x02\x02\u01A6\u01A7\x07?\x02\x02\u01A7\x89\x03\x02\x02\x02\u01A8" + - "\u01A9\x07`\x02\x02\u01A9\u01AA\x07?\x02\x02\u01AA\x8B\x03\x02\x02\x02" + - "\u01AB\u01AC\x07~\x02\x02\u01AC\u01AD\x07?\x02\x02\u01AD\x8D\x03\x02\x02" + - "\x02\u01AE\u01AF\x07>\x02\x02\u01AF\u01B0\x07>\x02\x02\u01B0\u01B1\x07" + - "?\x02\x02\u01B1\x8F\x03\x02\x02\x02\u01B2\u01B3\x07@\x02\x02\u01B3\u01B4" + - "\x07@\x02\x02\u01B4\u01B5\x07?\x02\x02\u01B5\x91\x03\x02\x02\x02\u01B6" + - "\u01B7\x07@\x02\x02\u01B7\u01B8\x07@\x02\x02\u01B8\u01B9\x07@\x02\x02" + - "\u01B9\u01BA\x07?\x02\x02\u01BA\x93\x03\x02\x02\x02\u01BB\u01BD\x072\x02" + - "\x02\u01BC\u01BE\t\x04\x02\x02\u01BD\u01BC\x03\x02\x02\x02\u01BE\u01BF" + - "\x03\x02\x02\x02\u01BF\u01BD\x03\x02\x02\x02\u01BF\u01C0\x03\x02\x02\x02" + - "\u01C0\u01C2\x03\x02\x02\x02\u01C1\u01C3\t\x05\x02\x02\u01C2\u01C1\x03" + - "\x02\x02\x02\u01C2\u01C3\x03\x02\x02\x02\u01C3\x95\x03\x02\x02\x02\u01C4" + - "\u01C5\x072\x02\x02\u01C5\u01C7\t\x06\x02\x02\u01C6\u01C8\t\x07\x02\x02" + - "\u01C7\u01C6\x03\x02\x02\x02\u01C8\u01C9\x03\x02\x02\x02\u01C9\u01C7\x03" + - "\x02\x02\x02\u01C9\u01CA\x03\x02\x02\x02\u01CA\u01CC\x03\x02\x02\x02\u01CB" + - "\u01CD\t\x05\x02\x02\u01CC\u01CB\x03\x02\x02\x02\u01CC\u01CD\x03\x02\x02" + - "\x02\u01CD\x97\x03\x02\x02\x02\u01CE\u01D7\x072\x02\x02\u01CF\u01D3\t" + - "\b\x02\x02\u01D0\u01D2\t\t\x02\x02\u01D1\u01D0\x03\x02\x02\x02\u01D2\u01D5" + - "\x03\x02\x02\x02\u01D3\u01D1\x03\x02\x02\x02\u01D3\u01D4\x03\x02\x02\x02" + - "\u01D4\u01D7\x03\x02\x02\x02\u01D5\u01D3\x03\x02\x02\x02\u01D6\u01CE\x03" + - "\x02\x02\x02\u01D6\u01CF\x03\x02\x02\x02\u01D7\u01D9\x03\x02\x02\x02\u01D8" + - "\u01DA\t\n\x02\x02\u01D9\u01D8\x03\x02\x02\x02\u01D9\u01DA\x03\x02\x02" + - "\x02\u01DA\x99\x03\x02\x02\x02\u01DB\u01E4\x072\x02\x02\u01DC\u01E0\t" + - "\b\x02\x02\u01DD\u01DF\t\t\x02\x02\u01DE\u01DD\x03\x02\x02\x02\u01DF\u01E2" + - "\x03\x02\x02\x02\u01E0\u01DE\x03\x02\x02\x02\u01E0\u01E1\x03\x02\x02\x02" + - "\u01E1\u01E4\x03\x02\x02\x02\u01E2\u01E0\x03\x02\x02\x02\u01E3\u01DB\x03" + - "\x02\x02\x02\u01E3\u01DC\x03\x02\x02\x02\u01E4\u01EB\x03\x02\x02\x02\u01E5" + - "\u01E7\x05\x16\v\x02\u01E6\u01E8\t\t\x02\x02\u01E7\u01E6\x03\x02\x02\x02" + - "\u01E8\u01E9\x03\x02\x02\x02\u01E9\u01E7\x03\x02\x02\x02\u01E9\u01EA\x03" + - "\x02\x02\x02\u01EA\u01EC\x03\x02\x02\x02\u01EB\u01E5\x03\x02\x02\x02\u01EB" + - "\u01EC\x03\x02\x02\x02\u01EC\u01F6\x03\x02\x02\x02\u01ED\u01EF\t\v\x02" + - "\x02\u01EE\u01F0\t\f\x02\x02\u01EF\u01EE\x03\x02\x02\x02\u01EF\u01F0\x03" + - "\x02\x02\x02\u01F0\u01F2\x03\x02\x02\x02\u01F1\u01F3\t\t\x02\x02\u01F2" + - "\u01F1\x03\x02\x02\x02\u01F3\u01F4\x03\x02\x02\x02\u01F4\u01F2\x03\x02" + - "\x02\x02\u01F4\u01F5\x03\x02\x02\x02\u01F5\u01F7\x03\x02\x02\x02\u01F6" + - "\u01ED\x03\x02\x02\x02\u01F6\u01F7\x03\x02\x02\x02\u01F7\u01F9\x03\x02" + - "\x02\x02\u01F8\u01FA\t\r\x02\x02\u01F9\u01F8\x03\x02\x02\x02\u01F9\u01FA" + - "\x03\x02\x02\x02\u01FA\x9B\x03\x02\x02\x02\u01FB\u0203\x07$\x02\x02\u01FC" + - "\u01FD\x07^\x02\x02\u01FD\u0202\x07$\x02\x02\u01FE\u01FF\x07^\x02\x02" + - "\u01FF\u0202\x07^\x02\x02\u0200\u0202\n\x0E\x02\x02\u0201\u01FC\x03\x02" + - "\x02\x02\u0201\u01FE\x03\x02\x02\x02\u0201\u0200\x03\x02\x02\x02\u0202" + - "\u0205\x03\x02\x02\x02\u0203\u0204\x03\x02\x02\x02\u0203\u0201\x03\x02" + - "\x02\x02\u0204\u0206\x03\x02\x02\x02\u0205\u0203\x03\x02\x02\x02\u0206" + - "\u0214\x07$\x02\x02\u0207\u020F\x07)\x02\x02\u0208\u0209\x07^\x02\x02" + - "\u0209\u020E\x07)\x02\x02\u020A\u020B\x07^\x02\x02\u020B\u020E\x07^\x02" + - "\x02\u020C\u020E\n\x0F\x02\x02\u020D\u0208"; - private static readonly _serializedATNSegment1: string = - "\x03\x02\x02\x02\u020D\u020A\x03\x02\x02\x02\u020D\u020C\x03\x02\x02\x02" + - "\u020E\u0211\x03\x02\x02\x02\u020F\u0210\x03\x02\x02\x02\u020F\u020D\x03" + - "\x02\x02\x02\u0210\u0212\x03\x02\x02\x02\u0211\u020F\x03\x02\x02\x02\u0212" + - "\u0214\x07)\x02\x02\u0213\u01FB\x03\x02\x02\x02\u0213\u0207\x03\x02\x02" + - "\x02\u0214\x9D\x03\x02\x02\x02\u0215\u0219\x071\x02\x02\u0216\u0217\x07" + - "^\x02\x02\u0217\u021A\n\x10\x02\x02\u0218\u021A\n\x11\x02\x02\u0219\u0216" + - "\x03\x02\x02\x02\u0219\u0218\x03\x02\x02\x02\u021A\u021B\x03\x02\x02\x02" + - "\u021B\u021C\x03\x02\x02\x02\u021B\u0219\x03\x02\x02\x02\u021C\u021D\x03" + - "\x02\x02\x02\u021D\u0221\x071\x02\x02\u021E\u0220\t\x12\x02\x02\u021F" + - "\u021E\x03\x02\x02\x02\u0220\u0223\x03\x02\x02\x02\u0221\u021F\x03\x02" + - "\x02\x02\u0221\u0222\x03\x02\x02\x02\u0222\u0224\x03\x02\x02\x02\u0223" + - "\u0221\x03\x02\x02\x02\u0224\u0225\x06O\x03\x02\u0225\x9F\x03\x02\x02" + - "\x02\u0226\u0227\x07v\x02\x02\u0227\u0228\x07t\x02\x02\u0228\u0229\x07" + - "w\x02\x02\u0229\u022A\x07g\x02\x02\u022A\xA1\x03\x02\x02\x02\u022B\u022C" + - "\x07h\x02\x02\u022C\u022D\x07c\x02\x02\u022D\u022E\x07n\x02\x02\u022E" + - "\u022F\x07u\x02\x02\u022F\u0230\x07g\x02\x02\u0230\xA3\x03\x02\x02\x02" + - "\u0231\u0232\x07p\x02\x02\u0232\u0233\x07w\x02\x02\u0233\u0234\x07n\x02" + - "\x02\u0234\u0235\x07n\x02\x02\u0235\xA5\x03\x02\x02\x02\u0236\u0237\x07" + - "d\x02\x02\u0237\u0238\x07q\x02\x02\u0238\u0239\x07q\x02\x02\u0239\u023A" + - "\x07n\x02\x02\u023A\u023B\x07g\x02\x02\u023B\u023C\x07c\x02\x02\u023C" + - "\u025D\x07p\x02\x02\u023D\u023E\x07d\x02\x02\u023E\u023F\x07{\x02\x02" + - "\u023F\u0240\x07v\x02\x02\u0240\u025D\x07g\x02\x02\u0241\u0242\x07u\x02" + - "\x02\u0242\u0243\x07j\x02\x02\u0243\u0244\x07q\x02\x02\u0244\u0245\x07" + - "t\x02\x02\u0245\u025D\x07v\x02\x02\u0246\u0247\x07e\x02\x02\u0247\u0248" + - "\x07j\x02\x02\u0248\u0249\x07c\x02\x02\u0249\u025D\x07t\x02\x02\u024A" + - "\u024B\x07k\x02\x02\u024B\u024C\x07p\x02\x02\u024C\u025D\x07v\x02\x02" + - "\u024D\u024E\x07n\x02\x02\u024E\u024F\x07q\x02\x02\u024F\u0250\x07p\x02" + - "\x02\u0250\u025D\x07i\x02\x02\u0251\u0252\x07h\x02\x02\u0252\u0253\x07" + - "n\x02\x02\u0253\u0254\x07q\x02\x02\u0254\u0255\x07c\x02\x02\u0255\u025D" + - "\x07v\x02\x02\u0256\u0257\x07f\x02\x02\u0257\u0258\x07q\x02\x02\u0258" + - "\u0259\x07w\x02\x02\u0259\u025A\x07d\x02\x02\u025A\u025B\x07n\x02\x02" + - "\u025B\u025D\x07g\x02\x02\u025C\u0236\x03\x02\x02\x02\u025C\u023D\x03" + - "\x02\x02\x02\u025C\u0241\x03\x02\x02\x02\u025C\u0246\x03\x02\x02\x02\u025C" + - "\u024A\x03\x02\x02\x02\u025C\u024D\x03\x02\x02\x02\u025C\u0251\x03\x02" + - "\x02\x02\u025C\u0256\x03\x02\x02\x02\u025D\xA7\x03\x02\x02\x02\u025E\u025F" + - "\x07f\x02\x02\u025F\u0260\x07g\x02\x02\u0260\u0261\x07h\x02\x02\u0261" + - "\xA9\x03\x02\x02\x02\u0262\u0266\t\x13\x02\x02\u0263\u0265\t\x14\x02\x02" + - "\u0264\u0263\x03\x02\x02\x02\u0265\u0268\x03\x02\x02\x02\u0266\u0264\x03" + - "\x02\x02\x02\u0266\u0267\x03\x02\x02\x02\u0267\xAB\x03\x02\x02\x02\u0268" + - "\u0266\x03\x02\x02\x02\u0269\u0272\x072\x02\x02\u026A\u026E\t\b\x02\x02" + - "\u026B\u026D\t\t\x02\x02\u026C\u026B\x03\x02\x02\x02\u026D\u0270\x03\x02" + - "\x02\x02\u026E\u026C\x03\x02\x02\x02\u026E\u026F\x03\x02\x02\x02\u026F" + - "\u0272\x03\x02\x02\x02\u0270\u026E\x03\x02\x02\x02\u0271\u0269\x03\x02" + - "\x02\x02\u0271\u026A\x03\x02\x02\x02\u0272\u0273\x03\x02\x02\x02\u0273" + - "\u0274\bV\x04\x02\u0274\xAD\x03\x02\x02\x02\u0275\u0279\t\x13\x02\x02" + - "\u0276\u0278\t\x14\x02\x02\u0277\u0276\x03\x02\x02\x02\u0278\u027B\x03" + - "\x02\x02\x02\u0279\u0277\x03\x02\x02\x02\u0279\u027A\x03\x02\x02\x02\u027A" + - "\u027C\x03\x02\x02\x02\u027B\u0279\x03\x02\x02\x02\u027C\u027D\bW\x04" + - "\x02\u027D\xAF\x03\x02\x02\x02$\x02\x03\xB3\xBD\xC7\xCC\u01BF\u01C2\u01C9" + - "\u01CC\u01D3\u01D6\u01D9\u01E0\u01E3\u01E9\u01EB\u01EF\u01F4\u01F6\u01F9" + - "\u0201\u0203\u020D\u020F\u0213\u0219\u021B\u0221\u025C\u0266\u026E\u0271" + - "\u0279\x05\b\x02\x02\x04\x03\x02\x04\x02\x02"; - public static readonly _serializedATN: string = Utils.join( - [ - painless_lexer._serializedATNSegment0, - painless_lexer._serializedATNSegment1, - ], - "", - ); - public static __ATN: ATN; + public static readonly _serializedATN: number[] = [4,0,86,636,6,-1,6,-1, + 2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8, + 2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16, + 7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7, + 23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30, + 2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2, + 38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45, + 7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7, + 52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59, + 2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2, + 67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74, + 7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7, + 81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,1,0,4,0,176,8,0,11,0,12,0,177, + 1,0,1,0,1,1,1,1,1,1,1,1,5,1,186,8,1,10,1,12,1,189,9,1,1,1,1,1,1,1,1,1,1, + 1,5,1,196,8,1,10,1,12,1,199,9,1,1,1,1,1,3,1,203,8,1,1,1,1,1,1,2,1,2,1,3, + 1,3,1,4,1,4,1,5,1,5,1,6,1,6,1,7,1,7,1,8,1,8,1,9,1,9,1,9,1,9,1,10,1,10,1, + 10,1,10,1,10,1,11,1,11,1,12,1,12,1,13,1,13,1,13,1,14,1,14,1,14,1,15,1,15, + 1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,18,1,18,1, + 18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20, + 1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,23,1, + 23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,1,25,1,25, + 1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1, + 27,1,27,1,28,1,28,1,29,1,29,1,30,1,30,1,31,1,31,1,31,1,32,1,32,1,33,1,33, + 1,34,1,34,1,35,1,35,1,35,1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,38,1,38,1, + 39,1,39,1,39,1,40,1,40,1,41,1,41,1,41,1,42,1,42,1,42,1,43,1,43,1,43,1,43, + 1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,46,1,46,1,47,1,47,1,48,1,48,1,49,1, + 49,1,49,1,50,1,50,1,50,1,51,1,51,1,52,1,52,1,53,1,53,1,53,1,54,1,54,1,54, + 1,55,1,55,1,55,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,58,1,58,1,58,1,59,1, + 59,1,59,1,60,1,60,1,61,1,61,1,61,1,62,1,62,1,62,1,63,1,63,1,63,1,64,1,64, + 1,64,1,65,1,65,1,65,1,66,1,66,1,66,1,67,1,67,1,67,1,68,1,68,1,68,1,69,1, + 69,1,69,1,69,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71,1,71,1,72,1,72,4,72, + 444,8,72,11,72,12,72,445,1,72,3,72,449,8,72,1,73,1,73,1,73,4,73,454,8,73, + 11,73,12,73,455,1,73,3,73,459,8,73,1,74,1,74,1,74,5,74,464,8,74,10,74,12, + 74,467,9,74,3,74,469,8,74,1,74,3,74,472,8,74,1,75,1,75,1,75,5,75,477,8, + 75,10,75,12,75,480,9,75,3,75,482,8,75,1,75,1,75,4,75,486,8,75,11,75,12, + 75,487,3,75,490,8,75,1,75,1,75,3,75,494,8,75,1,75,4,75,497,8,75,11,75,12, + 75,498,3,75,501,8,75,1,75,3,75,504,8,75,1,76,1,76,1,76,1,76,1,76,1,76,5, + 76,512,8,76,10,76,12,76,515,9,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,5,76, + 524,8,76,10,76,12,76,527,9,76,1,76,3,76,530,8,76,1,77,1,77,1,77,1,77,4, + 77,536,8,77,11,77,12,77,537,1,77,1,77,5,77,542,8,77,10,77,12,77,545,9,77, + 1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,79,1,79,1,79,1,80,1, + 80,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81, + 1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1, + 81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,3,81,603, + 8,81,1,82,1,82,1,82,1,82,1,83,1,83,5,83,611,8,83,10,83,12,83,614,9,83,1, + 84,1,84,1,84,5,84,619,8,84,10,84,12,84,622,9,84,3,84,624,8,84,1,84,1,84, + 1,85,1,85,5,85,630,8,85,10,85,12,85,633,9,85,1,85,1,85,5,187,197,513,525, + 537,0,86,2,1,4,2,6,3,8,4,10,5,12,6,14,7,16,8,18,9,20,10,22,11,24,12,26, + 13,28,14,30,15,32,16,34,17,36,18,38,19,40,20,42,21,44,22,46,23,48,24,50, + 25,52,26,54,27,56,28,58,29,60,30,62,31,64,32,66,33,68,34,70,35,72,36,74, + 37,76,38,78,39,80,40,82,41,84,42,86,43,88,44,90,45,92,46,94,47,96,48,98, + 49,100,50,102,51,104,52,106,53,108,54,110,55,112,56,114,57,116,58,118,59, + 120,60,122,61,124,62,126,63,128,64,130,65,132,66,134,67,136,68,138,69,140, + 70,142,71,144,72,146,73,148,74,150,75,152,76,154,77,156,78,158,79,160,80, + 162,81,164,82,166,83,168,84,170,85,172,86,2,0,1,19,3,0,9,10,13,13,32,32, + 2,0,10,10,13,13,1,0,48,55,2,0,76,76,108,108,2,0,88,88,120,120,3,0,48,57, + 65,70,97,102,1,0,49,57,1,0,48,57,6,0,68,68,70,70,76,76,100,100,102,102, + 108,108,2,0,69,69,101,101,2,0,43,43,45,45,4,0,68,68,70,70,100,100,102,102, + 2,0,34,34,92,92,2,0,39,39,92,92,1,0,10,10,2,0,10,10,47,47,7,0,85,85,99, + 99,105,105,108,109,115,115,117,117,120,120,3,0,65,90,95,95,97,122,4,0,48, + 57,65,90,95,95,97,122,674,0,2,1,0,0,0,0,4,1,0,0,0,0,6,1,0,0,0,0,8,1,0,0, + 0,0,10,1,0,0,0,0,12,1,0,0,0,0,14,1,0,0,0,0,16,1,0,0,0,0,18,1,0,0,0,0,20, + 1,0,0,0,0,22,1,0,0,0,0,24,1,0,0,0,0,26,1,0,0,0,0,28,1,0,0,0,0,30,1,0,0, + 0,0,32,1,0,0,0,0,34,1,0,0,0,0,36,1,0,0,0,0,38,1,0,0,0,0,40,1,0,0,0,0,42, + 1,0,0,0,0,44,1,0,0,0,0,46,1,0,0,0,0,48,1,0,0,0,0,50,1,0,0,0,0,52,1,0,0, + 0,0,54,1,0,0,0,0,56,1,0,0,0,0,58,1,0,0,0,0,60,1,0,0,0,0,62,1,0,0,0,0,64, + 1,0,0,0,0,66,1,0,0,0,0,68,1,0,0,0,0,70,1,0,0,0,0,72,1,0,0,0,0,74,1,0,0, + 0,0,76,1,0,0,0,0,78,1,0,0,0,0,80,1,0,0,0,0,82,1,0,0,0,0,84,1,0,0,0,0,86, + 1,0,0,0,0,88,1,0,0,0,0,90,1,0,0,0,0,92,1,0,0,0,0,94,1,0,0,0,0,96,1,0,0, + 0,0,98,1,0,0,0,0,100,1,0,0,0,0,102,1,0,0,0,0,104,1,0,0,0,0,106,1,0,0,0, + 0,108,1,0,0,0,0,110,1,0,0,0,0,112,1,0,0,0,0,114,1,0,0,0,0,116,1,0,0,0,0, + 118,1,0,0,0,0,120,1,0,0,0,0,122,1,0,0,0,0,124,1,0,0,0,0,126,1,0,0,0,0,128, + 1,0,0,0,0,130,1,0,0,0,0,132,1,0,0,0,0,134,1,0,0,0,0,136,1,0,0,0,0,138,1, + 0,0,0,0,140,1,0,0,0,0,142,1,0,0,0,0,144,1,0,0,0,0,146,1,0,0,0,0,148,1,0, + 0,0,0,150,1,0,0,0,0,152,1,0,0,0,0,154,1,0,0,0,0,156,1,0,0,0,0,158,1,0,0, + 0,0,160,1,0,0,0,0,162,1,0,0,0,0,164,1,0,0,0,0,166,1,0,0,0,0,168,1,0,0,0, + 1,170,1,0,0,0,1,172,1,0,0,0,2,175,1,0,0,0,4,202,1,0,0,0,6,206,1,0,0,0,8, + 208,1,0,0,0,10,210,1,0,0,0,12,212,1,0,0,0,14,214,1,0,0,0,16,216,1,0,0,0, + 18,218,1,0,0,0,20,220,1,0,0,0,22,224,1,0,0,0,24,229,1,0,0,0,26,231,1,0, + 0,0,28,233,1,0,0,0,30,236,1,0,0,0,32,239,1,0,0,0,34,244,1,0,0,0,36,250, + 1,0,0,0,38,253,1,0,0,0,40,257,1,0,0,0,42,266,1,0,0,0,44,272,1,0,0,0,46, + 279,1,0,0,0,48,283,1,0,0,0,50,287,1,0,0,0,52,293,1,0,0,0,54,299,1,0,0,0, + 56,304,1,0,0,0,58,315,1,0,0,0,60,317,1,0,0,0,62,319,1,0,0,0,64,321,1,0, + 0,0,66,324,1,0,0,0,68,326,1,0,0,0,70,328,1,0,0,0,72,330,1,0,0,0,74,333, + 1,0,0,0,76,336,1,0,0,0,78,340,1,0,0,0,80,342,1,0,0,0,82,345,1,0,0,0,84, + 347,1,0,0,0,86,350,1,0,0,0,88,353,1,0,0,0,90,357,1,0,0,0,92,360,1,0,0,0, + 94,364,1,0,0,0,96,366,1,0,0,0,98,368,1,0,0,0,100,370,1,0,0,0,102,373,1, + 0,0,0,104,376,1,0,0,0,106,378,1,0,0,0,108,380,1,0,0,0,110,383,1,0,0,0,112, + 386,1,0,0,0,114,389,1,0,0,0,116,392,1,0,0,0,118,396,1,0,0,0,120,399,1,0, + 0,0,122,402,1,0,0,0,124,404,1,0,0,0,126,407,1,0,0,0,128,410,1,0,0,0,130, + 413,1,0,0,0,132,416,1,0,0,0,134,419,1,0,0,0,136,422,1,0,0,0,138,425,1,0, + 0,0,140,428,1,0,0,0,142,432,1,0,0,0,144,436,1,0,0,0,146,441,1,0,0,0,148, + 450,1,0,0,0,150,468,1,0,0,0,152,481,1,0,0,0,154,529,1,0,0,0,156,531,1,0, + 0,0,158,548,1,0,0,0,160,553,1,0,0,0,162,559,1,0,0,0,164,602,1,0,0,0,166, + 604,1,0,0,0,168,608,1,0,0,0,170,623,1,0,0,0,172,627,1,0,0,0,174,176,7,0, + 0,0,175,174,1,0,0,0,176,177,1,0,0,0,177,175,1,0,0,0,177,178,1,0,0,0,178, + 179,1,0,0,0,179,180,6,0,0,0,180,3,1,0,0,0,181,182,5,47,0,0,182,183,5,47, + 0,0,183,187,1,0,0,0,184,186,9,0,0,0,185,184,1,0,0,0,186,189,1,0,0,0,187, + 188,1,0,0,0,187,185,1,0,0,0,188,190,1,0,0,0,189,187,1,0,0,0,190,203,7,1, + 0,0,191,192,5,47,0,0,192,193,5,42,0,0,193,197,1,0,0,0,194,196,9,0,0,0,195, + 194,1,0,0,0,196,199,1,0,0,0,197,198,1,0,0,0,197,195,1,0,0,0,198,200,1,0, + 0,0,199,197,1,0,0,0,200,201,5,42,0,0,201,203,5,47,0,0,202,181,1,0,0,0,202, + 191,1,0,0,0,203,204,1,0,0,0,204,205,6,1,0,0,205,5,1,0,0,0,206,207,5,123, + 0,0,207,7,1,0,0,0,208,209,5,125,0,0,209,9,1,0,0,0,210,211,5,91,0,0,211, + 11,1,0,0,0,212,213,5,93,0,0,213,13,1,0,0,0,214,215,5,40,0,0,215,15,1,0, + 0,0,216,217,5,41,0,0,217,17,1,0,0,0,218,219,5,36,0,0,219,19,1,0,0,0,220, + 221,5,46,0,0,221,222,1,0,0,0,222,223,6,9,1,0,223,21,1,0,0,0,224,225,5,63, + 0,0,225,226,5,46,0,0,226,227,1,0,0,0,227,228,6,10,1,0,228,23,1,0,0,0,229, + 230,5,44,0,0,230,25,1,0,0,0,231,232,5,59,0,0,232,27,1,0,0,0,233,234,5,105, + 0,0,234,235,5,102,0,0,235,29,1,0,0,0,236,237,5,105,0,0,237,238,5,110,0, + 0,238,31,1,0,0,0,239,240,5,101,0,0,240,241,5,108,0,0,241,242,5,115,0,0, + 242,243,5,101,0,0,243,33,1,0,0,0,244,245,5,119,0,0,245,246,5,104,0,0,246, + 247,5,105,0,0,247,248,5,108,0,0,248,249,5,101,0,0,249,35,1,0,0,0,250,251, + 5,100,0,0,251,252,5,111,0,0,252,37,1,0,0,0,253,254,5,102,0,0,254,255,5, + 111,0,0,255,256,5,114,0,0,256,39,1,0,0,0,257,258,5,99,0,0,258,259,5,111, + 0,0,259,260,5,110,0,0,260,261,5,116,0,0,261,262,5,105,0,0,262,263,5,110, + 0,0,263,264,5,117,0,0,264,265,5,101,0,0,265,41,1,0,0,0,266,267,5,98,0,0, + 267,268,5,114,0,0,268,269,5,101,0,0,269,270,5,97,0,0,270,271,5,107,0,0, + 271,43,1,0,0,0,272,273,5,114,0,0,273,274,5,101,0,0,274,275,5,116,0,0,275, + 276,5,117,0,0,276,277,5,114,0,0,277,278,5,110,0,0,278,45,1,0,0,0,279,280, + 5,110,0,0,280,281,5,101,0,0,281,282,5,119,0,0,282,47,1,0,0,0,283,284,5, + 116,0,0,284,285,5,114,0,0,285,286,5,121,0,0,286,49,1,0,0,0,287,288,5,99, + 0,0,288,289,5,97,0,0,289,290,5,116,0,0,290,291,5,99,0,0,291,292,5,104,0, + 0,292,51,1,0,0,0,293,294,5,116,0,0,294,295,5,104,0,0,295,296,5,114,0,0, + 296,297,5,111,0,0,297,298,5,119,0,0,298,53,1,0,0,0,299,300,5,116,0,0,300, + 301,5,104,0,0,301,302,5,105,0,0,302,303,5,115,0,0,303,55,1,0,0,0,304,305, + 5,105,0,0,305,306,5,110,0,0,306,307,5,115,0,0,307,308,5,116,0,0,308,309, + 5,97,0,0,309,310,5,110,0,0,310,311,5,99,0,0,311,312,5,101,0,0,312,313,5, + 111,0,0,313,314,5,102,0,0,314,57,1,0,0,0,315,316,5,33,0,0,316,59,1,0,0, + 0,317,318,5,126,0,0,318,61,1,0,0,0,319,320,5,42,0,0,320,63,1,0,0,0,321, + 322,5,47,0,0,322,323,4,31,0,0,323,65,1,0,0,0,324,325,5,37,0,0,325,67,1, + 0,0,0,326,327,5,43,0,0,327,69,1,0,0,0,328,329,5,45,0,0,329,71,1,0,0,0,330, + 331,5,60,0,0,331,332,5,60,0,0,332,73,1,0,0,0,333,334,5,62,0,0,334,335,5, + 62,0,0,335,75,1,0,0,0,336,337,5,62,0,0,337,338,5,62,0,0,338,339,5,62,0, + 0,339,77,1,0,0,0,340,341,5,60,0,0,341,79,1,0,0,0,342,343,5,60,0,0,343,344, + 5,61,0,0,344,81,1,0,0,0,345,346,5,62,0,0,346,83,1,0,0,0,347,348,5,62,0, + 0,348,349,5,61,0,0,349,85,1,0,0,0,350,351,5,61,0,0,351,352,5,61,0,0,352, + 87,1,0,0,0,353,354,5,61,0,0,354,355,5,61,0,0,355,356,5,61,0,0,356,89,1, + 0,0,0,357,358,5,33,0,0,358,359,5,61,0,0,359,91,1,0,0,0,360,361,5,33,0,0, + 361,362,5,61,0,0,362,363,5,61,0,0,363,93,1,0,0,0,364,365,5,38,0,0,365,95, + 1,0,0,0,366,367,5,94,0,0,367,97,1,0,0,0,368,369,5,124,0,0,369,99,1,0,0, + 0,370,371,5,38,0,0,371,372,5,38,0,0,372,101,1,0,0,0,373,374,5,124,0,0,374, + 375,5,124,0,0,375,103,1,0,0,0,376,377,5,63,0,0,377,105,1,0,0,0,378,379, + 5,58,0,0,379,107,1,0,0,0,380,381,5,63,0,0,381,382,5,58,0,0,382,109,1,0, + 0,0,383,384,5,58,0,0,384,385,5,58,0,0,385,111,1,0,0,0,386,387,5,45,0,0, + 387,388,5,62,0,0,388,113,1,0,0,0,389,390,5,61,0,0,390,391,5,126,0,0,391, + 115,1,0,0,0,392,393,5,61,0,0,393,394,5,61,0,0,394,395,5,126,0,0,395,117, + 1,0,0,0,396,397,5,43,0,0,397,398,5,43,0,0,398,119,1,0,0,0,399,400,5,45, + 0,0,400,401,5,45,0,0,401,121,1,0,0,0,402,403,5,61,0,0,403,123,1,0,0,0,404, + 405,5,43,0,0,405,406,5,61,0,0,406,125,1,0,0,0,407,408,5,45,0,0,408,409, + 5,61,0,0,409,127,1,0,0,0,410,411,5,42,0,0,411,412,5,61,0,0,412,129,1,0, + 0,0,413,414,5,47,0,0,414,415,5,61,0,0,415,131,1,0,0,0,416,417,5,37,0,0, + 417,418,5,61,0,0,418,133,1,0,0,0,419,420,5,38,0,0,420,421,5,61,0,0,421, + 135,1,0,0,0,422,423,5,94,0,0,423,424,5,61,0,0,424,137,1,0,0,0,425,426,5, + 124,0,0,426,427,5,61,0,0,427,139,1,0,0,0,428,429,5,60,0,0,429,430,5,60, + 0,0,430,431,5,61,0,0,431,141,1,0,0,0,432,433,5,62,0,0,433,434,5,62,0,0, + 434,435,5,61,0,0,435,143,1,0,0,0,436,437,5,62,0,0,437,438,5,62,0,0,438, + 439,5,62,0,0,439,440,5,61,0,0,440,145,1,0,0,0,441,443,5,48,0,0,442,444, + 7,2,0,0,443,442,1,0,0,0,444,445,1,0,0,0,445,443,1,0,0,0,445,446,1,0,0,0, + 446,448,1,0,0,0,447,449,7,3,0,0,448,447,1,0,0,0,448,449,1,0,0,0,449,147, + 1,0,0,0,450,451,5,48,0,0,451,453,7,4,0,0,452,454,7,5,0,0,453,452,1,0,0, + 0,454,455,1,0,0,0,455,453,1,0,0,0,455,456,1,0,0,0,456,458,1,0,0,0,457,459, + 7,3,0,0,458,457,1,0,0,0,458,459,1,0,0,0,459,149,1,0,0,0,460,469,5,48,0, + 0,461,465,7,6,0,0,462,464,7,7,0,0,463,462,1,0,0,0,464,467,1,0,0,0,465,463, + 1,0,0,0,465,466,1,0,0,0,466,469,1,0,0,0,467,465,1,0,0,0,468,460,1,0,0,0, + 468,461,1,0,0,0,469,471,1,0,0,0,470,472,7,8,0,0,471,470,1,0,0,0,471,472, + 1,0,0,0,472,151,1,0,0,0,473,482,5,48,0,0,474,478,7,6,0,0,475,477,7,7,0, + 0,476,475,1,0,0,0,477,480,1,0,0,0,478,476,1,0,0,0,478,479,1,0,0,0,479,482, + 1,0,0,0,480,478,1,0,0,0,481,473,1,0,0,0,481,474,1,0,0,0,482,489,1,0,0,0, + 483,485,3,20,9,0,484,486,7,7,0,0,485,484,1,0,0,0,486,487,1,0,0,0,487,485, + 1,0,0,0,487,488,1,0,0,0,488,490,1,0,0,0,489,483,1,0,0,0,489,490,1,0,0,0, + 490,500,1,0,0,0,491,493,7,9,0,0,492,494,7,10,0,0,493,492,1,0,0,0,493,494, + 1,0,0,0,494,496,1,0,0,0,495,497,7,7,0,0,496,495,1,0,0,0,497,498,1,0,0,0, + 498,496,1,0,0,0,498,499,1,0,0,0,499,501,1,0,0,0,500,491,1,0,0,0,500,501, + 1,0,0,0,501,503,1,0,0,0,502,504,7,11,0,0,503,502,1,0,0,0,503,504,1,0,0, + 0,504,153,1,0,0,0,505,513,5,34,0,0,506,507,5,92,0,0,507,512,5,34,0,0,508, + 509,5,92,0,0,509,512,5,92,0,0,510,512,8,12,0,0,511,506,1,0,0,0,511,508, + 1,0,0,0,511,510,1,0,0,0,512,515,1,0,0,0,513,514,1,0,0,0,513,511,1,0,0,0, + 514,516,1,0,0,0,515,513,1,0,0,0,516,530,5,34,0,0,517,525,5,39,0,0,518,519, + 5,92,0,0,519,524,5,39,0,0,520,521,5,92,0,0,521,524,5,92,0,0,522,524,8,13, + 0,0,523,518,1,0,0,0,523,520,1,0,0,0,523,522,1,0,0,0,524,527,1,0,0,0,525, + 526,1,0,0,0,525,523,1,0,0,0,526,528,1,0,0,0,527,525,1,0,0,0,528,530,5,39, + 0,0,529,505,1,0,0,0,529,517,1,0,0,0,530,155,1,0,0,0,531,535,5,47,0,0,532, + 533,5,92,0,0,533,536,8,14,0,0,534,536,8,15,0,0,535,532,1,0,0,0,535,534, + 1,0,0,0,536,537,1,0,0,0,537,538,1,0,0,0,537,535,1,0,0,0,538,539,1,0,0,0, + 539,543,5,47,0,0,540,542,7,16,0,0,541,540,1,0,0,0,542,545,1,0,0,0,543,541, + 1,0,0,0,543,544,1,0,0,0,544,546,1,0,0,0,545,543,1,0,0,0,546,547,4,77,1, + 0,547,157,1,0,0,0,548,549,5,116,0,0,549,550,5,114,0,0,550,551,5,117,0,0, + 551,552,5,101,0,0,552,159,1,0,0,0,553,554,5,102,0,0,554,555,5,97,0,0,555, + 556,5,108,0,0,556,557,5,115,0,0,557,558,5,101,0,0,558,161,1,0,0,0,559,560, + 5,110,0,0,560,561,5,117,0,0,561,562,5,108,0,0,562,563,5,108,0,0,563,163, + 1,0,0,0,564,565,5,98,0,0,565,566,5,111,0,0,566,567,5,111,0,0,567,568,5, + 108,0,0,568,569,5,101,0,0,569,570,5,97,0,0,570,603,5,110,0,0,571,572,5, + 98,0,0,572,573,5,121,0,0,573,574,5,116,0,0,574,603,5,101,0,0,575,576,5, + 115,0,0,576,577,5,104,0,0,577,578,5,111,0,0,578,579,5,114,0,0,579,603,5, + 116,0,0,580,581,5,99,0,0,581,582,5,104,0,0,582,583,5,97,0,0,583,603,5,114, + 0,0,584,585,5,105,0,0,585,586,5,110,0,0,586,603,5,116,0,0,587,588,5,108, + 0,0,588,589,5,111,0,0,589,590,5,110,0,0,590,603,5,103,0,0,591,592,5,102, + 0,0,592,593,5,108,0,0,593,594,5,111,0,0,594,595,5,97,0,0,595,603,5,116, + 0,0,596,597,5,100,0,0,597,598,5,111,0,0,598,599,5,117,0,0,599,600,5,98, + 0,0,600,601,5,108,0,0,601,603,5,101,0,0,602,564,1,0,0,0,602,571,1,0,0,0, + 602,575,1,0,0,0,602,580,1,0,0,0,602,584,1,0,0,0,602,587,1,0,0,0,602,591, + 1,0,0,0,602,596,1,0,0,0,603,165,1,0,0,0,604,605,5,100,0,0,605,606,5,101, + 0,0,606,607,5,102,0,0,607,167,1,0,0,0,608,612,7,17,0,0,609,611,7,18,0,0, + 610,609,1,0,0,0,611,614,1,0,0,0,612,610,1,0,0,0,612,613,1,0,0,0,613,169, + 1,0,0,0,614,612,1,0,0,0,615,624,5,48,0,0,616,620,7,6,0,0,617,619,7,7,0, + 0,618,617,1,0,0,0,619,622,1,0,0,0,620,618,1,0,0,0,620,621,1,0,0,0,621,624, + 1,0,0,0,622,620,1,0,0,0,623,615,1,0,0,0,623,616,1,0,0,0,624,625,1,0,0,0, + 625,626,6,84,2,0,626,171,1,0,0,0,627,631,7,17,0,0,628,630,7,18,0,0,629, + 628,1,0,0,0,630,633,1,0,0,0,631,629,1,0,0,0,631,632,1,0,0,0,632,634,1,0, + 0,0,633,631,1,0,0,0,634,635,6,85,2,0,635,173,1,0,0,0,34,0,1,177,187,197, + 202,445,448,455,458,465,468,471,478,481,487,489,493,498,500,503,511,513, + 523,525,529,535,537,543,602,612,620,623,631,3,6,0,0,2,1,0,2,0,0]; + + private static __ATN: ATN; public static get _ATN(): ATN { if (!painless_lexer.__ATN) { - painless_lexer.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(painless_lexer._serializedATN)); + painless_lexer.__ATN = new ATNDeserializer().deserialize(painless_lexer._serializedATN); } return painless_lexer.__ATN; } -} + static DecisionsToDFA = painless_lexer._ATN.decisionToState.map( (ds: DecisionState, index: number) => new DFA(ds, index) ); +} \ No newline at end of file diff --git a/packages/kbn-monaco/src/painless/antlr/painless_parser.interp b/packages/kbn-monaco/src/painless/antlr/painless_parser.interp index de912e1ced298..01580e51d0640 100644 --- a/packages/kbn-monaco/src/painless/antlr/painless_parser.interp +++ b/packages/kbn-monaco/src/painless/antlr/painless_parser.interp @@ -219,4 +219,4 @@ funcref atn: -[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 3, 88, 574, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 3, 2, 7, 2, 82, 10, 2, 12, 2, 14, 2, 85, 11, 2, 3, 2, 7, 2, 88, 10, 2, 12, 2, 14, 2, 91, 11, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 7, 4, 107, 10, 4, 12, 4, 14, 4, 110, 11, 4, 5, 4, 112, 10, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 120, 10, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 5, 6, 130, 10, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 5, 6, 138, 10, 6, 3, 6, 3, 6, 3, 6, 5, 6, 143, 10, 6, 3, 6, 3, 6, 5, 6, 147, 10, 6, 3, 6, 3, 6, 5, 6, 151, 10, 6, 3, 6, 3, 6, 3, 6, 5, 6, 156, 10, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 6, 6, 178, 10, 6, 13, 6, 14, 6, 179, 5, 6, 182, 10, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 196, 10, 7, 3, 7, 3, 7, 3, 7, 5, 7, 201, 10, 7, 3, 8, 3, 8, 5, 8, 205, 10, 8, 3, 9, 3, 9, 7, 9, 209, 10, 9, 12, 9, 14, 9, 212, 11, 9, 3, 9, 5, 9, 215, 10, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 11, 3, 11, 5, 11, 223, 10, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 7, 13, 231, 10, 13, 12, 13, 14, 13, 234, 11, 13, 3, 14, 3, 14, 3, 14, 7, 14, 239, 10, 14, 12, 14, 14, 14, 242, 11, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 7, 15, 249, 10, 15, 12, 15, 14, 15, 252, 11, 15, 5, 15, 254, 10, 15, 3, 16, 3, 16, 3, 16, 5, 16, 259, 10, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 7, 18, 310, 10, 18, 12, 18, 14, 18, 313, 11, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 5, 19, 326, 10, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 5, 20, 333, 10, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 5, 21, 342, 10, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 5, 22, 354, 10, 22, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 6, 24, 361, 10, 24, 13, 24, 14, 24, 362, 3, 24, 3, 24, 3, 24, 6, 24, 368, 10, 24, 13, 24, 14, 24, 369, 3, 24, 3, 24, 3, 24, 7, 24, 375, 10, 24, 12, 24, 14, 24, 378, 11, 24, 3, 24, 3, 24, 7, 24, 382, 10, 24, 12, 24, 14, 24, 385, 11, 24, 5, 24, 387, 10, 24, 3, 25, 3, 25, 7, 25, 391, 10, 25, 12, 25, 14, 25, 394, 11, 25, 3, 25, 5, 25, 397, 10, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 418, 10, 26, 3, 27, 3, 27, 3, 27, 5, 27, 423, 10, 27, 3, 28, 3, 28, 5, 28, 427, 10, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 6, 32, 446, 10, 32, 13, 32, 14, 32, 447, 3, 32, 3, 32, 7, 32, 452, 10, 32, 12, 32, 14, 32, 455, 11, 32, 5, 32, 457, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 7, 32, 467, 10, 32, 12, 32, 14, 32, 470, 11, 32, 5, 32, 472, 10, 32, 3, 32, 3, 32, 7, 32, 476, 10, 32, 12, 32, 14, 32, 479, 11, 32, 5, 32, 481, 10, 32, 3, 33, 3, 33, 3, 33, 3, 33, 7, 33, 487, 10, 33, 12, 33, 14, 33, 490, 11, 33, 3, 33, 3, 33, 3, 33, 3, 33, 5, 33, 496, 10, 33, 3, 34, 3, 34, 3, 34, 3, 34, 7, 34, 502, 10, 34, 12, 34, 14, 34, 505, 11, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 5, 34, 512, 10, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 7, 36, 522, 10, 36, 12, 36, 14, 36, 525, 11, 36, 5, 36, 527, 10, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 5, 37, 534, 10, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 7, 38, 541, 10, 38, 12, 38, 14, 38, 544, 11, 38, 5, 38, 546, 10, 38, 3, 38, 5, 38, 549, 10, 38, 3, 38, 3, 38, 3, 38, 5, 38, 554, 10, 38, 3, 39, 5, 39, 557, 10, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 5, 40, 572, 10, 40, 3, 40, 2, 2, 3, 34, 41, 2, 2, 4, 2, 6, 2, 8, 2, 10, 2, 12, 2, 14, 2, 16, 2, 18, 2, 20, 2, 22, 2, 24, 2, 26, 2, 28, 2, 30, 2, 32, 2, 34, 2, 36, 2, 38, 2, 40, 2, 42, 2, 44, 2, 46, 2, 48, 2, 50, 2, 52, 2, 54, 2, 56, 2, 58, 2, 60, 2, 62, 2, 64, 2, 66, 2, 68, 2, 70, 2, 72, 2, 74, 2, 76, 2, 78, 2, 2, 17, 3, 3, 15, 15, 3, 2, 33, 35, 3, 2, 36, 37, 3, 2, 59, 60, 3, 2, 38, 40, 3, 2, 41, 44, 3, 2, 45, 48, 3, 2, 63, 74, 3, 2, 61, 62, 3, 2, 31, 32, 3, 2, 84, 85, 3, 2, 75, 78, 4, 2, 11, 11, 86, 86, 3, 2, 12, 13, 3, 2, 87, 88, 2, 633, 2, 83, 3, 2, 2, 2, 4, 94, 3, 2, 2, 2, 6, 99, 3, 2, 2, 2, 8, 119, 3, 2, 2, 2, 10, 181, 3, 2, 2, 2, 12, 200, 3, 2, 2, 2, 14, 204, 3, 2, 2, 2, 16, 206, 3, 2, 2, 2, 18, 218, 3, 2, 2, 2, 20, 222, 3, 2, 2, 2, 22, 224, 3, 2, 2, 2, 24, 226, 3, 2, 2, 2, 26, 235, 3, 2, 2, 2, 28, 253, 3, 2, 2, 2, 30, 255, 3, 2, 2, 2, 32, 260, 3, 2, 2, 2, 34, 267, 3, 2, 2, 2, 36, 325, 3, 2, 2, 2, 38, 332, 3, 2, 2, 2, 40, 341, 3, 2, 2, 2, 42, 353, 3, 2, 2, 2, 44, 355, 3, 2, 2, 2, 46, 386, 3, 2, 2, 2, 48, 396, 3, 2, 2, 2, 50, 417, 3, 2, 2, 2, 52, 422, 3, 2, 2, 2, 54, 426, 3, 2, 2, 2, 56, 428, 3, 2, 2, 2, 58, 432, 3, 2, 2, 2, 60, 435, 3, 2, 2, 2, 62, 480, 3, 2, 2, 2, 64, 495, 3, 2, 2, 2, 66, 511, 3, 2, 2, 2, 68, 513, 3, 2, 2, 2, 70, 517, 3, 2, 2, 2, 72, 533, 3, 2, 2, 2, 74, 548, 3, 2, 2, 2, 76, 556, 3, 2, 2, 2, 78, 571, 3, 2, 2, 2, 80, 82, 5, 4, 3, 2, 81, 80, 3, 2, 2, 2, 82, 85, 3, 2, 2, 2, 83, 81, 3, 2, 2, 2, 83, 84, 3, 2, 2, 2, 84, 89, 3, 2, 2, 2, 85, 83, 3, 2, 2, 2, 86, 88, 5, 8, 5, 2, 87, 86, 3, 2, 2, 2, 88, 91, 3, 2, 2, 2, 89, 87, 3, 2, 2, 2, 89, 90, 3, 2, 2, 2, 90, 92, 3, 2, 2, 2, 91, 89, 3, 2, 2, 2, 92, 93, 7, 2, 2, 3, 93, 3, 3, 2, 2, 2, 94, 95, 5, 26, 14, 2, 95, 96, 7, 86, 2, 2, 96, 97, 5, 6, 4, 2, 97, 98, 5, 16, 9, 2, 98, 5, 3, 2, 2, 2, 99, 111, 7, 9, 2, 2, 100, 101, 5, 26, 14, 2, 101, 108, 7, 86, 2, 2, 102, 103, 7, 14, 2, 2, 103, 104, 5, 26, 14, 2, 104, 105, 7, 86, 2, 2, 105, 107, 3, 2, 2, 2, 106, 102, 3, 2, 2, 2, 107, 110, 3, 2, 2, 2, 108, 106, 3, 2, 2, 2, 108, 109, 3, 2, 2, 2, 109, 112, 3, 2, 2, 2, 110, 108, 3, 2, 2, 2, 111, 100, 3, 2, 2, 2, 111, 112, 3, 2, 2, 2, 112, 113, 3, 2, 2, 2, 113, 114, 7, 10, 2, 2, 114, 7, 3, 2, 2, 2, 115, 120, 5, 10, 6, 2, 116, 117, 5, 12, 7, 2, 117, 118, 9, 2, 2, 2, 118, 120, 3, 2, 2, 2, 119, 115, 3, 2, 2, 2, 119, 116, 3, 2, 2, 2, 120, 9, 3, 2, 2, 2, 121, 122, 7, 16, 2, 2, 122, 123, 7, 9, 2, 2, 123, 124, 5, 36, 19, 2, 124, 125, 7, 10, 2, 2, 125, 129, 5, 14, 8, 2, 126, 127, 7, 18, 2, 2, 127, 130, 5, 14, 8, 2, 128, 130, 6, 6, 2, 2, 129, 126, 3, 2, 2, 2, 129, 128, 3, 2, 2, 2, 130, 182, 3, 2, 2, 2, 131, 132, 7, 19, 2, 2, 132, 133, 7, 9, 2, 2, 133, 134, 5, 36, 19, 2, 134, 137, 7, 10, 2, 2, 135, 138, 5, 14, 8, 2, 136, 138, 5, 18, 10, 2, 137, 135, 3, 2, 2, 2, 137, 136, 3, 2, 2, 2, 138, 182, 3, 2, 2, 2, 139, 140, 7, 21, 2, 2, 140, 142, 7, 9, 2, 2, 141, 143, 5, 20, 11, 2, 142, 141, 3, 2, 2, 2, 142, 143, 3, 2, 2, 2, 143, 144, 3, 2, 2, 2, 144, 146, 7, 15, 2, 2, 145, 147, 5, 36, 19, 2, 146, 145, 3, 2, 2, 2, 146, 147, 3, 2, 2, 2, 147, 148, 3, 2, 2, 2, 148, 150, 7, 15, 2, 2, 149, 151, 5, 22, 12, 2, 150, 149, 3, 2, 2, 2, 150, 151, 3, 2, 2, 2, 151, 152, 3, 2, 2, 2, 152, 155, 7, 10, 2, 2, 153, 156, 5, 14, 8, 2, 154, 156, 5, 18, 10, 2, 155, 153, 3, 2, 2, 2, 155, 154, 3, 2, 2, 2, 156, 182, 3, 2, 2, 2, 157, 158, 7, 21, 2, 2, 158, 159, 7, 9, 2, 2, 159, 160, 5, 26, 14, 2, 160, 161, 7, 86, 2, 2, 161, 162, 7, 55, 2, 2, 162, 163, 5, 36, 19, 2, 163, 164, 7, 10, 2, 2, 164, 165, 5, 14, 8, 2, 165, 182, 3, 2, 2, 2, 166, 167, 7, 21, 2, 2, 167, 168, 7, 9, 2, 2, 168, 169, 7, 86, 2, 2, 169, 170, 7, 17, 2, 2, 170, 171, 5, 36, 19, 2, 171, 172, 7, 10, 2, 2, 172, 173, 5, 14, 8, 2, 173, 182, 3, 2, 2, 2, 174, 175, 7, 26, 2, 2, 175, 177, 5, 16, 9, 2, 176, 178, 5, 32, 17, 2, 177, 176, 3, 2, 2, 2, 178, 179, 3, 2, 2, 2, 179, 177, 3, 2, 2, 2, 179, 180, 3, 2, 2, 2, 180, 182, 3, 2, 2, 2, 181, 121, 3, 2, 2, 2, 181, 131, 3, 2, 2, 2, 181, 139, 3, 2, 2, 2, 181, 157, 3, 2, 2, 2, 181, 166, 3, 2, 2, 2, 181, 174, 3, 2, 2, 2, 182, 11, 3, 2, 2, 2, 183, 184, 7, 20, 2, 2, 184, 185, 5, 16, 9, 2, 185, 186, 7, 19, 2, 2, 186, 187, 7, 9, 2, 2, 187, 188, 5, 36, 19, 2, 188, 189, 7, 10, 2, 2, 189, 201, 3, 2, 2, 2, 190, 201, 5, 24, 13, 2, 191, 201, 7, 22, 2, 2, 192, 201, 7, 23, 2, 2, 193, 195, 7, 24, 2, 2, 194, 196, 5, 36, 19, 2, 195, 194, 3, 2, 2, 2, 195, 196, 3, 2, 2, 2, 196, 201, 3, 2, 2, 2, 197, 198, 7, 28, 2, 2, 198, 201, 5, 36, 19, 2, 199, 201, 5, 36, 19, 2, 200, 183, 3, 2, 2, 2, 200, 190, 3, 2, 2, 2, 200, 191, 3, 2, 2, 2, 200, 192, 3, 2, 2, 2, 200, 193, 3, 2, 2, 2, 200, 197, 3, 2, 2, 2, 200, 199, 3, 2, 2, 2, 201, 13, 3, 2, 2, 2, 202, 205, 5, 16, 9, 2, 203, 205, 5, 8, 5, 2, 204, 202, 3, 2, 2, 2, 204, 203, 3, 2, 2, 2, 205, 15, 3, 2, 2, 2, 206, 210, 7, 5, 2, 2, 207, 209, 5, 8, 5, 2, 208, 207, 3, 2, 2, 2, 209, 212, 3, 2, 2, 2, 210, 208, 3, 2, 2, 2, 210, 211, 3, 2, 2, 2, 211, 214, 3, 2, 2, 2, 212, 210, 3, 2, 2, 2, 213, 215, 5, 12, 7, 2, 214, 213, 3, 2, 2, 2, 214, 215, 3, 2, 2, 2, 215, 216, 3, 2, 2, 2, 216, 217, 7, 6, 2, 2, 217, 17, 3, 2, 2, 2, 218, 219, 7, 15, 2, 2, 219, 19, 3, 2, 2, 2, 220, 223, 5, 24, 13, 2, 221, 223, 5, 36, 19, 2, 222, 220, 3, 2, 2, 2, 222, 221, 3, 2, 2, 2, 223, 21, 3, 2, 2, 2, 224, 225, 5, 36, 19, 2, 225, 23, 3, 2, 2, 2, 226, 227, 5, 26, 14, 2, 227, 232, 5, 30, 16, 2, 228, 229, 7, 14, 2, 2, 229, 231, 5, 30, 16, 2, 230, 228, 3, 2, 2, 2, 231, 234, 3, 2, 2, 2, 232, 230, 3, 2, 2, 2, 232, 233, 3, 2, 2, 2, 233, 25, 3, 2, 2, 2, 234, 232, 3, 2, 2, 2, 235, 240, 5, 28, 15, 2, 236, 237, 7, 7, 2, 2, 237, 239, 7, 8, 2, 2, 238, 236, 3, 2, 2, 2, 239, 242, 3, 2, 2, 2, 240, 238, 3, 2, 2, 2, 240, 241, 3, 2, 2, 2, 241, 27, 3, 2, 2, 2, 242, 240, 3, 2, 2, 2, 243, 254, 7, 85, 2, 2, 244, 254, 7, 84, 2, 2, 245, 250, 7, 86, 2, 2, 246, 247, 7, 12, 2, 2, 247, 249, 7, 88, 2, 2, 248, 246, 3, 2, 2, 2, 249, 252, 3, 2, 2, 2, 250, 248, 3, 2, 2, 2, 250, 251, 3, 2, 2, 2, 251, 254, 3, 2, 2, 2, 252, 250, 3, 2, 2, 2, 253, 243, 3, 2, 2, 2, 253, 244, 3, 2, 2, 2, 253, 245, 3, 2, 2, 2, 254, 29, 3, 2, 2, 2, 255, 258, 7, 86, 2, 2, 256, 257, 7, 63, 2, 2, 257, 259, 5, 36, 19, 2, 258, 256, 3, 2, 2, 2, 258, 259, 3, 2, 2, 2, 259, 31, 3, 2, 2, 2, 260, 261, 7, 27, 2, 2, 261, 262, 7, 9, 2, 2, 262, 263, 5, 28, 15, 2, 263, 264, 7, 86, 2, 2, 264, 265, 7, 10, 2, 2, 265, 266, 5, 16, 9, 2, 266, 33, 3, 2, 2, 2, 267, 268, 8, 18, 1, 2, 268, 269, 5, 38, 20, 2, 269, 311, 3, 2, 2, 2, 270, 271, 12, 15, 2, 2, 271, 272, 9, 3, 2, 2, 272, 310, 5, 34, 18, 16, 273, 274, 12, 14, 2, 2, 274, 275, 9, 4, 2, 2, 275, 310, 5, 34, 18, 15, 276, 277, 12, 13, 2, 2, 277, 278, 9, 5, 2, 2, 278, 310, 5, 34, 18, 14, 279, 280, 12, 12, 2, 2, 280, 281, 9, 6, 2, 2, 281, 310, 5, 34, 18, 13, 282, 283, 12, 11, 2, 2, 283, 284, 9, 7, 2, 2, 284, 310, 5, 34, 18, 12, 285, 286, 12, 9, 2, 2, 286, 287, 9, 8, 2, 2, 287, 310, 5, 34, 18, 10, 288, 289, 12, 8, 2, 2, 289, 290, 7, 49, 2, 2, 290, 310, 5, 34, 18, 9, 291, 292, 12, 7, 2, 2, 292, 293, 7, 50, 2, 2, 293, 310, 5, 34, 18, 8, 294, 295, 12, 6, 2, 2, 295, 296, 7, 51, 2, 2, 296, 310, 5, 34, 18, 7, 297, 298, 12, 5, 2, 2, 298, 299, 7, 52, 2, 2, 299, 310, 5, 34, 18, 6, 300, 301, 12, 4, 2, 2, 301, 302, 7, 53, 2, 2, 302, 310, 5, 34, 18, 5, 303, 304, 12, 3, 2, 2, 304, 305, 7, 56, 2, 2, 305, 310, 5, 34, 18, 3, 306, 307, 12, 10, 2, 2, 307, 308, 7, 30, 2, 2, 308, 310, 5, 26, 14, 2, 309, 270, 3, 2, 2, 2, 309, 273, 3, 2, 2, 2, 309, 276, 3, 2, 2, 2, 309, 279, 3, 2, 2, 2, 309, 282, 3, 2, 2, 2, 309, 285, 3, 2, 2, 2, 309, 288, 3, 2, 2, 2, 309, 291, 3, 2, 2, 2, 309, 294, 3, 2, 2, 2, 309, 297, 3, 2, 2, 2, 309, 300, 3, 2, 2, 2, 309, 303, 3, 2, 2, 2, 309, 306, 3, 2, 2, 2, 310, 313, 3, 2, 2, 2, 311, 309, 3, 2, 2, 2, 311, 312, 3, 2, 2, 2, 312, 35, 3, 2, 2, 2, 313, 311, 3, 2, 2, 2, 314, 326, 5, 34, 18, 2, 315, 316, 5, 34, 18, 2, 316, 317, 7, 54, 2, 2, 317, 318, 5, 36, 19, 2, 318, 319, 7, 55, 2, 2, 319, 320, 5, 36, 19, 2, 320, 326, 3, 2, 2, 2, 321, 322, 5, 34, 18, 2, 322, 323, 9, 9, 2, 2, 323, 324, 5, 36, 19, 2, 324, 326, 3, 2, 2, 2, 325, 314, 3, 2, 2, 2, 325, 315, 3, 2, 2, 2, 325, 321, 3, 2, 2, 2, 326, 37, 3, 2, 2, 2, 327, 328, 9, 10, 2, 2, 328, 333, 5, 48, 25, 2, 329, 330, 9, 4, 2, 2, 330, 333, 5, 38, 20, 2, 331, 333, 5, 40, 21, 2, 332, 327, 3, 2, 2, 2, 332, 329, 3, 2, 2, 2, 332, 331, 3, 2, 2, 2, 333, 39, 3, 2, 2, 2, 334, 342, 5, 48, 25, 2, 335, 336, 5, 48, 25, 2, 336, 337, 9, 10, 2, 2, 337, 342, 3, 2, 2, 2, 338, 339, 9, 11, 2, 2, 339, 342, 5, 38, 20, 2, 340, 342, 5, 42, 22, 2, 341, 334, 3, 2, 2, 2, 341, 335, 3, 2, 2, 2, 341, 338, 3, 2, 2, 2, 341, 340, 3, 2, 2, 2, 342, 41, 3, 2, 2, 2, 343, 344, 7, 9, 2, 2, 344, 345, 5, 44, 23, 2, 345, 346, 7, 10, 2, 2, 346, 347, 5, 38, 20, 2, 347, 354, 3, 2, 2, 2, 348, 349, 7, 9, 2, 2, 349, 350, 5, 46, 24, 2, 350, 351, 7, 10, 2, 2, 351, 352, 5, 40, 21, 2, 352, 354, 3, 2, 2, 2, 353, 343, 3, 2, 2, 2, 353, 348, 3, 2, 2, 2, 354, 43, 3, 2, 2, 2, 355, 356, 9, 12, 2, 2, 356, 45, 3, 2, 2, 2, 357, 360, 7, 85, 2, 2, 358, 359, 7, 7, 2, 2, 359, 361, 7, 8, 2, 2, 360, 358, 3, 2, 2, 2, 361, 362, 3, 2, 2, 2, 362, 360, 3, 2, 2, 2, 362, 363, 3, 2, 2, 2, 363, 387, 3, 2, 2, 2, 364, 367, 7, 84, 2, 2, 365, 366, 7, 7, 2, 2, 366, 368, 7, 8, 2, 2, 367, 365, 3, 2, 2, 2, 368, 369, 3, 2, 2, 2, 369, 367, 3, 2, 2, 2, 369, 370, 3, 2, 2, 2, 370, 387, 3, 2, 2, 2, 371, 376, 7, 86, 2, 2, 372, 373, 7, 12, 2, 2, 373, 375, 7, 88, 2, 2, 374, 372, 3, 2, 2, 2, 375, 378, 3, 2, 2, 2, 376, 374, 3, 2, 2, 2, 376, 377, 3, 2, 2, 2, 377, 383, 3, 2, 2, 2, 378, 376, 3, 2, 2, 2, 379, 380, 7, 7, 2, 2, 380, 382, 7, 8, 2, 2, 381, 379, 3, 2, 2, 2, 382, 385, 3, 2, 2, 2, 383, 381, 3, 2, 2, 2, 383, 384, 3, 2, 2, 2, 384, 387, 3, 2, 2, 2, 385, 383, 3, 2, 2, 2, 386, 357, 3, 2, 2, 2, 386, 364, 3, 2, 2, 2, 386, 371, 3, 2, 2, 2, 387, 47, 3, 2, 2, 2, 388, 392, 5, 50, 26, 2, 389, 391, 5, 52, 27, 2, 390, 389, 3, 2, 2, 2, 391, 394, 3, 2, 2, 2, 392, 390, 3, 2, 2, 2, 392, 393, 3, 2, 2, 2, 393, 397, 3, 2, 2, 2, 394, 392, 3, 2, 2, 2, 395, 397, 5, 62, 32, 2, 396, 388, 3, 2, 2, 2, 396, 395, 3, 2, 2, 2, 397, 49, 3, 2, 2, 2, 398, 399, 7, 9, 2, 2, 399, 400, 5, 36, 19, 2, 400, 401, 7, 10, 2, 2, 401, 418, 3, 2, 2, 2, 402, 418, 9, 13, 2, 2, 403, 418, 7, 81, 2, 2, 404, 418, 7, 82, 2, 2, 405, 418, 7, 83, 2, 2, 406, 418, 7, 79, 2, 2, 407, 418, 7, 80, 2, 2, 408, 418, 5, 64, 33, 2, 409, 418, 5, 66, 34, 2, 410, 418, 7, 86, 2, 2, 411, 412, 9, 14, 2, 2, 412, 418, 5, 70, 36, 2, 413, 414, 7, 25, 2, 2, 414, 415, 5, 28, 15, 2, 415, 416, 5, 70, 36, 2, 416, 418, 3, 2, 2, 2, 417, 398, 3, 2, 2, 2, 417, 402, 3, 2, 2, 2, 417, 403, 3, 2, 2, 2, 417, 404, 3, 2, 2, 2, 417, 405, 3, 2, 2, 2, 417, 406, 3, 2, 2, 2, 417, 407, 3, 2, 2, 2, 417, 408, 3, 2, 2, 2, 417, 409, 3, 2, 2, 2, 417, 410, 3, 2, 2, 2, 417, 411, 3, 2, 2, 2, 417, 413, 3, 2, 2, 2, 418, 51, 3, 2, 2, 2, 419, 423, 5, 56, 29, 2, 420, 423, 5, 58, 30, 2, 421, 423, 5, 60, 31, 2, 422, 419, 3, 2, 2, 2, 422, 420, 3, 2, 2, 2, 422, 421, 3, 2, 2, 2, 423, 53, 3, 2, 2, 2, 424, 427, 5, 56, 29, 2, 425, 427, 5, 58, 30, 2, 426, 424, 3, 2, 2, 2, 426, 425, 3, 2, 2, 2, 427, 55, 3, 2, 2, 2, 428, 429, 9, 15, 2, 2, 429, 430, 7, 88, 2, 2, 430, 431, 5, 70, 36, 2, 431, 57, 3, 2, 2, 2, 432, 433, 9, 15, 2, 2, 433, 434, 9, 16, 2, 2, 434, 59, 3, 2, 2, 2, 435, 436, 7, 7, 2, 2, 436, 437, 5, 36, 19, 2, 437, 438, 7, 8, 2, 2, 438, 61, 3, 2, 2, 2, 439, 440, 7, 25, 2, 2, 440, 445, 5, 28, 15, 2, 441, 442, 7, 7, 2, 2, 442, 443, 5, 36, 19, 2, 443, 444, 7, 8, 2, 2, 444, 446, 3, 2, 2, 2, 445, 441, 3, 2, 2, 2, 446, 447, 3, 2, 2, 2, 447, 445, 3, 2, 2, 2, 447, 448, 3, 2, 2, 2, 448, 456, 3, 2, 2, 2, 449, 453, 5, 54, 28, 2, 450, 452, 5, 52, 27, 2, 451, 450, 3, 2, 2, 2, 452, 455, 3, 2, 2, 2, 453, 451, 3, 2, 2, 2, 453, 454, 3, 2, 2, 2, 454, 457, 3, 2, 2, 2, 455, 453, 3, 2, 2, 2, 456, 449, 3, 2, 2, 2, 456, 457, 3, 2, 2, 2, 457, 481, 3, 2, 2, 2, 458, 459, 7, 25, 2, 2, 459, 460, 5, 28, 15, 2, 460, 461, 7, 7, 2, 2, 461, 462, 7, 8, 2, 2, 462, 471, 7, 5, 2, 2, 463, 468, 5, 36, 19, 2, 464, 465, 7, 14, 2, 2, 465, 467, 5, 36, 19, 2, 466, 464, 3, 2, 2, 2, 467, 470, 3, 2, 2, 2, 468, 466, 3, 2, 2, 2, 468, 469, 3, 2, 2, 2, 469, 472, 3, 2, 2, 2, 470, 468, 3, 2, 2, 2, 471, 463, 3, 2, 2, 2, 471, 472, 3, 2, 2, 2, 472, 473, 3, 2, 2, 2, 473, 477, 7, 6, 2, 2, 474, 476, 5, 52, 27, 2, 475, 474, 3, 2, 2, 2, 476, 479, 3, 2, 2, 2, 477, 475, 3, 2, 2, 2, 477, 478, 3, 2, 2, 2, 478, 481, 3, 2, 2, 2, 479, 477, 3, 2, 2, 2, 480, 439, 3, 2, 2, 2, 480, 458, 3, 2, 2, 2, 481, 63, 3, 2, 2, 2, 482, 483, 7, 7, 2, 2, 483, 488, 5, 36, 19, 2, 484, 485, 7, 14, 2, 2, 485, 487, 5, 36, 19, 2, 486, 484, 3, 2, 2, 2, 487, 490, 3, 2, 2, 2, 488, 486, 3, 2, 2, 2, 488, 489, 3, 2, 2, 2, 489, 491, 3, 2, 2, 2, 490, 488, 3, 2, 2, 2, 491, 492, 7, 8, 2, 2, 492, 496, 3, 2, 2, 2, 493, 494, 7, 7, 2, 2, 494, 496, 7, 8, 2, 2, 495, 482, 3, 2, 2, 2, 495, 493, 3, 2, 2, 2, 496, 65, 3, 2, 2, 2, 497, 498, 7, 7, 2, 2, 498, 503, 5, 68, 35, 2, 499, 500, 7, 14, 2, 2, 500, 502, 5, 68, 35, 2, 501, 499, 3, 2, 2, 2, 502, 505, 3, 2, 2, 2, 503, 501, 3, 2, 2, 2, 503, 504, 3, 2, 2, 2, 504, 506, 3, 2, 2, 2, 505, 503, 3, 2, 2, 2, 506, 507, 7, 8, 2, 2, 507, 512, 3, 2, 2, 2, 508, 509, 7, 7, 2, 2, 509, 510, 7, 55, 2, 2, 510, 512, 7, 8, 2, 2, 511, 497, 3, 2, 2, 2, 511, 508, 3, 2, 2, 2, 512, 67, 3, 2, 2, 2, 513, 514, 5, 36, 19, 2, 514, 515, 7, 55, 2, 2, 515, 516, 5, 36, 19, 2, 516, 69, 3, 2, 2, 2, 517, 526, 7, 9, 2, 2, 518, 523, 5, 72, 37, 2, 519, 520, 7, 14, 2, 2, 520, 522, 5, 72, 37, 2, 521, 519, 3, 2, 2, 2, 522, 525, 3, 2, 2, 2, 523, 521, 3, 2, 2, 2, 523, 524, 3, 2, 2, 2, 524, 527, 3, 2, 2, 2, 525, 523, 3, 2, 2, 2, 526, 518, 3, 2, 2, 2, 526, 527, 3, 2, 2, 2, 527, 528, 3, 2, 2, 2, 528, 529, 7, 10, 2, 2, 529, 71, 3, 2, 2, 2, 530, 534, 5, 36, 19, 2, 531, 534, 5, 74, 38, 2, 532, 534, 5, 78, 40, 2, 533, 530, 3, 2, 2, 2, 533, 531, 3, 2, 2, 2, 533, 532, 3, 2, 2, 2, 534, 73, 3, 2, 2, 2, 535, 549, 5, 76, 39, 2, 536, 545, 7, 9, 2, 2, 537, 542, 5, 76, 39, 2, 538, 539, 7, 14, 2, 2, 539, 541, 5, 76, 39, 2, 540, 538, 3, 2, 2, 2, 541, 544, 3, 2, 2, 2, 542, 540, 3, 2, 2, 2, 542, 543, 3, 2, 2, 2, 543, 546, 3, 2, 2, 2, 544, 542, 3, 2, 2, 2, 545, 537, 3, 2, 2, 2, 545, 546, 3, 2, 2, 2, 546, 547, 3, 2, 2, 2, 547, 549, 7, 10, 2, 2, 548, 535, 3, 2, 2, 2, 548, 536, 3, 2, 2, 2, 549, 550, 3, 2, 2, 2, 550, 553, 7, 58, 2, 2, 551, 554, 5, 16, 9, 2, 552, 554, 5, 36, 19, 2, 553, 551, 3, 2, 2, 2, 553, 552, 3, 2, 2, 2, 554, 75, 3, 2, 2, 2, 555, 557, 5, 26, 14, 2, 556, 555, 3, 2, 2, 2, 556, 557, 3, 2, 2, 2, 557, 558, 3, 2, 2, 2, 558, 559, 7, 86, 2, 2, 559, 77, 3, 2, 2, 2, 560, 561, 5, 26, 14, 2, 561, 562, 7, 57, 2, 2, 562, 563, 7, 86, 2, 2, 563, 572, 3, 2, 2, 2, 564, 565, 5, 26, 14, 2, 565, 566, 7, 57, 2, 2, 566, 567, 7, 25, 2, 2, 567, 572, 3, 2, 2, 2, 568, 569, 7, 29, 2, 2, 569, 570, 7, 57, 2, 2, 570, 572, 7, 86, 2, 2, 571, 560, 3, 2, 2, 2, 571, 564, 3, 2, 2, 2, 571, 568, 3, 2, 2, 2, 572, 79, 3, 2, 2, 2, 62, 83, 89, 108, 111, 119, 129, 137, 142, 146, 150, 155, 179, 181, 195, 200, 204, 210, 214, 222, 232, 240, 250, 253, 258, 309, 311, 325, 332, 341, 353, 362, 369, 376, 383, 386, 392, 396, 417, 422, 426, 447, 453, 456, 468, 471, 477, 480, 488, 495, 503, 511, 523, 526, 533, 542, 545, 548, 553, 556, 571] \ No newline at end of file +[4, 1, 86, 572, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 1, 0, 5, 0, 80, 8, 0, 10, 0, 12, 0, 83, 9, 0, 1, 0, 5, 0, 86, 8, 0, 10, 0, 12, 0, 89, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 105, 8, 2, 10, 2, 12, 2, 108, 9, 2, 3, 2, 110, 8, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 118, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 128, 8, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 136, 8, 4, 1, 4, 1, 4, 1, 4, 3, 4, 141, 8, 4, 1, 4, 1, 4, 3, 4, 145, 8, 4, 1, 4, 1, 4, 3, 4, 149, 8, 4, 1, 4, 1, 4, 1, 4, 3, 4, 154, 8, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 4, 4, 176, 8, 4, 11, 4, 12, 4, 177, 3, 4, 180, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 194, 8, 5, 1, 5, 1, 5, 1, 5, 3, 5, 199, 8, 5, 1, 6, 1, 6, 3, 6, 203, 8, 6, 1, 7, 1, 7, 5, 7, 207, 8, 7, 10, 7, 12, 7, 210, 9, 7, 1, 7, 3, 7, 213, 8, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 3, 9, 221, 8, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 5, 11, 229, 8, 11, 10, 11, 12, 11, 232, 9, 11, 1, 12, 1, 12, 1, 12, 5, 12, 237, 8, 12, 10, 12, 12, 12, 240, 9, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 5, 13, 247, 8, 13, 10, 13, 12, 13, 250, 9, 13, 3, 13, 252, 8, 13, 1, 14, 1, 14, 1, 14, 3, 14, 257, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 308, 8, 16, 10, 16, 12, 16, 311, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 324, 8, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 331, 8, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 340, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 352, 8, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 4, 22, 359, 8, 22, 11, 22, 12, 22, 360, 1, 22, 1, 22, 1, 22, 4, 22, 366, 8, 22, 11, 22, 12, 22, 367, 1, 22, 1, 22, 1, 22, 5, 22, 373, 8, 22, 10, 22, 12, 22, 376, 9, 22, 1, 22, 1, 22, 5, 22, 380, 8, 22, 10, 22, 12, 22, 383, 9, 22, 3, 22, 385, 8, 22, 1, 23, 1, 23, 5, 23, 389, 8, 23, 10, 23, 12, 23, 392, 9, 23, 1, 23, 3, 23, 395, 8, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 416, 8, 24, 1, 25, 1, 25, 1, 25, 3, 25, 421, 8, 25, 1, 26, 1, 26, 3, 26, 425, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 4, 30, 444, 8, 30, 11, 30, 12, 30, 445, 1, 30, 1, 30, 5, 30, 450, 8, 30, 10, 30, 12, 30, 453, 9, 30, 3, 30, 455, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 465, 8, 30, 10, 30, 12, 30, 468, 9, 30, 3, 30, 470, 8, 30, 1, 30, 1, 30, 5, 30, 474, 8, 30, 10, 30, 12, 30, 477, 9, 30, 3, 30, 479, 8, 30, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 485, 8, 31, 10, 31, 12, 31, 488, 9, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 494, 8, 31, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 500, 8, 32, 10, 32, 12, 32, 503, 9, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 510, 8, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 5, 34, 520, 8, 34, 10, 34, 12, 34, 523, 9, 34, 3, 34, 525, 8, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 3, 35, 532, 8, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 5, 36, 539, 8, 36, 10, 36, 12, 36, 542, 9, 36, 3, 36, 544, 8, 36, 1, 36, 3, 36, 547, 8, 36, 1, 36, 1, 36, 1, 36, 3, 36, 552, 8, 36, 1, 37, 3, 37, 555, 8, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 570, 8, 38, 1, 38, 0, 1, 32, 39, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 0, 15, 1, 1, 13, 13, 1, 0, 31, 33, 1, 0, 34, 35, 1, 0, 57, 58, 1, 0, 36, 38, 1, 0, 39, 42, 1, 0, 43, 46, 1, 0, 61, 72, 1, 0, 59, 60, 1, 0, 29, 30, 1, 0, 82, 83, 1, 0, 73, 76, 2, 0, 9, 9, 84, 84, 1, 0, 10, 11, 1, 0, 85, 86, 631, 0, 81, 1, 0, 0, 0, 2, 92, 1, 0, 0, 0, 4, 97, 1, 0, 0, 0, 6, 117, 1, 0, 0, 0, 8, 179, 1, 0, 0, 0, 10, 198, 1, 0, 0, 0, 12, 202, 1, 0, 0, 0, 14, 204, 1, 0, 0, 0, 16, 216, 1, 0, 0, 0, 18, 220, 1, 0, 0, 0, 20, 222, 1, 0, 0, 0, 22, 224, 1, 0, 0, 0, 24, 233, 1, 0, 0, 0, 26, 251, 1, 0, 0, 0, 28, 253, 1, 0, 0, 0, 30, 258, 1, 0, 0, 0, 32, 265, 1, 0, 0, 0, 34, 323, 1, 0, 0, 0, 36, 330, 1, 0, 0, 0, 38, 339, 1, 0, 0, 0, 40, 351, 1, 0, 0, 0, 42, 353, 1, 0, 0, 0, 44, 384, 1, 0, 0, 0, 46, 394, 1, 0, 0, 0, 48, 415, 1, 0, 0, 0, 50, 420, 1, 0, 0, 0, 52, 424, 1, 0, 0, 0, 54, 426, 1, 0, 0, 0, 56, 430, 1, 0, 0, 0, 58, 433, 1, 0, 0, 0, 60, 478, 1, 0, 0, 0, 62, 493, 1, 0, 0, 0, 64, 509, 1, 0, 0, 0, 66, 511, 1, 0, 0, 0, 68, 515, 1, 0, 0, 0, 70, 531, 1, 0, 0, 0, 72, 546, 1, 0, 0, 0, 74, 554, 1, 0, 0, 0, 76, 569, 1, 0, 0, 0, 78, 80, 3, 2, 1, 0, 79, 78, 1, 0, 0, 0, 80, 83, 1, 0, 0, 0, 81, 79, 1, 0, 0, 0, 81, 82, 1, 0, 0, 0, 82, 87, 1, 0, 0, 0, 83, 81, 1, 0, 0, 0, 84, 86, 3, 6, 3, 0, 85, 84, 1, 0, 0, 0, 86, 89, 1, 0, 0, 0, 87, 85, 1, 0, 0, 0, 87, 88, 1, 0, 0, 0, 88, 90, 1, 0, 0, 0, 89, 87, 1, 0, 0, 0, 90, 91, 5, 0, 0, 1, 91, 1, 1, 0, 0, 0, 92, 93, 3, 24, 12, 0, 93, 94, 5, 84, 0, 0, 94, 95, 3, 4, 2, 0, 95, 96, 3, 14, 7, 0, 96, 3, 1, 0, 0, 0, 97, 109, 5, 7, 0, 0, 98, 99, 3, 24, 12, 0, 99, 106, 5, 84, 0, 0, 100, 101, 5, 12, 0, 0, 101, 102, 3, 24, 12, 0, 102, 103, 5, 84, 0, 0, 103, 105, 1, 0, 0, 0, 104, 100, 1, 0, 0, 0, 105, 108, 1, 0, 0, 0, 106, 104, 1, 0, 0, 0, 106, 107, 1, 0, 0, 0, 107, 110, 1, 0, 0, 0, 108, 106, 1, 0, 0, 0, 109, 98, 1, 0, 0, 0, 109, 110, 1, 0, 0, 0, 110, 111, 1, 0, 0, 0, 111, 112, 5, 8, 0, 0, 112, 5, 1, 0, 0, 0, 113, 118, 3, 8, 4, 0, 114, 115, 3, 10, 5, 0, 115, 116, 7, 0, 0, 0, 116, 118, 1, 0, 0, 0, 117, 113, 1, 0, 0, 0, 117, 114, 1, 0, 0, 0, 118, 7, 1, 0, 0, 0, 119, 120, 5, 14, 0, 0, 120, 121, 5, 7, 0, 0, 121, 122, 3, 34, 17, 0, 122, 123, 5, 8, 0, 0, 123, 127, 3, 12, 6, 0, 124, 125, 5, 16, 0, 0, 125, 128, 3, 12, 6, 0, 126, 128, 4, 4, 0, 0, 127, 124, 1, 0, 0, 0, 127, 126, 1, 0, 0, 0, 128, 180, 1, 0, 0, 0, 129, 130, 5, 17, 0, 0, 130, 131, 5, 7, 0, 0, 131, 132, 3, 34, 17, 0, 132, 135, 5, 8, 0, 0, 133, 136, 3, 12, 6, 0, 134, 136, 3, 16, 8, 0, 135, 133, 1, 0, 0, 0, 135, 134, 1, 0, 0, 0, 136, 180, 1, 0, 0, 0, 137, 138, 5, 19, 0, 0, 138, 140, 5, 7, 0, 0, 139, 141, 3, 18, 9, 0, 140, 139, 1, 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 142, 1, 0, 0, 0, 142, 144, 5, 13, 0, 0, 143, 145, 3, 34, 17, 0, 144, 143, 1, 0, 0, 0, 144, 145, 1, 0, 0, 0, 145, 146, 1, 0, 0, 0, 146, 148, 5, 13, 0, 0, 147, 149, 3, 20, 10, 0, 148, 147, 1, 0, 0, 0, 148, 149, 1, 0, 0, 0, 149, 150, 1, 0, 0, 0, 150, 153, 5, 8, 0, 0, 151, 154, 3, 12, 6, 0, 152, 154, 3, 16, 8, 0, 153, 151, 1, 0, 0, 0, 153, 152, 1, 0, 0, 0, 154, 180, 1, 0, 0, 0, 155, 156, 5, 19, 0, 0, 156, 157, 5, 7, 0, 0, 157, 158, 3, 24, 12, 0, 158, 159, 5, 84, 0, 0, 159, 160, 5, 53, 0, 0, 160, 161, 3, 34, 17, 0, 161, 162, 5, 8, 0, 0, 162, 163, 3, 12, 6, 0, 163, 180, 1, 0, 0, 0, 164, 165, 5, 19, 0, 0, 165, 166, 5, 7, 0, 0, 166, 167, 5, 84, 0, 0, 167, 168, 5, 15, 0, 0, 168, 169, 3, 34, 17, 0, 169, 170, 5, 8, 0, 0, 170, 171, 3, 12, 6, 0, 171, 180, 1, 0, 0, 0, 172, 173, 5, 24, 0, 0, 173, 175, 3, 14, 7, 0, 174, 176, 3, 30, 15, 0, 175, 174, 1, 0, 0, 0, 176, 177, 1, 0, 0, 0, 177, 175, 1, 0, 0, 0, 177, 178, 1, 0, 0, 0, 178, 180, 1, 0, 0, 0, 179, 119, 1, 0, 0, 0, 179, 129, 1, 0, 0, 0, 179, 137, 1, 0, 0, 0, 179, 155, 1, 0, 0, 0, 179, 164, 1, 0, 0, 0, 179, 172, 1, 0, 0, 0, 180, 9, 1, 0, 0, 0, 181, 182, 5, 18, 0, 0, 182, 183, 3, 14, 7, 0, 183, 184, 5, 17, 0, 0, 184, 185, 5, 7, 0, 0, 185, 186, 3, 34, 17, 0, 186, 187, 5, 8, 0, 0, 187, 199, 1, 0, 0, 0, 188, 199, 3, 22, 11, 0, 189, 199, 5, 20, 0, 0, 190, 199, 5, 21, 0, 0, 191, 193, 5, 22, 0, 0, 192, 194, 3, 34, 17, 0, 193, 192, 1, 0, 0, 0, 193, 194, 1, 0, 0, 0, 194, 199, 1, 0, 0, 0, 195, 196, 5, 26, 0, 0, 196, 199, 3, 34, 17, 0, 197, 199, 3, 34, 17, 0, 198, 181, 1, 0, 0, 0, 198, 188, 1, 0, 0, 0, 198, 189, 1, 0, 0, 0, 198, 190, 1, 0, 0, 0, 198, 191, 1, 0, 0, 0, 198, 195, 1, 0, 0, 0, 198, 197, 1, 0, 0, 0, 199, 11, 1, 0, 0, 0, 200, 203, 3, 14, 7, 0, 201, 203, 3, 6, 3, 0, 202, 200, 1, 0, 0, 0, 202, 201, 1, 0, 0, 0, 203, 13, 1, 0, 0, 0, 204, 208, 5, 3, 0, 0, 205, 207, 3, 6, 3, 0, 206, 205, 1, 0, 0, 0, 207, 210, 1, 0, 0, 0, 208, 206, 1, 0, 0, 0, 208, 209, 1, 0, 0, 0, 209, 212, 1, 0, 0, 0, 210, 208, 1, 0, 0, 0, 211, 213, 3, 10, 5, 0, 212, 211, 1, 0, 0, 0, 212, 213, 1, 0, 0, 0, 213, 214, 1, 0, 0, 0, 214, 215, 5, 4, 0, 0, 215, 15, 1, 0, 0, 0, 216, 217, 5, 13, 0, 0, 217, 17, 1, 0, 0, 0, 218, 221, 3, 22, 11, 0, 219, 221, 3, 34, 17, 0, 220, 218, 1, 0, 0, 0, 220, 219, 1, 0, 0, 0, 221, 19, 1, 0, 0, 0, 222, 223, 3, 34, 17, 0, 223, 21, 1, 0, 0, 0, 224, 225, 3, 24, 12, 0, 225, 230, 3, 28, 14, 0, 226, 227, 5, 12, 0, 0, 227, 229, 3, 28, 14, 0, 228, 226, 1, 0, 0, 0, 229, 232, 1, 0, 0, 0, 230, 228, 1, 0, 0, 0, 230, 231, 1, 0, 0, 0, 231, 23, 1, 0, 0, 0, 232, 230, 1, 0, 0, 0, 233, 238, 3, 26, 13, 0, 234, 235, 5, 5, 0, 0, 235, 237, 5, 6, 0, 0, 236, 234, 1, 0, 0, 0, 237, 240, 1, 0, 0, 0, 238, 236, 1, 0, 0, 0, 238, 239, 1, 0, 0, 0, 239, 25, 1, 0, 0, 0, 240, 238, 1, 0, 0, 0, 241, 252, 5, 83, 0, 0, 242, 252, 5, 82, 0, 0, 243, 248, 5, 84, 0, 0, 244, 245, 5, 10, 0, 0, 245, 247, 5, 86, 0, 0, 246, 244, 1, 0, 0, 0, 247, 250, 1, 0, 0, 0, 248, 246, 1, 0, 0, 0, 248, 249, 1, 0, 0, 0, 249, 252, 1, 0, 0, 0, 250, 248, 1, 0, 0, 0, 251, 241, 1, 0, 0, 0, 251, 242, 1, 0, 0, 0, 251, 243, 1, 0, 0, 0, 252, 27, 1, 0, 0, 0, 253, 256, 5, 84, 0, 0, 254, 255, 5, 61, 0, 0, 255, 257, 3, 34, 17, 0, 256, 254, 1, 0, 0, 0, 256, 257, 1, 0, 0, 0, 257, 29, 1, 0, 0, 0, 258, 259, 5, 25, 0, 0, 259, 260, 5, 7, 0, 0, 260, 261, 3, 26, 13, 0, 261, 262, 5, 84, 0, 0, 262, 263, 5, 8, 0, 0, 263, 264, 3, 14, 7, 0, 264, 31, 1, 0, 0, 0, 265, 266, 6, 16, -1, 0, 266, 267, 3, 36, 18, 0, 267, 309, 1, 0, 0, 0, 268, 269, 10, 13, 0, 0, 269, 270, 7, 1, 0, 0, 270, 308, 3, 32, 16, 14, 271, 272, 10, 12, 0, 0, 272, 273, 7, 2, 0, 0, 273, 308, 3, 32, 16, 13, 274, 275, 10, 11, 0, 0, 275, 276, 7, 3, 0, 0, 276, 308, 3, 32, 16, 12, 277, 278, 10, 10, 0, 0, 278, 279, 7, 4, 0, 0, 279, 308, 3, 32, 16, 11, 280, 281, 10, 9, 0, 0, 281, 282, 7, 5, 0, 0, 282, 308, 3, 32, 16, 10, 283, 284, 10, 7, 0, 0, 284, 285, 7, 6, 0, 0, 285, 308, 3, 32, 16, 8, 286, 287, 10, 6, 0, 0, 287, 288, 5, 47, 0, 0, 288, 308, 3, 32, 16, 7, 289, 290, 10, 5, 0, 0, 290, 291, 5, 48, 0, 0, 291, 308, 3, 32, 16, 6, 292, 293, 10, 4, 0, 0, 293, 294, 5, 49, 0, 0, 294, 308, 3, 32, 16, 5, 295, 296, 10, 3, 0, 0, 296, 297, 5, 50, 0, 0, 297, 308, 3, 32, 16, 4, 298, 299, 10, 2, 0, 0, 299, 300, 5, 51, 0, 0, 300, 308, 3, 32, 16, 3, 301, 302, 10, 1, 0, 0, 302, 303, 5, 54, 0, 0, 303, 308, 3, 32, 16, 1, 304, 305, 10, 8, 0, 0, 305, 306, 5, 28, 0, 0, 306, 308, 3, 24, 12, 0, 307, 268, 1, 0, 0, 0, 307, 271, 1, 0, 0, 0, 307, 274, 1, 0, 0, 0, 307, 277, 1, 0, 0, 0, 307, 280, 1, 0, 0, 0, 307, 283, 1, 0, 0, 0, 307, 286, 1, 0, 0, 0, 307, 289, 1, 0, 0, 0, 307, 292, 1, 0, 0, 0, 307, 295, 1, 0, 0, 0, 307, 298, 1, 0, 0, 0, 307, 301, 1, 0, 0, 0, 307, 304, 1, 0, 0, 0, 308, 311, 1, 0, 0, 0, 309, 307, 1, 0, 0, 0, 309, 310, 1, 0, 0, 0, 310, 33, 1, 0, 0, 0, 311, 309, 1, 0, 0, 0, 312, 324, 3, 32, 16, 0, 313, 314, 3, 32, 16, 0, 314, 315, 5, 52, 0, 0, 315, 316, 3, 34, 17, 0, 316, 317, 5, 53, 0, 0, 317, 318, 3, 34, 17, 0, 318, 324, 1, 0, 0, 0, 319, 320, 3, 32, 16, 0, 320, 321, 7, 7, 0, 0, 321, 322, 3, 34, 17, 0, 322, 324, 1, 0, 0, 0, 323, 312, 1, 0, 0, 0, 323, 313, 1, 0, 0, 0, 323, 319, 1, 0, 0, 0, 324, 35, 1, 0, 0, 0, 325, 326, 7, 8, 0, 0, 326, 331, 3, 46, 23, 0, 327, 328, 7, 2, 0, 0, 328, 331, 3, 36, 18, 0, 329, 331, 3, 38, 19, 0, 330, 325, 1, 0, 0, 0, 330, 327, 1, 0, 0, 0, 330, 329, 1, 0, 0, 0, 331, 37, 1, 0, 0, 0, 332, 340, 3, 46, 23, 0, 333, 334, 3, 46, 23, 0, 334, 335, 7, 8, 0, 0, 335, 340, 1, 0, 0, 0, 336, 337, 7, 9, 0, 0, 337, 340, 3, 36, 18, 0, 338, 340, 3, 40, 20, 0, 339, 332, 1, 0, 0, 0, 339, 333, 1, 0, 0, 0, 339, 336, 1, 0, 0, 0, 339, 338, 1, 0, 0, 0, 340, 39, 1, 0, 0, 0, 341, 342, 5, 7, 0, 0, 342, 343, 3, 42, 21, 0, 343, 344, 5, 8, 0, 0, 344, 345, 3, 36, 18, 0, 345, 352, 1, 0, 0, 0, 346, 347, 5, 7, 0, 0, 347, 348, 3, 44, 22, 0, 348, 349, 5, 8, 0, 0, 349, 350, 3, 38, 19, 0, 350, 352, 1, 0, 0, 0, 351, 341, 1, 0, 0, 0, 351, 346, 1, 0, 0, 0, 352, 41, 1, 0, 0, 0, 353, 354, 7, 10, 0, 0, 354, 43, 1, 0, 0, 0, 355, 358, 5, 83, 0, 0, 356, 357, 5, 5, 0, 0, 357, 359, 5, 6, 0, 0, 358, 356, 1, 0, 0, 0, 359, 360, 1, 0, 0, 0, 360, 358, 1, 0, 0, 0, 360, 361, 1, 0, 0, 0, 361, 385, 1, 0, 0, 0, 362, 365, 5, 82, 0, 0, 363, 364, 5, 5, 0, 0, 364, 366, 5, 6, 0, 0, 365, 363, 1, 0, 0, 0, 366, 367, 1, 0, 0, 0, 367, 365, 1, 0, 0, 0, 367, 368, 1, 0, 0, 0, 368, 385, 1, 0, 0, 0, 369, 374, 5, 84, 0, 0, 370, 371, 5, 10, 0, 0, 371, 373, 5, 86, 0, 0, 372, 370, 1, 0, 0, 0, 373, 376, 1, 0, 0, 0, 374, 372, 1, 0, 0, 0, 374, 375, 1, 0, 0, 0, 375, 381, 1, 0, 0, 0, 376, 374, 1, 0, 0, 0, 377, 378, 5, 5, 0, 0, 378, 380, 5, 6, 0, 0, 379, 377, 1, 0, 0, 0, 380, 383, 1, 0, 0, 0, 381, 379, 1, 0, 0, 0, 381, 382, 1, 0, 0, 0, 382, 385, 1, 0, 0, 0, 383, 381, 1, 0, 0, 0, 384, 355, 1, 0, 0, 0, 384, 362, 1, 0, 0, 0, 384, 369, 1, 0, 0, 0, 385, 45, 1, 0, 0, 0, 386, 390, 3, 48, 24, 0, 387, 389, 3, 50, 25, 0, 388, 387, 1, 0, 0, 0, 389, 392, 1, 0, 0, 0, 390, 388, 1, 0, 0, 0, 390, 391, 1, 0, 0, 0, 391, 395, 1, 0, 0, 0, 392, 390, 1, 0, 0, 0, 393, 395, 3, 60, 30, 0, 394, 386, 1, 0, 0, 0, 394, 393, 1, 0, 0, 0, 395, 47, 1, 0, 0, 0, 396, 397, 5, 7, 0, 0, 397, 398, 3, 34, 17, 0, 398, 399, 5, 8, 0, 0, 399, 416, 1, 0, 0, 0, 400, 416, 7, 11, 0, 0, 401, 416, 5, 79, 0, 0, 402, 416, 5, 80, 0, 0, 403, 416, 5, 81, 0, 0, 404, 416, 5, 77, 0, 0, 405, 416, 5, 78, 0, 0, 406, 416, 3, 62, 31, 0, 407, 416, 3, 64, 32, 0, 408, 416, 5, 84, 0, 0, 409, 410, 7, 12, 0, 0, 410, 416, 3, 68, 34, 0, 411, 412, 5, 23, 0, 0, 412, 413, 3, 26, 13, 0, 413, 414, 3, 68, 34, 0, 414, 416, 1, 0, 0, 0, 415, 396, 1, 0, 0, 0, 415, 400, 1, 0, 0, 0, 415, 401, 1, 0, 0, 0, 415, 402, 1, 0, 0, 0, 415, 403, 1, 0, 0, 0, 415, 404, 1, 0, 0, 0, 415, 405, 1, 0, 0, 0, 415, 406, 1, 0, 0, 0, 415, 407, 1, 0, 0, 0, 415, 408, 1, 0, 0, 0, 415, 409, 1, 0, 0, 0, 415, 411, 1, 0, 0, 0, 416, 49, 1, 0, 0, 0, 417, 421, 3, 54, 27, 0, 418, 421, 3, 56, 28, 0, 419, 421, 3, 58, 29, 0, 420, 417, 1, 0, 0, 0, 420, 418, 1, 0, 0, 0, 420, 419, 1, 0, 0, 0, 421, 51, 1, 0, 0, 0, 422, 425, 3, 54, 27, 0, 423, 425, 3, 56, 28, 0, 424, 422, 1, 0, 0, 0, 424, 423, 1, 0, 0, 0, 425, 53, 1, 0, 0, 0, 426, 427, 7, 13, 0, 0, 427, 428, 5, 86, 0, 0, 428, 429, 3, 68, 34, 0, 429, 55, 1, 0, 0, 0, 430, 431, 7, 13, 0, 0, 431, 432, 7, 14, 0, 0, 432, 57, 1, 0, 0, 0, 433, 434, 5, 5, 0, 0, 434, 435, 3, 34, 17, 0, 435, 436, 5, 6, 0, 0, 436, 59, 1, 0, 0, 0, 437, 438, 5, 23, 0, 0, 438, 443, 3, 26, 13, 0, 439, 440, 5, 5, 0, 0, 440, 441, 3, 34, 17, 0, 441, 442, 5, 6, 0, 0, 442, 444, 1, 0, 0, 0, 443, 439, 1, 0, 0, 0, 444, 445, 1, 0, 0, 0, 445, 443, 1, 0, 0, 0, 445, 446, 1, 0, 0, 0, 446, 454, 1, 0, 0, 0, 447, 451, 3, 52, 26, 0, 448, 450, 3, 50, 25, 0, 449, 448, 1, 0, 0, 0, 450, 453, 1, 0, 0, 0, 451, 449, 1, 0, 0, 0, 451, 452, 1, 0, 0, 0, 452, 455, 1, 0, 0, 0, 453, 451, 1, 0, 0, 0, 454, 447, 1, 0, 0, 0, 454, 455, 1, 0, 0, 0, 455, 479, 1, 0, 0, 0, 456, 457, 5, 23, 0, 0, 457, 458, 3, 26, 13, 0, 458, 459, 5, 5, 0, 0, 459, 460, 5, 6, 0, 0, 460, 469, 5, 3, 0, 0, 461, 466, 3, 34, 17, 0, 462, 463, 5, 12, 0, 0, 463, 465, 3, 34, 17, 0, 464, 462, 1, 0, 0, 0, 465, 468, 1, 0, 0, 0, 466, 464, 1, 0, 0, 0, 466, 467, 1, 0, 0, 0, 467, 470, 1, 0, 0, 0, 468, 466, 1, 0, 0, 0, 469, 461, 1, 0, 0, 0, 469, 470, 1, 0, 0, 0, 470, 471, 1, 0, 0, 0, 471, 475, 5, 4, 0, 0, 472, 474, 3, 50, 25, 0, 473, 472, 1, 0, 0, 0, 474, 477, 1, 0, 0, 0, 475, 473, 1, 0, 0, 0, 475, 476, 1, 0, 0, 0, 476, 479, 1, 0, 0, 0, 477, 475, 1, 0, 0, 0, 478, 437, 1, 0, 0, 0, 478, 456, 1, 0, 0, 0, 479, 61, 1, 0, 0, 0, 480, 481, 5, 5, 0, 0, 481, 486, 3, 34, 17, 0, 482, 483, 5, 12, 0, 0, 483, 485, 3, 34, 17, 0, 484, 482, 1, 0, 0, 0, 485, 488, 1, 0, 0, 0, 486, 484, 1, 0, 0, 0, 486, 487, 1, 0, 0, 0, 487, 489, 1, 0, 0, 0, 488, 486, 1, 0, 0, 0, 489, 490, 5, 6, 0, 0, 490, 494, 1, 0, 0, 0, 491, 492, 5, 5, 0, 0, 492, 494, 5, 6, 0, 0, 493, 480, 1, 0, 0, 0, 493, 491, 1, 0, 0, 0, 494, 63, 1, 0, 0, 0, 495, 496, 5, 5, 0, 0, 496, 501, 3, 66, 33, 0, 497, 498, 5, 12, 0, 0, 498, 500, 3, 66, 33, 0, 499, 497, 1, 0, 0, 0, 500, 503, 1, 0, 0, 0, 501, 499, 1, 0, 0, 0, 501, 502, 1, 0, 0, 0, 502, 504, 1, 0, 0, 0, 503, 501, 1, 0, 0, 0, 504, 505, 5, 6, 0, 0, 505, 510, 1, 0, 0, 0, 506, 507, 5, 5, 0, 0, 507, 508, 5, 53, 0, 0, 508, 510, 5, 6, 0, 0, 509, 495, 1, 0, 0, 0, 509, 506, 1, 0, 0, 0, 510, 65, 1, 0, 0, 0, 511, 512, 3, 34, 17, 0, 512, 513, 5, 53, 0, 0, 513, 514, 3, 34, 17, 0, 514, 67, 1, 0, 0, 0, 515, 524, 5, 7, 0, 0, 516, 521, 3, 70, 35, 0, 517, 518, 5, 12, 0, 0, 518, 520, 3, 70, 35, 0, 519, 517, 1, 0, 0, 0, 520, 523, 1, 0, 0, 0, 521, 519, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522, 525, 1, 0, 0, 0, 523, 521, 1, 0, 0, 0, 524, 516, 1, 0, 0, 0, 524, 525, 1, 0, 0, 0, 525, 526, 1, 0, 0, 0, 526, 527, 5, 8, 0, 0, 527, 69, 1, 0, 0, 0, 528, 532, 3, 34, 17, 0, 529, 532, 3, 72, 36, 0, 530, 532, 3, 76, 38, 0, 531, 528, 1, 0, 0, 0, 531, 529, 1, 0, 0, 0, 531, 530, 1, 0, 0, 0, 532, 71, 1, 0, 0, 0, 533, 547, 3, 74, 37, 0, 534, 543, 5, 7, 0, 0, 535, 540, 3, 74, 37, 0, 536, 537, 5, 12, 0, 0, 537, 539, 3, 74, 37, 0, 538, 536, 1, 0, 0, 0, 539, 542, 1, 0, 0, 0, 540, 538, 1, 0, 0, 0, 540, 541, 1, 0, 0, 0, 541, 544, 1, 0, 0, 0, 542, 540, 1, 0, 0, 0, 543, 535, 1, 0, 0, 0, 543, 544, 1, 0, 0, 0, 544, 545, 1, 0, 0, 0, 545, 547, 5, 8, 0, 0, 546, 533, 1, 0, 0, 0, 546, 534, 1, 0, 0, 0, 547, 548, 1, 0, 0, 0, 548, 551, 5, 56, 0, 0, 549, 552, 3, 14, 7, 0, 550, 552, 3, 34, 17, 0, 551, 549, 1, 0, 0, 0, 551, 550, 1, 0, 0, 0, 552, 73, 1, 0, 0, 0, 553, 555, 3, 24, 12, 0, 554, 553, 1, 0, 0, 0, 554, 555, 1, 0, 0, 0, 555, 556, 1, 0, 0, 0, 556, 557, 5, 84, 0, 0, 557, 75, 1, 0, 0, 0, 558, 559, 3, 24, 12, 0, 559, 560, 5, 55, 0, 0, 560, 561, 5, 84, 0, 0, 561, 570, 1, 0, 0, 0, 562, 563, 3, 24, 12, 0, 563, 564, 5, 55, 0, 0, 564, 565, 5, 23, 0, 0, 565, 570, 1, 0, 0, 0, 566, 567, 5, 27, 0, 0, 567, 568, 5, 55, 0, 0, 568, 570, 5, 84, 0, 0, 569, 558, 1, 0, 0, 0, 569, 562, 1, 0, 0, 0, 569, 566, 1, 0, 0, 0, 570, 77, 1, 0, 0, 0, 60, 81, 87, 106, 109, 117, 127, 135, 140, 144, 148, 153, 177, 179, 193, 198, 202, 208, 212, 220, 230, 238, 248, 251, 256, 307, 309, 323, 330, 339, 351, 360, 367, 374, 381, 384, 390, 394, 415, 420, 424, 445, 451, 454, 466, 469, 475, 478, 486, 493, 501, 509, 521, 524, 531, 540, 543, 546, 551, 554, 569] \ No newline at end of file diff --git a/packages/kbn-monaco/src/painless/antlr/painless_parser.ts b/packages/kbn-monaco/src/painless/antlr/painless_parser.ts index 7eb6eaeb04bb1..6782eacae7587 100644 --- a/packages/kbn-monaco/src/painless/antlr/painless_parser.ts +++ b/packages/kbn-monaco/src/painless/antlr/painless_parser.ts @@ -1,32 +1,23 @@ // @ts-nocheck -// Generated from ./src/painless/antlr/painless_parser.g4 by ANTLR 4.7.3-SNAPSHOT - - -import { ATN } from "antlr4ts/atn/ATN"; -import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer"; -import { FailedPredicateException } from "antlr4ts/FailedPredicateException"; -import { NotNull } from "antlr4ts/Decorators"; -import { NoViableAltException } from "antlr4ts/NoViableAltException"; -import { Override } from "antlr4ts/Decorators"; -import { Parser } from "antlr4ts/Parser"; -import { ParserRuleContext } from "antlr4ts/ParserRuleContext"; -import { ParserATNSimulator } from "antlr4ts/atn/ParserATNSimulator"; -import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener"; -import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor"; -import { RecognitionException } from "antlr4ts/RecognitionException"; -import { RuleContext } from "antlr4ts/RuleContext"; -//import { RuleVersion } from "antlr4ts/RuleVersion"; -import { TerminalNode } from "antlr4ts/tree/TerminalNode"; -import { Token } from "antlr4ts/Token"; -import { TokenStream } from "antlr4ts/TokenStream"; -import { Vocabulary } from "antlr4ts/Vocabulary"; -import { VocabularyImpl } from "antlr4ts/VocabularyImpl"; - -import * as Utils from "antlr4ts/misc/Utils"; - -import { painless_parserListener } from "./painless_parser_listener"; - -export class painless_parser extends Parser { +// Generated from ./src/painless/antlr/painless_parser.g4 by ANTLR 4.13.1 +// noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols + +import { + ATN, + ATNDeserializer, DecisionState, DFA, FailedPredicateException, + RecognitionException, NoViableAltException, BailErrorStrategy, + Parser, ParserATNSimulator, + RuleContext, ParserRuleContext, PredictionMode, PredictionContextCache, + TerminalNode, RuleNode, + Token, TokenStream, + Interval, IntervalSet +} from 'antlr4'; +import painless_parserListener from "./painless_parserListener.js"; +// for running tests with parameters, TODO: discuss strategy for typed parameters in CI +// eslint-disable-next-line no-unused-vars +type int = number; + +export default class painless_parser extends Parser { public static readonly WS = 1; public static readonly COMMENT = 2; public static readonly LBRACK = 3; @@ -113,6 +104,7 @@ export class painless_parser extends Parser { public static readonly ID = 84; public static readonly DOTINTEGER = 85; public static readonly DOTID = 86; + public static readonly EOF = Token.EOF; public static readonly RULE_source = 0; public static readonly RULE_function = 1; public static readonly RULE_parameters = 2; @@ -152,6 +144,97 @@ export class painless_parser extends Parser { public static readonly RULE_lambda = 36; public static readonly RULE_lamtype = 37; public static readonly RULE_funcref = 38; + public static readonly literalNames: (string | null)[] = [ null, null, + null, "'{'", + "'}'", "'['", + "']'", "'('", + "')'", "'$'", + "'.'", "'?.'", + "','", "';'", + "'if'", "'in'", + "'else'", "'while'", + "'do'", "'for'", + "'continue'", + "'break'", "'return'", + "'new'", "'try'", + "'catch'", "'throw'", + "'this'", "'instanceof'", + "'!'", "'~'", + "'*'", "'/'", + "'%'", "'+'", + "'-'", "'<<'", + "'>>'", "'>>>'", + "'<'", "'<='", + "'>'", "'>='", + "'=='", "'==='", + "'!='", "'!=='", + "'&'", "'^'", + "'|'", "'&&'", + "'||'", "'?'", + "':'", "'?:'", + "'::'", "'->'", + "'=~'", "'==~'", + "'++'", "'--'", + "'='", "'+='", + "'-='", "'*='", + "'/='", "'%='", + "'&='", "'^='", + "'|='", "'<<='", + "'>>='", "'>>>='", + null, null, + null, null, + null, null, + "'true'", "'false'", + "'null'", null, + "'def'" ]; + public static readonly symbolicNames: (string | null)[] = [ null, "WS", + "COMMENT", + "LBRACK", "RBRACK", + "LBRACE", "RBRACE", + "LP", "RP", + "DOLLAR", "DOT", + "NSDOT", "COMMA", + "SEMICOLON", + "IF", "IN", + "ELSE", "WHILE", + "DO", "FOR", + "CONTINUE", + "BREAK", "RETURN", + "NEW", "TRY", + "CATCH", "THROW", + "THIS", "INSTANCEOF", + "BOOLNOT", + "BWNOT", "MUL", + "DIV", "REM", + "ADD", "SUB", + "LSH", "RSH", + "USH", "LT", + "LTE", "GT", + "GTE", "EQ", + "EQR", "NE", + "NER", "BWAND", + "XOR", "BWOR", + "BOOLAND", + "BOOLOR", "COND", + "COLON", "ELVIS", + "REF", "ARROW", + "FIND", "MATCH", + "INCR", "DECR", + "ASSIGN", "AADD", + "ASUB", "AMUL", + "ADIV", "AREM", + "AAND", "AXOR", + "AOR", "ALSH", + "ARSH", "AUSH", + "OCTAL", "HEX", + "INTEGER", + "DECIMAL", + "STRING", "REGEX", + "TRUE", "FALSE", + "NULL", "PRIMITIVE", + "DEF", "ID", + "DOTINTEGER", + "DOTID" ]; // tslint:disable:no-trailing-whitespace public static readonly ruleNames: string[] = [ "source", "function", "parameters", "statement", "rstatement", "dstatement", @@ -162,82 +245,49 @@ export class painless_parser extends Parser { "braceaccess", "arrayinitializer", "listinitializer", "mapinitializer", "maptoken", "arguments", "argument", "lambda", "lamtype", "funcref", ]; - - private static readonly _LITERAL_NAMES: Array = [ - undefined, undefined, undefined, "'{'", "'}'", "'['", "']'", "'('", "')'", - "'$'", "'.'", "'?.'", "','", "';'", "'if'", "'in'", "'else'", "'while'", - "'do'", "'for'", "'continue'", "'break'", "'return'", "'new'", "'try'", - "'catch'", "'throw'", "'this'", "'instanceof'", "'!'", "'~'", "'*'", "'/'", - "'%'", "'+'", "'-'", "'<<'", "'>>'", "'>>>'", "'<'", "'<='", "'>'", "'>='", - "'=='", "'==='", "'!='", "'!=='", "'&'", "'^'", "'|'", "'&&'", "'||'", - "'?'", "':'", "'?:'", "'::'", "'->'", "'=~'", "'==~'", "'++'", "'--'", - "'='", "'+='", "'-='", "'*='", "'/='", "'%='", "'&='", "'^='", "'|='", - "'<<='", "'>>='", "'>>>='", undefined, undefined, undefined, undefined, - undefined, undefined, "'true'", "'false'", "'null'", undefined, "'def'", - ]; - private static readonly _SYMBOLIC_NAMES: Array = [ - undefined, "WS", "COMMENT", "LBRACK", "RBRACK", "LBRACE", "RBRACE", "LP", - "RP", "DOLLAR", "DOT", "NSDOT", "COMMA", "SEMICOLON", "IF", "IN", "ELSE", - "WHILE", "DO", "FOR", "CONTINUE", "BREAK", "RETURN", "NEW", "TRY", "CATCH", - "THROW", "THIS", "INSTANCEOF", "BOOLNOT", "BWNOT", "MUL", "DIV", "REM", - "ADD", "SUB", "LSH", "RSH", "USH", "LT", "LTE", "GT", "GTE", "EQ", "EQR", - "NE", "NER", "BWAND", "XOR", "BWOR", "BOOLAND", "BOOLOR", "COND", "COLON", - "ELVIS", "REF", "ARROW", "FIND", "MATCH", "INCR", "DECR", "ASSIGN", "AADD", - "ASUB", "AMUL", "ADIV", "AREM", "AAND", "AXOR", "AOR", "ALSH", "ARSH", - "AUSH", "OCTAL", "HEX", "INTEGER", "DECIMAL", "STRING", "REGEX", "TRUE", - "FALSE", "NULL", "PRIMITIVE", "DEF", "ID", "DOTINTEGER", "DOTID", - ]; - public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(painless_parser._LITERAL_NAMES, painless_parser._SYMBOLIC_NAMES, []); - - // @Override - // @NotNull - public get vocabulary(): Vocabulary { - return painless_parser.VOCABULARY; - } - // tslint:enable:no-trailing-whitespace - - // @Override public get grammarFileName(): string { return "painless_parser.g4"; } - - // @Override + public get literalNames(): (string | null)[] { return painless_parser.literalNames; } + public get symbolicNames(): (string | null)[] { return painless_parser.symbolicNames; } public get ruleNames(): string[] { return painless_parser.ruleNames; } + public get serializedATN(): number[] { return painless_parser._serializedATN; } - // @Override - public get serializedATN(): string { return painless_parser._serializedATN; } + protected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException { + return new FailedPredicateException(this, predicate, message); + } constructor(input: TokenStream) { super(input); - this._interp = new ParserATNSimulator(painless_parser._ATN, this); + this._interp = new ParserATNSimulator(this, painless_parser._ATN, painless_parser.DecisionsToDFA, new PredictionContextCache()); } // @RuleVersion(0) public source(): SourceContext { - let _localctx: SourceContext = new SourceContext(this._ctx, this.state); - this.enterRule(_localctx, 0, painless_parser.RULE_source); + let localctx: SourceContext = new SourceContext(this, this._ctx, this.state); + this.enterRule(localctx, 0, painless_parser.RULE_source); let _la: number; try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 81; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 0, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 0, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { this.state = 78; - this.function(); + this.function_(); } } } this.state = 83; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 0, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 0, this._ctx); } this.state = 87; this._errHandler.sync(this); _la = this._input.LA(1); - while (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & ((1 << (painless_parser.LBRACE - 5)) | (1 << (painless_parser.LP - 5)) | (1 << (painless_parser.DOLLAR - 5)) | (1 << (painless_parser.IF - 5)) | (1 << (painless_parser.WHILE - 5)) | (1 << (painless_parser.DO - 5)) | (1 << (painless_parser.FOR - 5)) | (1 << (painless_parser.CONTINUE - 5)) | (1 << (painless_parser.BREAK - 5)) | (1 << (painless_parser.RETURN - 5)) | (1 << (painless_parser.NEW - 5)) | (1 << (painless_parser.TRY - 5)) | (1 << (painless_parser.THROW - 5)) | (1 << (painless_parser.BOOLNOT - 5)) | (1 << (painless_parser.BWNOT - 5)) | (1 << (painless_parser.ADD - 5)) | (1 << (painless_parser.SUB - 5)))) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & ((1 << (painless_parser.INCR - 59)) | (1 << (painless_parser.DECR - 59)) | (1 << (painless_parser.OCTAL - 59)) | (1 << (painless_parser.HEX - 59)) | (1 << (painless_parser.INTEGER - 59)) | (1 << (painless_parser.DECIMAL - 59)) | (1 << (painless_parser.STRING - 59)) | (1 << (painless_parser.REGEX - 59)) | (1 << (painless_parser.TRUE - 59)) | (1 << (painless_parser.FALSE - 59)) | (1 << (painless_parser.NULL - 59)) | (1 << (painless_parser.PRIMITIVE - 59)) | (1 << (painless_parser.DEF - 59)) | (1 << (painless_parser.ID - 59)))) !== 0)) { + while (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & 1664086549) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 67092483) !== 0)) { { { this.state = 84; @@ -254,7 +304,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -264,14 +314,14 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) - public function(): FunctionContext { - let _localctx: FunctionContext = new FunctionContext(this._ctx, this.state); - this.enterRule(_localctx, 2, painless_parser.RULE_function); + public function_(): FunctionContext { + let localctx: FunctionContext = new FunctionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2, painless_parser.RULE_function); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 92; this.decltype(); @@ -285,7 +335,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -295,22 +345,22 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public parameters(): ParametersContext { - let _localctx: ParametersContext = new ParametersContext(this._ctx, this.state); - this.enterRule(_localctx, 4, painless_parser.RULE_parameters); + let localctx: ParametersContext = new ParametersContext(this, this._ctx, this.state); + this.enterRule(localctx, 4, painless_parser.RULE_parameters); let _la: number; try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 97; this.match(painless_parser.LP); this.state = 109; this._errHandler.sync(this); _la = this._input.LA(1); - if (((((_la - 82)) & ~0x1F) === 0 && ((1 << (_la - 82)) & ((1 << (painless_parser.PRIMITIVE - 82)) | (1 << (painless_parser.DEF - 82)) | (1 << (painless_parser.ID - 82)))) !== 0)) { + if (((((_la - 82)) & ~0x1F) === 0 && ((1 << (_la - 82)) & 7) !== 0)) { { this.state = 98; this.decltype(); @@ -319,7 +369,7 @@ export class painless_parser extends Parser { this.state = 106; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la === painless_parser.COMMA) { + while (_la===12) { { { this.state = 100; @@ -343,7 +393,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -353,69 +403,66 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public statement(): StatementContext { - let _localctx: StatementContext = new StatementContext(this._ctx, this.state); - this.enterRule(_localctx, 6, painless_parser.RULE_statement); + let localctx: StatementContext = new StatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 6, painless_parser.RULE_statement); let _la: number; try { this.state = 117; this._errHandler.sync(this); switch (this._input.LA(1)) { - case painless_parser.IF: - case painless_parser.WHILE: - case painless_parser.FOR: - case painless_parser.TRY: - this.enterOuterAlt(_localctx, 1); + case 14: + case 17: + case 19: + case 24: + this.enterOuterAlt(localctx, 1); { this.state = 113; this.rstatement(); } break; - case painless_parser.LBRACE: - case painless_parser.LP: - case painless_parser.DOLLAR: - case painless_parser.DO: - case painless_parser.CONTINUE: - case painless_parser.BREAK: - case painless_parser.RETURN: - case painless_parser.NEW: - case painless_parser.THROW: - case painless_parser.BOOLNOT: - case painless_parser.BWNOT: - case painless_parser.ADD: - case painless_parser.SUB: - case painless_parser.INCR: - case painless_parser.DECR: - case painless_parser.OCTAL: - case painless_parser.HEX: - case painless_parser.INTEGER: - case painless_parser.DECIMAL: - case painless_parser.STRING: - case painless_parser.REGEX: - case painless_parser.TRUE: - case painless_parser.FALSE: - case painless_parser.NULL: - case painless_parser.PRIMITIVE: - case painless_parser.DEF: - case painless_parser.ID: - this.enterOuterAlt(_localctx, 2); + case 5: + case 7: + case 9: + case 18: + case 20: + case 21: + case 22: + case 23: + case 26: + case 29: + case 30: + case 34: + case 35: + case 59: + case 60: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + this.enterOuterAlt(localctx, 2); { this.state = 114; this.dstatement(); this.state = 115; _la = this._input.LA(1); - if (!(_la === painless_parser.EOF || _la === painless_parser.SEMICOLON)) { + if(!(_la===-1 || _la===13)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } } break; @@ -425,7 +472,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -435,21 +482,21 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public rstatement(): RstatementContext { - let _localctx: RstatementContext = new RstatementContext(this._ctx, this.state); - this.enterRule(_localctx, 8, painless_parser.RULE_rstatement); + let localctx: RstatementContext = new RstatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 8, painless_parser.RULE_rstatement); let _la: number; try { let _alt: number; this.state = 179; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 12, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 12, this._ctx) ) { case 1: - _localctx = new IfContext(_localctx); - this.enterOuterAlt(_localctx, 1); + localctx = new IfContext(this, localctx); + this.enterOuterAlt(localctx, 1); { this.state = 119; this.match(painless_parser.IF); @@ -463,7 +510,7 @@ export class painless_parser extends Parser { this.trailer(); this.state = 127; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 5, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 5, this._ctx) ) { case 1: { this.state = 124; @@ -472,22 +519,20 @@ export class painless_parser extends Parser { this.trailer(); } break; - case 2: { this.state = 126; if (!( this._input.LA(1) != painless_parser.ELSE )) { - throw new FailedPredicateException(this, " this._input.LA(1) != painless_parser.ELSE "); + throw this.createFailedPredicateException(" this._input.LA(1) != painless_parser.ELSE "); } } break; } } break; - case 2: - _localctx = new WhileContext(_localctx); - this.enterOuterAlt(_localctx, 2); + localctx = new WhileContext(this, localctx); + this.enterOuterAlt(localctx, 2); { this.state = 129; this.match(painless_parser.WHILE); @@ -500,44 +545,44 @@ export class painless_parser extends Parser { this.state = 135; this._errHandler.sync(this); switch (this._input.LA(1)) { - case painless_parser.LBRACK: - case painless_parser.LBRACE: - case painless_parser.LP: - case painless_parser.DOLLAR: - case painless_parser.IF: - case painless_parser.WHILE: - case painless_parser.DO: - case painless_parser.FOR: - case painless_parser.CONTINUE: - case painless_parser.BREAK: - case painless_parser.RETURN: - case painless_parser.NEW: - case painless_parser.TRY: - case painless_parser.THROW: - case painless_parser.BOOLNOT: - case painless_parser.BWNOT: - case painless_parser.ADD: - case painless_parser.SUB: - case painless_parser.INCR: - case painless_parser.DECR: - case painless_parser.OCTAL: - case painless_parser.HEX: - case painless_parser.INTEGER: - case painless_parser.DECIMAL: - case painless_parser.STRING: - case painless_parser.REGEX: - case painless_parser.TRUE: - case painless_parser.FALSE: - case painless_parser.NULL: - case painless_parser.PRIMITIVE: - case painless_parser.DEF: - case painless_parser.ID: + case 3: + case 5: + case 7: + case 9: + case 14: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 26: + case 29: + case 30: + case 34: + case 35: + case 59: + case 60: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: { this.state = 133; this.trailer(); } break; - case painless_parser.SEMICOLON: + case 13: { this.state = 134; this.empty(); @@ -548,10 +593,9 @@ export class painless_parser extends Parser { } } break; - case 3: - _localctx = new ForContext(_localctx); - this.enterOuterAlt(_localctx, 3); + localctx = new ForContext(this, localctx); + this.enterOuterAlt(localctx, 3); { this.state = 137; this.match(painless_parser.FOR); @@ -560,7 +604,7 @@ export class painless_parser extends Parser { this.state = 140; this._errHandler.sync(this); _la = this._input.LA(1); - if (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & ((1 << (painless_parser.LBRACE - 5)) | (1 << (painless_parser.LP - 5)) | (1 << (painless_parser.DOLLAR - 5)) | (1 << (painless_parser.NEW - 5)) | (1 << (painless_parser.BOOLNOT - 5)) | (1 << (painless_parser.BWNOT - 5)) | (1 << (painless_parser.ADD - 5)) | (1 << (painless_parser.SUB - 5)))) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & ((1 << (painless_parser.INCR - 59)) | (1 << (painless_parser.DECR - 59)) | (1 << (painless_parser.OCTAL - 59)) | (1 << (painless_parser.HEX - 59)) | (1 << (painless_parser.INTEGER - 59)) | (1 << (painless_parser.DECIMAL - 59)) | (1 << (painless_parser.STRING - 59)) | (1 << (painless_parser.REGEX - 59)) | (1 << (painless_parser.TRUE - 59)) | (1 << (painless_parser.FALSE - 59)) | (1 << (painless_parser.NULL - 59)) | (1 << (painless_parser.PRIMITIVE - 59)) | (1 << (painless_parser.DEF - 59)) | (1 << (painless_parser.ID - 59)))) !== 0)) { + if (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & 1661206549) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 67092483) !== 0)) { { this.state = 139; this.initializer(); @@ -572,7 +616,7 @@ export class painless_parser extends Parser { this.state = 144; this._errHandler.sync(this); _la = this._input.LA(1); - if (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & ((1 << (painless_parser.LBRACE - 5)) | (1 << (painless_parser.LP - 5)) | (1 << (painless_parser.DOLLAR - 5)) | (1 << (painless_parser.NEW - 5)) | (1 << (painless_parser.BOOLNOT - 5)) | (1 << (painless_parser.BWNOT - 5)) | (1 << (painless_parser.ADD - 5)) | (1 << (painless_parser.SUB - 5)))) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & ((1 << (painless_parser.INCR - 59)) | (1 << (painless_parser.DECR - 59)) | (1 << (painless_parser.OCTAL - 59)) | (1 << (painless_parser.HEX - 59)) | (1 << (painless_parser.INTEGER - 59)) | (1 << (painless_parser.DECIMAL - 59)) | (1 << (painless_parser.STRING - 59)) | (1 << (painless_parser.REGEX - 59)) | (1 << (painless_parser.TRUE - 59)) | (1 << (painless_parser.FALSE - 59)) | (1 << (painless_parser.NULL - 59)) | (1 << (painless_parser.ID - 59)))) !== 0)) { + if (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & 1661206549) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 41926659) !== 0)) { { this.state = 143; this.expression(); @@ -584,7 +628,7 @@ export class painless_parser extends Parser { this.state = 148; this._errHandler.sync(this); _la = this._input.LA(1); - if (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & ((1 << (painless_parser.LBRACE - 5)) | (1 << (painless_parser.LP - 5)) | (1 << (painless_parser.DOLLAR - 5)) | (1 << (painless_parser.NEW - 5)) | (1 << (painless_parser.BOOLNOT - 5)) | (1 << (painless_parser.BWNOT - 5)) | (1 << (painless_parser.ADD - 5)) | (1 << (painless_parser.SUB - 5)))) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & ((1 << (painless_parser.INCR - 59)) | (1 << (painless_parser.DECR - 59)) | (1 << (painless_parser.OCTAL - 59)) | (1 << (painless_parser.HEX - 59)) | (1 << (painless_parser.INTEGER - 59)) | (1 << (painless_parser.DECIMAL - 59)) | (1 << (painless_parser.STRING - 59)) | (1 << (painless_parser.REGEX - 59)) | (1 << (painless_parser.TRUE - 59)) | (1 << (painless_parser.FALSE - 59)) | (1 << (painless_parser.NULL - 59)) | (1 << (painless_parser.ID - 59)))) !== 0)) { + if (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & 1661206549) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 41926659) !== 0)) { { this.state = 147; this.afterthought(); @@ -596,44 +640,44 @@ export class painless_parser extends Parser { this.state = 153; this._errHandler.sync(this); switch (this._input.LA(1)) { - case painless_parser.LBRACK: - case painless_parser.LBRACE: - case painless_parser.LP: - case painless_parser.DOLLAR: - case painless_parser.IF: - case painless_parser.WHILE: - case painless_parser.DO: - case painless_parser.FOR: - case painless_parser.CONTINUE: - case painless_parser.BREAK: - case painless_parser.RETURN: - case painless_parser.NEW: - case painless_parser.TRY: - case painless_parser.THROW: - case painless_parser.BOOLNOT: - case painless_parser.BWNOT: - case painless_parser.ADD: - case painless_parser.SUB: - case painless_parser.INCR: - case painless_parser.DECR: - case painless_parser.OCTAL: - case painless_parser.HEX: - case painless_parser.INTEGER: - case painless_parser.DECIMAL: - case painless_parser.STRING: - case painless_parser.REGEX: - case painless_parser.TRUE: - case painless_parser.FALSE: - case painless_parser.NULL: - case painless_parser.PRIMITIVE: - case painless_parser.DEF: - case painless_parser.ID: + case 3: + case 5: + case 7: + case 9: + case 14: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 26: + case 29: + case 30: + case 34: + case 35: + case 59: + case 60: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: { this.state = 151; this.trailer(); } break; - case painless_parser.SEMICOLON: + case 13: { this.state = 152; this.empty(); @@ -644,10 +688,9 @@ export class painless_parser extends Parser { } } break; - case 4: - _localctx = new EachContext(_localctx); - this.enterOuterAlt(_localctx, 4); + localctx = new EachContext(this, localctx); + this.enterOuterAlt(localctx, 4); { this.state = 155; this.match(painless_parser.FOR); @@ -667,10 +710,9 @@ export class painless_parser extends Parser { this.trailer(); } break; - case 5: - _localctx = new IneachContext(_localctx); - this.enterOuterAlt(_localctx, 5); + localctx = new IneachContext(this, localctx); + this.enterOuterAlt(localctx, 5); { this.state = 164; this.match(painless_parser.FOR); @@ -688,10 +730,9 @@ export class painless_parser extends Parser { this.trailer(); } break; - case 6: - _localctx = new TryContext(_localctx); - this.enterOuterAlt(_localctx, 6); + localctx = new TryContext(this, localctx); + this.enterOuterAlt(localctx, 6); { this.state = 172; this.match(painless_parser.TRY); @@ -715,7 +756,7 @@ export class painless_parser extends Parser { } this.state = 177; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 11, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 11, this._ctx); } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); } break; @@ -723,7 +764,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -733,20 +774,20 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public dstatement(): DstatementContext { - let _localctx: DstatementContext = new DstatementContext(this._ctx, this.state); - this.enterRule(_localctx, 10, painless_parser.RULE_dstatement); + let localctx: DstatementContext = new DstatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 10, painless_parser.RULE_dstatement); let _la: number; try { this.state = 198; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 14, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 14, this._ctx) ) { case 1: - _localctx = new DoContext(_localctx); - this.enterOuterAlt(_localctx, 1); + localctx = new DoContext(this, localctx); + this.enterOuterAlt(localctx, 1); { this.state = 181; this.match(painless_parser.DO); @@ -762,44 +803,40 @@ export class painless_parser extends Parser { this.match(painless_parser.RP); } break; - case 2: - _localctx = new DeclContext(_localctx); - this.enterOuterAlt(_localctx, 2); + localctx = new DeclContext(this, localctx); + this.enterOuterAlt(localctx, 2); { this.state = 188; this.declaration(); } break; - case 3: - _localctx = new ContinueContext(_localctx); - this.enterOuterAlt(_localctx, 3); + localctx = new ContinueContext(this, localctx); + this.enterOuterAlt(localctx, 3); { this.state = 189; this.match(painless_parser.CONTINUE); } break; - case 4: - _localctx = new BreakContext(_localctx); - this.enterOuterAlt(_localctx, 4); + localctx = new BreakContext(this, localctx); + this.enterOuterAlt(localctx, 4); { this.state = 190; this.match(painless_parser.BREAK); } break; - case 5: - _localctx = new ReturnContext(_localctx); - this.enterOuterAlt(_localctx, 5); + localctx = new ReturnContext(this, localctx); + this.enterOuterAlt(localctx, 5); { this.state = 191; this.match(painless_parser.RETURN); this.state = 193; this._errHandler.sync(this); _la = this._input.LA(1); - if (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & ((1 << (painless_parser.LBRACE - 5)) | (1 << (painless_parser.LP - 5)) | (1 << (painless_parser.DOLLAR - 5)) | (1 << (painless_parser.NEW - 5)) | (1 << (painless_parser.BOOLNOT - 5)) | (1 << (painless_parser.BWNOT - 5)) | (1 << (painless_parser.ADD - 5)) | (1 << (painless_parser.SUB - 5)))) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & ((1 << (painless_parser.INCR - 59)) | (1 << (painless_parser.DECR - 59)) | (1 << (painless_parser.OCTAL - 59)) | (1 << (painless_parser.HEX - 59)) | (1 << (painless_parser.INTEGER - 59)) | (1 << (painless_parser.DECIMAL - 59)) | (1 << (painless_parser.STRING - 59)) | (1 << (painless_parser.REGEX - 59)) | (1 << (painless_parser.TRUE - 59)) | (1 << (painless_parser.FALSE - 59)) | (1 << (painless_parser.NULL - 59)) | (1 << (painless_parser.ID - 59)))) !== 0)) { + if (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & 1661206549) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 41926659) !== 0)) { { this.state = 192; this.expression(); @@ -808,10 +845,9 @@ export class painless_parser extends Parser { } break; - case 6: - _localctx = new ThrowContext(_localctx); - this.enterOuterAlt(_localctx, 6); + localctx = new ThrowContext(this, localctx); + this.enterOuterAlt(localctx, 6); { this.state = 195; this.match(painless_parser.THROW); @@ -819,10 +855,9 @@ export class painless_parser extends Parser { this.expression(); } break; - case 7: - _localctx = new ExprContext(_localctx); - this.enterOuterAlt(_localctx, 7); + localctx = new ExprContext(this, localctx); + this.enterOuterAlt(localctx, 7); { this.state = 197; this.expression(); @@ -832,7 +867,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -842,55 +877,55 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public trailer(): TrailerContext { - let _localctx: TrailerContext = new TrailerContext(this._ctx, this.state); - this.enterRule(_localctx, 12, painless_parser.RULE_trailer); + let localctx: TrailerContext = new TrailerContext(this, this._ctx, this.state); + this.enterRule(localctx, 12, painless_parser.RULE_trailer); try { this.state = 202; this._errHandler.sync(this); switch (this._input.LA(1)) { - case painless_parser.LBRACK: - this.enterOuterAlt(_localctx, 1); + case 3: + this.enterOuterAlt(localctx, 1); { this.state = 200; this.block(); } break; - case painless_parser.LBRACE: - case painless_parser.LP: - case painless_parser.DOLLAR: - case painless_parser.IF: - case painless_parser.WHILE: - case painless_parser.DO: - case painless_parser.FOR: - case painless_parser.CONTINUE: - case painless_parser.BREAK: - case painless_parser.RETURN: - case painless_parser.NEW: - case painless_parser.TRY: - case painless_parser.THROW: - case painless_parser.BOOLNOT: - case painless_parser.BWNOT: - case painless_parser.ADD: - case painless_parser.SUB: - case painless_parser.INCR: - case painless_parser.DECR: - case painless_parser.OCTAL: - case painless_parser.HEX: - case painless_parser.INTEGER: - case painless_parser.DECIMAL: - case painless_parser.STRING: - case painless_parser.REGEX: - case painless_parser.TRUE: - case painless_parser.FALSE: - case painless_parser.NULL: - case painless_parser.PRIMITIVE: - case painless_parser.DEF: - case painless_parser.ID: - this.enterOuterAlt(_localctx, 2); + case 5: + case 7: + case 9: + case 14: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 26: + case 29: + case 30: + case 34: + case 35: + case 59: + case 60: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + this.enterOuterAlt(localctx, 2); { this.state = 201; this.statement(); @@ -902,7 +937,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -912,22 +947,22 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public block(): BlockContext { - let _localctx: BlockContext = new BlockContext(this._ctx, this.state); - this.enterRule(_localctx, 14, painless_parser.RULE_block); + let localctx: BlockContext = new BlockContext(this, this._ctx, this.state); + this.enterRule(localctx, 14, painless_parser.RULE_block); let _la: number; try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 204; this.match(painless_parser.LBRACK); this.state = 208; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 16, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 16, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { @@ -939,12 +974,12 @@ export class painless_parser extends Parser { } this.state = 210; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 16, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 16, this._ctx); } this.state = 212; this._errHandler.sync(this); _la = this._input.LA(1); - if (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & ((1 << (painless_parser.LBRACE - 5)) | (1 << (painless_parser.LP - 5)) | (1 << (painless_parser.DOLLAR - 5)) | (1 << (painless_parser.DO - 5)) | (1 << (painless_parser.CONTINUE - 5)) | (1 << (painless_parser.BREAK - 5)) | (1 << (painless_parser.RETURN - 5)) | (1 << (painless_parser.NEW - 5)) | (1 << (painless_parser.THROW - 5)) | (1 << (painless_parser.BOOLNOT - 5)) | (1 << (painless_parser.BWNOT - 5)) | (1 << (painless_parser.ADD - 5)) | (1 << (painless_parser.SUB - 5)))) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & ((1 << (painless_parser.INCR - 59)) | (1 << (painless_parser.DECR - 59)) | (1 << (painless_parser.OCTAL - 59)) | (1 << (painless_parser.HEX - 59)) | (1 << (painless_parser.INTEGER - 59)) | (1 << (painless_parser.DECIMAL - 59)) | (1 << (painless_parser.STRING - 59)) | (1 << (painless_parser.REGEX - 59)) | (1 << (painless_parser.TRUE - 59)) | (1 << (painless_parser.FALSE - 59)) | (1 << (painless_parser.NULL - 59)) | (1 << (painless_parser.PRIMITIVE - 59)) | (1 << (painless_parser.DEF - 59)) | (1 << (painless_parser.ID - 59)))) !== 0)) { + if (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & 1663541269) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 67092483) !== 0)) { { this.state = 211; this.dstatement(); @@ -957,7 +992,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -967,14 +1002,14 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public empty(): EmptyContext { - let _localctx: EmptyContext = new EmptyContext(this._ctx, this.state); - this.enterRule(_localctx, 16, painless_parser.RULE_empty); + let localctx: EmptyContext = new EmptyContext(this, this._ctx, this.state); + this.enterRule(localctx, 16, painless_parser.RULE_empty); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 216; this.match(painless_parser.SEMICOLON); @@ -982,7 +1017,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -992,26 +1027,25 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public initializer(): InitializerContext { - let _localctx: InitializerContext = new InitializerContext(this._ctx, this.state); - this.enterRule(_localctx, 18, painless_parser.RULE_initializer); + let localctx: InitializerContext = new InitializerContext(this, this._ctx, this.state); + this.enterRule(localctx, 18, painless_parser.RULE_initializer); try { this.state = 220; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 18, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 18, this._ctx) ) { case 1: - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 218; this.declaration(); } break; - case 2: - this.enterOuterAlt(_localctx, 2); + this.enterOuterAlt(localctx, 2); { this.state = 219; this.expression(); @@ -1021,7 +1055,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1031,14 +1065,14 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public afterthought(): AfterthoughtContext { - let _localctx: AfterthoughtContext = new AfterthoughtContext(this._ctx, this.state); - this.enterRule(_localctx, 20, painless_parser.RULE_afterthought); + let localctx: AfterthoughtContext = new AfterthoughtContext(this, this._ctx, this.state); + this.enterRule(localctx, 20, painless_parser.RULE_afterthought); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 222; this.expression(); @@ -1046,7 +1080,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1056,15 +1090,15 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public declaration(): DeclarationContext { - let _localctx: DeclarationContext = new DeclarationContext(this._ctx, this.state); - this.enterRule(_localctx, 22, painless_parser.RULE_declaration); + let localctx: DeclarationContext = new DeclarationContext(this, this._ctx, this.state); + this.enterRule(localctx, 22, painless_parser.RULE_declaration); let _la: number; try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 224; this.decltype(); @@ -1073,7 +1107,7 @@ export class painless_parser extends Parser { this.state = 230; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la === painless_parser.COMMA) { + while (_la===12) { { { this.state = 226; @@ -1090,7 +1124,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1100,21 +1134,21 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public decltype(): DecltypeContext { - let _localctx: DecltypeContext = new DecltypeContext(this._ctx, this.state); - this.enterRule(_localctx, 24, painless_parser.RULE_decltype); + let localctx: DecltypeContext = new DecltypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 24, painless_parser.RULE_decltype); try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 233; - this.type(); + this.type_(); this.state = 238; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 20, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 20, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { @@ -1128,13 +1162,13 @@ export class painless_parser extends Parser { } this.state = 240; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 20, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 20, this._ctx); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1144,39 +1178,39 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) - public type(): TypeContext { - let _localctx: TypeContext = new TypeContext(this._ctx, this.state); - this.enterRule(_localctx, 26, painless_parser.RULE_type); + public type_(): TypeContext { + let localctx: TypeContext = new TypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 26, painless_parser.RULE_type); try { let _alt: number; this.state = 251; this._errHandler.sync(this); switch (this._input.LA(1)) { - case painless_parser.DEF: - this.enterOuterAlt(_localctx, 1); + case 83: + this.enterOuterAlt(localctx, 1); { this.state = 241; this.match(painless_parser.DEF); } break; - case painless_parser.PRIMITIVE: - this.enterOuterAlt(_localctx, 2); + case 82: + this.enterOuterAlt(localctx, 2); { this.state = 242; this.match(painless_parser.PRIMITIVE); } break; - case painless_parser.ID: - this.enterOuterAlt(_localctx, 3); + case 84: + this.enterOuterAlt(localctx, 3); { this.state = 243; this.match(painless_parser.ID); this.state = 248; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 21, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 21, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { @@ -1190,7 +1224,7 @@ export class painless_parser extends Parser { } this.state = 250; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 21, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 21, this._ctx); } } break; @@ -1200,7 +1234,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1210,22 +1244,22 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public declvar(): DeclvarContext { - let _localctx: DeclvarContext = new DeclvarContext(this._ctx, this.state); - this.enterRule(_localctx, 28, painless_parser.RULE_declvar); + let localctx: DeclvarContext = new DeclvarContext(this, this._ctx, this.state); + this.enterRule(localctx, 28, painless_parser.RULE_declvar); let _la: number; try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 253; this.match(painless_parser.ID); this.state = 256; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === painless_parser.ASSIGN) { + if (_la===61) { { this.state = 254; this.match(painless_parser.ASSIGN); @@ -1238,7 +1272,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1248,21 +1282,21 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public trap(): TrapContext { - let _localctx: TrapContext = new TrapContext(this._ctx, this.state); - this.enterRule(_localctx, 30, painless_parser.RULE_trap); + let localctx: TrapContext = new TrapContext(this, this._ctx, this.state); + this.enterRule(localctx, 30, painless_parser.RULE_trap); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 258; this.match(painless_parser.CATCH); this.state = 259; this.match(painless_parser.LP); this.state = 260; - this.type(); + this.type_(); this.state = 261; this.match(painless_parser.ID); this.state = 262; @@ -1273,7 +1307,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1283,7 +1317,7 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } public noncondexpression(): NoncondexpressionContext; @@ -1296,194 +1330,170 @@ export class painless_parser extends Parser { let _parentctx: ParserRuleContext = this._ctx; let _parentState: number = this.state; - let _localctx: NoncondexpressionContext = new NoncondexpressionContext(this._ctx, _parentState); - let _prevctx: NoncondexpressionContext = _localctx; + let localctx: NoncondexpressionContext = new NoncondexpressionContext(this, this._ctx, _parentState); + let _prevctx: NoncondexpressionContext = localctx; let _startState: number = 32; - this.enterRecursionRule(_localctx, 32, painless_parser.RULE_noncondexpression, _p); + this.enterRecursionRule(localctx, 32, painless_parser.RULE_noncondexpression, _p); let _la: number; try { let _alt: number; - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { { - _localctx = new SingleContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; + localctx = new SingleContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; this.state = 266; this.unary(); } - this._ctx._stop = this._input.tryLT(-1); + this._ctx.stop = this._input.LT(-1); this.state = 309; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 25, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 25, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { if (this._parseListeners != null) { this.triggerExitRuleEvent(); } - _prevctx = _localctx; + _prevctx = localctx; { this.state = 307; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 24, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 24, this._ctx) ) { case 1: { - _localctx = new BinaryContext(new NoncondexpressionContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, painless_parser.RULE_noncondexpression); + localctx = new BinaryContext(this, new NoncondexpressionContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression); this.state = 268; if (!(this.precpred(this._ctx, 13))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 13)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 13)"); } this.state = 269; _la = this._input.LA(1); - if (!(((((_la - 31)) & ~0x1F) === 0 && ((1 << (_la - 31)) & ((1 << (painless_parser.MUL - 31)) | (1 << (painless_parser.DIV - 31)) | (1 << (painless_parser.REM - 31)))) !== 0))) { + if(!(((((_la - 31)) & ~0x1F) === 0 && ((1 << (_la - 31)) & 7) !== 0))) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } this.state = 270; this.noncondexpression(14); } break; - case 2: { - _localctx = new BinaryContext(new NoncondexpressionContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, painless_parser.RULE_noncondexpression); + localctx = new BinaryContext(this, new NoncondexpressionContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression); this.state = 271; if (!(this.precpred(this._ctx, 12))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 12)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 12)"); } this.state = 272; _la = this._input.LA(1); - if (!(_la === painless_parser.ADD || _la === painless_parser.SUB)) { + if(!(_la===34 || _la===35)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } this.state = 273; this.noncondexpression(13); } break; - case 3: { - _localctx = new BinaryContext(new NoncondexpressionContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, painless_parser.RULE_noncondexpression); + localctx = new BinaryContext(this, new NoncondexpressionContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression); this.state = 274; if (!(this.precpred(this._ctx, 11))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 11)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 11)"); } this.state = 275; _la = this._input.LA(1); - if (!(_la === painless_parser.FIND || _la === painless_parser.MATCH)) { + if(!(_la===57 || _la===58)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } this.state = 276; this.noncondexpression(12); } break; - case 4: { - _localctx = new BinaryContext(new NoncondexpressionContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, painless_parser.RULE_noncondexpression); + localctx = new BinaryContext(this, new NoncondexpressionContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression); this.state = 277; if (!(this.precpred(this._ctx, 10))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 10)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 10)"); } this.state = 278; _la = this._input.LA(1); - if (!(((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (painless_parser.LSH - 36)) | (1 << (painless_parser.RSH - 36)) | (1 << (painless_parser.USH - 36)))) !== 0))) { + if(!(((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 7) !== 0))) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } this.state = 279; this.noncondexpression(11); } break; - case 5: { - _localctx = new CompContext(new NoncondexpressionContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, painless_parser.RULE_noncondexpression); + localctx = new CompContext(this, new NoncondexpressionContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression); this.state = 280; if (!(this.precpred(this._ctx, 9))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 9)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 9)"); } this.state = 281; _la = this._input.LA(1); - if (!(((((_la - 39)) & ~0x1F) === 0 && ((1 << (_la - 39)) & ((1 << (painless_parser.LT - 39)) | (1 << (painless_parser.LTE - 39)) | (1 << (painless_parser.GT - 39)) | (1 << (painless_parser.GTE - 39)))) !== 0))) { + if(!(((((_la - 39)) & ~0x1F) === 0 && ((1 << (_la - 39)) & 15) !== 0))) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } this.state = 282; this.noncondexpression(10); } break; - case 6: { - _localctx = new CompContext(new NoncondexpressionContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, painless_parser.RULE_noncondexpression); + localctx = new CompContext(this, new NoncondexpressionContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression); this.state = 283; if (!(this.precpred(this._ctx, 7))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 7)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 7)"); } this.state = 284; _la = this._input.LA(1); - if (!(((((_la - 43)) & ~0x1F) === 0 && ((1 << (_la - 43)) & ((1 << (painless_parser.EQ - 43)) | (1 << (painless_parser.EQR - 43)) | (1 << (painless_parser.NE - 43)) | (1 << (painless_parser.NER - 43)))) !== 0))) { + if(!(((((_la - 43)) & ~0x1F) === 0 && ((1 << (_la - 43)) & 15) !== 0))) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } this.state = 285; this.noncondexpression(8); } break; - case 7: { - _localctx = new BinaryContext(new NoncondexpressionContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, painless_parser.RULE_noncondexpression); + localctx = new BinaryContext(this, new NoncondexpressionContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression); this.state = 286; if (!(this.precpred(this._ctx, 6))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 6)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 6)"); } this.state = 287; this.match(painless_parser.BWAND); @@ -1491,14 +1501,13 @@ export class painless_parser extends Parser { this.noncondexpression(7); } break; - case 8: { - _localctx = new BinaryContext(new NoncondexpressionContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, painless_parser.RULE_noncondexpression); + localctx = new BinaryContext(this, new NoncondexpressionContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression); this.state = 289; if (!(this.precpred(this._ctx, 5))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 5)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 5)"); } this.state = 290; this.match(painless_parser.XOR); @@ -1506,14 +1515,13 @@ export class painless_parser extends Parser { this.noncondexpression(6); } break; - case 9: { - _localctx = new BinaryContext(new NoncondexpressionContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, painless_parser.RULE_noncondexpression); + localctx = new BinaryContext(this, new NoncondexpressionContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression); this.state = 292; if (!(this.precpred(this._ctx, 4))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 4)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 4)"); } this.state = 293; this.match(painless_parser.BWOR); @@ -1521,14 +1529,13 @@ export class painless_parser extends Parser { this.noncondexpression(5); } break; - case 10: { - _localctx = new BoolContext(new NoncondexpressionContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, painless_parser.RULE_noncondexpression); + localctx = new BoolContext(this, new NoncondexpressionContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression); this.state = 295; if (!(this.precpred(this._ctx, 3))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 3)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 3)"); } this.state = 296; this.match(painless_parser.BOOLAND); @@ -1536,14 +1543,13 @@ export class painless_parser extends Parser { this.noncondexpression(4); } break; - case 11: { - _localctx = new BoolContext(new NoncondexpressionContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, painless_parser.RULE_noncondexpression); + localctx = new BoolContext(this, new NoncondexpressionContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression); this.state = 298; if (!(this.precpred(this._ctx, 2))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 2)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); } this.state = 299; this.match(painless_parser.BOOLOR); @@ -1551,14 +1557,13 @@ export class painless_parser extends Parser { this.noncondexpression(3); } break; - case 12: { - _localctx = new ElvisContext(new NoncondexpressionContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, painless_parser.RULE_noncondexpression); + localctx = new ElvisContext(this, new NoncondexpressionContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression); this.state = 301; if (!(this.precpred(this._ctx, 1))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 1)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 1)"); } this.state = 302; this.match(painless_parser.ELVIS); @@ -1566,14 +1571,13 @@ export class painless_parser extends Parser { this.noncondexpression(1); } break; - case 13: { - _localctx = new InstanceofContext(new NoncondexpressionContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, painless_parser.RULE_noncondexpression); + localctx = new InstanceofContext(this, new NoncondexpressionContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression); this.state = 304; if (!(this.precpred(this._ctx, 8))) { - throw new FailedPredicateException(this, "this.precpred(this._ctx, 8)"); + throw this.createFailedPredicateException("this.precpred(this._ctx, 8)"); } this.state = 305; this.match(painless_parser.INSTANCEOF); @@ -1586,13 +1590,13 @@ export class painless_parser extends Parser { } this.state = 311; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 25, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 25, this._ctx); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1602,29 +1606,28 @@ export class painless_parser extends Parser { finally { this.unrollRecursionContexts(_parentctx); } - return _localctx; + return localctx; } // @RuleVersion(0) public expression(): ExpressionContext { - let _localctx: ExpressionContext = new ExpressionContext(this._ctx, this.state); - this.enterRule(_localctx, 34, painless_parser.RULE_expression); + let localctx: ExpressionContext = new ExpressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 34, painless_parser.RULE_expression); let _la: number; try { this.state = 323; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 26, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 26, this._ctx) ) { case 1: - _localctx = new NonconditionalContext(_localctx); - this.enterOuterAlt(_localctx, 1); + localctx = new NonconditionalContext(this, localctx); + this.enterOuterAlt(localctx, 1); { this.state = 312; this.noncondexpression(0); } break; - case 2: - _localctx = new ConditionalContext(_localctx); - this.enterOuterAlt(_localctx, 2); + localctx = new ConditionalContext(this, localctx); + this.enterOuterAlt(localctx, 2); { this.state = 313; this.noncondexpression(0); @@ -1638,24 +1641,20 @@ export class painless_parser extends Parser { this.expression(); } break; - case 3: - _localctx = new AssignmentContext(_localctx); - this.enterOuterAlt(_localctx, 3); + localctx = new AssignmentContext(this, localctx); + this.enterOuterAlt(localctx, 3); { this.state = 319; this.noncondexpression(0); this.state = 320; _la = this._input.LA(1); - if (!(((((_la - 61)) & ~0x1F) === 0 && ((1 << (_la - 61)) & ((1 << (painless_parser.ASSIGN - 61)) | (1 << (painless_parser.AADD - 61)) | (1 << (painless_parser.ASUB - 61)) | (1 << (painless_parser.AMUL - 61)) | (1 << (painless_parser.ADIV - 61)) | (1 << (painless_parser.AREM - 61)) | (1 << (painless_parser.AAND - 61)) | (1 << (painless_parser.AXOR - 61)) | (1 << (painless_parser.AOR - 61)) | (1 << (painless_parser.ALSH - 61)) | (1 << (painless_parser.ARSH - 61)) | (1 << (painless_parser.AUSH - 61)))) !== 0))) { + if(!(((((_la - 61)) & ~0x1F) === 0 && ((1 << (_la - 61)) & 4095) !== 0))) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } this.state = 321; this.expression(); @@ -1665,7 +1664,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1675,77 +1674,71 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public unary(): UnaryContext { - let _localctx: UnaryContext = new UnaryContext(this._ctx, this.state); - this.enterRule(_localctx, 36, painless_parser.RULE_unary); + let localctx: UnaryContext = new UnaryContext(this, this._ctx, this.state); + this.enterRule(localctx, 36, painless_parser.RULE_unary); let _la: number; try { this.state = 330; this._errHandler.sync(this); switch (this._input.LA(1)) { - case painless_parser.INCR: - case painless_parser.DECR: - _localctx = new PreContext(_localctx); - this.enterOuterAlt(_localctx, 1); + case 59: + case 60: + localctx = new PreContext(this, localctx); + this.enterOuterAlt(localctx, 1); { this.state = 325; _la = this._input.LA(1); - if (!(_la === painless_parser.INCR || _la === painless_parser.DECR)) { + if(!(_la===59 || _la===60)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } this.state = 326; this.chain(); } break; - case painless_parser.ADD: - case painless_parser.SUB: - _localctx = new AddsubContext(_localctx); - this.enterOuterAlt(_localctx, 2); + case 34: + case 35: + localctx = new AddsubContext(this, localctx); + this.enterOuterAlt(localctx, 2); { this.state = 327; _la = this._input.LA(1); - if (!(_la === painless_parser.ADD || _la === painless_parser.SUB)) { + if(!(_la===34 || _la===35)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } this.state = 328; this.unary(); } break; - case painless_parser.LBRACE: - case painless_parser.LP: - case painless_parser.DOLLAR: - case painless_parser.NEW: - case painless_parser.BOOLNOT: - case painless_parser.BWNOT: - case painless_parser.OCTAL: - case painless_parser.HEX: - case painless_parser.INTEGER: - case painless_parser.DECIMAL: - case painless_parser.STRING: - case painless_parser.REGEX: - case painless_parser.TRUE: - case painless_parser.FALSE: - case painless_parser.NULL: - case painless_parser.ID: - _localctx = new NotaddsubContext(_localctx); - this.enterOuterAlt(_localctx, 3); + case 5: + case 7: + case 9: + case 23: + case 29: + case 30: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 84: + localctx = new NotaddsubContext(this, localctx); + this.enterOuterAlt(localctx, 3); { this.state = 329; this.unarynotaddsub(); @@ -1757,7 +1750,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1767,71 +1760,62 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public unarynotaddsub(): UnarynotaddsubContext { - let _localctx: UnarynotaddsubContext = new UnarynotaddsubContext(this._ctx, this.state); - this.enterRule(_localctx, 38, painless_parser.RULE_unarynotaddsub); + let localctx: UnarynotaddsubContext = new UnarynotaddsubContext(this, this._ctx, this.state); + this.enterRule(localctx, 38, painless_parser.RULE_unarynotaddsub); let _la: number; try { this.state = 339; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 28, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 28, this._ctx) ) { case 1: - _localctx = new ReadContext(_localctx); - this.enterOuterAlt(_localctx, 1); + localctx = new ReadContext(this, localctx); + this.enterOuterAlt(localctx, 1); { this.state = 332; this.chain(); } break; - case 2: - _localctx = new PostContext(_localctx); - this.enterOuterAlt(_localctx, 2); + localctx = new PostContext(this, localctx); + this.enterOuterAlt(localctx, 2); { this.state = 333; this.chain(); this.state = 334; _la = this._input.LA(1); - if (!(_la === painless_parser.INCR || _la === painless_parser.DECR)) { + if(!(_la===59 || _la===60)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } } break; - case 3: - _localctx = new NotContext(_localctx); - this.enterOuterAlt(_localctx, 3); + localctx = new NotContext(this, localctx); + this.enterOuterAlt(localctx, 3); { this.state = 336; _la = this._input.LA(1); - if (!(_la === painless_parser.BOOLNOT || _la === painless_parser.BWNOT)) { + if(!(_la===29 || _la===30)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } this.state = 337; this.unary(); } break; - case 4: - _localctx = new CastContext(_localctx); - this.enterOuterAlt(_localctx, 4); + localctx = new CastContext(this, localctx); + this.enterOuterAlt(localctx, 4); { this.state = 338; this.castexpression(); @@ -1841,7 +1825,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1851,19 +1835,19 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public castexpression(): CastexpressionContext { - let _localctx: CastexpressionContext = new CastexpressionContext(this._ctx, this.state); - this.enterRule(_localctx, 40, painless_parser.RULE_castexpression); + let localctx: CastexpressionContext = new CastexpressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 40, painless_parser.RULE_castexpression); try { this.state = 351; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 29, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 29, this._ctx) ) { case 1: - _localctx = new PrimordefcastContext(_localctx); - this.enterOuterAlt(_localctx, 1); + localctx = new PrimordefcastContext(this, localctx); + this.enterOuterAlt(localctx, 1); { this.state = 341; this.match(painless_parser.LP); @@ -1875,10 +1859,9 @@ export class painless_parser extends Parser { this.unary(); } break; - case 2: - _localctx = new RefcastContext(_localctx); - this.enterOuterAlt(_localctx, 2); + localctx = new RefcastContext(this, localctx); + this.enterOuterAlt(localctx, 2); { this.state = 346; this.match(painless_parser.LP); @@ -1894,7 +1877,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1904,33 +1887,30 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public primordefcasttype(): PrimordefcasttypeContext { - let _localctx: PrimordefcasttypeContext = new PrimordefcasttypeContext(this._ctx, this.state); - this.enterRule(_localctx, 42, painless_parser.RULE_primordefcasttype); + let localctx: PrimordefcasttypeContext = new PrimordefcasttypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 42, painless_parser.RULE_primordefcasttype); let _la: number; try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 353; _la = this._input.LA(1); - if (!(_la === painless_parser.PRIMITIVE || _la === painless_parser.DEF)) { + if(!(_la===82 || _la===83)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -1940,19 +1920,19 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public refcasttype(): RefcasttypeContext { - let _localctx: RefcasttypeContext = new RefcasttypeContext(this._ctx, this.state); - this.enterRule(_localctx, 44, painless_parser.RULE_refcasttype); + let localctx: RefcasttypeContext = new RefcasttypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 44, painless_parser.RULE_refcasttype); let _la: number; try { this.state = 384; this._errHandler.sync(this); switch (this._input.LA(1)) { - case painless_parser.DEF: - this.enterOuterAlt(_localctx, 1); + case 83: + this.enterOuterAlt(localctx, 1); { this.state = 355; this.match(painless_parser.DEF); @@ -1971,11 +1951,11 @@ export class painless_parser extends Parser { this.state = 360; this._errHandler.sync(this); _la = this._input.LA(1); - } while (_la === painless_parser.LBRACE); + } while (_la===5); } break; - case painless_parser.PRIMITIVE: - this.enterOuterAlt(_localctx, 2); + case 82: + this.enterOuterAlt(localctx, 2); { this.state = 362; this.match(painless_parser.PRIMITIVE); @@ -1994,18 +1974,18 @@ export class painless_parser extends Parser { this.state = 367; this._errHandler.sync(this); _la = this._input.LA(1); - } while (_la === painless_parser.LBRACE); + } while (_la===5); } break; - case painless_parser.ID: - this.enterOuterAlt(_localctx, 3); + case 84: + this.enterOuterAlt(localctx, 3); { this.state = 369; this.match(painless_parser.ID); this.state = 374; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la === painless_parser.DOT) { + while (_la===10) { { { this.state = 370; @@ -2021,7 +2001,7 @@ export class painless_parser extends Parser { this.state = 381; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la === painless_parser.LBRACE) { + while (_la===5) { { { this.state = 377; @@ -2042,7 +2022,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2052,26 +2032,26 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public chain(): ChainContext { - let _localctx: ChainContext = new ChainContext(this._ctx, this.state); - this.enterRule(_localctx, 46, painless_parser.RULE_chain); + let localctx: ChainContext = new ChainContext(this, this._ctx, this.state); + this.enterRule(localctx, 46, painless_parser.RULE_chain); try { let _alt: number; this.state = 394; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 36, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 36, this._ctx) ) { case 1: - _localctx = new DynamicContext(_localctx); - this.enterOuterAlt(_localctx, 1); + localctx = new DynamicContext(this, localctx); + this.enterOuterAlt(localctx, 1); { this.state = 386; this.primary(); this.state = 390; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 35, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 35, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { @@ -2083,14 +2063,13 @@ export class painless_parser extends Parser { } this.state = 392; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 35, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 35, this._ctx); } } break; - case 2: - _localctx = new NewarrayContext(_localctx); - this.enterOuterAlt(_localctx, 2); + localctx = new NewarrayContext(this, localctx); + this.enterOuterAlt(localctx, 2); { this.state = 393; this.arrayinitializer(); @@ -2100,7 +2079,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2110,20 +2089,20 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public primary(): PrimaryContext { - let _localctx: PrimaryContext = new PrimaryContext(this._ctx, this.state); - this.enterRule(_localctx, 48, painless_parser.RULE_primary); + let localctx: PrimaryContext = new PrimaryContext(this, this._ctx, this.state); + this.enterRule(localctx, 48, painless_parser.RULE_primary); let _la: number; try { this.state = 415; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 37, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 37, this._ctx) ) { case 1: - _localctx = new PrecedenceContext(_localctx); - this.enterOuterAlt(_localctx, 1); + localctx = new PrecedenceContext(this, localctx); + this.enterOuterAlt(localctx, 1); { this.state = 396; this.match(painless_parser.LP); @@ -2133,127 +2112,110 @@ export class painless_parser extends Parser { this.match(painless_parser.RP); } break; - case 2: - _localctx = new NumericContext(_localctx); - this.enterOuterAlt(_localctx, 2); + localctx = new NumericContext(this, localctx); + this.enterOuterAlt(localctx, 2); { this.state = 400; _la = this._input.LA(1); - if (!(((((_la - 73)) & ~0x1F) === 0 && ((1 << (_la - 73)) & ((1 << (painless_parser.OCTAL - 73)) | (1 << (painless_parser.HEX - 73)) | (1 << (painless_parser.INTEGER - 73)) | (1 << (painless_parser.DECIMAL - 73)))) !== 0))) { + if(!(((((_la - 73)) & ~0x1F) === 0 && ((1 << (_la - 73)) & 15) !== 0))) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } } break; - case 3: - _localctx = new TrueContext(_localctx); - this.enterOuterAlt(_localctx, 3); + localctx = new TrueContext(this, localctx); + this.enterOuterAlt(localctx, 3); { this.state = 401; this.match(painless_parser.TRUE); } break; - case 4: - _localctx = new FalseContext(_localctx); - this.enterOuterAlt(_localctx, 4); + localctx = new FalseContext(this, localctx); + this.enterOuterAlt(localctx, 4); { this.state = 402; this.match(painless_parser.FALSE); } break; - case 5: - _localctx = new NullContext(_localctx); - this.enterOuterAlt(_localctx, 5); + localctx = new NullContext(this, localctx); + this.enterOuterAlt(localctx, 5); { this.state = 403; this.match(painless_parser.NULL); } break; - case 6: - _localctx = new StringContext(_localctx); - this.enterOuterAlt(_localctx, 6); + localctx = new StringContext(this, localctx); + this.enterOuterAlt(localctx, 6); { this.state = 404; this.match(painless_parser.STRING); } break; - case 7: - _localctx = new RegexContext(_localctx); - this.enterOuterAlt(_localctx, 7); + localctx = new RegexContext(this, localctx); + this.enterOuterAlt(localctx, 7); { this.state = 405; this.match(painless_parser.REGEX); } break; - case 8: - _localctx = new ListinitContext(_localctx); - this.enterOuterAlt(_localctx, 8); + localctx = new ListinitContext(this, localctx); + this.enterOuterAlt(localctx, 8); { this.state = 406; this.listinitializer(); } break; - case 9: - _localctx = new MapinitContext(_localctx); - this.enterOuterAlt(_localctx, 9); + localctx = new MapinitContext(this, localctx); + this.enterOuterAlt(localctx, 9); { this.state = 407; this.mapinitializer(); } break; - case 10: - _localctx = new VariableContext(_localctx); - this.enterOuterAlt(_localctx, 10); + localctx = new VariableContext(this, localctx); + this.enterOuterAlt(localctx, 10); { this.state = 408; this.match(painless_parser.ID); } break; - case 11: - _localctx = new CalllocalContext(_localctx); - this.enterOuterAlt(_localctx, 11); + localctx = new CalllocalContext(this, localctx); + this.enterOuterAlt(localctx, 11); { this.state = 409; _la = this._input.LA(1); - if (!(_la === painless_parser.DOLLAR || _la === painless_parser.ID)) { + if(!(_la===9 || _la===84)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } this.state = 410; this.arguments(); } break; - case 12: - _localctx = new NewobjectContext(_localctx); - this.enterOuterAlt(_localctx, 12); + localctx = new NewobjectContext(this, localctx); + this.enterOuterAlt(localctx, 12); { this.state = 411; this.match(painless_parser.NEW); this.state = 412; - this.type(); + this.type_(); this.state = 413; this.arguments(); } @@ -2262,7 +2224,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2272,34 +2234,32 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public postfix(): PostfixContext { - let _localctx: PostfixContext = new PostfixContext(this._ctx, this.state); - this.enterRule(_localctx, 50, painless_parser.RULE_postfix); + let localctx: PostfixContext = new PostfixContext(this, this._ctx, this.state); + this.enterRule(localctx, 50, painless_parser.RULE_postfix); try { this.state = 420; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 38, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 38, this._ctx) ) { case 1: - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 417; this.callinvoke(); } break; - case 2: - this.enterOuterAlt(_localctx, 2); + this.enterOuterAlt(localctx, 2); { this.state = 418; this.fieldaccess(); } break; - case 3: - this.enterOuterAlt(_localctx, 3); + this.enterOuterAlt(localctx, 3); { this.state = 419; this.braceaccess(); @@ -2309,7 +2269,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2319,26 +2279,25 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public postdot(): PostdotContext { - let _localctx: PostdotContext = new PostdotContext(this._ctx, this.state); - this.enterRule(_localctx, 52, painless_parser.RULE_postdot); + let localctx: PostdotContext = new PostdotContext(this, this._ctx, this.state); + this.enterRule(localctx, 52, painless_parser.RULE_postdot); try { this.state = 424; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 39, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 39, this._ctx) ) { case 1: - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 422; this.callinvoke(); } break; - case 2: - this.enterOuterAlt(_localctx, 2); + this.enterOuterAlt(localctx, 2); { this.state = 423; this.fieldaccess(); @@ -2348,7 +2307,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2358,27 +2317,24 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public callinvoke(): CallinvokeContext { - let _localctx: CallinvokeContext = new CallinvokeContext(this._ctx, this.state); - this.enterRule(_localctx, 54, painless_parser.RULE_callinvoke); + let localctx: CallinvokeContext = new CallinvokeContext(this, this._ctx, this.state); + this.enterRule(localctx, 54, painless_parser.RULE_callinvoke); let _la: number; try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 426; _la = this._input.LA(1); - if (!(_la === painless_parser.DOT || _la === painless_parser.NSDOT)) { + if(!(_la===10 || _la===11)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } this.state = 427; this.match(painless_parser.DOTID); @@ -2388,7 +2344,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2398,45 +2354,39 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public fieldaccess(): FieldaccessContext { - let _localctx: FieldaccessContext = new FieldaccessContext(this._ctx, this.state); - this.enterRule(_localctx, 56, painless_parser.RULE_fieldaccess); + let localctx: FieldaccessContext = new FieldaccessContext(this, this._ctx, this.state); + this.enterRule(localctx, 56, painless_parser.RULE_fieldaccess); let _la: number; try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 430; _la = this._input.LA(1); - if (!(_la === painless_parser.DOT || _la === painless_parser.NSDOT)) { + if(!(_la===10 || _la===11)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } this.state = 431; _la = this._input.LA(1); - if (!(_la === painless_parser.DOTINTEGER || _la === painless_parser.DOTID)) { + if(!(_la===85 || _la===86)) { this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - + } + else { this._errHandler.reportMatch(this); - this.consume(); + this.consume(); } } } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2446,14 +2396,14 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public braceaccess(): BraceaccessContext { - let _localctx: BraceaccessContext = new BraceaccessContext(this._ctx, this.state); - this.enterRule(_localctx, 58, painless_parser.RULE_braceaccess); + let localctx: BraceaccessContext = new BraceaccessContext(this, this._ctx, this.state); + this.enterRule(localctx, 58, painless_parser.RULE_braceaccess); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 433; this.match(painless_parser.LBRACE); @@ -2465,7 +2415,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2475,26 +2425,26 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public arrayinitializer(): ArrayinitializerContext { - let _localctx: ArrayinitializerContext = new ArrayinitializerContext(this._ctx, this.state); - this.enterRule(_localctx, 60, painless_parser.RULE_arrayinitializer); + let localctx: ArrayinitializerContext = new ArrayinitializerContext(this, this._ctx, this.state); + this.enterRule(localctx, 60, painless_parser.RULE_arrayinitializer); let _la: number; try { let _alt: number; this.state = 478; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 46, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 46, this._ctx) ) { case 1: - _localctx = new NewstandardarrayContext(_localctx); - this.enterOuterAlt(_localctx, 1); + localctx = new NewstandardarrayContext(this, localctx); + this.enterOuterAlt(localctx, 1); { this.state = 437; this.match(painless_parser.NEW); this.state = 438; - this.type(); + this.type_(); this.state = 443; this._errHandler.sync(this); _alt = 1; @@ -2517,18 +2467,18 @@ export class painless_parser extends Parser { } this.state = 445; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 40, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 40, this._ctx); } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); this.state = 454; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 42, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 42, this._ctx) ) { case 1: { this.state = 447; this.postdot(); this.state = 451; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 41, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 41, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { @@ -2540,22 +2490,21 @@ export class painless_parser extends Parser { } this.state = 453; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 41, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 41, this._ctx); } } break; } } break; - case 2: - _localctx = new NewinitializedarrayContext(_localctx); - this.enterOuterAlt(_localctx, 2); + localctx = new NewinitializedarrayContext(this, localctx); + this.enterOuterAlt(localctx, 2); { this.state = 456; this.match(painless_parser.NEW); this.state = 457; - this.type(); + this.type_(); this.state = 458; this.match(painless_parser.LBRACE); this.state = 459; @@ -2565,14 +2514,14 @@ export class painless_parser extends Parser { this.state = 469; this._errHandler.sync(this); _la = this._input.LA(1); - if (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & ((1 << (painless_parser.LBRACE - 5)) | (1 << (painless_parser.LP - 5)) | (1 << (painless_parser.DOLLAR - 5)) | (1 << (painless_parser.NEW - 5)) | (1 << (painless_parser.BOOLNOT - 5)) | (1 << (painless_parser.BWNOT - 5)) | (1 << (painless_parser.ADD - 5)) | (1 << (painless_parser.SUB - 5)))) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & ((1 << (painless_parser.INCR - 59)) | (1 << (painless_parser.DECR - 59)) | (1 << (painless_parser.OCTAL - 59)) | (1 << (painless_parser.HEX - 59)) | (1 << (painless_parser.INTEGER - 59)) | (1 << (painless_parser.DECIMAL - 59)) | (1 << (painless_parser.STRING - 59)) | (1 << (painless_parser.REGEX - 59)) | (1 << (painless_parser.TRUE - 59)) | (1 << (painless_parser.FALSE - 59)) | (1 << (painless_parser.NULL - 59)) | (1 << (painless_parser.ID - 59)))) !== 0)) { + if (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & 1661206549) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 41926659) !== 0)) { { this.state = 461; this.expression(); this.state = 466; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la === painless_parser.COMMA) { + while (_la===12) { { { this.state = 462; @@ -2592,7 +2541,7 @@ export class painless_parser extends Parser { this.match(painless_parser.RBRACK); this.state = 475; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 45, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 45, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { @@ -2604,7 +2553,7 @@ export class painless_parser extends Parser { } this.state = 477; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 45, this._ctx); + _alt = this._interp.adaptivePredict(this._input, 45, this._ctx); } } break; @@ -2612,7 +2561,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2622,19 +2571,19 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public listinitializer(): ListinitializerContext { - let _localctx: ListinitializerContext = new ListinitializerContext(this._ctx, this.state); - this.enterRule(_localctx, 62, painless_parser.RULE_listinitializer); + let localctx: ListinitializerContext = new ListinitializerContext(this, this._ctx, this.state); + this.enterRule(localctx, 62, painless_parser.RULE_listinitializer); let _la: number; try { this.state = 493; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 48, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 48, this._ctx) ) { case 1: - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 480; this.match(painless_parser.LBRACE); @@ -2643,7 +2592,7 @@ export class painless_parser extends Parser { this.state = 486; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la === painless_parser.COMMA) { + while (_la===12) { { { this.state = 482; @@ -2660,9 +2609,8 @@ export class painless_parser extends Parser { this.match(painless_parser.RBRACE); } break; - case 2: - this.enterOuterAlt(_localctx, 2); + this.enterOuterAlt(localctx, 2); { this.state = 491; this.match(painless_parser.LBRACE); @@ -2674,7 +2622,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2684,19 +2632,19 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public mapinitializer(): MapinitializerContext { - let _localctx: MapinitializerContext = new MapinitializerContext(this._ctx, this.state); - this.enterRule(_localctx, 64, painless_parser.RULE_mapinitializer); + let localctx: MapinitializerContext = new MapinitializerContext(this, this._ctx, this.state); + this.enterRule(localctx, 64, painless_parser.RULE_mapinitializer); let _la: number; try { this.state = 509; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 50, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 50, this._ctx) ) { case 1: - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 495; this.match(painless_parser.LBRACE); @@ -2705,7 +2653,7 @@ export class painless_parser extends Parser { this.state = 501; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la === painless_parser.COMMA) { + while (_la===12) { { { this.state = 497; @@ -2722,9 +2670,8 @@ export class painless_parser extends Parser { this.match(painless_parser.RBRACE); } break; - case 2: - this.enterOuterAlt(_localctx, 2); + this.enterOuterAlt(localctx, 2); { this.state = 506; this.match(painless_parser.LBRACE); @@ -2738,7 +2685,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2748,14 +2695,14 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public maptoken(): MaptokenContext { - let _localctx: MaptokenContext = new MaptokenContext(this._ctx, this.state); - this.enterRule(_localctx, 66, painless_parser.RULE_maptoken); + let localctx: MaptokenContext = new MaptokenContext(this, this._ctx, this.state); + this.enterRule(localctx, 66, painless_parser.RULE_maptoken); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 511; this.expression(); @@ -2767,7 +2714,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2777,15 +2724,15 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public arguments(): ArgumentsContext { - let _localctx: ArgumentsContext = new ArgumentsContext(this._ctx, this.state); - this.enterRule(_localctx, 68, painless_parser.RULE_arguments); + let localctx: ArgumentsContext = new ArgumentsContext(this, this._ctx, this.state); + this.enterRule(localctx, 68, painless_parser.RULE_arguments); let _la: number; try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { { this.state = 515; @@ -2793,14 +2740,14 @@ export class painless_parser extends Parser { this.state = 524; this._errHandler.sync(this); _la = this._input.LA(1); - if (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & ((1 << (painless_parser.LBRACE - 5)) | (1 << (painless_parser.LP - 5)) | (1 << (painless_parser.DOLLAR - 5)) | (1 << (painless_parser.NEW - 5)) | (1 << (painless_parser.THIS - 5)) | (1 << (painless_parser.BOOLNOT - 5)) | (1 << (painless_parser.BWNOT - 5)) | (1 << (painless_parser.ADD - 5)) | (1 << (painless_parser.SUB - 5)))) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & ((1 << (painless_parser.INCR - 59)) | (1 << (painless_parser.DECR - 59)) | (1 << (painless_parser.OCTAL - 59)) | (1 << (painless_parser.HEX - 59)) | (1 << (painless_parser.INTEGER - 59)) | (1 << (painless_parser.DECIMAL - 59)) | (1 << (painless_parser.STRING - 59)) | (1 << (painless_parser.REGEX - 59)) | (1 << (painless_parser.TRUE - 59)) | (1 << (painless_parser.FALSE - 59)) | (1 << (painless_parser.NULL - 59)) | (1 << (painless_parser.PRIMITIVE - 59)) | (1 << (painless_parser.DEF - 59)) | (1 << (painless_parser.ID - 59)))) !== 0)) { + if (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & 1665400853) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 67092483) !== 0)) { { this.state = 516; this.argument(); this.state = 521; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la === painless_parser.COMMA) { + while (_la===12) { { { this.state = 517; @@ -2823,7 +2770,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2833,34 +2780,32 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public argument(): ArgumentContext { - let _localctx: ArgumentContext = new ArgumentContext(this._ctx, this.state); - this.enterRule(_localctx, 70, painless_parser.RULE_argument); + let localctx: ArgumentContext = new ArgumentContext(this, this._ctx, this.state); + this.enterRule(localctx, 70, painless_parser.RULE_argument); try { this.state = 531; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 53, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 53, this._ctx) ) { case 1: - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 528; this.expression(); } break; - case 2: - this.enterOuterAlt(_localctx, 2); + this.enterOuterAlt(localctx, 2); { this.state = 529; this.lambda(); } break; - case 3: - this.enterOuterAlt(_localctx, 3); + this.enterOuterAlt(localctx, 3); { this.state = 530; this.funcref(); @@ -2870,7 +2815,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2880,42 +2825,42 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public lambda(): LambdaContext { - let _localctx: LambdaContext = new LambdaContext(this._ctx, this.state); - this.enterRule(_localctx, 72, painless_parser.RULE_lambda); + let localctx: LambdaContext = new LambdaContext(this, this._ctx, this.state); + this.enterRule(localctx, 72, painless_parser.RULE_lambda); let _la: number; try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 546; this._errHandler.sync(this); switch (this._input.LA(1)) { - case painless_parser.PRIMITIVE: - case painless_parser.DEF: - case painless_parser.ID: + case 82: + case 83: + case 84: { this.state = 533; this.lamtype(); } break; - case painless_parser.LP: + case 7: { this.state = 534; this.match(painless_parser.LP); this.state = 543; this._errHandler.sync(this); _la = this._input.LA(1); - if (((((_la - 82)) & ~0x1F) === 0 && ((1 << (_la - 82)) & ((1 << (painless_parser.PRIMITIVE - 82)) | (1 << (painless_parser.DEF - 82)) | (1 << (painless_parser.ID - 82)))) !== 0)) { + if (((((_la - 82)) & ~0x1F) === 0 && ((1 << (_la - 82)) & 7) !== 0)) { { this.state = 535; this.lamtype(); this.state = 540; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la === painless_parser.COMMA) { + while (_la===12) { { { this.state = 536; @@ -2943,32 +2888,32 @@ export class painless_parser extends Parser { this.state = 551; this._errHandler.sync(this); switch (this._input.LA(1)) { - case painless_parser.LBRACK: + case 3: { this.state = 549; this.block(); } break; - case painless_parser.LBRACE: - case painless_parser.LP: - case painless_parser.DOLLAR: - case painless_parser.NEW: - case painless_parser.BOOLNOT: - case painless_parser.BWNOT: - case painless_parser.ADD: - case painless_parser.SUB: - case painless_parser.INCR: - case painless_parser.DECR: - case painless_parser.OCTAL: - case painless_parser.HEX: - case painless_parser.INTEGER: - case painless_parser.DECIMAL: - case painless_parser.STRING: - case painless_parser.REGEX: - case painless_parser.TRUE: - case painless_parser.FALSE: - case painless_parser.NULL: - case painless_parser.ID: + case 5: + case 7: + case 9: + case 23: + case 29: + case 30: + case 34: + case 35: + case 59: + case 60: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 84: { this.state = 550; this.expression(); @@ -2981,7 +2926,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -2991,18 +2936,18 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public lamtype(): LamtypeContext { - let _localctx: LamtypeContext = new LamtypeContext(this._ctx, this.state); - this.enterRule(_localctx, 74, painless_parser.RULE_lamtype); + let localctx: LamtypeContext = new LamtypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 74, painless_parser.RULE_lamtype); try { - this.enterOuterAlt(_localctx, 1); + this.enterOuterAlt(localctx, 1); { this.state = 554; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 58, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 58, this._ctx) ) { case 1: { this.state = 553; @@ -3016,7 +2961,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -3026,19 +2971,19 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } // @RuleVersion(0) public funcref(): FuncrefContext { - let _localctx: FuncrefContext = new FuncrefContext(this._ctx, this.state); - this.enterRule(_localctx, 76, painless_parser.RULE_funcref); + let localctx: FuncrefContext = new FuncrefContext(this, this._ctx, this.state); + this.enterRule(localctx, 76, painless_parser.RULE_funcref); try { this.state = 569; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 59, this._ctx) ) { + switch ( this._interp.adaptivePredict(this._input, 59, this._ctx) ) { case 1: - _localctx = new ClassfuncrefContext(_localctx); - this.enterOuterAlt(_localctx, 1); + localctx = new ClassfuncrefContext(this, localctx); + this.enterOuterAlt(localctx, 1); { this.state = 558; this.decltype(); @@ -3048,10 +2993,9 @@ export class painless_parser extends Parser { this.match(painless_parser.ID); } break; - case 2: - _localctx = new ConstructorfuncrefContext(_localctx); - this.enterOuterAlt(_localctx, 2); + localctx = new ConstructorfuncrefContext(this, localctx); + this.enterOuterAlt(localctx, 2); { this.state = 562; this.decltype(); @@ -3061,10 +3005,9 @@ export class painless_parser extends Parser { this.match(painless_parser.NEW); } break; - case 3: - _localctx = new LocalfuncrefContext(_localctx); - this.enterOuterAlt(_localctx, 3); + localctx = new LocalfuncrefContext(this, localctx); + this.enterOuterAlt(localctx, 3); { this.state = 566; this.match(painless_parser.THIS); @@ -3078,7 +3021,7 @@ export class painless_parser extends Parser { } catch (re) { if (re instanceof RecognitionException) { - _localctx.exception = re; + localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { @@ -3088,2763 +3031,2748 @@ export class painless_parser extends Parser { finally { this.exitRule(); } - return _localctx; + return localctx; } - public sempred(_localctx: RuleContext, ruleIndex: number, predIndex: number): boolean { + public sempred(localctx: RuleContext, ruleIndex: number, predIndex: number): boolean { switch (ruleIndex) { case 4: - return this.rstatement_sempred(_localctx as RstatementContext, predIndex); - + return this.rstatement_sempred(localctx as RstatementContext, predIndex); case 16: - return this.noncondexpression_sempred(_localctx as NoncondexpressionContext, predIndex); + return this.noncondexpression_sempred(localctx as NoncondexpressionContext, predIndex); } return true; } - private rstatement_sempred(_localctx: RstatementContext, predIndex: number): boolean { + private rstatement_sempred(localctx: RstatementContext, predIndex: number): boolean { switch (predIndex) { case 0: return this._input.LA(1) != painless_parser.ELSE ; } return true; } - private noncondexpression_sempred(_localctx: NoncondexpressionContext, predIndex: number): boolean { + private noncondexpression_sempred(localctx: NoncondexpressionContext, predIndex: number): boolean { switch (predIndex) { case 1: return this.precpred(this._ctx, 13); - case 2: return this.precpred(this._ctx, 12); - case 3: return this.precpred(this._ctx, 11); - case 4: return this.precpred(this._ctx, 10); - case 5: return this.precpred(this._ctx, 9); - case 6: return this.precpred(this._ctx, 7); - case 7: return this.precpred(this._ctx, 6); - case 8: return this.precpred(this._ctx, 5); - case 9: return this.precpred(this._ctx, 4); - case 10: return this.precpred(this._ctx, 3); - case 11: return this.precpred(this._ctx, 2); - case 12: return this.precpred(this._ctx, 1); - case 13: return this.precpred(this._ctx, 8); } return true; } - private static readonly _serializedATNSegments: number = 2; - private static readonly _serializedATNSegment0: string = - "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03X\u023E\x04\x02" + - "\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04\x07" + - "\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r\t\r\x04" + - "\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t\x12\x04" + - "\x13\t\x13\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17\t\x17\x04" + - "\x18\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04\x1C\t\x1C\x04" + - "\x1D\t\x1D\x04\x1E\t\x1E\x04\x1F\t\x1F\x04 \t \x04!\t!\x04\"\t\"\x04#" + - "\t#\x04$\t$\x04%\t%\x04&\t&\x04\'\t\'\x04(\t(\x03\x02\x07\x02R\n\x02\f" + - "\x02\x0E\x02U\v\x02\x03\x02\x07\x02X\n\x02\f\x02\x0E\x02[\v\x02\x03\x02" + - "\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x04\x03\x04\x03\x04" + - "\x03\x04\x03\x04\x03\x04\x03\x04\x07\x04k\n\x04\f\x04\x0E\x04n\v\x04\x05" + - "\x04p\n\x04\x03\x04\x03\x04\x03\x05\x03\x05\x03\x05\x03\x05\x05\x05x\n" + - "\x05\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x05" + - "\x06\x82\n\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x05\x06" + - "\x8A\n\x06\x03\x06\x03\x06\x03\x06\x05\x06\x8F\n\x06\x03\x06\x03\x06\x05" + - "\x06\x93\n\x06\x03\x06\x03\x06\x05\x06\x97\n\x06\x03\x06\x03\x06\x03\x06" + - "\x05\x06\x9C\n\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03" + - "\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03" + - "\x06\x03\x06\x03\x06\x03\x06\x03\x06\x06\x06\xB2\n\x06\r\x06\x0E\x06\xB3" + - "\x05\x06\xB6\n\x06\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03" + - "\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x05\x07\xC4\n\x07\x03\x07" + - "\x03\x07\x03\x07\x05\x07\xC9\n\x07\x03\b\x03\b\x05\b\xCD\n\b\x03\t\x03" + - "\t\x07\t\xD1\n\t\f\t\x0E\t\xD4\v\t\x03\t\x05\t\xD7\n\t\x03\t\x03\t\x03" + - "\n\x03\n\x03\v\x03\v\x05\v\xDF\n\v\x03\f\x03\f\x03\r\x03\r\x03\r\x03\r" + - "\x07\r\xE7\n\r\f\r\x0E\r\xEA\v\r\x03\x0E\x03\x0E\x03\x0E\x07\x0E\xEF\n" + - "\x0E\f\x0E\x0E\x0E\xF2\v\x0E\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x07" + - "\x0F\xF9\n\x0F\f\x0F\x0E\x0F\xFC\v\x0F\x05\x0F\xFE\n\x0F\x03\x10\x03\x10" + - "\x03\x10\x05\x10\u0103\n\x10\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03" + - "\x11\x03\x11\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03" + - "\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03" + - "\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03" + - "\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03" + - "\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x07\x12\u0136" + - "\n\x12\f\x12\x0E\x12\u0139\v\x12\x03\x13\x03\x13\x03\x13\x03\x13\x03\x13" + - "\x03\x13\x03\x13\x03\x13\x03\x13\x03\x13\x03\x13\x05\x13\u0146\n\x13\x03" + - "\x14\x03\x14\x03\x14\x03\x14\x03\x14\x05\x14\u014D\n\x14\x03\x15\x03\x15" + - "\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x05\x15\u0156\n\x15\x03\x16\x03" + - "\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x05" + - "\x16\u0162\n\x16\x03\x17\x03\x17\x03\x18\x03\x18\x03\x18\x06\x18\u0169" + - "\n\x18\r\x18\x0E\x18\u016A\x03\x18\x03\x18\x03\x18\x06\x18\u0170\n\x18" + - "\r\x18\x0E\x18\u0171\x03\x18\x03\x18\x03\x18\x07\x18\u0177\n\x18\f\x18" + - "\x0E\x18\u017A\v\x18\x03\x18\x03\x18\x07\x18\u017E\n\x18\f\x18\x0E\x18" + - "\u0181\v\x18\x05\x18\u0183\n\x18\x03\x19\x03\x19\x07\x19\u0187\n\x19\f" + - "\x19\x0E\x19\u018A\v\x19\x03\x19\x05\x19\u018D\n\x19\x03\x1A\x03\x1A\x03" + - "\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03" + - "\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x05\x1A\u01A2" + - "\n\x1A\x03\x1B\x03\x1B\x03\x1B\x05\x1B\u01A7\n\x1B\x03\x1C\x03\x1C\x05" + - "\x1C\u01AB\n\x1C\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1E\x03\x1E\x03\x1E" + - "\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03 \x03 \x03 \x03 \x03 \x03 \x06 \u01BE" + - "\n \r \x0E \u01BF\x03 \x03 \x07 \u01C4\n \f \x0E \u01C7\v \x05 \u01C9" + - "\n \x03 \x03 \x03 \x03 \x03 \x03 \x03 \x03 \x07 \u01D3\n \f \x0E \u01D6" + - "\v \x05 \u01D8\n \x03 \x03 \x07 \u01DC\n \f \x0E \u01DF\v \x05 \u01E1" + - "\n \x03!\x03!\x03!\x03!\x07!\u01E7\n!\f!\x0E!\u01EA\v!\x03!\x03!\x03!" + - "\x03!\x05!\u01F0\n!\x03\"\x03\"\x03\"\x03\"\x07\"\u01F6\n\"\f\"\x0E\"" + - "\u01F9\v\"\x03\"\x03\"\x03\"\x03\"\x03\"\x05\"\u0200\n\"\x03#\x03#\x03" + - "#\x03#\x03$\x03$\x03$\x03$\x07$\u020A\n$\f$\x0E$\u020D\v$\x05$\u020F\n" + - "$\x03$\x03$\x03%\x03%\x03%\x05%\u0216\n%\x03&\x03&\x03&\x03&\x03&\x07" + - "&\u021D\n&\f&\x0E&\u0220\v&\x05&\u0222\n&\x03&\x05&\u0225\n&\x03&\x03" + - "&\x03&\x05&\u022A\n&\x03\'\x05\'\u022D\n\'\x03\'\x03\'\x03(\x03(\x03(" + - "\x03(\x03(\x03(\x03(\x03(\x03(\x03(\x03(\x05(\u023C\n(\x03(\x02\x02\x03" + - "\")\x02\x02\x04\x02\x06\x02\b\x02\n\x02\f\x02\x0E\x02\x10\x02\x12\x02" + - "\x14\x02\x16\x02\x18\x02\x1A\x02\x1C\x02\x1E\x02 \x02\"\x02$\x02&\x02" + - "(\x02*\x02,\x02.\x020\x022\x024\x026\x028\x02:\x02<\x02>\x02@\x02B\x02" + - "D\x02F\x02H\x02J\x02L\x02N\x02\x02\x11\x03\x03\x0F\x0F\x03\x02!#\x03\x02" + - "$%\x03\x02;<\x03\x02&(\x03\x02),\x03\x02-0\x03\x02?J\x03\x02=>\x03\x02" + - "\x1F \x03\x02TU\x03\x02KN\x04\x02\v\vVV\x03\x02\f\r\x03\x02WX\x02\u0279" + - "\x02S\x03\x02\x02\x02\x04^\x03\x02\x02\x02\x06c\x03\x02\x02\x02\bw\x03" + - "\x02\x02\x02\n\xB5\x03\x02\x02\x02\f\xC8\x03\x02\x02\x02\x0E\xCC\x03\x02" + - "\x02\x02\x10\xCE\x03\x02\x02\x02\x12\xDA\x03\x02\x02\x02\x14\xDE\x03\x02" + - "\x02\x02\x16\xE0\x03\x02\x02\x02\x18\xE2\x03\x02\x02\x02\x1A\xEB\x03\x02" + - "\x02\x02\x1C\xFD\x03\x02\x02\x02\x1E\xFF\x03\x02\x02\x02 \u0104\x03\x02" + - "\x02\x02\"\u010B\x03\x02\x02\x02$\u0145\x03\x02\x02\x02&\u014C\x03\x02" + - "\x02\x02(\u0155\x03\x02\x02\x02*\u0161\x03\x02\x02\x02,\u0163\x03\x02" + - "\x02\x02.\u0182\x03\x02\x02\x020\u018C\x03\x02\x02\x022\u01A1\x03\x02" + - "\x02\x024\u01A6\x03\x02\x02\x026\u01AA\x03\x02\x02\x028\u01AC\x03\x02" + - "\x02\x02:\u01B0\x03\x02\x02\x02<\u01B3\x03\x02\x02\x02>\u01E0\x03\x02" + - "\x02\x02@\u01EF\x03\x02\x02\x02B\u01FF\x03\x02\x02\x02D\u0201\x03\x02" + - "\x02\x02F\u0205\x03\x02\x02\x02H\u0215\x03\x02\x02\x02J\u0224\x03\x02" + - "\x02\x02L\u022C\x03\x02\x02\x02N\u023B\x03\x02\x02\x02PR\x05\x04\x03\x02" + - "QP\x03\x02\x02\x02RU\x03\x02\x02\x02SQ\x03\x02\x02\x02ST\x03\x02\x02\x02" + - "TY\x03\x02\x02\x02US\x03\x02\x02\x02VX\x05\b\x05\x02WV\x03\x02\x02\x02" + - "X[\x03\x02\x02\x02YW\x03\x02\x02\x02YZ\x03\x02\x02\x02Z\\\x03\x02\x02" + - "\x02[Y\x03\x02\x02\x02\\]\x07\x02\x02\x03]\x03\x03\x02\x02\x02^_\x05\x1A" + - "\x0E\x02_`\x07V\x02\x02`a\x05\x06\x04\x02ab\x05\x10\t\x02b\x05\x03\x02" + - "\x02\x02co\x07\t\x02\x02de\x05\x1A\x0E\x02el\x07V\x02\x02fg\x07\x0E\x02" + - "\x02gh\x05\x1A\x0E\x02hi\x07V\x02\x02ik\x03\x02\x02\x02jf\x03\x02\x02" + - "\x02kn\x03\x02\x02\x02lj\x03\x02\x02\x02lm\x03\x02\x02\x02mp\x03\x02\x02" + - "\x02nl\x03\x02\x02\x02od\x03\x02\x02\x02op\x03\x02\x02\x02pq\x03\x02\x02" + - "\x02qr\x07\n\x02\x02r\x07\x03\x02\x02\x02sx\x05\n\x06\x02tu\x05\f\x07" + - "\x02uv\t\x02\x02\x02vx\x03\x02\x02\x02ws\x03\x02\x02\x02wt\x03\x02\x02" + - "\x02x\t\x03\x02\x02\x02yz\x07\x10\x02\x02z{\x07\t\x02\x02{|\x05$\x13\x02" + - "|}\x07\n\x02\x02}\x81\x05\x0E\b\x02~\x7F\x07\x12\x02\x02\x7F\x82\x05\x0E" + - "\b\x02\x80\x82\x06\x06\x02\x02\x81~\x03\x02\x02\x02\x81\x80\x03\x02\x02" + - "\x02\x82\xB6\x03\x02\x02\x02\x83\x84\x07\x13\x02\x02\x84\x85\x07\t\x02" + - "\x02\x85\x86\x05$\x13\x02\x86\x89\x07\n\x02\x02\x87\x8A\x05\x0E\b\x02" + - "\x88\x8A\x05\x12\n\x02\x89\x87\x03\x02\x02\x02\x89\x88\x03\x02\x02\x02" + - "\x8A\xB6\x03\x02\x02\x02\x8B\x8C\x07\x15\x02\x02\x8C\x8E\x07\t\x02\x02" + - "\x8D\x8F\x05\x14\v\x02\x8E\x8D\x03\x02\x02\x02\x8E\x8F\x03\x02\x02\x02" + - "\x8F\x90\x03\x02\x02\x02\x90\x92\x07\x0F\x02\x02\x91\x93\x05$\x13\x02" + - "\x92\x91\x03\x02\x02\x02\x92\x93\x03\x02\x02\x02\x93\x94\x03\x02\x02\x02" + - "\x94\x96\x07\x0F\x02\x02\x95\x97\x05\x16\f\x02\x96\x95\x03\x02\x02\x02" + - "\x96\x97\x03\x02\x02\x02\x97\x98\x03\x02\x02\x02\x98\x9B\x07\n\x02\x02" + - "\x99\x9C\x05\x0E\b\x02\x9A\x9C\x05\x12\n\x02\x9B\x99\x03\x02\x02\x02\x9B" + - "\x9A\x03\x02\x02\x02\x9C\xB6\x03\x02\x02\x02\x9D\x9E\x07\x15\x02\x02\x9E" + - "\x9F\x07\t\x02\x02\x9F\xA0\x05\x1A\x0E\x02\xA0\xA1\x07V\x02\x02\xA1\xA2" + - "\x077\x02\x02\xA2\xA3\x05$\x13\x02\xA3\xA4\x07\n\x02\x02\xA4\xA5\x05\x0E" + - "\b\x02\xA5\xB6\x03\x02\x02\x02\xA6\xA7\x07\x15\x02\x02\xA7\xA8\x07\t\x02" + - "\x02\xA8\xA9\x07V\x02\x02\xA9\xAA\x07\x11\x02\x02\xAA\xAB\x05$\x13\x02" + - "\xAB\xAC\x07\n\x02\x02\xAC\xAD\x05\x0E\b\x02\xAD\xB6\x03\x02\x02\x02\xAE" + - "\xAF\x07\x1A\x02\x02\xAF\xB1\x05\x10\t\x02\xB0\xB2\x05 \x11\x02\xB1\xB0" + - "\x03\x02\x02\x02\xB2\xB3\x03\x02\x02\x02\xB3\xB1\x03\x02\x02\x02\xB3\xB4" + - "\x03\x02\x02\x02\xB4\xB6\x03\x02\x02\x02\xB5y\x03\x02\x02\x02\xB5\x83" + - "\x03\x02\x02\x02\xB5\x8B\x03\x02\x02\x02\xB5\x9D\x03\x02\x02\x02\xB5\xA6" + - "\x03\x02\x02\x02\xB5\xAE\x03\x02\x02\x02\xB6\v\x03\x02\x02\x02\xB7\xB8" + - "\x07\x14\x02\x02\xB8\xB9\x05\x10\t\x02\xB9\xBA\x07\x13\x02\x02\xBA\xBB" + - "\x07\t\x02\x02\xBB\xBC\x05$\x13\x02\xBC\xBD\x07\n\x02\x02\xBD\xC9\x03" + - "\x02\x02\x02\xBE\xC9\x05\x18\r\x02\xBF\xC9\x07\x16\x02\x02\xC0\xC9\x07" + - "\x17\x02\x02\xC1\xC3\x07\x18\x02\x02\xC2\xC4\x05$\x13\x02\xC3\xC2\x03" + - "\x02\x02\x02\xC3\xC4\x03\x02\x02\x02\xC4\xC9\x03\x02\x02\x02\xC5\xC6\x07" + - "\x1C\x02\x02\xC6\xC9\x05$\x13\x02\xC7\xC9\x05$\x13\x02\xC8\xB7\x03\x02" + - "\x02\x02\xC8\xBE\x03\x02\x02\x02\xC8\xBF\x03\x02\x02\x02\xC8\xC0\x03\x02" + - "\x02\x02\xC8\xC1\x03\x02\x02\x02\xC8\xC5\x03\x02\x02\x02\xC8\xC7\x03\x02" + - "\x02\x02\xC9\r\x03\x02\x02\x02\xCA\xCD\x05\x10\t\x02\xCB\xCD\x05\b\x05" + - "\x02\xCC\xCA\x03\x02\x02\x02\xCC\xCB\x03\x02\x02\x02\xCD\x0F\x03\x02\x02" + - "\x02\xCE\xD2\x07\x05\x02\x02\xCF\xD1\x05\b\x05\x02\xD0\xCF\x03\x02\x02" + - "\x02\xD1\xD4\x03\x02\x02\x02\xD2\xD0\x03\x02\x02\x02\xD2\xD3\x03\x02\x02" + - "\x02\xD3\xD6\x03\x02\x02\x02\xD4\xD2\x03\x02\x02\x02\xD5\xD7\x05\f\x07" + - "\x02\xD6\xD5\x03\x02\x02\x02\xD6\xD7\x03\x02\x02\x02\xD7\xD8\x03\x02\x02" + - "\x02\xD8\xD9\x07\x06\x02\x02\xD9\x11\x03\x02\x02\x02\xDA\xDB\x07\x0F\x02" + - "\x02\xDB\x13\x03\x02\x02\x02\xDC\xDF\x05\x18\r\x02\xDD\xDF\x05$\x13\x02" + - "\xDE\xDC\x03\x02\x02\x02\xDE\xDD\x03\x02\x02\x02\xDF\x15\x03\x02\x02\x02" + - "\xE0\xE1\x05$\x13\x02\xE1\x17\x03\x02\x02\x02\xE2\xE3\x05\x1A\x0E\x02" + - "\xE3\xE8\x05\x1E\x10\x02\xE4\xE5\x07\x0E\x02\x02\xE5\xE7\x05\x1E\x10\x02" + - "\xE6\xE4\x03\x02\x02\x02\xE7\xEA\x03\x02\x02\x02\xE8\xE6\x03\x02\x02\x02" + - "\xE8\xE9\x03\x02\x02\x02\xE9\x19\x03\x02\x02\x02\xEA\xE8\x03\x02\x02\x02" + - "\xEB\xF0\x05\x1C\x0F\x02\xEC\xED\x07\x07\x02\x02\xED\xEF\x07\b\x02\x02" + - "\xEE\xEC\x03\x02\x02\x02\xEF\xF2\x03\x02\x02\x02\xF0\xEE\x03\x02\x02\x02" + - "\xF0\xF1\x03\x02\x02\x02\xF1\x1B\x03\x02\x02\x02\xF2\xF0\x03\x02\x02\x02" + - "\xF3\xFE\x07U\x02\x02\xF4\xFE\x07T\x02\x02\xF5\xFA\x07V\x02\x02\xF6\xF7" + - "\x07\f\x02\x02\xF7\xF9\x07X\x02\x02\xF8\xF6\x03\x02\x02\x02\xF9\xFC\x03" + - "\x02\x02\x02\xFA\xF8\x03\x02\x02\x02\xFA\xFB\x03\x02\x02\x02\xFB\xFE\x03" + - "\x02\x02\x02\xFC\xFA\x03\x02\x02\x02\xFD\xF3\x03\x02\x02\x02\xFD\xF4\x03" + - "\x02\x02\x02\xFD\xF5\x03\x02\x02\x02\xFE\x1D\x03\x02\x02\x02\xFF\u0102" + - "\x07V\x02\x02\u0100\u0101\x07?\x02\x02\u0101\u0103\x05$\x13\x02\u0102" + - "\u0100\x03\x02\x02\x02\u0102\u0103\x03\x02\x02\x02\u0103\x1F\x03\x02\x02" + - "\x02\u0104\u0105\x07\x1B\x02\x02\u0105\u0106\x07\t\x02\x02\u0106\u0107" + - "\x05\x1C\x0F\x02\u0107\u0108\x07V\x02\x02\u0108\u0109\x07\n\x02\x02\u0109" + - "\u010A\x05\x10\t\x02\u010A!\x03\x02\x02\x02\u010B\u010C\b\x12\x01\x02" + - "\u010C\u010D\x05&\x14\x02\u010D\u0137\x03\x02\x02\x02\u010E\u010F\f\x0F" + - "\x02\x02\u010F\u0110\t\x03\x02\x02\u0110\u0136\x05\"\x12\x10\u0111\u0112" + - "\f\x0E\x02\x02\u0112\u0113\t\x04\x02\x02\u0113\u0136\x05\"\x12\x0F\u0114" + - "\u0115\f\r\x02\x02\u0115\u0116\t\x05\x02\x02\u0116\u0136\x05\"\x12\x0E" + - "\u0117\u0118\f\f\x02\x02\u0118\u0119\t\x06\x02\x02\u0119\u0136\x05\"\x12" + - "\r\u011A\u011B\f\v\x02\x02\u011B\u011C\t\x07\x02\x02\u011C\u0136\x05\"" + - "\x12\f\u011D\u011E\f\t\x02\x02\u011E\u011F\t\b\x02\x02\u011F\u0136\x05" + - "\"\x12\n\u0120\u0121\f\b\x02\x02\u0121\u0122\x071\x02\x02\u0122\u0136" + - "\x05\"\x12\t\u0123\u0124\f\x07\x02\x02\u0124\u0125\x072\x02\x02\u0125" + - "\u0136\x05\"\x12\b\u0126\u0127\f\x06\x02\x02\u0127\u0128\x073\x02\x02" + - "\u0128\u0136\x05\"\x12\x07\u0129\u012A\f\x05\x02\x02\u012A\u012B\x074" + - "\x02\x02\u012B\u0136\x05\"\x12\x06\u012C\u012D\f\x04\x02\x02\u012D\u012E" + - "\x075\x02\x02\u012E\u0136\x05\"\x12\x05\u012F\u0130\f\x03\x02\x02\u0130" + - "\u0131\x078\x02\x02\u0131\u0136\x05\"\x12\x03\u0132\u0133\f\n\x02\x02" + - "\u0133\u0134\x07\x1E\x02\x02\u0134\u0136\x05\x1A\x0E\x02\u0135\u010E\x03" + - "\x02\x02\x02\u0135\u0111\x03\x02\x02\x02\u0135\u0114\x03\x02\x02\x02\u0135" + - "\u0117\x03\x02\x02\x02\u0135\u011A\x03\x02\x02\x02\u0135\u011D\x03\x02" + - "\x02\x02\u0135\u0120\x03\x02\x02\x02\u0135\u0123\x03\x02\x02\x02\u0135" + - "\u0126\x03\x02\x02\x02\u0135\u0129\x03\x02\x02\x02\u0135\u012C\x03\x02" + - "\x02\x02\u0135\u012F\x03\x02\x02\x02\u0135\u0132\x03\x02\x02\x02\u0136" + - "\u0139\x03\x02\x02\x02\u0137\u0135\x03\x02\x02\x02\u0137\u0138\x03\x02" + - "\x02\x02\u0138#\x03\x02\x02\x02\u0139\u0137\x03\x02\x02\x02\u013A\u0146" + - "\x05\"\x12\x02\u013B\u013C\x05\"\x12\x02\u013C\u013D\x076\x02\x02\u013D" + - "\u013E\x05$\x13\x02\u013E\u013F\x077\x02\x02\u013F\u0140\x05$\x13\x02" + - "\u0140\u0146\x03\x02\x02\x02\u0141\u0142\x05\"\x12\x02\u0142\u0143\t\t" + - "\x02\x02\u0143\u0144\x05$\x13\x02\u0144\u0146\x03\x02\x02\x02\u0145\u013A" + - "\x03\x02\x02\x02\u0145\u013B\x03\x02\x02\x02\u0145\u0141\x03\x02\x02\x02" + - "\u0146%\x03\x02\x02\x02\u0147\u0148\t\n\x02\x02\u0148\u014D\x050\x19\x02" + - "\u0149\u014A\t\x04\x02\x02\u014A\u014D\x05&\x14\x02\u014B\u014D\x05(\x15" + - "\x02\u014C\u0147\x03\x02\x02\x02\u014C\u0149\x03\x02\x02\x02\u014C\u014B" + - "\x03\x02\x02\x02\u014D\'\x03\x02\x02\x02\u014E\u0156\x050\x19\x02\u014F" + - "\u0150\x050\x19\x02\u0150\u0151\t\n\x02\x02\u0151\u0156\x03\x02\x02\x02" + - "\u0152\u0153\t\v\x02\x02\u0153\u0156\x05&\x14\x02\u0154\u0156\x05*\x16" + - "\x02\u0155\u014E\x03\x02\x02\x02\u0155\u014F\x03\x02\x02\x02\u0155\u0152" + - "\x03\x02\x02\x02\u0155\u0154\x03\x02\x02\x02\u0156)\x03\x02\x02\x02\u0157" + - "\u0158\x07\t\x02\x02\u0158\u0159\x05,\x17\x02\u0159\u015A\x07\n\x02\x02" + - "\u015A\u015B\x05&\x14\x02\u015B\u0162\x03\x02\x02\x02\u015C\u015D\x07" + - "\t\x02\x02\u015D\u015E\x05.\x18\x02\u015E\u015F\x07\n\x02\x02\u015F\u0160" + - "\x05(\x15\x02\u0160\u0162\x03\x02\x02\x02\u0161\u0157\x03\x02\x02\x02" + - "\u0161\u015C\x03\x02\x02\x02\u0162+\x03\x02\x02\x02\u0163\u0164\t\f\x02" + - "\x02\u0164-\x03\x02\x02\x02\u0165\u0168\x07U\x02\x02\u0166\u0167\x07\x07" + - "\x02\x02\u0167\u0169\x07\b\x02\x02\u0168\u0166\x03\x02\x02\x02\u0169\u016A" + - "\x03\x02\x02\x02\u016A\u0168\x03\x02\x02\x02\u016A\u016B\x03\x02\x02\x02" + - "\u016B\u0183\x03\x02\x02\x02\u016C\u016F\x07T\x02\x02\u016D\u016E\x07" + - "\x07\x02\x02\u016E\u0170\x07\b\x02\x02\u016F\u016D\x03\x02\x02\x02\u0170" + - "\u0171\x03\x02\x02\x02\u0171\u016F\x03\x02\x02\x02\u0171\u0172\x03\x02" + - "\x02\x02\u0172\u0183\x03\x02\x02\x02\u0173\u0178\x07V\x02\x02\u0174\u0175" + - "\x07\f\x02\x02\u0175\u0177\x07X\x02\x02\u0176\u0174\x03\x02\x02\x02\u0177" + - "\u017A\x03\x02\x02\x02\u0178\u0176\x03\x02\x02\x02\u0178\u0179\x03\x02" + - "\x02\x02\u0179\u017F\x03\x02\x02\x02\u017A\u0178\x03\x02\x02\x02\u017B" + - "\u017C\x07\x07\x02\x02\u017C\u017E\x07\b\x02\x02\u017D\u017B\x03\x02\x02" + - "\x02\u017E\u0181\x03\x02\x02\x02\u017F\u017D\x03\x02\x02\x02\u017F\u0180" + - "\x03\x02\x02\x02\u0180\u0183\x03\x02\x02\x02\u0181\u017F\x03\x02\x02\x02" + - "\u0182\u0165\x03\x02\x02\x02\u0182\u016C\x03\x02\x02\x02\u0182\u0173\x03" + - "\x02\x02\x02\u0183/\x03\x02\x02\x02\u0184\u0188\x052\x1A\x02\u0185\u0187" + - "\x054\x1B\x02\u0186\u0185\x03\x02\x02\x02\u0187\u018A\x03\x02\x02\x02" + - "\u0188\u0186\x03\x02\x02\x02\u0188\u0189\x03\x02\x02\x02\u0189\u018D\x03" + - "\x02\x02\x02\u018A\u0188\x03\x02\x02\x02\u018B\u018D\x05> \x02\u018C\u0184" + - "\x03\x02\x02\x02\u018C\u018B\x03\x02\x02\x02\u018D1\x03\x02\x02\x02\u018E" + - "\u018F\x07\t\x02\x02\u018F\u0190\x05$\x13\x02\u0190\u0191\x07\n\x02\x02" + - "\u0191\u01A2\x03\x02\x02\x02\u0192\u01A2\t\r\x02\x02\u0193\u01A2\x07Q" + - "\x02\x02\u0194\u01A2\x07R\x02\x02\u0195\u01A2\x07S\x02\x02\u0196\u01A2" + - "\x07O\x02\x02\u0197\u01A2\x07P\x02\x02\u0198\u01A2\x05@!\x02\u0199\u01A2" + - "\x05B\"\x02\u019A\u01A2\x07V\x02\x02\u019B\u019C\t\x0E\x02\x02\u019C\u01A2" + - "\x05F$\x02\u019D\u019E\x07\x19\x02\x02\u019E\u019F\x05\x1C\x0F\x02\u019F" + - "\u01A0\x05F$\x02\u01A0\u01A2\x03\x02\x02\x02\u01A1\u018E\x03\x02\x02\x02" + - "\u01A1\u0192\x03\x02\x02\x02\u01A1\u0193\x03\x02\x02\x02\u01A1\u0194\x03" + - "\x02\x02\x02\u01A1\u0195\x03\x02\x02\x02\u01A1\u0196\x03\x02\x02\x02\u01A1" + - "\u0197\x03\x02\x02\x02\u01A1\u0198\x03\x02\x02\x02\u01A1\u0199\x03\x02" + - "\x02\x02\u01A1\u019A\x03\x02\x02\x02\u01A1\u019B\x03\x02\x02\x02\u01A1" + - "\u019D\x03\x02\x02\x02\u01A23\x03\x02\x02\x02\u01A3\u01A7\x058\x1D\x02" + - "\u01A4\u01A7\x05:\x1E\x02\u01A5\u01A7\x05<\x1F\x02\u01A6\u01A3\x03\x02" + - "\x02\x02\u01A6\u01A4\x03\x02\x02\x02\u01A6\u01A5\x03\x02\x02\x02\u01A7" + - "5\x03\x02\x02\x02\u01A8\u01AB\x058\x1D\x02\u01A9\u01AB\x05:\x1E\x02\u01AA" + - "\u01A8\x03\x02\x02\x02\u01AA\u01A9\x03\x02\x02\x02\u01AB7\x03\x02\x02" + - "\x02\u01AC\u01AD\t\x0F\x02\x02\u01AD\u01AE\x07X\x02\x02\u01AE\u01AF\x05" + - "F$\x02\u01AF9\x03\x02\x02\x02\u01B0\u01B1\t\x0F\x02\x02\u01B1\u01B2\t" + - "\x10\x02\x02\u01B2;\x03\x02\x02\x02\u01B3\u01B4\x07\x07\x02\x02\u01B4" + - "\u01B5\x05$\x13\x02\u01B5\u01B6\x07\b\x02\x02\u01B6=\x03\x02\x02\x02\u01B7" + - "\u01B8\x07\x19\x02\x02\u01B8\u01BD\x05\x1C\x0F\x02\u01B9\u01BA\x07\x07" + - "\x02\x02\u01BA\u01BB\x05$\x13\x02\u01BB\u01BC\x07\b\x02\x02\u01BC\u01BE" + - "\x03\x02\x02\x02\u01BD\u01B9\x03\x02\x02\x02\u01BE\u01BF\x03\x02\x02\x02" + - "\u01BF\u01BD\x03\x02\x02\x02\u01BF\u01C0\x03\x02\x02\x02\u01C0\u01C8\x03" + - "\x02\x02\x02\u01C1\u01C5\x056\x1C\x02\u01C2\u01C4\x054\x1B\x02\u01C3\u01C2" + - "\x03\x02\x02\x02\u01C4\u01C7\x03\x02\x02\x02\u01C5\u01C3\x03\x02\x02\x02" + - "\u01C5\u01C6\x03\x02\x02\x02\u01C6\u01C9\x03\x02\x02\x02\u01C7\u01C5\x03" + - "\x02\x02\x02\u01C8\u01C1\x03\x02\x02\x02\u01C8\u01C9\x03\x02\x02\x02\u01C9" + - "\u01E1\x03\x02\x02\x02\u01CA\u01CB\x07\x19\x02\x02\u01CB\u01CC\x05\x1C" + - "\x0F\x02\u01CC\u01CD\x07\x07\x02\x02\u01CD\u01CE\x07\b\x02\x02\u01CE\u01D7" + - "\x07\x05\x02\x02\u01CF\u01D4\x05$\x13\x02\u01D0\u01D1\x07\x0E\x02\x02" + - "\u01D1\u01D3\x05$\x13\x02\u01D2\u01D0\x03\x02\x02\x02\u01D3\u01D6\x03" + - "\x02\x02\x02\u01D4\u01D2\x03\x02\x02\x02\u01D4\u01D5\x03\x02\x02\x02\u01D5" + - "\u01D8\x03\x02\x02\x02\u01D6\u01D4\x03\x02\x02\x02\u01D7\u01CF\x03\x02" + - "\x02\x02\u01D7\u01D8\x03\x02\x02\x02\u01D8\u01D9\x03\x02\x02\x02\u01D9" + - "\u01DD\x07\x06\x02\x02\u01DA\u01DC\x054\x1B\x02\u01DB\u01DA\x03\x02\x02" + - "\x02\u01DC\u01DF\x03\x02\x02\x02\u01DD\u01DB\x03\x02\x02\x02\u01DD\u01DE" + - "\x03\x02\x02\x02\u01DE\u01E1\x03\x02\x02\x02\u01DF\u01DD\x03\x02\x02\x02" + - "\u01E0\u01B7\x03\x02\x02\x02\u01E0\u01CA\x03\x02\x02\x02\u01E1?\x03\x02" + - "\x02\x02\u01E2\u01E3\x07\x07\x02\x02\u01E3\u01E8\x05$\x13\x02\u01E4\u01E5" + - "\x07\x0E\x02\x02\u01E5\u01E7\x05$\x13\x02\u01E6\u01E4\x03\x02\x02\x02" + - "\u01E7\u01EA\x03\x02\x02\x02\u01E8\u01E6\x03\x02\x02\x02\u01E8\u01E9\x03" + - "\x02\x02\x02\u01E9\u01EB\x03\x02\x02\x02\u01EA\u01E8\x03\x02\x02\x02\u01EB" + - "\u01EC\x07\b\x02\x02\u01EC\u01F0\x03\x02\x02\x02\u01ED\u01EE\x07\x07\x02" + - "\x02\u01EE\u01F0\x07\b\x02\x02\u01EF\u01E2\x03\x02\x02\x02\u01EF\u01ED" + - "\x03\x02\x02\x02\u01F0A\x03\x02\x02\x02\u01F1\u01F2\x07\x07\x02\x02\u01F2" + - "\u01F7\x05D#\x02\u01F3\u01F4\x07\x0E\x02\x02\u01F4\u01F6\x05D#\x02\u01F5" + - "\u01F3\x03\x02\x02\x02\u01F6\u01F9\x03\x02\x02\x02\u01F7\u01F5\x03\x02" + - "\x02\x02\u01F7\u01F8\x03\x02\x02\x02\u01F8\u01FA\x03\x02\x02\x02\u01F9" + - "\u01F7\x03\x02\x02\x02\u01FA\u01FB\x07\b\x02\x02\u01FB\u0200\x03\x02\x02" + - "\x02\u01FC\u01FD\x07\x07\x02\x02\u01FD\u01FE\x077\x02\x02\u01FE\u0200" + - "\x07\b\x02\x02\u01FF\u01F1\x03\x02\x02\x02\u01FF\u01FC\x03\x02\x02\x02" + - "\u0200C\x03\x02\x02\x02\u0201\u0202\x05$\x13\x02\u0202\u0203\x077\x02" + - "\x02\u0203\u0204\x05$\x13\x02\u0204E\x03\x02\x02\x02\u0205\u020E\x07\t" + - "\x02\x02\u0206\u020B\x05H%\x02\u0207\u0208\x07\x0E\x02\x02\u0208\u020A" + - "\x05H%\x02\u0209\u0207\x03\x02\x02\x02\u020A\u020D\x03\x02\x02\x02\u020B" + - "\u0209\x03\x02\x02\x02\u020B\u020C\x03\x02\x02\x02\u020C\u020F\x03\x02" + - "\x02\x02\u020D\u020B\x03\x02\x02\x02\u020E\u0206\x03\x02\x02\x02\u020E" + - "\u020F\x03\x02\x02\x02\u020F\u0210\x03\x02\x02\x02\u0210\u0211\x07\n\x02" + - "\x02\u0211G\x03\x02\x02\x02\u0212\u0216\x05$\x13\x02\u0213\u0216\x05J" + - "&\x02\u0214\u0216\x05N(\x02\u0215\u0212\x03\x02\x02\x02\u0215\u0213\x03" + - "\x02\x02\x02\u0215\u0214\x03\x02\x02\x02\u0216I\x03\x02\x02\x02\u0217" + - "\u0225\x05L\'\x02\u0218\u0221\x07\t\x02\x02\u0219\u021E\x05L\'\x02\u021A" + - "\u021B\x07\x0E\x02\x02\u021B\u021D\x05L\'\x02\u021C\u021A\x03\x02\x02" + - "\x02\u021D\u0220\x03\x02\x02\x02\u021E\u021C\x03\x02\x02\x02\u021E\u021F" + - "\x03\x02\x02\x02\u021F\u0222\x03\x02\x02\x02\u0220\u021E\x03\x02\x02\x02" + - "\u0221\u0219\x03\x02\x02\x02\u0221\u0222\x03\x02\x02\x02\u0222\u0223\x03" + - "\x02\x02\x02\u0223\u0225\x07\n\x02\x02\u0224\u0217\x03\x02\x02\x02\u0224" + - "\u0218"; - private static readonly _serializedATNSegment1: string = - "\x03\x02\x02\x02\u0225\u0226\x03\x02\x02\x02\u0226\u0229\x07:\x02\x02" + - "\u0227\u022A\x05\x10\t\x02\u0228\u022A\x05$\x13\x02\u0229\u0227\x03\x02" + - "\x02\x02\u0229\u0228\x03\x02\x02\x02\u022AK\x03\x02\x02\x02\u022B\u022D" + - "\x05\x1A\x0E\x02\u022C\u022B\x03\x02\x02\x02\u022C\u022D\x03\x02\x02\x02" + - "\u022D\u022E\x03\x02\x02\x02\u022E\u022F\x07V\x02\x02\u022FM\x03\x02\x02" + - "\x02\u0230\u0231\x05\x1A\x0E\x02\u0231\u0232\x079\x02\x02\u0232\u0233" + - "\x07V\x02\x02\u0233\u023C\x03\x02\x02\x02\u0234\u0235\x05\x1A\x0E\x02" + - "\u0235\u0236\x079\x02\x02\u0236\u0237\x07\x19\x02\x02\u0237\u023C\x03" + - "\x02\x02\x02\u0238\u0239\x07\x1D\x02\x02\u0239\u023A\x079\x02\x02\u023A" + - "\u023C\x07V\x02\x02\u023B\u0230\x03\x02\x02\x02\u023B\u0234\x03\x02\x02" + - "\x02\u023B\u0238\x03\x02\x02\x02\u023CO\x03\x02\x02\x02>SYlow\x81\x89" + - "\x8E\x92\x96\x9B\xB3\xB5\xC3\xC8\xCC\xD2\xD6\xDE\xE8\xF0\xFA\xFD\u0102" + - "\u0135\u0137\u0145\u014C\u0155\u0161\u016A\u0171\u0178\u017F\u0182\u0188" + - "\u018C\u01A1\u01A6\u01AA\u01BF\u01C5\u01C8\u01D4\u01D7\u01DD\u01E0\u01E8" + - "\u01EF\u01F7\u01FF\u020B\u020E\u0215\u021E\u0221\u0224\u0229\u022C\u023B"; - public static readonly _serializedATN: string = Utils.join( - [ - painless_parser._serializedATNSegment0, - painless_parser._serializedATNSegment1, - ], - "", - ); - public static __ATN: ATN; + public static readonly _serializedATN: number[] = [4,1,86,572,2,0,7,0,2, + 1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2, + 10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17, + 7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7, + 24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31, + 2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,1, + 0,5,0,80,8,0,10,0,12,0,83,9,0,1,0,5,0,86,8,0,10,0,12,0,89,9,0,1,0,1,0,1, + 1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,5,2,105,8,2,10,2,12,2,108, + 9,2,3,2,110,8,2,1,2,1,2,1,3,1,3,1,3,1,3,3,3,118,8,3,1,4,1,4,1,4,1,4,1,4, + 1,4,1,4,1,4,3,4,128,8,4,1,4,1,4,1,4,1,4,1,4,1,4,3,4,136,8,4,1,4,1,4,1,4, + 3,4,141,8,4,1,4,1,4,3,4,145,8,4,1,4,1,4,3,4,149,8,4,1,4,1,4,1,4,3,4,154, + 8,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4, + 1,4,1,4,1,4,4,4,176,8,4,11,4,12,4,177,3,4,180,8,4,1,5,1,5,1,5,1,5,1,5,1, + 5,1,5,1,5,1,5,1,5,1,5,1,5,3,5,194,8,5,1,5,1,5,1,5,3,5,199,8,5,1,6,1,6,3, + 6,203,8,6,1,7,1,7,5,7,207,8,7,10,7,12,7,210,9,7,1,7,3,7,213,8,7,1,7,1,7, + 1,8,1,8,1,9,1,9,3,9,221,8,9,1,10,1,10,1,11,1,11,1,11,1,11,5,11,229,8,11, + 10,11,12,11,232,9,11,1,12,1,12,1,12,5,12,237,8,12,10,12,12,12,240,9,12, + 1,13,1,13,1,13,1,13,1,13,5,13,247,8,13,10,13,12,13,250,9,13,3,13,252,8, + 13,1,14,1,14,1,14,3,14,257,8,14,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,16, + 1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1, + 16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16, + 1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,5,16,308,8, + 16,10,16,12,16,311,9,16,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1, + 17,1,17,3,17,324,8,17,1,18,1,18,1,18,1,18,1,18,3,18,331,8,18,1,19,1,19, + 1,19,1,19,1,19,1,19,1,19,3,19,340,8,19,1,20,1,20,1,20,1,20,1,20,1,20,1, + 20,1,20,1,20,1,20,3,20,352,8,20,1,21,1,21,1,22,1,22,1,22,4,22,359,8,22, + 11,22,12,22,360,1,22,1,22,1,22,4,22,366,8,22,11,22,12,22,367,1,22,1,22, + 1,22,5,22,373,8,22,10,22,12,22,376,9,22,1,22,1,22,5,22,380,8,22,10,22,12, + 22,383,9,22,3,22,385,8,22,1,23,1,23,5,23,389,8,23,10,23,12,23,392,9,23, + 1,23,3,23,395,8,23,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1, + 24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,3,24,416,8,24,1,25,1,25,1,25, + 3,25,421,8,25,1,26,1,26,3,26,425,8,26,1,27,1,27,1,27,1,27,1,28,1,28,1,28, + 1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,1,30,4,30,444,8,30,11,30,12, + 30,445,1,30,1,30,5,30,450,8,30,10,30,12,30,453,9,30,3,30,455,8,30,1,30, + 1,30,1,30,1,30,1,30,1,30,1,30,1,30,5,30,465,8,30,10,30,12,30,468,9,30,3, + 30,470,8,30,1,30,1,30,5,30,474,8,30,10,30,12,30,477,9,30,3,30,479,8,30, + 1,31,1,31,1,31,1,31,5,31,485,8,31,10,31,12,31,488,9,31,1,31,1,31,1,31,1, + 31,3,31,494,8,31,1,32,1,32,1,32,1,32,5,32,500,8,32,10,32,12,32,503,9,32, + 1,32,1,32,1,32,1,32,1,32,3,32,510,8,32,1,33,1,33,1,33,1,33,1,34,1,34,1, + 34,1,34,5,34,520,8,34,10,34,12,34,523,9,34,3,34,525,8,34,1,34,1,34,1,35, + 1,35,1,35,3,35,532,8,35,1,36,1,36,1,36,1,36,1,36,5,36,539,8,36,10,36,12, + 36,542,9,36,3,36,544,8,36,1,36,3,36,547,8,36,1,36,1,36,1,36,3,36,552,8, + 36,1,37,3,37,555,8,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38, + 1,38,1,38,1,38,3,38,570,8,38,1,38,0,1,32,39,0,2,4,6,8,10,12,14,16,18,20, + 22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68, + 70,72,74,76,0,15,1,1,13,13,1,0,31,33,1,0,34,35,1,0,57,58,1,0,36,38,1,0, + 39,42,1,0,43,46,1,0,61,72,1,0,59,60,1,0,29,30,1,0,82,83,1,0,73,76,2,0,9, + 9,84,84,1,0,10,11,1,0,85,86,631,0,81,1,0,0,0,2,92,1,0,0,0,4,97,1,0,0,0, + 6,117,1,0,0,0,8,179,1,0,0,0,10,198,1,0,0,0,12,202,1,0,0,0,14,204,1,0,0, + 0,16,216,1,0,0,0,18,220,1,0,0,0,20,222,1,0,0,0,22,224,1,0,0,0,24,233,1, + 0,0,0,26,251,1,0,0,0,28,253,1,0,0,0,30,258,1,0,0,0,32,265,1,0,0,0,34,323, + 1,0,0,0,36,330,1,0,0,0,38,339,1,0,0,0,40,351,1,0,0,0,42,353,1,0,0,0,44, + 384,1,0,0,0,46,394,1,0,0,0,48,415,1,0,0,0,50,420,1,0,0,0,52,424,1,0,0,0, + 54,426,1,0,0,0,56,430,1,0,0,0,58,433,1,0,0,0,60,478,1,0,0,0,62,493,1,0, + 0,0,64,509,1,0,0,0,66,511,1,0,0,0,68,515,1,0,0,0,70,531,1,0,0,0,72,546, + 1,0,0,0,74,554,1,0,0,0,76,569,1,0,0,0,78,80,3,2,1,0,79,78,1,0,0,0,80,83, + 1,0,0,0,81,79,1,0,0,0,81,82,1,0,0,0,82,87,1,0,0,0,83,81,1,0,0,0,84,86,3, + 6,3,0,85,84,1,0,0,0,86,89,1,0,0,0,87,85,1,0,0,0,87,88,1,0,0,0,88,90,1,0, + 0,0,89,87,1,0,0,0,90,91,5,0,0,1,91,1,1,0,0,0,92,93,3,24,12,0,93,94,5,84, + 0,0,94,95,3,4,2,0,95,96,3,14,7,0,96,3,1,0,0,0,97,109,5,7,0,0,98,99,3,24, + 12,0,99,106,5,84,0,0,100,101,5,12,0,0,101,102,3,24,12,0,102,103,5,84,0, + 0,103,105,1,0,0,0,104,100,1,0,0,0,105,108,1,0,0,0,106,104,1,0,0,0,106,107, + 1,0,0,0,107,110,1,0,0,0,108,106,1,0,0,0,109,98,1,0,0,0,109,110,1,0,0,0, + 110,111,1,0,0,0,111,112,5,8,0,0,112,5,1,0,0,0,113,118,3,8,4,0,114,115,3, + 10,5,0,115,116,7,0,0,0,116,118,1,0,0,0,117,113,1,0,0,0,117,114,1,0,0,0, + 118,7,1,0,0,0,119,120,5,14,0,0,120,121,5,7,0,0,121,122,3,34,17,0,122,123, + 5,8,0,0,123,127,3,12,6,0,124,125,5,16,0,0,125,128,3,12,6,0,126,128,4,4, + 0,0,127,124,1,0,0,0,127,126,1,0,0,0,128,180,1,0,0,0,129,130,5,17,0,0,130, + 131,5,7,0,0,131,132,3,34,17,0,132,135,5,8,0,0,133,136,3,12,6,0,134,136, + 3,16,8,0,135,133,1,0,0,0,135,134,1,0,0,0,136,180,1,0,0,0,137,138,5,19,0, + 0,138,140,5,7,0,0,139,141,3,18,9,0,140,139,1,0,0,0,140,141,1,0,0,0,141, + 142,1,0,0,0,142,144,5,13,0,0,143,145,3,34,17,0,144,143,1,0,0,0,144,145, + 1,0,0,0,145,146,1,0,0,0,146,148,5,13,0,0,147,149,3,20,10,0,148,147,1,0, + 0,0,148,149,1,0,0,0,149,150,1,0,0,0,150,153,5,8,0,0,151,154,3,12,6,0,152, + 154,3,16,8,0,153,151,1,0,0,0,153,152,1,0,0,0,154,180,1,0,0,0,155,156,5, + 19,0,0,156,157,5,7,0,0,157,158,3,24,12,0,158,159,5,84,0,0,159,160,5,53, + 0,0,160,161,3,34,17,0,161,162,5,8,0,0,162,163,3,12,6,0,163,180,1,0,0,0, + 164,165,5,19,0,0,165,166,5,7,0,0,166,167,5,84,0,0,167,168,5,15,0,0,168, + 169,3,34,17,0,169,170,5,8,0,0,170,171,3,12,6,0,171,180,1,0,0,0,172,173, + 5,24,0,0,173,175,3,14,7,0,174,176,3,30,15,0,175,174,1,0,0,0,176,177,1,0, + 0,0,177,175,1,0,0,0,177,178,1,0,0,0,178,180,1,0,0,0,179,119,1,0,0,0,179, + 129,1,0,0,0,179,137,1,0,0,0,179,155,1,0,0,0,179,164,1,0,0,0,179,172,1,0, + 0,0,180,9,1,0,0,0,181,182,5,18,0,0,182,183,3,14,7,0,183,184,5,17,0,0,184, + 185,5,7,0,0,185,186,3,34,17,0,186,187,5,8,0,0,187,199,1,0,0,0,188,199,3, + 22,11,0,189,199,5,20,0,0,190,199,5,21,0,0,191,193,5,22,0,0,192,194,3,34, + 17,0,193,192,1,0,0,0,193,194,1,0,0,0,194,199,1,0,0,0,195,196,5,26,0,0,196, + 199,3,34,17,0,197,199,3,34,17,0,198,181,1,0,0,0,198,188,1,0,0,0,198,189, + 1,0,0,0,198,190,1,0,0,0,198,191,1,0,0,0,198,195,1,0,0,0,198,197,1,0,0,0, + 199,11,1,0,0,0,200,203,3,14,7,0,201,203,3,6,3,0,202,200,1,0,0,0,202,201, + 1,0,0,0,203,13,1,0,0,0,204,208,5,3,0,0,205,207,3,6,3,0,206,205,1,0,0,0, + 207,210,1,0,0,0,208,206,1,0,0,0,208,209,1,0,0,0,209,212,1,0,0,0,210,208, + 1,0,0,0,211,213,3,10,5,0,212,211,1,0,0,0,212,213,1,0,0,0,213,214,1,0,0, + 0,214,215,5,4,0,0,215,15,1,0,0,0,216,217,5,13,0,0,217,17,1,0,0,0,218,221, + 3,22,11,0,219,221,3,34,17,0,220,218,1,0,0,0,220,219,1,0,0,0,221,19,1,0, + 0,0,222,223,3,34,17,0,223,21,1,0,0,0,224,225,3,24,12,0,225,230,3,28,14, + 0,226,227,5,12,0,0,227,229,3,28,14,0,228,226,1,0,0,0,229,232,1,0,0,0,230, + 228,1,0,0,0,230,231,1,0,0,0,231,23,1,0,0,0,232,230,1,0,0,0,233,238,3,26, + 13,0,234,235,5,5,0,0,235,237,5,6,0,0,236,234,1,0,0,0,237,240,1,0,0,0,238, + 236,1,0,0,0,238,239,1,0,0,0,239,25,1,0,0,0,240,238,1,0,0,0,241,252,5,83, + 0,0,242,252,5,82,0,0,243,248,5,84,0,0,244,245,5,10,0,0,245,247,5,86,0,0, + 246,244,1,0,0,0,247,250,1,0,0,0,248,246,1,0,0,0,248,249,1,0,0,0,249,252, + 1,0,0,0,250,248,1,0,0,0,251,241,1,0,0,0,251,242,1,0,0,0,251,243,1,0,0,0, + 252,27,1,0,0,0,253,256,5,84,0,0,254,255,5,61,0,0,255,257,3,34,17,0,256, + 254,1,0,0,0,256,257,1,0,0,0,257,29,1,0,0,0,258,259,5,25,0,0,259,260,5,7, + 0,0,260,261,3,26,13,0,261,262,5,84,0,0,262,263,5,8,0,0,263,264,3,14,7,0, + 264,31,1,0,0,0,265,266,6,16,-1,0,266,267,3,36,18,0,267,309,1,0,0,0,268, + 269,10,13,0,0,269,270,7,1,0,0,270,308,3,32,16,14,271,272,10,12,0,0,272, + 273,7,2,0,0,273,308,3,32,16,13,274,275,10,11,0,0,275,276,7,3,0,0,276,308, + 3,32,16,12,277,278,10,10,0,0,278,279,7,4,0,0,279,308,3,32,16,11,280,281, + 10,9,0,0,281,282,7,5,0,0,282,308,3,32,16,10,283,284,10,7,0,0,284,285,7, + 6,0,0,285,308,3,32,16,8,286,287,10,6,0,0,287,288,5,47,0,0,288,308,3,32, + 16,7,289,290,10,5,0,0,290,291,5,48,0,0,291,308,3,32,16,6,292,293,10,4,0, + 0,293,294,5,49,0,0,294,308,3,32,16,5,295,296,10,3,0,0,296,297,5,50,0,0, + 297,308,3,32,16,4,298,299,10,2,0,0,299,300,5,51,0,0,300,308,3,32,16,3,301, + 302,10,1,0,0,302,303,5,54,0,0,303,308,3,32,16,1,304,305,10,8,0,0,305,306, + 5,28,0,0,306,308,3,24,12,0,307,268,1,0,0,0,307,271,1,0,0,0,307,274,1,0, + 0,0,307,277,1,0,0,0,307,280,1,0,0,0,307,283,1,0,0,0,307,286,1,0,0,0,307, + 289,1,0,0,0,307,292,1,0,0,0,307,295,1,0,0,0,307,298,1,0,0,0,307,301,1,0, + 0,0,307,304,1,0,0,0,308,311,1,0,0,0,309,307,1,0,0,0,309,310,1,0,0,0,310, + 33,1,0,0,0,311,309,1,0,0,0,312,324,3,32,16,0,313,314,3,32,16,0,314,315, + 5,52,0,0,315,316,3,34,17,0,316,317,5,53,0,0,317,318,3,34,17,0,318,324,1, + 0,0,0,319,320,3,32,16,0,320,321,7,7,0,0,321,322,3,34,17,0,322,324,1,0,0, + 0,323,312,1,0,0,0,323,313,1,0,0,0,323,319,1,0,0,0,324,35,1,0,0,0,325,326, + 7,8,0,0,326,331,3,46,23,0,327,328,7,2,0,0,328,331,3,36,18,0,329,331,3,38, + 19,0,330,325,1,0,0,0,330,327,1,0,0,0,330,329,1,0,0,0,331,37,1,0,0,0,332, + 340,3,46,23,0,333,334,3,46,23,0,334,335,7,8,0,0,335,340,1,0,0,0,336,337, + 7,9,0,0,337,340,3,36,18,0,338,340,3,40,20,0,339,332,1,0,0,0,339,333,1,0, + 0,0,339,336,1,0,0,0,339,338,1,0,0,0,340,39,1,0,0,0,341,342,5,7,0,0,342, + 343,3,42,21,0,343,344,5,8,0,0,344,345,3,36,18,0,345,352,1,0,0,0,346,347, + 5,7,0,0,347,348,3,44,22,0,348,349,5,8,0,0,349,350,3,38,19,0,350,352,1,0, + 0,0,351,341,1,0,0,0,351,346,1,0,0,0,352,41,1,0,0,0,353,354,7,10,0,0,354, + 43,1,0,0,0,355,358,5,83,0,0,356,357,5,5,0,0,357,359,5,6,0,0,358,356,1,0, + 0,0,359,360,1,0,0,0,360,358,1,0,0,0,360,361,1,0,0,0,361,385,1,0,0,0,362, + 365,5,82,0,0,363,364,5,5,0,0,364,366,5,6,0,0,365,363,1,0,0,0,366,367,1, + 0,0,0,367,365,1,0,0,0,367,368,1,0,0,0,368,385,1,0,0,0,369,374,5,84,0,0, + 370,371,5,10,0,0,371,373,5,86,0,0,372,370,1,0,0,0,373,376,1,0,0,0,374,372, + 1,0,0,0,374,375,1,0,0,0,375,381,1,0,0,0,376,374,1,0,0,0,377,378,5,5,0,0, + 378,380,5,6,0,0,379,377,1,0,0,0,380,383,1,0,0,0,381,379,1,0,0,0,381,382, + 1,0,0,0,382,385,1,0,0,0,383,381,1,0,0,0,384,355,1,0,0,0,384,362,1,0,0,0, + 384,369,1,0,0,0,385,45,1,0,0,0,386,390,3,48,24,0,387,389,3,50,25,0,388, + 387,1,0,0,0,389,392,1,0,0,0,390,388,1,0,0,0,390,391,1,0,0,0,391,395,1,0, + 0,0,392,390,1,0,0,0,393,395,3,60,30,0,394,386,1,0,0,0,394,393,1,0,0,0,395, + 47,1,0,0,0,396,397,5,7,0,0,397,398,3,34,17,0,398,399,5,8,0,0,399,416,1, + 0,0,0,400,416,7,11,0,0,401,416,5,79,0,0,402,416,5,80,0,0,403,416,5,81,0, + 0,404,416,5,77,0,0,405,416,5,78,0,0,406,416,3,62,31,0,407,416,3,64,32,0, + 408,416,5,84,0,0,409,410,7,12,0,0,410,416,3,68,34,0,411,412,5,23,0,0,412, + 413,3,26,13,0,413,414,3,68,34,0,414,416,1,0,0,0,415,396,1,0,0,0,415,400, + 1,0,0,0,415,401,1,0,0,0,415,402,1,0,0,0,415,403,1,0,0,0,415,404,1,0,0,0, + 415,405,1,0,0,0,415,406,1,0,0,0,415,407,1,0,0,0,415,408,1,0,0,0,415,409, + 1,0,0,0,415,411,1,0,0,0,416,49,1,0,0,0,417,421,3,54,27,0,418,421,3,56,28, + 0,419,421,3,58,29,0,420,417,1,0,0,0,420,418,1,0,0,0,420,419,1,0,0,0,421, + 51,1,0,0,0,422,425,3,54,27,0,423,425,3,56,28,0,424,422,1,0,0,0,424,423, + 1,0,0,0,425,53,1,0,0,0,426,427,7,13,0,0,427,428,5,86,0,0,428,429,3,68,34, + 0,429,55,1,0,0,0,430,431,7,13,0,0,431,432,7,14,0,0,432,57,1,0,0,0,433,434, + 5,5,0,0,434,435,3,34,17,0,435,436,5,6,0,0,436,59,1,0,0,0,437,438,5,23,0, + 0,438,443,3,26,13,0,439,440,5,5,0,0,440,441,3,34,17,0,441,442,5,6,0,0,442, + 444,1,0,0,0,443,439,1,0,0,0,444,445,1,0,0,0,445,443,1,0,0,0,445,446,1,0, + 0,0,446,454,1,0,0,0,447,451,3,52,26,0,448,450,3,50,25,0,449,448,1,0,0,0, + 450,453,1,0,0,0,451,449,1,0,0,0,451,452,1,0,0,0,452,455,1,0,0,0,453,451, + 1,0,0,0,454,447,1,0,0,0,454,455,1,0,0,0,455,479,1,0,0,0,456,457,5,23,0, + 0,457,458,3,26,13,0,458,459,5,5,0,0,459,460,5,6,0,0,460,469,5,3,0,0,461, + 466,3,34,17,0,462,463,5,12,0,0,463,465,3,34,17,0,464,462,1,0,0,0,465,468, + 1,0,0,0,466,464,1,0,0,0,466,467,1,0,0,0,467,470,1,0,0,0,468,466,1,0,0,0, + 469,461,1,0,0,0,469,470,1,0,0,0,470,471,1,0,0,0,471,475,5,4,0,0,472,474, + 3,50,25,0,473,472,1,0,0,0,474,477,1,0,0,0,475,473,1,0,0,0,475,476,1,0,0, + 0,476,479,1,0,0,0,477,475,1,0,0,0,478,437,1,0,0,0,478,456,1,0,0,0,479,61, + 1,0,0,0,480,481,5,5,0,0,481,486,3,34,17,0,482,483,5,12,0,0,483,485,3,34, + 17,0,484,482,1,0,0,0,485,488,1,0,0,0,486,484,1,0,0,0,486,487,1,0,0,0,487, + 489,1,0,0,0,488,486,1,0,0,0,489,490,5,6,0,0,490,494,1,0,0,0,491,492,5,5, + 0,0,492,494,5,6,0,0,493,480,1,0,0,0,493,491,1,0,0,0,494,63,1,0,0,0,495, + 496,5,5,0,0,496,501,3,66,33,0,497,498,5,12,0,0,498,500,3,66,33,0,499,497, + 1,0,0,0,500,503,1,0,0,0,501,499,1,0,0,0,501,502,1,0,0,0,502,504,1,0,0,0, + 503,501,1,0,0,0,504,505,5,6,0,0,505,510,1,0,0,0,506,507,5,5,0,0,507,508, + 5,53,0,0,508,510,5,6,0,0,509,495,1,0,0,0,509,506,1,0,0,0,510,65,1,0,0,0, + 511,512,3,34,17,0,512,513,5,53,0,0,513,514,3,34,17,0,514,67,1,0,0,0,515, + 524,5,7,0,0,516,521,3,70,35,0,517,518,5,12,0,0,518,520,3,70,35,0,519,517, + 1,0,0,0,520,523,1,0,0,0,521,519,1,0,0,0,521,522,1,0,0,0,522,525,1,0,0,0, + 523,521,1,0,0,0,524,516,1,0,0,0,524,525,1,0,0,0,525,526,1,0,0,0,526,527, + 5,8,0,0,527,69,1,0,0,0,528,532,3,34,17,0,529,532,3,72,36,0,530,532,3,76, + 38,0,531,528,1,0,0,0,531,529,1,0,0,0,531,530,1,0,0,0,532,71,1,0,0,0,533, + 547,3,74,37,0,534,543,5,7,0,0,535,540,3,74,37,0,536,537,5,12,0,0,537,539, + 3,74,37,0,538,536,1,0,0,0,539,542,1,0,0,0,540,538,1,0,0,0,540,541,1,0,0, + 0,541,544,1,0,0,0,542,540,1,0,0,0,543,535,1,0,0,0,543,544,1,0,0,0,544,545, + 1,0,0,0,545,547,5,8,0,0,546,533,1,0,0,0,546,534,1,0,0,0,547,548,1,0,0,0, + 548,551,5,56,0,0,549,552,3,14,7,0,550,552,3,34,17,0,551,549,1,0,0,0,551, + 550,1,0,0,0,552,73,1,0,0,0,553,555,3,24,12,0,554,553,1,0,0,0,554,555,1, + 0,0,0,555,556,1,0,0,0,556,557,5,84,0,0,557,75,1,0,0,0,558,559,3,24,12,0, + 559,560,5,55,0,0,560,561,5,84,0,0,561,570,1,0,0,0,562,563,3,24,12,0,563, + 564,5,55,0,0,564,565,5,23,0,0,565,570,1,0,0,0,566,567,5,27,0,0,567,568, + 5,55,0,0,568,570,5,84,0,0,569,558,1,0,0,0,569,562,1,0,0,0,569,566,1,0,0, + 0,570,77,1,0,0,0,60,81,87,106,109,117,127,135,140,144,148,153,177,179,193, + 198,202,208,212,220,230,238,248,251,256,307,309,323,330,339,351,360,367, + 374,381,384,390,394,415,420,424,445,451,454,466,469,475,478,486,493,501, + 509,521,524,531,540,543,546,551,554,569]; + + private static __ATN: ATN; public static get _ATN(): ATN { if (!painless_parser.__ATN) { - painless_parser.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(painless_parser._serializedATN)); + painless_parser.__ATN = new ATNDeserializer().deserialize(painless_parser._serializedATN); } return painless_parser.__ATN; } + + static DecisionsToDFA = painless_parser._ATN.decisionToState.map( (ds: DecisionState, index: number) => new DFA(ds, index) ); + } export class SourceContext extends ParserRuleContext { - public EOF(): TerminalNode { return this.getToken(painless_parser.EOF, 0); } - public function(): FunctionContext[]; - public function(i: number): FunctionContext; - public function(i?: number): FunctionContext | FunctionContext[] { - if (i === undefined) { - return this.getRuleContexts(FunctionContext); - } else { - return this.getRuleContext(i, FunctionContext); - } - } - public statement(): StatementContext[]; - public statement(i: number): StatementContext; - public statement(i?: number): StatementContext | StatementContext[] { - if (i === undefined) { - return this.getRuleContexts(StatementContext); - } else { - return this.getRuleContext(i, StatementContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public EOF(): TerminalNode { + return this.getToken(painless_parser.EOF, 0); + } + public function__list(): FunctionContext[] { + return this.getTypedRuleContexts(FunctionContext) as FunctionContext[]; + } + public function_(i: number): FunctionContext { + return this.getTypedRuleContext(FunctionContext, i) as FunctionContext; + } + public statement_list(): StatementContext[] { + return this.getTypedRuleContexts(StatementContext) as StatementContext[]; + } + public statement(i: number): StatementContext { + return this.getTypedRuleContext(StatementContext, i) as StatementContext; + } + public get ruleIndex(): number { + return painless_parser.RULE_source; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_source; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterSource) { - listener.enterSource(this); + if(listener.enterSource) { + listener.enterSource(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitSource) { - listener.exitSource(this); + if(listener.exitSource) { + listener.exitSource(this); } } } export class FunctionContext extends ParserRuleContext { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } public decltype(): DecltypeContext { - return this.getRuleContext(0, DecltypeContext); + return this.getTypedRuleContext(DecltypeContext, 0) as DecltypeContext; + } + public ID(): TerminalNode { + return this.getToken(painless_parser.ID, 0); } - public ID(): TerminalNode { return this.getToken(painless_parser.ID, 0); } public parameters(): ParametersContext { - return this.getRuleContext(0, ParametersContext); + return this.getTypedRuleContext(ParametersContext, 0) as ParametersContext; } public block(): BlockContext { - return this.getRuleContext(0, BlockContext); + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public get ruleIndex(): number { + return painless_parser.RULE_function; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_function; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterFunction) { - listener.enterFunction(this); + if(listener.enterFunction) { + listener.enterFunction(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitFunction) { - listener.exitFunction(this); + if(listener.exitFunction) { + listener.exitFunction(this); } } } export class ParametersContext extends ParserRuleContext { - public LP(): TerminalNode { return this.getToken(painless_parser.LP, 0); } - public RP(): TerminalNode { return this.getToken(painless_parser.RP, 0); } - public decltype(): DecltypeContext[]; - public decltype(i: number): DecltypeContext; - public decltype(i?: number): DecltypeContext | DecltypeContext[] { - if (i === undefined) { - return this.getRuleContexts(DecltypeContext); - } else { - return this.getRuleContext(i, DecltypeContext); - } - } - public ID(): TerminalNode[]; - public ID(i: number): TerminalNode; - public ID(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.ID); - } else { - return this.getToken(painless_parser.ID, i); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.COMMA); - } else { - return this.getToken(painless_parser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public LP(): TerminalNode { + return this.getToken(painless_parser.LP, 0); + } + public RP(): TerminalNode { + return this.getToken(painless_parser.RP, 0); + } + public decltype_list(): DecltypeContext[] { + return this.getTypedRuleContexts(DecltypeContext) as DecltypeContext[]; + } + public decltype(i: number): DecltypeContext { + return this.getTypedRuleContext(DecltypeContext, i) as DecltypeContext; + } + public ID_list(): TerminalNode[] { + return this.getTokens(painless_parser.ID); + } + public ID(i: number): TerminalNode { + return this.getToken(painless_parser.ID, i); + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(painless_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(painless_parser.COMMA, i); + } + public get ruleIndex(): number { + return painless_parser.RULE_parameters; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_parameters; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterParameters) { - listener.enterParameters(this); + if(listener.enterParameters) { + listener.enterParameters(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitParameters) { - listener.exitParameters(this); + if(listener.exitParameters) { + listener.exitParameters(this); } } } export class StatementContext extends ParserRuleContext { - public rstatement(): RstatementContext | undefined { - return this.tryGetRuleContext(0, RstatementContext); + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; } - public dstatement(): DstatementContext | undefined { - return this.tryGetRuleContext(0, DstatementContext); + public rstatement(): RstatementContext { + return this.getTypedRuleContext(RstatementContext, 0) as RstatementContext; } - public SEMICOLON(): TerminalNode | undefined { return this.tryGetToken(painless_parser.SEMICOLON, 0); } - public EOF(): TerminalNode | undefined { return this.tryGetToken(painless_parser.EOF, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public dstatement(): DstatementContext { + return this.getTypedRuleContext(DstatementContext, 0) as DstatementContext; + } + public SEMICOLON(): TerminalNode { + return this.getToken(painless_parser.SEMICOLON, 0); + } + public EOF(): TerminalNode { + return this.getToken(painless_parser.EOF, 0); + } + public get ruleIndex(): number { + return painless_parser.RULE_statement; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_statement; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterStatement) { - listener.enterStatement(this); + if(listener.enterStatement) { + listener.enterStatement(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitStatement) { - listener.exitStatement(this); + if(listener.exitStatement) { + listener.exitStatement(this); } } } export class RstatementContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return painless_parser.RULE_rstatement; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_rstatement; } public copyFrom(ctx: RstatementContext): void { super.copyFrom(ctx); } } -export class IfContext extends RstatementContext { - public IF(): TerminalNode { return this.getToken(painless_parser.IF, 0); } - public LP(): TerminalNode { return this.getToken(painless_parser.LP, 0); } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); +export class ForContext extends RstatementContext { + constructor(parser: painless_parser, ctx: RstatementContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - public RP(): TerminalNode { return this.getToken(painless_parser.RP, 0); } - public trailer(): TrailerContext[]; - public trailer(i: number): TrailerContext; - public trailer(i?: number): TrailerContext | TrailerContext[] { - if (i === undefined) { - return this.getRuleContexts(TrailerContext); - } else { - return this.getRuleContext(i, TrailerContext); - } + public FOR(): TerminalNode { + return this.getToken(painless_parser.FOR, 0); + } + public LP(): TerminalNode { + return this.getToken(painless_parser.LP, 0); + } + public SEMICOLON_list(): TerminalNode[] { + return this.getTokens(painless_parser.SEMICOLON); + } + public SEMICOLON(i: number): TerminalNode { + return this.getToken(painless_parser.SEMICOLON, i); + } + public RP(): TerminalNode { + return this.getToken(painless_parser.RP, 0); + } + public trailer(): TrailerContext { + return this.getTypedRuleContext(TrailerContext, 0) as TrailerContext; } - public ELSE(): TerminalNode | undefined { return this.tryGetToken(painless_parser.ELSE, 0); } - constructor(ctx: RstatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public empty(): EmptyContext { + return this.getTypedRuleContext(EmptyContext, 0) as EmptyContext; + } + public initializer(): InitializerContext { + return this.getTypedRuleContext(InitializerContext, 0) as InitializerContext; + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public afterthought(): AfterthoughtContext { + return this.getTypedRuleContext(AfterthoughtContext, 0) as AfterthoughtContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterIf) { - listener.enterIf(this); + if(listener.enterFor) { + listener.enterFor(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitIf) { - listener.exitIf(this); + if(listener.exitFor) { + listener.exitFor(this); } } } -export class WhileContext extends RstatementContext { - public WHILE(): TerminalNode { return this.getToken(painless_parser.WHILE, 0); } - public LP(): TerminalNode { return this.getToken(painless_parser.LP, 0); } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); +export class TryContext extends RstatementContext { + constructor(parser: painless_parser, ctx: RstatementContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public TRY(): TerminalNode { + return this.getToken(painless_parser.TRY, 0); } - public RP(): TerminalNode { return this.getToken(painless_parser.RP, 0); } - public trailer(): TrailerContext | undefined { - return this.tryGetRuleContext(0, TrailerContext); + public block(): BlockContext { + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; } - public empty(): EmptyContext | undefined { - return this.tryGetRuleContext(0, EmptyContext); + public trap_list(): TrapContext[] { + return this.getTypedRuleContexts(TrapContext) as TrapContext[]; } - constructor(ctx: RstatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public trap(i: number): TrapContext { + return this.getTypedRuleContext(TrapContext, i) as TrapContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterWhile) { - listener.enterWhile(this); + if(listener.enterTry) { + listener.enterTry(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitWhile) { - listener.exitWhile(this); + if(listener.exitTry) { + listener.exitTry(this); } } } -export class ForContext extends RstatementContext { - public FOR(): TerminalNode { return this.getToken(painless_parser.FOR, 0); } - public LP(): TerminalNode { return this.getToken(painless_parser.LP, 0); } - public SEMICOLON(): TerminalNode[]; - public SEMICOLON(i: number): TerminalNode; - public SEMICOLON(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.SEMICOLON); - } else { - return this.getToken(painless_parser.SEMICOLON, i); - } +export class WhileContext extends RstatementContext { + constructor(parser: painless_parser, ctx: RstatementContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - public RP(): TerminalNode { return this.getToken(painless_parser.RP, 0); } - public trailer(): TrailerContext | undefined { - return this.tryGetRuleContext(0, TrailerContext); + public WHILE(): TerminalNode { + return this.getToken(painless_parser.WHILE, 0); } - public empty(): EmptyContext | undefined { - return this.tryGetRuleContext(0, EmptyContext); + public LP(): TerminalNode { + return this.getToken(painless_parser.LP, 0); } - public initializer(): InitializerContext | undefined { - return this.tryGetRuleContext(0, InitializerContext); + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); + public RP(): TerminalNode { + return this.getToken(painless_parser.RP, 0); } - public afterthought(): AfterthoughtContext | undefined { - return this.tryGetRuleContext(0, AfterthoughtContext); + public trailer(): TrailerContext { + return this.getTypedRuleContext(TrailerContext, 0) as TrailerContext; } - constructor(ctx: RstatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public empty(): EmptyContext { + return this.getTypedRuleContext(EmptyContext, 0) as EmptyContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterFor) { - listener.enterFor(this); + if(listener.enterWhile) { + listener.enterWhile(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitFor) { - listener.exitFor(this); + if(listener.exitWhile) { + listener.exitWhile(this); } } } -export class EachContext extends RstatementContext { - public FOR(): TerminalNode { return this.getToken(painless_parser.FOR, 0); } - public LP(): TerminalNode { return this.getToken(painless_parser.LP, 0); } - public decltype(): DecltypeContext { - return this.getRuleContext(0, DecltypeContext); +export class IneachContext extends RstatementContext { + constructor(parser: painless_parser, ctx: RstatementContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public FOR(): TerminalNode { + return this.getToken(painless_parser.FOR, 0); + } + public LP(): TerminalNode { + return this.getToken(painless_parser.LP, 0); + } + public ID(): TerminalNode { + return this.getToken(painless_parser.ID, 0); + } + public IN(): TerminalNode { + return this.getToken(painless_parser.IN, 0); } - public ID(): TerminalNode { return this.getToken(painless_parser.ID, 0); } - public COLON(): TerminalNode { return this.getToken(painless_parser.COLON, 0); } public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; } - public RP(): TerminalNode { return this.getToken(painless_parser.RP, 0); } - public trailer(): TrailerContext { - return this.getRuleContext(0, TrailerContext); + public RP(): TerminalNode { + return this.getToken(painless_parser.RP, 0); } - constructor(ctx: RstatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public trailer(): TrailerContext { + return this.getTypedRuleContext(TrailerContext, 0) as TrailerContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterEach) { - listener.enterEach(this); + if(listener.enterIneach) { + listener.enterIneach(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitEach) { - listener.exitEach(this); + if(listener.exitIneach) { + listener.exitIneach(this); } } } -export class IneachContext extends RstatementContext { - public FOR(): TerminalNode { return this.getToken(painless_parser.FOR, 0); } - public LP(): TerminalNode { return this.getToken(painless_parser.LP, 0); } - public ID(): TerminalNode { return this.getToken(painless_parser.ID, 0); } - public IN(): TerminalNode { return this.getToken(painless_parser.IN, 0); } +export class IfContext extends RstatementContext { + constructor(parser: painless_parser, ctx: RstatementContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public IF(): TerminalNode { + return this.getToken(painless_parser.IF, 0); + } + public LP(): TerminalNode { + return this.getToken(painless_parser.LP, 0); + } public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; } - public RP(): TerminalNode { return this.getToken(painless_parser.RP, 0); } - public trailer(): TrailerContext { - return this.getRuleContext(0, TrailerContext); + public RP(): TerminalNode { + return this.getToken(painless_parser.RP, 0); + } + public trailer_list(): TrailerContext[] { + return this.getTypedRuleContexts(TrailerContext) as TrailerContext[]; } - constructor(ctx: RstatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public trailer(i: number): TrailerContext { + return this.getTypedRuleContext(TrailerContext, i) as TrailerContext; + } + public ELSE(): TerminalNode { + return this.getToken(painless_parser.ELSE, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterIneach) { - listener.enterIneach(this); + if(listener.enterIf) { + listener.enterIf(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitIneach) { - listener.exitIneach(this); + if(listener.exitIf) { + listener.exitIf(this); } } } -export class TryContext extends RstatementContext { - public TRY(): TerminalNode { return this.getToken(painless_parser.TRY, 0); } - public block(): BlockContext { - return this.getRuleContext(0, BlockContext); +export class EachContext extends RstatementContext { + constructor(parser: painless_parser, ctx: RstatementContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - public trap(): TrapContext[]; - public trap(i: number): TrapContext; - public trap(i?: number): TrapContext | TrapContext[] { - if (i === undefined) { - return this.getRuleContexts(TrapContext); - } else { - return this.getRuleContext(i, TrapContext); - } + public FOR(): TerminalNode { + return this.getToken(painless_parser.FOR, 0); + } + public LP(): TerminalNode { + return this.getToken(painless_parser.LP, 0); + } + public decltype(): DecltypeContext { + return this.getTypedRuleContext(DecltypeContext, 0) as DecltypeContext; + } + public ID(): TerminalNode { + return this.getToken(painless_parser.ID, 0); } - constructor(ctx: RstatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public COLON(): TerminalNode { + return this.getToken(painless_parser.COLON, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public RP(): TerminalNode { + return this.getToken(painless_parser.RP, 0); + } + public trailer(): TrailerContext { + return this.getTypedRuleContext(TrailerContext, 0) as TrailerContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterTry) { - listener.enterTry(this); + if(listener.enterEach) { + listener.enterEach(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitTry) { - listener.exitTry(this); + if(listener.exitEach) { + listener.exitEach(this); } } } export class DstatementContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return painless_parser.RULE_dstatement; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_dstatement; } public copyFrom(ctx: DstatementContext): void { super.copyFrom(ctx); } } -export class DoContext extends DstatementContext { - public DO(): TerminalNode { return this.getToken(painless_parser.DO, 0); } - public block(): BlockContext { - return this.getRuleContext(0, BlockContext); - } - public WHILE(): TerminalNode { return this.getToken(painless_parser.WHILE, 0); } - public LP(): TerminalNode { return this.getToken(painless_parser.LP, 0); } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); +export class DeclContext extends DstatementContext { + constructor(parser: painless_parser, ctx: DstatementContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - public RP(): TerminalNode { return this.getToken(painless_parser.RP, 0); } - constructor(ctx: DstatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public declaration(): DeclarationContext { + return this.getTypedRuleContext(DeclarationContext, 0) as DeclarationContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterDo) { - listener.enterDo(this); + if(listener.enterDecl) { + listener.enterDecl(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitDo) { - listener.exitDo(this); + if(listener.exitDecl) { + listener.exitDecl(this); } } } -export class DeclContext extends DstatementContext { - public declaration(): DeclarationContext { - return this.getRuleContext(0, DeclarationContext); - } - constructor(ctx: DstatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); +export class BreakContext extends DstatementContext { + constructor(parser: painless_parser, ctx: DstatementContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public BREAK(): TerminalNode { + return this.getToken(painless_parser.BREAK, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterDecl) { - listener.enterDecl(this); + if(listener.enterBreak) { + listener.enterBreak(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitDecl) { - listener.exitDecl(this); + if(listener.exitBreak) { + listener.exitBreak(this); } } } -export class ContinueContext extends DstatementContext { - public CONTINUE(): TerminalNode { return this.getToken(painless_parser.CONTINUE, 0); } - constructor(ctx: DstatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); +export class ThrowContext extends DstatementContext { + constructor(parser: painless_parser, ctx: DstatementContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public THROW(): TerminalNode { + return this.getToken(painless_parser.THROW, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterContinue) { - listener.enterContinue(this); + if(listener.enterThrow) { + listener.enterThrow(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitContinue) { - listener.exitContinue(this); + if(listener.exitThrow) { + listener.exitThrow(this); } } } -export class BreakContext extends DstatementContext { - public BREAK(): TerminalNode { return this.getToken(painless_parser.BREAK, 0); } - constructor(ctx: DstatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); +export class ContinueContext extends DstatementContext { + constructor(parser: painless_parser, ctx: DstatementContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public CONTINUE(): TerminalNode { + return this.getToken(painless_parser.CONTINUE, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterBreak) { - listener.enterBreak(this); + if(listener.enterContinue) { + listener.enterContinue(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitBreak) { - listener.exitBreak(this); + if(listener.exitContinue) { + listener.exitContinue(this); } } } -export class ReturnContext extends DstatementContext { - public RETURN(): TerminalNode { return this.getToken(painless_parser.RETURN, 0); } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); +export class ExprContext extends DstatementContext { + constructor(parser: painless_parser, ctx: DstatementContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - constructor(ctx: DstatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterReturn) { - listener.enterReturn(this); + if(listener.enterExpr) { + listener.enterExpr(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitReturn) { - listener.exitReturn(this); + if(listener.exitExpr) { + listener.exitExpr(this); } } } -export class ThrowContext extends DstatementContext { - public THROW(): TerminalNode { return this.getToken(painless_parser.THROW, 0); } +export class DoContext extends DstatementContext { + constructor(parser: painless_parser, ctx: DstatementContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public DO(): TerminalNode { + return this.getToken(painless_parser.DO, 0); + } + public block(): BlockContext { + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; + } + public WHILE(): TerminalNode { + return this.getToken(painless_parser.WHILE, 0); + } + public LP(): TerminalNode { + return this.getToken(painless_parser.LP, 0); + } public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; } - constructor(ctx: DstatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public RP(): TerminalNode { + return this.getToken(painless_parser.RP, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterThrow) { - listener.enterThrow(this); + if(listener.enterDo) { + listener.enterDo(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitThrow) { - listener.exitThrow(this); + if(listener.exitDo) { + listener.exitDo(this); } } } -export class ExprContext extends DstatementContext { - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); +export class ReturnContext extends DstatementContext { + constructor(parser: painless_parser, ctx: DstatementContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public RETURN(): TerminalNode { + return this.getToken(painless_parser.RETURN, 0); } - constructor(ctx: DstatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterExpr) { - listener.enterExpr(this); + if(listener.enterReturn) { + listener.enterReturn(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitExpr) { - listener.exitExpr(this); + if(listener.exitReturn) { + listener.exitReturn(this); } } } export class TrailerContext extends ParserRuleContext { - public block(): BlockContext | undefined { - return this.tryGetRuleContext(0, BlockContext); + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; } - public statement(): StatementContext | undefined { - return this.tryGetRuleContext(0, StatementContext); + public block(): BlockContext { + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public statement(): StatementContext { + return this.getTypedRuleContext(StatementContext, 0) as StatementContext; + } + public get ruleIndex(): number { + return painless_parser.RULE_trailer; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_trailer; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterTrailer) { - listener.enterTrailer(this); + if(listener.enterTrailer) { + listener.enterTrailer(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitTrailer) { - listener.exitTrailer(this); + if(listener.exitTrailer) { + listener.exitTrailer(this); } } } export class BlockContext extends ParserRuleContext { - public LBRACK(): TerminalNode { return this.getToken(painless_parser.LBRACK, 0); } - public RBRACK(): TerminalNode { return this.getToken(painless_parser.RBRACK, 0); } - public statement(): StatementContext[]; - public statement(i: number): StatementContext; - public statement(i?: number): StatementContext | StatementContext[] { - if (i === undefined) { - return this.getRuleContexts(StatementContext); - } else { - return this.getRuleContext(i, StatementContext); - } + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; } - public dstatement(): DstatementContext | undefined { - return this.tryGetRuleContext(0, DstatementContext); + public LBRACK(): TerminalNode { + return this.getToken(painless_parser.LBRACK, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public RBRACK(): TerminalNode { + return this.getToken(painless_parser.RBRACK, 0); + } + public statement_list(): StatementContext[] { + return this.getTypedRuleContexts(StatementContext) as StatementContext[]; + } + public statement(i: number): StatementContext { + return this.getTypedRuleContext(StatementContext, i) as StatementContext; + } + public dstatement(): DstatementContext { + return this.getTypedRuleContext(DstatementContext, 0) as DstatementContext; + } + public get ruleIndex(): number { + return painless_parser.RULE_block; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_block; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterBlock) { - listener.enterBlock(this); + if(listener.enterBlock) { + listener.enterBlock(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitBlock) { - listener.exitBlock(this); + if(listener.exitBlock) { + listener.exitBlock(this); } } } export class EmptyContext extends ParserRuleContext { - public SEMICOLON(): TerminalNode { return this.getToken(painless_parser.SEMICOLON, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public SEMICOLON(): TerminalNode { + return this.getToken(painless_parser.SEMICOLON, 0); + } + public get ruleIndex(): number { + return painless_parser.RULE_empty; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_empty; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterEmpty) { - listener.enterEmpty(this); + if(listener.enterEmpty) { + listener.enterEmpty(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitEmpty) { - listener.exitEmpty(this); + if(listener.exitEmpty) { + listener.exitEmpty(this); } } } export class InitializerContext extends ParserRuleContext { - public declaration(): DeclarationContext | undefined { - return this.tryGetRuleContext(0, DeclarationContext); + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); + public declaration(): DeclarationContext { + return this.getTypedRuleContext(DeclarationContext, 0) as DeclarationContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public get ruleIndex(): number { + return painless_parser.RULE_initializer; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_initializer; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterInitializer) { - listener.enterInitializer(this); + if(listener.enterInitializer) { + listener.enterInitializer(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitInitializer) { - listener.exitInitializer(this); + if(listener.exitInitializer) { + listener.exitInitializer(this); } } } export class AfterthoughtContext extends ParserRuleContext { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public get ruleIndex(): number { + return painless_parser.RULE_afterthought; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_afterthought; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterAfterthought) { - listener.enterAfterthought(this); + if(listener.enterAfterthought) { + listener.enterAfterthought(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitAfterthought) { - listener.exitAfterthought(this); + if(listener.exitAfterthought) { + listener.exitAfterthought(this); } } } export class DeclarationContext extends ParserRuleContext { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } public decltype(): DecltypeContext { - return this.getRuleContext(0, DecltypeContext); + return this.getTypedRuleContext(DecltypeContext, 0) as DecltypeContext; } - public declvar(): DeclvarContext[]; - public declvar(i: number): DeclvarContext; - public declvar(i?: number): DeclvarContext | DeclvarContext[] { - if (i === undefined) { - return this.getRuleContexts(DeclvarContext); - } else { - return this.getRuleContext(i, DeclvarContext); - } + public declvar_list(): DeclvarContext[] { + return this.getTypedRuleContexts(DeclvarContext) as DeclvarContext[]; } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.COMMA); - } else { - return this.getToken(painless_parser.COMMA, i); - } + public declvar(i: number): DeclvarContext { + return this.getTypedRuleContext(DeclvarContext, i) as DeclvarContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public COMMA_list(): TerminalNode[] { + return this.getTokens(painless_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(painless_parser.COMMA, i); + } + public get ruleIndex(): number { + return painless_parser.RULE_declaration; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_declaration; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterDeclaration) { - listener.enterDeclaration(this); + if(listener.enterDeclaration) { + listener.enterDeclaration(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitDeclaration) { - listener.exitDeclaration(this); + if(listener.exitDeclaration) { + listener.exitDeclaration(this); } } } export class DecltypeContext extends ParserRuleContext { - public type(): TypeContext { - return this.getRuleContext(0, TypeContext); + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; } - public LBRACE(): TerminalNode[]; - public LBRACE(i: number): TerminalNode; - public LBRACE(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.LBRACE); - } else { - return this.getToken(painless_parser.LBRACE, i); - } + public type_(): TypeContext { + return this.getTypedRuleContext(TypeContext, 0) as TypeContext; } - public RBRACE(): TerminalNode[]; - public RBRACE(i: number): TerminalNode; - public RBRACE(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.RBRACE); - } else { - return this.getToken(painless_parser.RBRACE, i); - } + public LBRACE_list(): TerminalNode[] { + return this.getTokens(painless_parser.LBRACE); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public LBRACE(i: number): TerminalNode { + return this.getToken(painless_parser.LBRACE, i); + } + public RBRACE_list(): TerminalNode[] { + return this.getTokens(painless_parser.RBRACE); + } + public RBRACE(i: number): TerminalNode { + return this.getToken(painless_parser.RBRACE, i); + } + public get ruleIndex(): number { + return painless_parser.RULE_decltype; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_decltype; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterDecltype) { - listener.enterDecltype(this); + if(listener.enterDecltype) { + listener.enterDecltype(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitDecltype) { - listener.exitDecltype(this); + if(listener.exitDecltype) { + listener.exitDecltype(this); } } } export class TypeContext extends ParserRuleContext { - public DEF(): TerminalNode | undefined { return this.tryGetToken(painless_parser.DEF, 0); } - public PRIMITIVE(): TerminalNode | undefined { return this.tryGetToken(painless_parser.PRIMITIVE, 0); } - public ID(): TerminalNode | undefined { return this.tryGetToken(painless_parser.ID, 0); } - public DOT(): TerminalNode[]; - public DOT(i: number): TerminalNode; - public DOT(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.DOT); - } else { - return this.getToken(painless_parser.DOT, i); - } - } - public DOTID(): TerminalNode[]; - public DOTID(i: number): TerminalNode; - public DOTID(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.DOTID); - } else { - return this.getToken(painless_parser.DOTID, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public DEF(): TerminalNode { + return this.getToken(painless_parser.DEF, 0); + } + public PRIMITIVE(): TerminalNode { + return this.getToken(painless_parser.PRIMITIVE, 0); + } + public ID(): TerminalNode { + return this.getToken(painless_parser.ID, 0); + } + public DOT_list(): TerminalNode[] { + return this.getTokens(painless_parser.DOT); + } + public DOT(i: number): TerminalNode { + return this.getToken(painless_parser.DOT, i); + } + public DOTID_list(): TerminalNode[] { + return this.getTokens(painless_parser.DOTID); + } + public DOTID(i: number): TerminalNode { + return this.getToken(painless_parser.DOTID, i); + } + public get ruleIndex(): number { + return painless_parser.RULE_type; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_type; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterType) { - listener.enterType(this); + if(listener.enterType) { + listener.enterType(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitType) { - listener.exitType(this); + if(listener.exitType) { + listener.exitType(this); } } } export class DeclvarContext extends ParserRuleContext { - public ID(): TerminalNode { return this.getToken(painless_parser.ID, 0); } - public ASSIGN(): TerminalNode | undefined { return this.tryGetToken(painless_parser.ASSIGN, 0); } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public ID(): TerminalNode { + return this.getToken(painless_parser.ID, 0); + } + public ASSIGN(): TerminalNode { + return this.getToken(painless_parser.ASSIGN, 0); + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public get ruleIndex(): number { + return painless_parser.RULE_declvar; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_declvar; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterDeclvar) { - listener.enterDeclvar(this); + if(listener.enterDeclvar) { + listener.enterDeclvar(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitDeclvar) { - listener.exitDeclvar(this); + if(listener.exitDeclvar) { + listener.exitDeclvar(this); } } } export class TrapContext extends ParserRuleContext { - public CATCH(): TerminalNode { return this.getToken(painless_parser.CATCH, 0); } - public LP(): TerminalNode { return this.getToken(painless_parser.LP, 0); } - public type(): TypeContext { - return this.getRuleContext(0, TypeContext); + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public CATCH(): TerminalNode { + return this.getToken(painless_parser.CATCH, 0); + } + public LP(): TerminalNode { + return this.getToken(painless_parser.LP, 0); + } + public type_(): TypeContext { + return this.getTypedRuleContext(TypeContext, 0) as TypeContext; + } + public ID(): TerminalNode { + return this.getToken(painless_parser.ID, 0); + } + public RP(): TerminalNode { + return this.getToken(painless_parser.RP, 0); } - public ID(): TerminalNode { return this.getToken(painless_parser.ID, 0); } - public RP(): TerminalNode { return this.getToken(painless_parser.RP, 0); } public block(): BlockContext { - return this.getRuleContext(0, BlockContext); + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public get ruleIndex(): number { + return painless_parser.RULE_trap; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_trap; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterTrap) { - listener.enterTrap(this); + if(listener.enterTrap) { + listener.enterTrap(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitTrap) { - listener.exitTrap(this); + if(listener.exitTrap) { + listener.exitTrap(this); } } } export class NoncondexpressionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return painless_parser.RULE_noncondexpression; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_noncondexpression; } public copyFrom(ctx: NoncondexpressionContext): void { super.copyFrom(ctx); } } export class SingleContext extends NoncondexpressionContext { - public unary(): UnaryContext { - return this.getRuleContext(0, UnaryContext); + constructor(parser: painless_parser, ctx: NoncondexpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - constructor(ctx: NoncondexpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public unary(): UnaryContext { + return this.getTypedRuleContext(UnaryContext, 0) as UnaryContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterSingle) { - listener.enterSingle(this); + if(listener.enterSingle) { + listener.enterSingle(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitSingle) { - listener.exitSingle(this); + if(listener.exitSingle) { + listener.exitSingle(this); } } } -export class BinaryContext extends NoncondexpressionContext { - public noncondexpression(): NoncondexpressionContext[]; - public noncondexpression(i: number): NoncondexpressionContext; - public noncondexpression(i?: number): NoncondexpressionContext | NoncondexpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(NoncondexpressionContext); - } else { - return this.getRuleContext(i, NoncondexpressionContext); - } - } - public MUL(): TerminalNode | undefined { return this.tryGetToken(painless_parser.MUL, 0); } - public DIV(): TerminalNode | undefined { return this.tryGetToken(painless_parser.DIV, 0); } - public REM(): TerminalNode | undefined { return this.tryGetToken(painless_parser.REM, 0); } - public ADD(): TerminalNode | undefined { return this.tryGetToken(painless_parser.ADD, 0); } - public SUB(): TerminalNode | undefined { return this.tryGetToken(painless_parser.SUB, 0); } - public FIND(): TerminalNode | undefined { return this.tryGetToken(painless_parser.FIND, 0); } - public MATCH(): TerminalNode | undefined { return this.tryGetToken(painless_parser.MATCH, 0); } - public LSH(): TerminalNode | undefined { return this.tryGetToken(painless_parser.LSH, 0); } - public RSH(): TerminalNode | undefined { return this.tryGetToken(painless_parser.RSH, 0); } - public USH(): TerminalNode | undefined { return this.tryGetToken(painless_parser.USH, 0); } - public BWAND(): TerminalNode | undefined { return this.tryGetToken(painless_parser.BWAND, 0); } - public XOR(): TerminalNode | undefined { return this.tryGetToken(painless_parser.XOR, 0); } - public BWOR(): TerminalNode | undefined { return this.tryGetToken(painless_parser.BWOR, 0); } - constructor(ctx: NoncondexpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override +export class CompContext extends NoncondexpressionContext { + constructor(parser: painless_parser, ctx: NoncondexpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public noncondexpression_list(): NoncondexpressionContext[] { + return this.getTypedRuleContexts(NoncondexpressionContext) as NoncondexpressionContext[]; + } + public noncondexpression(i: number): NoncondexpressionContext { + return this.getTypedRuleContext(NoncondexpressionContext, i) as NoncondexpressionContext; + } + public LT(): TerminalNode { + return this.getToken(painless_parser.LT, 0); + } + public LTE(): TerminalNode { + return this.getToken(painless_parser.LTE, 0); + } + public GT(): TerminalNode { + return this.getToken(painless_parser.GT, 0); + } + public GTE(): TerminalNode { + return this.getToken(painless_parser.GTE, 0); + } + public EQ(): TerminalNode { + return this.getToken(painless_parser.EQ, 0); + } + public EQR(): TerminalNode { + return this.getToken(painless_parser.EQR, 0); + } + public NE(): TerminalNode { + return this.getToken(painless_parser.NE, 0); + } + public NER(): TerminalNode { + return this.getToken(painless_parser.NER, 0); + } public enterRule(listener: painless_parserListener): void { - if (listener.enterBinary) { - listener.enterBinary(this); + if(listener.enterComp) { + listener.enterComp(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitBinary) { - listener.exitBinary(this); + if(listener.exitComp) { + listener.exitComp(this); } } } -export class CompContext extends NoncondexpressionContext { - public noncondexpression(): NoncondexpressionContext[]; - public noncondexpression(i: number): NoncondexpressionContext; - public noncondexpression(i?: number): NoncondexpressionContext | NoncondexpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(NoncondexpressionContext); - } else { - return this.getRuleContext(i, NoncondexpressionContext); - } - } - public LT(): TerminalNode | undefined { return this.tryGetToken(painless_parser.LT, 0); } - public LTE(): TerminalNode | undefined { return this.tryGetToken(painless_parser.LTE, 0); } - public GT(): TerminalNode | undefined { return this.tryGetToken(painless_parser.GT, 0); } - public GTE(): TerminalNode | undefined { return this.tryGetToken(painless_parser.GTE, 0); } - public EQ(): TerminalNode | undefined { return this.tryGetToken(painless_parser.EQ, 0); } - public EQR(): TerminalNode | undefined { return this.tryGetToken(painless_parser.EQR, 0); } - public NE(): TerminalNode | undefined { return this.tryGetToken(painless_parser.NE, 0); } - public NER(): TerminalNode | undefined { return this.tryGetToken(painless_parser.NER, 0); } - constructor(ctx: NoncondexpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override +export class BoolContext extends NoncondexpressionContext { + constructor(parser: painless_parser, ctx: NoncondexpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public noncondexpression_list(): NoncondexpressionContext[] { + return this.getTypedRuleContexts(NoncondexpressionContext) as NoncondexpressionContext[]; + } + public noncondexpression(i: number): NoncondexpressionContext { + return this.getTypedRuleContext(NoncondexpressionContext, i) as NoncondexpressionContext; + } + public BOOLAND(): TerminalNode { + return this.getToken(painless_parser.BOOLAND, 0); + } + public BOOLOR(): TerminalNode { + return this.getToken(painless_parser.BOOLOR, 0); + } public enterRule(listener: painless_parserListener): void { - if (listener.enterComp) { - listener.enterComp(this); + if(listener.enterBool) { + listener.enterBool(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitComp) { - listener.exitComp(this); + if(listener.exitBool) { + listener.exitBool(this); } } } -export class InstanceofContext extends NoncondexpressionContext { - public noncondexpression(): NoncondexpressionContext { - return this.getRuleContext(0, NoncondexpressionContext); +export class BinaryContext extends NoncondexpressionContext { + constructor(parser: painless_parser, ctx: NoncondexpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - public INSTANCEOF(): TerminalNode { return this.getToken(painless_parser.INSTANCEOF, 0); } - public decltype(): DecltypeContext { - return this.getRuleContext(0, DecltypeContext); + public noncondexpression_list(): NoncondexpressionContext[] { + return this.getTypedRuleContexts(NoncondexpressionContext) as NoncondexpressionContext[]; + } + public noncondexpression(i: number): NoncondexpressionContext { + return this.getTypedRuleContext(NoncondexpressionContext, i) as NoncondexpressionContext; + } + public MUL(): TerminalNode { + return this.getToken(painless_parser.MUL, 0); + } + public DIV(): TerminalNode { + return this.getToken(painless_parser.DIV, 0); + } + public REM(): TerminalNode { + return this.getToken(painless_parser.REM, 0); + } + public ADD(): TerminalNode { + return this.getToken(painless_parser.ADD, 0); + } + public SUB(): TerminalNode { + return this.getToken(painless_parser.SUB, 0); } - constructor(ctx: NoncondexpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public FIND(): TerminalNode { + return this.getToken(painless_parser.FIND, 0); + } + public MATCH(): TerminalNode { + return this.getToken(painless_parser.MATCH, 0); + } + public LSH(): TerminalNode { + return this.getToken(painless_parser.LSH, 0); + } + public RSH(): TerminalNode { + return this.getToken(painless_parser.RSH, 0); + } + public USH(): TerminalNode { + return this.getToken(painless_parser.USH, 0); + } + public BWAND(): TerminalNode { + return this.getToken(painless_parser.BWAND, 0); + } + public XOR(): TerminalNode { + return this.getToken(painless_parser.XOR, 0); + } + public BWOR(): TerminalNode { + return this.getToken(painless_parser.BWOR, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterInstanceof) { - listener.enterInstanceof(this); + if(listener.enterBinary) { + listener.enterBinary(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitInstanceof) { - listener.exitInstanceof(this); + if(listener.exitBinary) { + listener.exitBinary(this); } } } -export class BoolContext extends NoncondexpressionContext { - public noncondexpression(): NoncondexpressionContext[]; - public noncondexpression(i: number): NoncondexpressionContext; - public noncondexpression(i?: number): NoncondexpressionContext | NoncondexpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(NoncondexpressionContext); - } else { - return this.getRuleContext(i, NoncondexpressionContext); - } - } - public BOOLAND(): TerminalNode | undefined { return this.tryGetToken(painless_parser.BOOLAND, 0); } - public BOOLOR(): TerminalNode | undefined { return this.tryGetToken(painless_parser.BOOLOR, 0); } - constructor(ctx: NoncondexpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override +export class ElvisContext extends NoncondexpressionContext { + constructor(parser: painless_parser, ctx: NoncondexpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public noncondexpression_list(): NoncondexpressionContext[] { + return this.getTypedRuleContexts(NoncondexpressionContext) as NoncondexpressionContext[]; + } + public noncondexpression(i: number): NoncondexpressionContext { + return this.getTypedRuleContext(NoncondexpressionContext, i) as NoncondexpressionContext; + } + public ELVIS(): TerminalNode { + return this.getToken(painless_parser.ELVIS, 0); + } public enterRule(listener: painless_parserListener): void { - if (listener.enterBool) { - listener.enterBool(this); + if(listener.enterElvis) { + listener.enterElvis(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitBool) { - listener.exitBool(this); + if(listener.exitElvis) { + listener.exitElvis(this); } } } -export class ElvisContext extends NoncondexpressionContext { - public noncondexpression(): NoncondexpressionContext[]; - public noncondexpression(i: number): NoncondexpressionContext; - public noncondexpression(i?: number): NoncondexpressionContext | NoncondexpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(NoncondexpressionContext); - } else { - return this.getRuleContext(i, NoncondexpressionContext); - } +export class InstanceofContext extends NoncondexpressionContext { + constructor(parser: painless_parser, ctx: NoncondexpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public noncondexpression(): NoncondexpressionContext { + return this.getTypedRuleContext(NoncondexpressionContext, 0) as NoncondexpressionContext; + } + public INSTANCEOF(): TerminalNode { + return this.getToken(painless_parser.INSTANCEOF, 0); } - public ELVIS(): TerminalNode { return this.getToken(painless_parser.ELVIS, 0); } - constructor(ctx: NoncondexpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public decltype(): DecltypeContext { + return this.getTypedRuleContext(DecltypeContext, 0) as DecltypeContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterElvis) { - listener.enterElvis(this); + if(listener.enterInstanceof) { + listener.enterInstanceof(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitElvis) { - listener.exitElvis(this); + if(listener.exitInstanceof) { + listener.exitInstanceof(this); } } } export class ExpressionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return painless_parser.RULE_expression; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_expression; } public copyFrom(ctx: ExpressionContext): void { super.copyFrom(ctx); } } -export class NonconditionalContext extends ExpressionContext { +export class ConditionalContext extends ExpressionContext { + constructor(parser: painless_parser, ctx: ExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } public noncondexpression(): NoncondexpressionContext { - return this.getRuleContext(0, NoncondexpressionContext); + return this.getTypedRuleContext(NoncondexpressionContext, 0) as NoncondexpressionContext; + } + public COND(): TerminalNode { + return this.getToken(painless_parser.COND, 0); } - constructor(ctx: ExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public expression_list(): ExpressionContext[] { + return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[]; + } + public expression(i: number): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext; + } + public COLON(): TerminalNode { + return this.getToken(painless_parser.COLON, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterNonconditional) { - listener.enterNonconditional(this); + if(listener.enterConditional) { + listener.enterConditional(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitNonconditional) { - listener.exitNonconditional(this); + if(listener.exitConditional) { + listener.exitConditional(this); } } } -export class ConditionalContext extends ExpressionContext { +export class AssignmentContext extends ExpressionContext { + constructor(parser: painless_parser, ctx: ExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } public noncondexpression(): NoncondexpressionContext { - return this.getRuleContext(0, NoncondexpressionContext); + return this.getTypedRuleContext(NoncondexpressionContext, 0) as NoncondexpressionContext; } - public COND(): TerminalNode { return this.getToken(painless_parser.COND, 0); } - public expression(): ExpressionContext[]; - public expression(i: number): ExpressionContext; - public expression(i?: number): ExpressionContext | ExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionContext); - } else { - return this.getRuleContext(i, ExpressionContext); - } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public ASSIGN(): TerminalNode { + return this.getToken(painless_parser.ASSIGN, 0); + } + public AADD(): TerminalNode { + return this.getToken(painless_parser.AADD, 0); + } + public ASUB(): TerminalNode { + return this.getToken(painless_parser.ASUB, 0); + } + public AMUL(): TerminalNode { + return this.getToken(painless_parser.AMUL, 0); + } + public ADIV(): TerminalNode { + return this.getToken(painless_parser.ADIV, 0); + } + public AREM(): TerminalNode { + return this.getToken(painless_parser.AREM, 0); } - public COLON(): TerminalNode { return this.getToken(painless_parser.COLON, 0); } - constructor(ctx: ExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public AAND(): TerminalNode { + return this.getToken(painless_parser.AAND, 0); + } + public AXOR(): TerminalNode { + return this.getToken(painless_parser.AXOR, 0); + } + public AOR(): TerminalNode { + return this.getToken(painless_parser.AOR, 0); + } + public ALSH(): TerminalNode { + return this.getToken(painless_parser.ALSH, 0); + } + public ARSH(): TerminalNode { + return this.getToken(painless_parser.ARSH, 0); + } + public AUSH(): TerminalNode { + return this.getToken(painless_parser.AUSH, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterConditional) { - listener.enterConditional(this); + if(listener.enterAssignment) { + listener.enterAssignment(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitConditional) { - listener.exitConditional(this); + if(listener.exitAssignment) { + listener.exitAssignment(this); } } } -export class AssignmentContext extends ExpressionContext { +export class NonconditionalContext extends ExpressionContext { + constructor(parser: painless_parser, ctx: ExpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } public noncondexpression(): NoncondexpressionContext { - return this.getRuleContext(0, NoncondexpressionContext); + return this.getTypedRuleContext(NoncondexpressionContext, 0) as NoncondexpressionContext; } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - public ASSIGN(): TerminalNode | undefined { return this.tryGetToken(painless_parser.ASSIGN, 0); } - public AADD(): TerminalNode | undefined { return this.tryGetToken(painless_parser.AADD, 0); } - public ASUB(): TerminalNode | undefined { return this.tryGetToken(painless_parser.ASUB, 0); } - public AMUL(): TerminalNode | undefined { return this.tryGetToken(painless_parser.AMUL, 0); } - public ADIV(): TerminalNode | undefined { return this.tryGetToken(painless_parser.ADIV, 0); } - public AREM(): TerminalNode | undefined { return this.tryGetToken(painless_parser.AREM, 0); } - public AAND(): TerminalNode | undefined { return this.tryGetToken(painless_parser.AAND, 0); } - public AXOR(): TerminalNode | undefined { return this.tryGetToken(painless_parser.AXOR, 0); } - public AOR(): TerminalNode | undefined { return this.tryGetToken(painless_parser.AOR, 0); } - public ALSH(): TerminalNode | undefined { return this.tryGetToken(painless_parser.ALSH, 0); } - public ARSH(): TerminalNode | undefined { return this.tryGetToken(painless_parser.ARSH, 0); } - public AUSH(): TerminalNode | undefined { return this.tryGetToken(painless_parser.AUSH, 0); } - constructor(ctx: ExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterAssignment) { - listener.enterAssignment(this); + if(listener.enterNonconditional) { + listener.enterNonconditional(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitAssignment) { - listener.exitAssignment(this); + if(listener.exitNonconditional) { + listener.exitNonconditional(this); } } } export class UnaryContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return painless_parser.RULE_unary; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_unary; } public copyFrom(ctx: UnaryContext): void { super.copyFrom(ctx); } } -export class PreContext extends UnaryContext { - public chain(): ChainContext { - return this.getRuleContext(0, ChainContext); +export class NotaddsubContext extends UnaryContext { + constructor(parser: painless_parser, ctx: UnaryContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - public INCR(): TerminalNode | undefined { return this.tryGetToken(painless_parser.INCR, 0); } - public DECR(): TerminalNode | undefined { return this.tryGetToken(painless_parser.DECR, 0); } - constructor(ctx: UnaryContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public unarynotaddsub(): UnarynotaddsubContext { + return this.getTypedRuleContext(UnarynotaddsubContext, 0) as UnarynotaddsubContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterPre) { - listener.enterPre(this); + if(listener.enterNotaddsub) { + listener.enterNotaddsub(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitPre) { - listener.exitPre(this); + if(listener.exitNotaddsub) { + listener.exitNotaddsub(this); } } } -export class AddsubContext extends UnaryContext { - public unary(): UnaryContext { - return this.getRuleContext(0, UnaryContext); +export class PreContext extends UnaryContext { + constructor(parser: painless_parser, ctx: UnaryContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public chain(): ChainContext { + return this.getTypedRuleContext(ChainContext, 0) as ChainContext; + } + public INCR(): TerminalNode { + return this.getToken(painless_parser.INCR, 0); } - public ADD(): TerminalNode | undefined { return this.tryGetToken(painless_parser.ADD, 0); } - public SUB(): TerminalNode | undefined { return this.tryGetToken(painless_parser.SUB, 0); } - constructor(ctx: UnaryContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public DECR(): TerminalNode { + return this.getToken(painless_parser.DECR, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterAddsub) { - listener.enterAddsub(this); + if(listener.enterPre) { + listener.enterPre(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitAddsub) { - listener.exitAddsub(this); + if(listener.exitPre) { + listener.exitPre(this); } } } -export class NotaddsubContext extends UnaryContext { - public unarynotaddsub(): UnarynotaddsubContext { - return this.getRuleContext(0, UnarynotaddsubContext); +export class AddsubContext extends UnaryContext { + constructor(parser: painless_parser, ctx: UnaryContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public unary(): UnaryContext { + return this.getTypedRuleContext(UnaryContext, 0) as UnaryContext; + } + public ADD(): TerminalNode { + return this.getToken(painless_parser.ADD, 0); } - constructor(ctx: UnaryContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public SUB(): TerminalNode { + return this.getToken(painless_parser.SUB, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterNotaddsub) { - listener.enterNotaddsub(this); + if(listener.enterAddsub) { + listener.enterAddsub(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitNotaddsub) { - listener.exitNotaddsub(this); + if(listener.exitAddsub) { + listener.exitAddsub(this); } } } export class UnarynotaddsubContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return painless_parser.RULE_unarynotaddsub; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_unarynotaddsub; } public copyFrom(ctx: UnarynotaddsubContext): void { super.copyFrom(ctx); } } -export class ReadContext extends UnarynotaddsubContext { - public chain(): ChainContext { - return this.getRuleContext(0, ChainContext); +export class CastContext extends UnarynotaddsubContext { + constructor(parser: painless_parser, ctx: UnarynotaddsubContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - constructor(ctx: UnarynotaddsubContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public castexpression(): CastexpressionContext { + return this.getTypedRuleContext(CastexpressionContext, 0) as CastexpressionContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterRead) { - listener.enterRead(this); + if(listener.enterCast) { + listener.enterCast(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitRead) { - listener.exitRead(this); + if(listener.exitCast) { + listener.exitCast(this); } } } -export class PostContext extends UnarynotaddsubContext { - public chain(): ChainContext { - return this.getRuleContext(0, ChainContext); +export class NotContext extends UnarynotaddsubContext { + constructor(parser: painless_parser, ctx: UnarynotaddsubContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public unary(): UnaryContext { + return this.getTypedRuleContext(UnaryContext, 0) as UnaryContext; } - public INCR(): TerminalNode | undefined { return this.tryGetToken(painless_parser.INCR, 0); } - public DECR(): TerminalNode | undefined { return this.tryGetToken(painless_parser.DECR, 0); } - constructor(ctx: UnarynotaddsubContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public BOOLNOT(): TerminalNode { + return this.getToken(painless_parser.BOOLNOT, 0); + } + public BWNOT(): TerminalNode { + return this.getToken(painless_parser.BWNOT, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterPost) { - listener.enterPost(this); + if(listener.enterNot) { + listener.enterNot(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitPost) { - listener.exitPost(this); + if(listener.exitNot) { + listener.exitNot(this); } } } -export class NotContext extends UnarynotaddsubContext { - public unary(): UnaryContext { - return this.getRuleContext(0, UnaryContext); +export class ReadContext extends UnarynotaddsubContext { + constructor(parser: painless_parser, ctx: UnarynotaddsubContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - public BOOLNOT(): TerminalNode | undefined { return this.tryGetToken(painless_parser.BOOLNOT, 0); } - public BWNOT(): TerminalNode | undefined { return this.tryGetToken(painless_parser.BWNOT, 0); } - constructor(ctx: UnarynotaddsubContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public chain(): ChainContext { + return this.getTypedRuleContext(ChainContext, 0) as ChainContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterNot) { - listener.enterNot(this); + if(listener.enterRead) { + listener.enterRead(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitNot) { - listener.exitNot(this); + if(listener.exitRead) { + listener.exitRead(this); } } } -export class CastContext extends UnarynotaddsubContext { - public castexpression(): CastexpressionContext { - return this.getRuleContext(0, CastexpressionContext); +export class PostContext extends UnarynotaddsubContext { + constructor(parser: painless_parser, ctx: UnarynotaddsubContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - constructor(ctx: UnarynotaddsubContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public chain(): ChainContext { + return this.getTypedRuleContext(ChainContext, 0) as ChainContext; + } + public INCR(): TerminalNode { + return this.getToken(painless_parser.INCR, 0); + } + public DECR(): TerminalNode { + return this.getToken(painless_parser.DECR, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterCast) { - listener.enterCast(this); + if(listener.enterPost) { + listener.enterPost(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitCast) { - listener.exitCast(this); + if(listener.exitPost) { + listener.exitPost(this); } } } export class CastexpressionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return painless_parser.RULE_castexpression; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_castexpression; } public copyFrom(ctx: CastexpressionContext): void { super.copyFrom(ctx); } } -export class PrimordefcastContext extends CastexpressionContext { - public LP(): TerminalNode { return this.getToken(painless_parser.LP, 0); } - public primordefcasttype(): PrimordefcasttypeContext { - return this.getRuleContext(0, PrimordefcasttypeContext); +export class RefcastContext extends CastexpressionContext { + constructor(parser: painless_parser, ctx: CastexpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - public RP(): TerminalNode { return this.getToken(painless_parser.RP, 0); } - public unary(): UnaryContext { - return this.getRuleContext(0, UnaryContext); + public LP(): TerminalNode { + return this.getToken(painless_parser.LP, 0); + } + public refcasttype(): RefcasttypeContext { + return this.getTypedRuleContext(RefcasttypeContext, 0) as RefcasttypeContext; } - constructor(ctx: CastexpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public RP(): TerminalNode { + return this.getToken(painless_parser.RP, 0); + } + public unarynotaddsub(): UnarynotaddsubContext { + return this.getTypedRuleContext(UnarynotaddsubContext, 0) as UnarynotaddsubContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterPrimordefcast) { - listener.enterPrimordefcast(this); + if(listener.enterRefcast) { + listener.enterRefcast(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitPrimordefcast) { - listener.exitPrimordefcast(this); + if(listener.exitRefcast) { + listener.exitRefcast(this); } } } -export class RefcastContext extends CastexpressionContext { - public LP(): TerminalNode { return this.getToken(painless_parser.LP, 0); } - public refcasttype(): RefcasttypeContext { - return this.getRuleContext(0, RefcasttypeContext); +export class PrimordefcastContext extends CastexpressionContext { + constructor(parser: painless_parser, ctx: CastexpressionContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - public RP(): TerminalNode { return this.getToken(painless_parser.RP, 0); } - public unarynotaddsub(): UnarynotaddsubContext { - return this.getRuleContext(0, UnarynotaddsubContext); + public LP(): TerminalNode { + return this.getToken(painless_parser.LP, 0); } - constructor(ctx: CastexpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public primordefcasttype(): PrimordefcasttypeContext { + return this.getTypedRuleContext(PrimordefcasttypeContext, 0) as PrimordefcasttypeContext; + } + public RP(): TerminalNode { + return this.getToken(painless_parser.RP, 0); + } + public unary(): UnaryContext { + return this.getTypedRuleContext(UnaryContext, 0) as UnaryContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterRefcast) { - listener.enterRefcast(this); + if(listener.enterPrimordefcast) { + listener.enterPrimordefcast(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitRefcast) { - listener.exitRefcast(this); + if(listener.exitPrimordefcast) { + listener.exitPrimordefcast(this); } } } export class PrimordefcasttypeContext extends ParserRuleContext { - public DEF(): TerminalNode | undefined { return this.tryGetToken(painless_parser.DEF, 0); } - public PRIMITIVE(): TerminalNode | undefined { return this.tryGetToken(painless_parser.PRIMITIVE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public DEF(): TerminalNode { + return this.getToken(painless_parser.DEF, 0); + } + public PRIMITIVE(): TerminalNode { + return this.getToken(painless_parser.PRIMITIVE, 0); + } + public get ruleIndex(): number { + return painless_parser.RULE_primordefcasttype; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_primordefcasttype; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterPrimordefcasttype) { - listener.enterPrimordefcasttype(this); + if(listener.enterPrimordefcasttype) { + listener.enterPrimordefcasttype(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitPrimordefcasttype) { - listener.exitPrimordefcasttype(this); + if(listener.exitPrimordefcasttype) { + listener.exitPrimordefcasttype(this); } } } export class RefcasttypeContext extends ParserRuleContext { - public DEF(): TerminalNode | undefined { return this.tryGetToken(painless_parser.DEF, 0); } - public LBRACE(): TerminalNode[]; - public LBRACE(i: number): TerminalNode; - public LBRACE(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.LBRACE); - } else { - return this.getToken(painless_parser.LBRACE, i); - } - } - public RBRACE(): TerminalNode[]; - public RBRACE(i: number): TerminalNode; - public RBRACE(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.RBRACE); - } else { - return this.getToken(painless_parser.RBRACE, i); - } - } - public PRIMITIVE(): TerminalNode | undefined { return this.tryGetToken(painless_parser.PRIMITIVE, 0); } - public ID(): TerminalNode | undefined { return this.tryGetToken(painless_parser.ID, 0); } - public DOT(): TerminalNode[]; - public DOT(i: number): TerminalNode; - public DOT(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.DOT); - } else { - return this.getToken(painless_parser.DOT, i); - } - } - public DOTID(): TerminalNode[]; - public DOTID(i: number): TerminalNode; - public DOTID(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.DOTID); - } else { - return this.getToken(painless_parser.DOTID, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public DEF(): TerminalNode { + return this.getToken(painless_parser.DEF, 0); + } + public LBRACE_list(): TerminalNode[] { + return this.getTokens(painless_parser.LBRACE); + } + public LBRACE(i: number): TerminalNode { + return this.getToken(painless_parser.LBRACE, i); + } + public RBRACE_list(): TerminalNode[] { + return this.getTokens(painless_parser.RBRACE); + } + public RBRACE(i: number): TerminalNode { + return this.getToken(painless_parser.RBRACE, i); + } + public PRIMITIVE(): TerminalNode { + return this.getToken(painless_parser.PRIMITIVE, 0); + } + public ID(): TerminalNode { + return this.getToken(painless_parser.ID, 0); + } + public DOT_list(): TerminalNode[] { + return this.getTokens(painless_parser.DOT); + } + public DOT(i: number): TerminalNode { + return this.getToken(painless_parser.DOT, i); + } + public DOTID_list(): TerminalNode[] { + return this.getTokens(painless_parser.DOTID); + } + public DOTID(i: number): TerminalNode { + return this.getToken(painless_parser.DOTID, i); + } + public get ruleIndex(): number { + return painless_parser.RULE_refcasttype; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_refcasttype; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterRefcasttype) { - listener.enterRefcasttype(this); + if(listener.enterRefcasttype) { + listener.enterRefcasttype(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitRefcasttype) { - listener.exitRefcasttype(this); + if(listener.exitRefcasttype) { + listener.exitRefcasttype(this); } } } export class ChainContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return painless_parser.RULE_chain; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_chain; } public copyFrom(ctx: ChainContext): void { super.copyFrom(ctx); } } export class DynamicContext extends ChainContext { + constructor(parser: painless_parser, ctx: ChainContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } public primary(): PrimaryContext { - return this.getRuleContext(0, PrimaryContext); + return this.getTypedRuleContext(PrimaryContext, 0) as PrimaryContext; } - public postfix(): PostfixContext[]; - public postfix(i: number): PostfixContext; - public postfix(i?: number): PostfixContext | PostfixContext[] { - if (i === undefined) { - return this.getRuleContexts(PostfixContext); - } else { - return this.getRuleContext(i, PostfixContext); - } + public postfix_list(): PostfixContext[] { + return this.getTypedRuleContexts(PostfixContext) as PostfixContext[]; } - constructor(ctx: ChainContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public postfix(i: number): PostfixContext { + return this.getTypedRuleContext(PostfixContext, i) as PostfixContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterDynamic) { - listener.enterDynamic(this); + if(listener.enterDynamic) { + listener.enterDynamic(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitDynamic) { - listener.exitDynamic(this); + if(listener.exitDynamic) { + listener.exitDynamic(this); } } } export class NewarrayContext extends ChainContext { - public arrayinitializer(): ArrayinitializerContext { - return this.getRuleContext(0, ArrayinitializerContext); + constructor(parser: painless_parser, ctx: ChainContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - constructor(ctx: ChainContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public arrayinitializer(): ArrayinitializerContext { + return this.getTypedRuleContext(ArrayinitializerContext, 0) as ArrayinitializerContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterNewarray) { - listener.enterNewarray(this); + if(listener.enterNewarray) { + listener.enterNewarray(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitNewarray) { - listener.exitNewarray(this); + if(listener.exitNewarray) { + listener.exitNewarray(this); } } } export class PrimaryContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return painless_parser.RULE_primary; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_primary; } public copyFrom(ctx: PrimaryContext): void { super.copyFrom(ctx); } } -export class PrecedenceContext extends PrimaryContext { - public LP(): TerminalNode { return this.getToken(painless_parser.LP, 0); } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); +export class ListinitContext extends PrimaryContext { + constructor(parser: painless_parser, ctx: PrimaryContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - public RP(): TerminalNode { return this.getToken(painless_parser.RP, 0); } - constructor(ctx: PrimaryContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public listinitializer(): ListinitializerContext { + return this.getTypedRuleContext(ListinitializerContext, 0) as ListinitializerContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterPrecedence) { - listener.enterPrecedence(this); + if(listener.enterListinit) { + listener.enterListinit(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitPrecedence) { - listener.exitPrecedence(this); + if(listener.exitListinit) { + listener.exitListinit(this); } } } -export class NumericContext extends PrimaryContext { - public OCTAL(): TerminalNode | undefined { return this.tryGetToken(painless_parser.OCTAL, 0); } - public HEX(): TerminalNode | undefined { return this.tryGetToken(painless_parser.HEX, 0); } - public INTEGER(): TerminalNode | undefined { return this.tryGetToken(painless_parser.INTEGER, 0); } - public DECIMAL(): TerminalNode | undefined { return this.tryGetToken(painless_parser.DECIMAL, 0); } - constructor(ctx: PrimaryContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override +export class RegexContext extends PrimaryContext { + constructor(parser: painless_parser, ctx: PrimaryContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public REGEX(): TerminalNode { + return this.getToken(painless_parser.REGEX, 0); + } public enterRule(listener: painless_parserListener): void { - if (listener.enterNumeric) { - listener.enterNumeric(this); + if(listener.enterRegex) { + listener.enterRegex(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitNumeric) { - listener.exitNumeric(this); + if(listener.exitRegex) { + listener.exitRegex(this); } } } -export class TrueContext extends PrimaryContext { - public TRUE(): TerminalNode { return this.getToken(painless_parser.TRUE, 0); } - constructor(ctx: PrimaryContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); +export class NullContext extends PrimaryContext { + constructor(parser: painless_parser, ctx: PrimaryContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public NULL(): TerminalNode { + return this.getToken(painless_parser.NULL, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterTrue) { - listener.enterTrue(this); + if(listener.enterNull) { + listener.enterNull(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitTrue) { - listener.exitTrue(this); + if(listener.exitNull) { + listener.exitNull(this); } } } -export class FalseContext extends PrimaryContext { - public FALSE(): TerminalNode { return this.getToken(painless_parser.FALSE, 0); } - constructor(ctx: PrimaryContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); +export class StringContext extends PrimaryContext { + constructor(parser: painless_parser, ctx: PrimaryContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public STRING(): TerminalNode { + return this.getToken(painless_parser.STRING, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterFalse) { - listener.enterFalse(this); + if(listener.enterString) { + listener.enterString(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitFalse) { - listener.exitFalse(this); + if(listener.exitString) { + listener.exitString(this); } } } -export class NullContext extends PrimaryContext { - public NULL(): TerminalNode { return this.getToken(painless_parser.NULL, 0); } - constructor(ctx: PrimaryContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); +export class MapinitContext extends PrimaryContext { + constructor(parser: painless_parser, ctx: PrimaryContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public mapinitializer(): MapinitializerContext { + return this.getTypedRuleContext(MapinitializerContext, 0) as MapinitializerContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterNull) { - listener.enterNull(this); + if(listener.enterMapinit) { + listener.enterMapinit(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitNull) { - listener.exitNull(this); + if(listener.exitMapinit) { + listener.exitMapinit(this); } } } -export class StringContext extends PrimaryContext { - public STRING(): TerminalNode { return this.getToken(painless_parser.STRING, 0); } - constructor(ctx: PrimaryContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); +export class CalllocalContext extends PrimaryContext { + constructor(parser: painless_parser, ctx: PrimaryContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public arguments(): ArgumentsContext { + return this.getTypedRuleContext(ArgumentsContext, 0) as ArgumentsContext; + } + public ID(): TerminalNode { + return this.getToken(painless_parser.ID, 0); + } + public DOLLAR(): TerminalNode { + return this.getToken(painless_parser.DOLLAR, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterString) { - listener.enterString(this); + if(listener.enterCalllocal) { + listener.enterCalllocal(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitString) { - listener.exitString(this); + if(listener.exitCalllocal) { + listener.exitCalllocal(this); } } } -export class RegexContext extends PrimaryContext { - public REGEX(): TerminalNode { return this.getToken(painless_parser.REGEX, 0); } - constructor(ctx: PrimaryContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); +export class TrueContext extends PrimaryContext { + constructor(parser: painless_parser, ctx: PrimaryContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public TRUE(): TerminalNode { + return this.getToken(painless_parser.TRUE, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterRegex) { - listener.enterRegex(this); + if(listener.enterTrue) { + listener.enterTrue(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitRegex) { - listener.exitRegex(this); + if(listener.exitTrue) { + listener.exitTrue(this); } } } -export class ListinitContext extends PrimaryContext { - public listinitializer(): ListinitializerContext { - return this.getRuleContext(0, ListinitializerContext); +export class FalseContext extends PrimaryContext { + constructor(parser: painless_parser, ctx: PrimaryContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - constructor(ctx: PrimaryContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public FALSE(): TerminalNode { + return this.getToken(painless_parser.FALSE, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterListinit) { - listener.enterListinit(this); + if(listener.enterFalse) { + listener.enterFalse(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitListinit) { - listener.exitListinit(this); + if(listener.exitFalse) { + listener.exitFalse(this); } } } -export class MapinitContext extends PrimaryContext { - public mapinitializer(): MapinitializerContext { - return this.getRuleContext(0, MapinitializerContext); +export class VariableContext extends PrimaryContext { + constructor(parser: painless_parser, ctx: PrimaryContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - constructor(ctx: PrimaryContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public ID(): TerminalNode { + return this.getToken(painless_parser.ID, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterMapinit) { - listener.enterMapinit(this); + if(listener.enterVariable) { + listener.enterVariable(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitMapinit) { - listener.exitMapinit(this); + if(listener.exitVariable) { + listener.exitVariable(this); } } } -export class VariableContext extends PrimaryContext { - public ID(): TerminalNode { return this.getToken(painless_parser.ID, 0); } - constructor(ctx: PrimaryContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); +export class NumericContext extends PrimaryContext { + constructor(parser: painless_parser, ctx: PrimaryContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public OCTAL(): TerminalNode { + return this.getToken(painless_parser.OCTAL, 0); + } + public HEX(): TerminalNode { + return this.getToken(painless_parser.HEX, 0); + } + public INTEGER(): TerminalNode { + return this.getToken(painless_parser.INTEGER, 0); + } + public DECIMAL(): TerminalNode { + return this.getToken(painless_parser.DECIMAL, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterVariable) { - listener.enterVariable(this); + if(listener.enterNumeric) { + listener.enterNumeric(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitVariable) { - listener.exitVariable(this); + if(listener.exitNumeric) { + listener.exitNumeric(this); } } } -export class CalllocalContext extends PrimaryContext { - public arguments(): ArgumentsContext { - return this.getRuleContext(0, ArgumentsContext); +export class NewobjectContext extends PrimaryContext { + constructor(parser: painless_parser, ctx: PrimaryContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public NEW(): TerminalNode { + return this.getToken(painless_parser.NEW, 0); } - public ID(): TerminalNode | undefined { return this.tryGetToken(painless_parser.ID, 0); } - public DOLLAR(): TerminalNode | undefined { return this.tryGetToken(painless_parser.DOLLAR, 0); } - constructor(ctx: PrimaryContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public type_(): TypeContext { + return this.getTypedRuleContext(TypeContext, 0) as TypeContext; + } + public arguments(): ArgumentsContext { + return this.getTypedRuleContext(ArgumentsContext, 0) as ArgumentsContext; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterCalllocal) { - listener.enterCalllocal(this); + if(listener.enterNewobject) { + listener.enterNewobject(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitCalllocal) { - listener.exitCalllocal(this); + if(listener.exitNewobject) { + listener.exitNewobject(this); } } } -export class NewobjectContext extends PrimaryContext { - public NEW(): TerminalNode { return this.getToken(painless_parser.NEW, 0); } - public type(): TypeContext { - return this.getRuleContext(0, TypeContext); +export class PrecedenceContext extends PrimaryContext { + constructor(parser: painless_parser, ctx: PrimaryContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); } - public arguments(): ArgumentsContext { - return this.getRuleContext(0, ArgumentsContext); + public LP(): TerminalNode { + return this.getToken(painless_parser.LP, 0); } - constructor(ctx: PrimaryContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public RP(): TerminalNode { + return this.getToken(painless_parser.RP, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterNewobject) { - listener.enterNewobject(this); + if(listener.enterPrecedence) { + listener.enterPrecedence(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitNewobject) { - listener.exitNewobject(this); + if(listener.exitPrecedence) { + listener.exitPrecedence(this); } } } export class PostfixContext extends ParserRuleContext { - public callinvoke(): CallinvokeContext | undefined { - return this.tryGetRuleContext(0, CallinvokeContext); + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public callinvoke(): CallinvokeContext { + return this.getTypedRuleContext(CallinvokeContext, 0) as CallinvokeContext; } - public fieldaccess(): FieldaccessContext | undefined { - return this.tryGetRuleContext(0, FieldaccessContext); + public fieldaccess(): FieldaccessContext { + return this.getTypedRuleContext(FieldaccessContext, 0) as FieldaccessContext; } - public braceaccess(): BraceaccessContext | undefined { - return this.tryGetRuleContext(0, BraceaccessContext); + public braceaccess(): BraceaccessContext { + return this.getTypedRuleContext(BraceaccessContext, 0) as BraceaccessContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public get ruleIndex(): number { + return painless_parser.RULE_postfix; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_postfix; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterPostfix) { - listener.enterPostfix(this); + if(listener.enterPostfix) { + listener.enterPostfix(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitPostfix) { - listener.exitPostfix(this); + if(listener.exitPostfix) { + listener.exitPostfix(this); } } } export class PostdotContext extends ParserRuleContext { - public callinvoke(): CallinvokeContext | undefined { - return this.tryGetRuleContext(0, CallinvokeContext); + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; } - public fieldaccess(): FieldaccessContext | undefined { - return this.tryGetRuleContext(0, FieldaccessContext); + public callinvoke(): CallinvokeContext { + return this.getTypedRuleContext(CallinvokeContext, 0) as CallinvokeContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public fieldaccess(): FieldaccessContext { + return this.getTypedRuleContext(FieldaccessContext, 0) as FieldaccessContext; + } + public get ruleIndex(): number { + return painless_parser.RULE_postdot; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_postdot; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterPostdot) { - listener.enterPostdot(this); + if(listener.enterPostdot) { + listener.enterPostdot(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitPostdot) { - listener.exitPostdot(this); + if(listener.exitPostdot) { + listener.exitPostdot(this); } } } export class CallinvokeContext extends ParserRuleContext { - public DOTID(): TerminalNode { return this.getToken(painless_parser.DOTID, 0); } + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public DOTID(): TerminalNode { + return this.getToken(painless_parser.DOTID, 0); + } public arguments(): ArgumentsContext { - return this.getRuleContext(0, ArgumentsContext); + return this.getTypedRuleContext(ArgumentsContext, 0) as ArgumentsContext; } - public DOT(): TerminalNode | undefined { return this.tryGetToken(painless_parser.DOT, 0); } - public NSDOT(): TerminalNode | undefined { return this.tryGetToken(painless_parser.NSDOT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public DOT(): TerminalNode { + return this.getToken(painless_parser.DOT, 0); + } + public NSDOT(): TerminalNode { + return this.getToken(painless_parser.NSDOT, 0); + } + public get ruleIndex(): number { + return painless_parser.RULE_callinvoke; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_callinvoke; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterCallinvoke) { - listener.enterCallinvoke(this); + if(listener.enterCallinvoke) { + listener.enterCallinvoke(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitCallinvoke) { - listener.exitCallinvoke(this); + if(listener.exitCallinvoke) { + listener.exitCallinvoke(this); } } } export class FieldaccessContext extends ParserRuleContext { - public DOT(): TerminalNode | undefined { return this.tryGetToken(painless_parser.DOT, 0); } - public NSDOT(): TerminalNode | undefined { return this.tryGetToken(painless_parser.NSDOT, 0); } - public DOTID(): TerminalNode | undefined { return this.tryGetToken(painless_parser.DOTID, 0); } - public DOTINTEGER(): TerminalNode | undefined { return this.tryGetToken(painless_parser.DOTINTEGER, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public DOT(): TerminalNode { + return this.getToken(painless_parser.DOT, 0); + } + public NSDOT(): TerminalNode { + return this.getToken(painless_parser.NSDOT, 0); + } + public DOTID(): TerminalNode { + return this.getToken(painless_parser.DOTID, 0); + } + public DOTINTEGER(): TerminalNode { + return this.getToken(painless_parser.DOTINTEGER, 0); + } + public get ruleIndex(): number { + return painless_parser.RULE_fieldaccess; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_fieldaccess; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterFieldaccess) { - listener.enterFieldaccess(this); + if(listener.enterFieldaccess) { + listener.enterFieldaccess(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitFieldaccess) { - listener.exitFieldaccess(this); + if(listener.exitFieldaccess) { + listener.exitFieldaccess(this); } } } export class BraceaccessContext extends ParserRuleContext { - public LBRACE(): TerminalNode { return this.getToken(painless_parser.LBRACE, 0); } + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public LBRACE(): TerminalNode { + return this.getToken(painless_parser.LBRACE, 0); + } public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; } - public RBRACE(): TerminalNode { return this.getToken(painless_parser.RBRACE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public RBRACE(): TerminalNode { + return this.getToken(painless_parser.RBRACE, 0); + } + public get ruleIndex(): number { + return painless_parser.RULE_braceaccess; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_braceaccess; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterBraceaccess) { - listener.enterBraceaccess(this); + if(listener.enterBraceaccess) { + listener.enterBraceaccess(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitBraceaccess) { - listener.exitBraceaccess(this); + if(listener.exitBraceaccess) { + listener.exitBraceaccess(this); } } } export class ArrayinitializerContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return painless_parser.RULE_arrayinitializer; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_arrayinitializer; } public copyFrom(ctx: ArrayinitializerContext): void { super.copyFrom(ctx); } } export class NewstandardarrayContext extends ArrayinitializerContext { - public NEW(): TerminalNode { return this.getToken(painless_parser.NEW, 0); } - public type(): TypeContext { - return this.getRuleContext(0, TypeContext); - } - public LBRACE(): TerminalNode[]; - public LBRACE(i: number): TerminalNode; - public LBRACE(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.LBRACE); - } else { - return this.getToken(painless_parser.LBRACE, i); - } - } - public expression(): ExpressionContext[]; - public expression(i: number): ExpressionContext; - public expression(i?: number): ExpressionContext | ExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionContext); - } else { - return this.getRuleContext(i, ExpressionContext); - } - } - public RBRACE(): TerminalNode[]; - public RBRACE(i: number): TerminalNode; - public RBRACE(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.RBRACE); - } else { - return this.getToken(painless_parser.RBRACE, i); - } - } - public postdot(): PostdotContext | undefined { - return this.tryGetRuleContext(0, PostdotContext); - } - public postfix(): PostfixContext[]; - public postfix(i: number): PostfixContext; - public postfix(i?: number): PostfixContext | PostfixContext[] { - if (i === undefined) { - return this.getRuleContexts(PostfixContext); - } else { - return this.getRuleContext(i, PostfixContext); - } - } - constructor(ctx: ArrayinitializerContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override + constructor(parser: painless_parser, ctx: ArrayinitializerContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public NEW(): TerminalNode { + return this.getToken(painless_parser.NEW, 0); + } + public type_(): TypeContext { + return this.getTypedRuleContext(TypeContext, 0) as TypeContext; + } + public LBRACE_list(): TerminalNode[] { + return this.getTokens(painless_parser.LBRACE); + } + public LBRACE(i: number): TerminalNode { + return this.getToken(painless_parser.LBRACE, i); + } + public expression_list(): ExpressionContext[] { + return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[]; + } + public expression(i: number): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext; + } + public RBRACE_list(): TerminalNode[] { + return this.getTokens(painless_parser.RBRACE); + } + public RBRACE(i: number): TerminalNode { + return this.getToken(painless_parser.RBRACE, i); + } + public postdot(): PostdotContext { + return this.getTypedRuleContext(PostdotContext, 0) as PostdotContext; + } + public postfix_list(): PostfixContext[] { + return this.getTypedRuleContexts(PostfixContext) as PostfixContext[]; + } + public postfix(i: number): PostfixContext { + return this.getTypedRuleContext(PostfixContext, i) as PostfixContext; + } public enterRule(listener: painless_parserListener): void { - if (listener.enterNewstandardarray) { - listener.enterNewstandardarray(this); + if(listener.enterNewstandardarray) { + listener.enterNewstandardarray(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitNewstandardarray) { - listener.exitNewstandardarray(this); + if(listener.exitNewstandardarray) { + listener.exitNewstandardarray(this); } } } export class NewinitializedarrayContext extends ArrayinitializerContext { - public NEW(): TerminalNode { return this.getToken(painless_parser.NEW, 0); } - public type(): TypeContext { - return this.getRuleContext(0, TypeContext); - } - public LBRACE(): TerminalNode { return this.getToken(painless_parser.LBRACE, 0); } - public RBRACE(): TerminalNode { return this.getToken(painless_parser.RBRACE, 0); } - public LBRACK(): TerminalNode { return this.getToken(painless_parser.LBRACK, 0); } - public RBRACK(): TerminalNode { return this.getToken(painless_parser.RBRACK, 0); } - public expression(): ExpressionContext[]; - public expression(i: number): ExpressionContext; - public expression(i?: number): ExpressionContext | ExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionContext); - } else { - return this.getRuleContext(i, ExpressionContext); - } - } - public postfix(): PostfixContext[]; - public postfix(i: number): PostfixContext; - public postfix(i?: number): PostfixContext | PostfixContext[] { - if (i === undefined) { - return this.getRuleContexts(PostfixContext); - } else { - return this.getRuleContext(i, PostfixContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.COMMA); - } else { - return this.getToken(painless_parser.COMMA, i); - } - } - constructor(ctx: ArrayinitializerContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override + constructor(parser: painless_parser, ctx: ArrayinitializerContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public NEW(): TerminalNode { + return this.getToken(painless_parser.NEW, 0); + } + public type_(): TypeContext { + return this.getTypedRuleContext(TypeContext, 0) as TypeContext; + } + public LBRACE(): TerminalNode { + return this.getToken(painless_parser.LBRACE, 0); + } + public RBRACE(): TerminalNode { + return this.getToken(painless_parser.RBRACE, 0); + } + public LBRACK(): TerminalNode { + return this.getToken(painless_parser.LBRACK, 0); + } + public RBRACK(): TerminalNode { + return this.getToken(painless_parser.RBRACK, 0); + } + public expression_list(): ExpressionContext[] { + return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[]; + } + public expression(i: number): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext; + } + public postfix_list(): PostfixContext[] { + return this.getTypedRuleContexts(PostfixContext) as PostfixContext[]; + } + public postfix(i: number): PostfixContext { + return this.getTypedRuleContext(PostfixContext, i) as PostfixContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(painless_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(painless_parser.COMMA, i); + } public enterRule(listener: painless_parserListener): void { - if (listener.enterNewinitializedarray) { - listener.enterNewinitializedarray(this); + if(listener.enterNewinitializedarray) { + listener.enterNewinitializedarray(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitNewinitializedarray) { - listener.exitNewinitializedarray(this); + if(listener.exitNewinitializedarray) { + listener.exitNewinitializedarray(this); } } } export class ListinitializerContext extends ParserRuleContext { - public LBRACE(): TerminalNode { return this.getToken(painless_parser.LBRACE, 0); } - public expression(): ExpressionContext[]; - public expression(i: number): ExpressionContext; - public expression(i?: number): ExpressionContext | ExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionContext); - } else { - return this.getRuleContext(i, ExpressionContext); - } - } - public RBRACE(): TerminalNode { return this.getToken(painless_parser.RBRACE, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.COMMA); - } else { - return this.getToken(painless_parser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public LBRACE(): TerminalNode { + return this.getToken(painless_parser.LBRACE, 0); + } + public expression_list(): ExpressionContext[] { + return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[]; + } + public expression(i: number): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext; + } + public RBRACE(): TerminalNode { + return this.getToken(painless_parser.RBRACE, 0); + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(painless_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(painless_parser.COMMA, i); + } + public get ruleIndex(): number { + return painless_parser.RULE_listinitializer; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_listinitializer; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterListinitializer) { - listener.enterListinitializer(this); + if(listener.enterListinitializer) { + listener.enterListinitializer(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitListinitializer) { - listener.exitListinitializer(this); + if(listener.exitListinitializer) { + listener.exitListinitializer(this); } } } export class MapinitializerContext extends ParserRuleContext { - public LBRACE(): TerminalNode { return this.getToken(painless_parser.LBRACE, 0); } - public maptoken(): MaptokenContext[]; - public maptoken(i: number): MaptokenContext; - public maptoken(i?: number): MaptokenContext | MaptokenContext[] { - if (i === undefined) { - return this.getRuleContexts(MaptokenContext); - } else { - return this.getRuleContext(i, MaptokenContext); - } - } - public RBRACE(): TerminalNode { return this.getToken(painless_parser.RBRACE, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.COMMA); - } else { - return this.getToken(painless_parser.COMMA, i); - } - } - public COLON(): TerminalNode | undefined { return this.tryGetToken(painless_parser.COLON, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public LBRACE(): TerminalNode { + return this.getToken(painless_parser.LBRACE, 0); + } + public maptoken_list(): MaptokenContext[] { + return this.getTypedRuleContexts(MaptokenContext) as MaptokenContext[]; + } + public maptoken(i: number): MaptokenContext { + return this.getTypedRuleContext(MaptokenContext, i) as MaptokenContext; + } + public RBRACE(): TerminalNode { + return this.getToken(painless_parser.RBRACE, 0); + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(painless_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(painless_parser.COMMA, i); + } + public COLON(): TerminalNode { + return this.getToken(painless_parser.COLON, 0); + } + public get ruleIndex(): number { + return painless_parser.RULE_mapinitializer; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_mapinitializer; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterMapinitializer) { - listener.enterMapinitializer(this); + if(listener.enterMapinitializer) { + listener.enterMapinitializer(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitMapinitializer) { - listener.exitMapinitializer(this); + if(listener.exitMapinitializer) { + listener.exitMapinitializer(this); } } } export class MaptokenContext extends ParserRuleContext { - public expression(): ExpressionContext[]; - public expression(i: number): ExpressionContext; - public expression(i?: number): ExpressionContext | ExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionContext); - } else { - return this.getRuleContext(i, ExpressionContext); - } - } - public COLON(): TerminalNode { return this.getToken(painless_parser.COLON, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public expression_list(): ExpressionContext[] { + return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[]; + } + public expression(i: number): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext; + } + public COLON(): TerminalNode { + return this.getToken(painless_parser.COLON, 0); + } + public get ruleIndex(): number { + return painless_parser.RULE_maptoken; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_maptoken; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterMaptoken) { - listener.enterMaptoken(this); + if(listener.enterMaptoken) { + listener.enterMaptoken(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitMaptoken) { - listener.exitMaptoken(this); + if(listener.exitMaptoken) { + listener.exitMaptoken(this); } } } export class ArgumentsContext extends ParserRuleContext { - public LP(): TerminalNode | undefined { return this.tryGetToken(painless_parser.LP, 0); } - public RP(): TerminalNode | undefined { return this.tryGetToken(painless_parser.RP, 0); } - public argument(): ArgumentContext[]; - public argument(i: number): ArgumentContext; - public argument(i?: number): ArgumentContext | ArgumentContext[] { - if (i === undefined) { - return this.getRuleContexts(ArgumentContext); - } else { - return this.getRuleContext(i, ArgumentContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.COMMA); - } else { - return this.getToken(painless_parser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public LP(): TerminalNode { + return this.getToken(painless_parser.LP, 0); + } + public RP(): TerminalNode { + return this.getToken(painless_parser.RP, 0); + } + public argument_list(): ArgumentContext[] { + return this.getTypedRuleContexts(ArgumentContext) as ArgumentContext[]; + } + public argument(i: number): ArgumentContext { + return this.getTypedRuleContext(ArgumentContext, i) as ArgumentContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(painless_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(painless_parser.COMMA, i); + } + public get ruleIndex(): number { + return painless_parser.RULE_arguments; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_arguments; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterArguments) { - listener.enterArguments(this); + if(listener.enterArguments) { + listener.enterArguments(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitArguments) { - listener.exitArguments(this); + if(listener.exitArguments) { + listener.exitArguments(this); } } } export class ArgumentContext extends ParserRuleContext { - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { + super(parent, invokingState); + this.parser = parser; + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; } - public lambda(): LambdaContext | undefined { - return this.tryGetRuleContext(0, LambdaContext); + public lambda(): LambdaContext { + return this.getTypedRuleContext(LambdaContext, 0) as LambdaContext; } - public funcref(): FuncrefContext | undefined { - return this.tryGetRuleContext(0, FuncrefContext); + public funcref(): FuncrefContext { + return this.getTypedRuleContext(FuncrefContext, 0) as FuncrefContext; } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); + public get ruleIndex(): number { + return painless_parser.RULE_argument; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_argument; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterArgument) { - listener.enterArgument(this); + if(listener.enterArgument) { + listener.enterArgument(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitArgument) { - listener.exitArgument(this); + if(listener.exitArgument) { + listener.exitArgument(this); } } } export class LambdaContext extends ParserRuleContext { - public ARROW(): TerminalNode { return this.getToken(painless_parser.ARROW, 0); } - public lamtype(): LamtypeContext[]; - public lamtype(i: number): LamtypeContext; - public lamtype(i?: number): LamtypeContext | LamtypeContext[] { - if (i === undefined) { - return this.getRuleContexts(LamtypeContext); - } else { - return this.getRuleContext(i, LamtypeContext); - } - } - public LP(): TerminalNode | undefined { return this.tryGetToken(painless_parser.LP, 0); } - public RP(): TerminalNode | undefined { return this.tryGetToken(painless_parser.RP, 0); } - public block(): BlockContext | undefined { - return this.tryGetRuleContext(0, BlockContext); - } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(painless_parser.COMMA); - } else { - return this.getToken(painless_parser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public ARROW(): TerminalNode { + return this.getToken(painless_parser.ARROW, 0); + } + public lamtype_list(): LamtypeContext[] { + return this.getTypedRuleContexts(LamtypeContext) as LamtypeContext[]; + } + public lamtype(i: number): LamtypeContext { + return this.getTypedRuleContext(LamtypeContext, i) as LamtypeContext; + } + public LP(): TerminalNode { + return this.getToken(painless_parser.LP, 0); + } + public RP(): TerminalNode { + return this.getToken(painless_parser.RP, 0); + } + public block(): BlockContext { + return this.getTypedRuleContext(BlockContext, 0) as BlockContext; + } + public expression(): ExpressionContext { + return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext; + } + public COMMA_list(): TerminalNode[] { + return this.getTokens(painless_parser.COMMA); + } + public COMMA(i: number): TerminalNode { + return this.getToken(painless_parser.COMMA, i); + } + public get ruleIndex(): number { + return painless_parser.RULE_lambda; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_lambda; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterLambda) { - listener.enterLambda(this); + if(listener.enterLambda) { + listener.enterLambda(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitLambda) { - listener.exitLambda(this); + if(listener.exitLambda) { + listener.exitLambda(this); } } } export class LamtypeContext extends ParserRuleContext { - public ID(): TerminalNode { return this.getToken(painless_parser.ID, 0); } - public decltype(): DecltypeContext | undefined { - return this.tryGetRuleContext(0, DecltypeContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public ID(): TerminalNode { + return this.getToken(painless_parser.ID, 0); + } + public decltype(): DecltypeContext { + return this.getTypedRuleContext(DecltypeContext, 0) as DecltypeContext; + } + public get ruleIndex(): number { + return painless_parser.RULE_lamtype; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_lamtype; } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterLamtype) { - listener.enterLamtype(this); + if(listener.enterLamtype) { + listener.enterLamtype(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitLamtype) { - listener.exitLamtype(this); + if(listener.exitLamtype) { + listener.exitLamtype(this); } } } export class FuncrefContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { + constructor(parser?: painless_parser, parent?: ParserRuleContext, invokingState?: number) { super(parent, invokingState); + this.parser = parser; + } + public get ruleIndex(): number { + return painless_parser.RULE_funcref; } - // @Override - public get ruleIndex(): number { return painless_parser.RULE_funcref; } public copyFrom(ctx: FuncrefContext): void { super.copyFrom(ctx); } } export class ClassfuncrefContext extends FuncrefContext { + constructor(parser: painless_parser, ctx: FuncrefContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } public decltype(): DecltypeContext { - return this.getRuleContext(0, DecltypeContext); + return this.getTypedRuleContext(DecltypeContext, 0) as DecltypeContext; + } + public REF(): TerminalNode { + return this.getToken(painless_parser.REF, 0); } - public REF(): TerminalNode { return this.getToken(painless_parser.REF, 0); } - public ID(): TerminalNode { return this.getToken(painless_parser.ID, 0); } - constructor(ctx: FuncrefContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public ID(): TerminalNode { + return this.getToken(painless_parser.ID, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterClassfuncref) { - listener.enterClassfuncref(this); + if(listener.enterClassfuncref) { + listener.enterClassfuncref(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitClassfuncref) { - listener.exitClassfuncref(this); + if(listener.exitClassfuncref) { + listener.exitClassfuncref(this); } } } export class ConstructorfuncrefContext extends FuncrefContext { + constructor(parser: painless_parser, ctx: FuncrefContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } public decltype(): DecltypeContext { - return this.getRuleContext(0, DecltypeContext); + return this.getTypedRuleContext(DecltypeContext, 0) as DecltypeContext; + } + public REF(): TerminalNode { + return this.getToken(painless_parser.REF, 0); } - public REF(): TerminalNode { return this.getToken(painless_parser.REF, 0); } - public NEW(): TerminalNode { return this.getToken(painless_parser.NEW, 0); } - constructor(ctx: FuncrefContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); + public NEW(): TerminalNode { + return this.getToken(painless_parser.NEW, 0); } - // @Override public enterRule(listener: painless_parserListener): void { - if (listener.enterConstructorfuncref) { - listener.enterConstructorfuncref(this); + if(listener.enterConstructorfuncref) { + listener.enterConstructorfuncref(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitConstructorfuncref) { - listener.exitConstructorfuncref(this); + if(listener.exitConstructorfuncref) { + listener.exitConstructorfuncref(this); } } } export class LocalfuncrefContext extends FuncrefContext { - public THIS(): TerminalNode { return this.getToken(painless_parser.THIS, 0); } - public REF(): TerminalNode { return this.getToken(painless_parser.REF, 0); } - public ID(): TerminalNode { return this.getToken(painless_parser.ID, 0); } - constructor(ctx: FuncrefContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override + constructor(parser: painless_parser, ctx: FuncrefContext) { + super(parser, ctx.parentCtx, ctx.invokingState); + super.copyFrom(ctx); + } + public THIS(): TerminalNode { + return this.getToken(painless_parser.THIS, 0); + } + public REF(): TerminalNode { + return this.getToken(painless_parser.REF, 0); + } + public ID(): TerminalNode { + return this.getToken(painless_parser.ID, 0); + } public enterRule(listener: painless_parserListener): void { - if (listener.enterLocalfuncref) { - listener.enterLocalfuncref(this); + if(listener.enterLocalfuncref) { + listener.enterLocalfuncref(this); } } - // @Override public exitRule(listener: painless_parserListener): void { - if (listener.exitLocalfuncref) { - listener.exitLocalfuncref(this); + if(listener.exitLocalfuncref) { + listener.exitLocalfuncref(this); } } } - - diff --git a/packages/kbn-monaco/src/painless/antlr/painless_parser_listener.ts b/packages/kbn-monaco/src/painless/antlr/painless_parser_listener.ts index bc2637d1f75d0..b7199a560a20f 100644 --- a/packages/kbn-monaco/src/painless/antlr/painless_parser_listener.ts +++ b/packages/kbn-monaco/src/painless/antlr/painless_parser_listener.ts @@ -1,34 +1,19 @@ // @ts-nocheck -// Generated from ./src/painless/antlr/painless_parser.g4 by ANTLR 4.7.3-SNAPSHOT +// Generated from ./src/painless/antlr/painless_parser.g4 by ANTLR 4.13.1 +import {ParseTreeListener} from "antlr4"; -import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener"; -import { NewstandardarrayContext } from "./painless_parser"; -import { NewinitializedarrayContext } from "./painless_parser"; -import { PrimordefcastContext } from "./painless_parser"; -import { RefcastContext } from "./painless_parser"; -import { PreContext } from "./painless_parser"; -import { AddsubContext } from "./painless_parser"; -import { NotaddsubContext } from "./painless_parser"; -import { ClassfuncrefContext } from "./painless_parser"; -import { ConstructorfuncrefContext } from "./painless_parser"; -import { LocalfuncrefContext } from "./painless_parser"; +import { SourceContext } from "./painless_parser"; +import { FunctionContext } from "./painless_parser"; +import { ParametersContext } from "./painless_parser"; +import { StatementContext } from "./painless_parser"; import { IfContext } from "./painless_parser"; import { WhileContext } from "./painless_parser"; import { ForContext } from "./painless_parser"; import { EachContext } from "./painless_parser"; import { IneachContext } from "./painless_parser"; import { TryContext } from "./painless_parser"; -import { ReadContext } from "./painless_parser"; -import { PostContext } from "./painless_parser"; -import { NotContext } from "./painless_parser"; -import { CastContext } from "./painless_parser"; -import { DynamicContext } from "./painless_parser"; -import { NewarrayContext } from "./painless_parser"; -import { NonconditionalContext } from "./painless_parser"; -import { ConditionalContext } from "./painless_parser"; -import { AssignmentContext } from "./painless_parser"; import { DoContext } from "./painless_parser"; import { DeclContext } from "./painless_parser"; import { ContinueContext } from "./painless_parser"; @@ -36,12 +21,38 @@ import { BreakContext } from "./painless_parser"; import { ReturnContext } from "./painless_parser"; import { ThrowContext } from "./painless_parser"; import { ExprContext } from "./painless_parser"; +import { TrailerContext } from "./painless_parser"; +import { BlockContext } from "./painless_parser"; +import { EmptyContext } from "./painless_parser"; +import { InitializerContext } from "./painless_parser"; +import { AfterthoughtContext } from "./painless_parser"; +import { DeclarationContext } from "./painless_parser"; +import { DecltypeContext } from "./painless_parser"; +import { TypeContext } from "./painless_parser"; +import { DeclvarContext } from "./painless_parser"; +import { TrapContext } from "./painless_parser"; import { SingleContext } from "./painless_parser"; -import { BinaryContext } from "./painless_parser"; import { CompContext } from "./painless_parser"; -import { InstanceofContext } from "./painless_parser"; import { BoolContext } from "./painless_parser"; +import { BinaryContext } from "./painless_parser"; import { ElvisContext } from "./painless_parser"; +import { InstanceofContext } from "./painless_parser"; +import { NonconditionalContext } from "./painless_parser"; +import { ConditionalContext } from "./painless_parser"; +import { AssignmentContext } from "./painless_parser"; +import { PreContext } from "./painless_parser"; +import { AddsubContext } from "./painless_parser"; +import { NotaddsubContext } from "./painless_parser"; +import { ReadContext } from "./painless_parser"; +import { PostContext } from "./painless_parser"; +import { NotContext } from "./painless_parser"; +import { CastContext } from "./painless_parser"; +import { PrimordefcastContext } from "./painless_parser"; +import { RefcastContext } from "./painless_parser"; +import { PrimordefcasttypeContext } from "./painless_parser"; +import { RefcasttypeContext } from "./painless_parser"; +import { DynamicContext } from "./painless_parser"; +import { NewarrayContext } from "./painless_parser"; import { PrecedenceContext } from "./painless_parser"; import { NumericContext } from "./painless_parser"; import { TrueContext } from "./painless_parser"; @@ -54,37 +65,13 @@ import { MapinitContext } from "./painless_parser"; import { VariableContext } from "./painless_parser"; import { CalllocalContext } from "./painless_parser"; import { NewobjectContext } from "./painless_parser"; -import { SourceContext } from "./painless_parser"; -import { FunctionContext } from "./painless_parser"; -import { ParametersContext } from "./painless_parser"; -import { StatementContext } from "./painless_parser"; -import { RstatementContext } from "./painless_parser"; -import { DstatementContext } from "./painless_parser"; -import { TrailerContext } from "./painless_parser"; -import { BlockContext } from "./painless_parser"; -import { EmptyContext } from "./painless_parser"; -import { InitializerContext } from "./painless_parser"; -import { AfterthoughtContext } from "./painless_parser"; -import { DeclarationContext } from "./painless_parser"; -import { DecltypeContext } from "./painless_parser"; -import { TypeContext } from "./painless_parser"; -import { DeclvarContext } from "./painless_parser"; -import { TrapContext } from "./painless_parser"; -import { NoncondexpressionContext } from "./painless_parser"; -import { ExpressionContext } from "./painless_parser"; -import { UnaryContext } from "./painless_parser"; -import { UnarynotaddsubContext } from "./painless_parser"; -import { CastexpressionContext } from "./painless_parser"; -import { PrimordefcasttypeContext } from "./painless_parser"; -import { RefcasttypeContext } from "./painless_parser"; -import { ChainContext } from "./painless_parser"; -import { PrimaryContext } from "./painless_parser"; import { PostfixContext } from "./painless_parser"; import { PostdotContext } from "./painless_parser"; import { CallinvokeContext } from "./painless_parser"; import { FieldaccessContext } from "./painless_parser"; import { BraceaccessContext } from "./painless_parser"; -import { ArrayinitializerContext } from "./painless_parser"; +import { NewstandardarrayContext } from "./painless_parser"; +import { NewinitializedarrayContext } from "./painless_parser"; import { ListinitializerContext } from "./painless_parser"; import { MapinitializerContext } from "./painless_parser"; import { MaptokenContext } from "./painless_parser"; @@ -92,144 +79,56 @@ import { ArgumentsContext } from "./painless_parser"; import { ArgumentContext } from "./painless_parser"; import { LambdaContext } from "./painless_parser"; import { LamtypeContext } from "./painless_parser"; -import { FuncrefContext } from "./painless_parser"; +import { ClassfuncrefContext } from "./painless_parser"; +import { ConstructorfuncrefContext } from "./painless_parser"; +import { LocalfuncrefContext } from "./painless_parser"; /** * This interface defines a complete listener for a parse tree produced by * `painless_parser`. */ -export interface painless_parserListener extends ParseTreeListener { - /** - * Enter a parse tree produced by the `newstandardarray` - * labeled alternative in `painless_parser.arrayinitializer`. - * @param ctx the parse tree - */ - enterNewstandardarray?: (ctx: NewstandardarrayContext) => void; - /** - * Exit a parse tree produced by the `newstandardarray` - * labeled alternative in `painless_parser.arrayinitializer`. - * @param ctx the parse tree - */ - exitNewstandardarray?: (ctx: NewstandardarrayContext) => void; - - /** - * Enter a parse tree produced by the `newinitializedarray` - * labeled alternative in `painless_parser.arrayinitializer`. - * @param ctx the parse tree - */ - enterNewinitializedarray?: (ctx: NewinitializedarrayContext) => void; - /** - * Exit a parse tree produced by the `newinitializedarray` - * labeled alternative in `painless_parser.arrayinitializer`. - * @param ctx the parse tree - */ - exitNewinitializedarray?: (ctx: NewinitializedarrayContext) => void; - - /** - * Enter a parse tree produced by the `primordefcast` - * labeled alternative in `painless_parser.castexpression`. - * @param ctx the parse tree - */ - enterPrimordefcast?: (ctx: PrimordefcastContext) => void; - /** - * Exit a parse tree produced by the `primordefcast` - * labeled alternative in `painless_parser.castexpression`. - * @param ctx the parse tree - */ - exitPrimordefcast?: (ctx: PrimordefcastContext) => void; - - /** - * Enter a parse tree produced by the `refcast` - * labeled alternative in `painless_parser.castexpression`. - * @param ctx the parse tree - */ - enterRefcast?: (ctx: RefcastContext) => void; - /** - * Exit a parse tree produced by the `refcast` - * labeled alternative in `painless_parser.castexpression`. - * @param ctx the parse tree - */ - exitRefcast?: (ctx: RefcastContext) => void; - - /** - * Enter a parse tree produced by the `pre` - * labeled alternative in `painless_parser.unary`. - * @param ctx the parse tree - */ - enterPre?: (ctx: PreContext) => void; - /** - * Exit a parse tree produced by the `pre` - * labeled alternative in `painless_parser.unary`. - * @param ctx the parse tree - */ - exitPre?: (ctx: PreContext) => void; - - /** - * Enter a parse tree produced by the `addsub` - * labeled alternative in `painless_parser.unary`. - * @param ctx the parse tree - */ - enterAddsub?: (ctx: AddsubContext) => void; - /** - * Exit a parse tree produced by the `addsub` - * labeled alternative in `painless_parser.unary`. - * @param ctx the parse tree - */ - exitAddsub?: (ctx: AddsubContext) => void; - +export default class painless_parserListener extends ParseTreeListener { /** - * Enter a parse tree produced by the `notaddsub` - * labeled alternative in `painless_parser.unary`. + * Enter a parse tree produced by `painless_parser.source`. * @param ctx the parse tree */ - enterNotaddsub?: (ctx: NotaddsubContext) => void; + enterSource?: (ctx: SourceContext) => void; /** - * Exit a parse tree produced by the `notaddsub` - * labeled alternative in `painless_parser.unary`. + * Exit a parse tree produced by `painless_parser.source`. * @param ctx the parse tree */ - exitNotaddsub?: (ctx: NotaddsubContext) => void; - + exitSource?: (ctx: SourceContext) => void; /** - * Enter a parse tree produced by the `classfuncref` - * labeled alternative in `painless_parser.funcref`. + * Enter a parse tree produced by `painless_parser.function`. * @param ctx the parse tree */ - enterClassfuncref?: (ctx: ClassfuncrefContext) => void; + enterFunction?: (ctx: FunctionContext) => void; /** - * Exit a parse tree produced by the `classfuncref` - * labeled alternative in `painless_parser.funcref`. + * Exit a parse tree produced by `painless_parser.function`. * @param ctx the parse tree */ - exitClassfuncref?: (ctx: ClassfuncrefContext) => void; - + exitFunction?: (ctx: FunctionContext) => void; /** - * Enter a parse tree produced by the `constructorfuncref` - * labeled alternative in `painless_parser.funcref`. + * Enter a parse tree produced by `painless_parser.parameters`. * @param ctx the parse tree */ - enterConstructorfuncref?: (ctx: ConstructorfuncrefContext) => void; + enterParameters?: (ctx: ParametersContext) => void; /** - * Exit a parse tree produced by the `constructorfuncref` - * labeled alternative in `painless_parser.funcref`. + * Exit a parse tree produced by `painless_parser.parameters`. * @param ctx the parse tree */ - exitConstructorfuncref?: (ctx: ConstructorfuncrefContext) => void; - + exitParameters?: (ctx: ParametersContext) => void; /** - * Enter a parse tree produced by the `localfuncref` - * labeled alternative in `painless_parser.funcref`. + * Enter a parse tree produced by `painless_parser.statement`. * @param ctx the parse tree */ - enterLocalfuncref?: (ctx: LocalfuncrefContext) => void; + enterStatement?: (ctx: StatementContext) => void; /** - * Exit a parse tree produced by the `localfuncref` - * labeled alternative in `painless_parser.funcref`. + * Exit a parse tree produced by `painless_parser.statement`. * @param ctx the parse tree */ - exitLocalfuncref?: (ctx: LocalfuncrefContext) => void; - + exitStatement?: (ctx: StatementContext) => void; /** * Enter a parse tree produced by the `if` * labeled alternative in `painless_parser.rstatement`. @@ -242,7 +141,6 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitIf?: (ctx: IfContext) => void; - /** * Enter a parse tree produced by the `while` * labeled alternative in `painless_parser.rstatement`. @@ -255,7 +153,6 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitWhile?: (ctx: WhileContext) => void; - /** * Enter a parse tree produced by the `for` * labeled alternative in `painless_parser.rstatement`. @@ -268,7 +165,6 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitFor?: (ctx: ForContext) => void; - /** * Enter a parse tree produced by the `each` * labeled alternative in `painless_parser.rstatement`. @@ -281,7 +177,6 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitEach?: (ctx: EachContext) => void; - /** * Enter a parse tree produced by the `ineach` * labeled alternative in `painless_parser.rstatement`. @@ -294,7 +189,6 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitIneach?: (ctx: IneachContext) => void; - /** * Enter a parse tree produced by the `try` * labeled alternative in `painless_parser.rstatement`. @@ -307,241 +201,202 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitTry?: (ctx: TryContext) => void; - /** - * Enter a parse tree produced by the `read` - * labeled alternative in `painless_parser.unarynotaddsub`. + * Enter a parse tree produced by the `do` + * labeled alternative in `painless_parser.dstatement`. * @param ctx the parse tree */ - enterRead?: (ctx: ReadContext) => void; + enterDo?: (ctx: DoContext) => void; /** - * Exit a parse tree produced by the `read` - * labeled alternative in `painless_parser.unarynotaddsub`. + * Exit a parse tree produced by the `do` + * labeled alternative in `painless_parser.dstatement`. * @param ctx the parse tree */ - exitRead?: (ctx: ReadContext) => void; - + exitDo?: (ctx: DoContext) => void; /** - * Enter a parse tree produced by the `post` - * labeled alternative in `painless_parser.unarynotaddsub`. + * Enter a parse tree produced by the `decl` + * labeled alternative in `painless_parser.dstatement`. * @param ctx the parse tree */ - enterPost?: (ctx: PostContext) => void; + enterDecl?: (ctx: DeclContext) => void; /** - * Exit a parse tree produced by the `post` - * labeled alternative in `painless_parser.unarynotaddsub`. + * Exit a parse tree produced by the `decl` + * labeled alternative in `painless_parser.dstatement`. * @param ctx the parse tree */ - exitPost?: (ctx: PostContext) => void; - + exitDecl?: (ctx: DeclContext) => void; /** - * Enter a parse tree produced by the `not` - * labeled alternative in `painless_parser.unarynotaddsub`. + * Enter a parse tree produced by the `continue` + * labeled alternative in `painless_parser.dstatement`. * @param ctx the parse tree */ - enterNot?: (ctx: NotContext) => void; + enterContinue?: (ctx: ContinueContext) => void; /** - * Exit a parse tree produced by the `not` - * labeled alternative in `painless_parser.unarynotaddsub`. + * Exit a parse tree produced by the `continue` + * labeled alternative in `painless_parser.dstatement`. * @param ctx the parse tree */ - exitNot?: (ctx: NotContext) => void; - + exitContinue?: (ctx: ContinueContext) => void; /** - * Enter a parse tree produced by the `cast` - * labeled alternative in `painless_parser.unarynotaddsub`. + * Enter a parse tree produced by the `break` + * labeled alternative in `painless_parser.dstatement`. * @param ctx the parse tree */ - enterCast?: (ctx: CastContext) => void; + enterBreak?: (ctx: BreakContext) => void; /** - * Exit a parse tree produced by the `cast` - * labeled alternative in `painless_parser.unarynotaddsub`. + * Exit a parse tree produced by the `break` + * labeled alternative in `painless_parser.dstatement`. * @param ctx the parse tree */ - exitCast?: (ctx: CastContext) => void; - + exitBreak?: (ctx: BreakContext) => void; /** - * Enter a parse tree produced by the `dynamic` - * labeled alternative in `painless_parser.chain`. + * Enter a parse tree produced by the `return` + * labeled alternative in `painless_parser.dstatement`. * @param ctx the parse tree */ - enterDynamic?: (ctx: DynamicContext) => void; + enterReturn?: (ctx: ReturnContext) => void; /** - * Exit a parse tree produced by the `dynamic` - * labeled alternative in `painless_parser.chain`. + * Exit a parse tree produced by the `return` + * labeled alternative in `painless_parser.dstatement`. * @param ctx the parse tree */ - exitDynamic?: (ctx: DynamicContext) => void; - + exitReturn?: (ctx: ReturnContext) => void; /** - * Enter a parse tree produced by the `newarray` - * labeled alternative in `painless_parser.chain`. + * Enter a parse tree produced by the `throw` + * labeled alternative in `painless_parser.dstatement`. * @param ctx the parse tree */ - enterNewarray?: (ctx: NewarrayContext) => void; + enterThrow?: (ctx: ThrowContext) => void; /** - * Exit a parse tree produced by the `newarray` - * labeled alternative in `painless_parser.chain`. + * Exit a parse tree produced by the `throw` + * labeled alternative in `painless_parser.dstatement`. * @param ctx the parse tree */ - exitNewarray?: (ctx: NewarrayContext) => void; - + exitThrow?: (ctx: ThrowContext) => void; /** - * Enter a parse tree produced by the `nonconditional` - * labeled alternative in `painless_parser.expression`. + * Enter a parse tree produced by the `expr` + * labeled alternative in `painless_parser.dstatement`. * @param ctx the parse tree */ - enterNonconditional?: (ctx: NonconditionalContext) => void; + enterExpr?: (ctx: ExprContext) => void; /** - * Exit a parse tree produced by the `nonconditional` - * labeled alternative in `painless_parser.expression`. + * Exit a parse tree produced by the `expr` + * labeled alternative in `painless_parser.dstatement`. * @param ctx the parse tree */ - exitNonconditional?: (ctx: NonconditionalContext) => void; - + exitExpr?: (ctx: ExprContext) => void; /** - * Enter a parse tree produced by the `conditional` - * labeled alternative in `painless_parser.expression`. + * Enter a parse tree produced by `painless_parser.trailer`. * @param ctx the parse tree */ - enterConditional?: (ctx: ConditionalContext) => void; + enterTrailer?: (ctx: TrailerContext) => void; /** - * Exit a parse tree produced by the `conditional` - * labeled alternative in `painless_parser.expression`. + * Exit a parse tree produced by `painless_parser.trailer`. * @param ctx the parse tree */ - exitConditional?: (ctx: ConditionalContext) => void; - + exitTrailer?: (ctx: TrailerContext) => void; /** - * Enter a parse tree produced by the `assignment` - * labeled alternative in `painless_parser.expression`. + * Enter a parse tree produced by `painless_parser.block`. * @param ctx the parse tree */ - enterAssignment?: (ctx: AssignmentContext) => void; + enterBlock?: (ctx: BlockContext) => void; /** - * Exit a parse tree produced by the `assignment` - * labeled alternative in `painless_parser.expression`. + * Exit a parse tree produced by `painless_parser.block`. * @param ctx the parse tree */ - exitAssignment?: (ctx: AssignmentContext) => void; - + exitBlock?: (ctx: BlockContext) => void; /** - * Enter a parse tree produced by the `do` - * labeled alternative in `painless_parser.dstatement`. + * Enter a parse tree produced by `painless_parser.empty`. * @param ctx the parse tree */ - enterDo?: (ctx: DoContext) => void; + enterEmpty?: (ctx: EmptyContext) => void; /** - * Exit a parse tree produced by the `do` - * labeled alternative in `painless_parser.dstatement`. + * Exit a parse tree produced by `painless_parser.empty`. * @param ctx the parse tree */ - exitDo?: (ctx: DoContext) => void; - + exitEmpty?: (ctx: EmptyContext) => void; /** - * Enter a parse tree produced by the `decl` - * labeled alternative in `painless_parser.dstatement`. + * Enter a parse tree produced by `painless_parser.initializer`. * @param ctx the parse tree */ - enterDecl?: (ctx: DeclContext) => void; + enterInitializer?: (ctx: InitializerContext) => void; /** - * Exit a parse tree produced by the `decl` - * labeled alternative in `painless_parser.dstatement`. + * Exit a parse tree produced by `painless_parser.initializer`. * @param ctx the parse tree */ - exitDecl?: (ctx: DeclContext) => void; - + exitInitializer?: (ctx: InitializerContext) => void; /** - * Enter a parse tree produced by the `continue` - * labeled alternative in `painless_parser.dstatement`. + * Enter a parse tree produced by `painless_parser.afterthought`. * @param ctx the parse tree */ - enterContinue?: (ctx: ContinueContext) => void; + enterAfterthought?: (ctx: AfterthoughtContext) => void; /** - * Exit a parse tree produced by the `continue` - * labeled alternative in `painless_parser.dstatement`. + * Exit a parse tree produced by `painless_parser.afterthought`. * @param ctx the parse tree */ - exitContinue?: (ctx: ContinueContext) => void; - + exitAfterthought?: (ctx: AfterthoughtContext) => void; /** - * Enter a parse tree produced by the `break` - * labeled alternative in `painless_parser.dstatement`. + * Enter a parse tree produced by `painless_parser.declaration`. * @param ctx the parse tree */ - enterBreak?: (ctx: BreakContext) => void; + enterDeclaration?: (ctx: DeclarationContext) => void; /** - * Exit a parse tree produced by the `break` - * labeled alternative in `painless_parser.dstatement`. + * Exit a parse tree produced by `painless_parser.declaration`. * @param ctx the parse tree */ - exitBreak?: (ctx: BreakContext) => void; - + exitDeclaration?: (ctx: DeclarationContext) => void; /** - * Enter a parse tree produced by the `return` - * labeled alternative in `painless_parser.dstatement`. + * Enter a parse tree produced by `painless_parser.decltype`. * @param ctx the parse tree */ - enterReturn?: (ctx: ReturnContext) => void; + enterDecltype?: (ctx: DecltypeContext) => void; /** - * Exit a parse tree produced by the `return` - * labeled alternative in `painless_parser.dstatement`. + * Exit a parse tree produced by `painless_parser.decltype`. * @param ctx the parse tree */ - exitReturn?: (ctx: ReturnContext) => void; - + exitDecltype?: (ctx: DecltypeContext) => void; /** - * Enter a parse tree produced by the `throw` - * labeled alternative in `painless_parser.dstatement`. + * Enter a parse tree produced by `painless_parser.type`. * @param ctx the parse tree */ - enterThrow?: (ctx: ThrowContext) => void; + enterType?: (ctx: TypeContext) => void; /** - * Exit a parse tree produced by the `throw` - * labeled alternative in `painless_parser.dstatement`. + * Exit a parse tree produced by `painless_parser.type`. * @param ctx the parse tree */ - exitThrow?: (ctx: ThrowContext) => void; - + exitType?: (ctx: TypeContext) => void; /** - * Enter a parse tree produced by the `expr` - * labeled alternative in `painless_parser.dstatement`. + * Enter a parse tree produced by `painless_parser.declvar`. * @param ctx the parse tree */ - enterExpr?: (ctx: ExprContext) => void; + enterDeclvar?: (ctx: DeclvarContext) => void; /** - * Exit a parse tree produced by the `expr` - * labeled alternative in `painless_parser.dstatement`. + * Exit a parse tree produced by `painless_parser.declvar`. * @param ctx the parse tree */ - exitExpr?: (ctx: ExprContext) => void; - + exitDeclvar?: (ctx: DeclvarContext) => void; /** - * Enter a parse tree produced by the `single` - * labeled alternative in `painless_parser.noncondexpression`. + * Enter a parse tree produced by `painless_parser.trap`. * @param ctx the parse tree */ - enterSingle?: (ctx: SingleContext) => void; + enterTrap?: (ctx: TrapContext) => void; /** - * Exit a parse tree produced by the `single` - * labeled alternative in `painless_parser.noncondexpression`. + * Exit a parse tree produced by `painless_parser.trap`. * @param ctx the parse tree */ - exitSingle?: (ctx: SingleContext) => void; - + exitTrap?: (ctx: TrapContext) => void; /** - * Enter a parse tree produced by the `binary` + * Enter a parse tree produced by the `single` * labeled alternative in `painless_parser.noncondexpression`. * @param ctx the parse tree */ - enterBinary?: (ctx: BinaryContext) => void; + enterSingle?: (ctx: SingleContext) => void; /** - * Exit a parse tree produced by the `binary` + * Exit a parse tree produced by the `single` * labeled alternative in `painless_parser.noncondexpression`. * @param ctx the parse tree */ - exitBinary?: (ctx: BinaryContext) => void; - + exitSingle?: (ctx: SingleContext) => void; /** * Enter a parse tree produced by the `comp` * labeled alternative in `painless_parser.noncondexpression`. @@ -554,33 +409,30 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitComp?: (ctx: CompContext) => void; - /** - * Enter a parse tree produced by the `instanceof` + * Enter a parse tree produced by the `bool` * labeled alternative in `painless_parser.noncondexpression`. * @param ctx the parse tree */ - enterInstanceof?: (ctx: InstanceofContext) => void; + enterBool?: (ctx: BoolContext) => void; /** - * Exit a parse tree produced by the `instanceof` + * Exit a parse tree produced by the `bool` * labeled alternative in `painless_parser.noncondexpression`. * @param ctx the parse tree */ - exitInstanceof?: (ctx: InstanceofContext) => void; - + exitBool?: (ctx: BoolContext) => void; /** - * Enter a parse tree produced by the `bool` + * Enter a parse tree produced by the `binary` * labeled alternative in `painless_parser.noncondexpression`. * @param ctx the parse tree */ - enterBool?: (ctx: BoolContext) => void; + enterBinary?: (ctx: BinaryContext) => void; /** - * Exit a parse tree produced by the `bool` + * Exit a parse tree produced by the `binary` * labeled alternative in `painless_parser.noncondexpression`. * @param ctx the parse tree */ - exitBool?: (ctx: BoolContext) => void; - + exitBinary?: (ctx: BinaryContext) => void; /** * Enter a parse tree produced by the `elvis` * labeled alternative in `painless_parser.noncondexpression`. @@ -593,438 +445,350 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitElvis?: (ctx: ElvisContext) => void; - - /** - * Enter a parse tree produced by the `precedence` - * labeled alternative in `painless_parser.primary`. - * @param ctx the parse tree - */ - enterPrecedence?: (ctx: PrecedenceContext) => void; - /** - * Exit a parse tree produced by the `precedence` - * labeled alternative in `painless_parser.primary`. - * @param ctx the parse tree - */ - exitPrecedence?: (ctx: PrecedenceContext) => void; - - /** - * Enter a parse tree produced by the `numeric` - * labeled alternative in `painless_parser.primary`. - * @param ctx the parse tree - */ - enterNumeric?: (ctx: NumericContext) => void; - /** - * Exit a parse tree produced by the `numeric` - * labeled alternative in `painless_parser.primary`. - * @param ctx the parse tree - */ - exitNumeric?: (ctx: NumericContext) => void; - - /** - * Enter a parse tree produced by the `true` - * labeled alternative in `painless_parser.primary`. - * @param ctx the parse tree - */ - enterTrue?: (ctx: TrueContext) => void; - /** - * Exit a parse tree produced by the `true` - * labeled alternative in `painless_parser.primary`. - * @param ctx the parse tree - */ - exitTrue?: (ctx: TrueContext) => void; - - /** - * Enter a parse tree produced by the `false` - * labeled alternative in `painless_parser.primary`. - * @param ctx the parse tree - */ - enterFalse?: (ctx: FalseContext) => void; - /** - * Exit a parse tree produced by the `false` - * labeled alternative in `painless_parser.primary`. - * @param ctx the parse tree - */ - exitFalse?: (ctx: FalseContext) => void; - - /** - * Enter a parse tree produced by the `null` - * labeled alternative in `painless_parser.primary`. - * @param ctx the parse tree - */ - enterNull?: (ctx: NullContext) => void; - /** - * Exit a parse tree produced by the `null` - * labeled alternative in `painless_parser.primary`. - * @param ctx the parse tree - */ - exitNull?: (ctx: NullContext) => void; - - /** - * Enter a parse tree produced by the `string` - * labeled alternative in `painless_parser.primary`. - * @param ctx the parse tree - */ - enterString?: (ctx: StringContext) => void; - /** - * Exit a parse tree produced by the `string` - * labeled alternative in `painless_parser.primary`. - * @param ctx the parse tree - */ - exitString?: (ctx: StringContext) => void; - - /** - * Enter a parse tree produced by the `regex` - * labeled alternative in `painless_parser.primary`. - * @param ctx the parse tree - */ - enterRegex?: (ctx: RegexContext) => void; - /** - * Exit a parse tree produced by the `regex` - * labeled alternative in `painless_parser.primary`. - * @param ctx the parse tree - */ - exitRegex?: (ctx: RegexContext) => void; - - /** - * Enter a parse tree produced by the `listinit` - * labeled alternative in `painless_parser.primary`. - * @param ctx the parse tree - */ - enterListinit?: (ctx: ListinitContext) => void; - /** - * Exit a parse tree produced by the `listinit` - * labeled alternative in `painless_parser.primary`. - * @param ctx the parse tree - */ - exitListinit?: (ctx: ListinitContext) => void; - /** - * Enter a parse tree produced by the `mapinit` - * labeled alternative in `painless_parser.primary`. + * Enter a parse tree produced by the `instanceof` + * labeled alternative in `painless_parser.noncondexpression`. * @param ctx the parse tree */ - enterMapinit?: (ctx: MapinitContext) => void; + enterInstanceof?: (ctx: InstanceofContext) => void; /** - * Exit a parse tree produced by the `mapinit` - * labeled alternative in `painless_parser.primary`. + * Exit a parse tree produced by the `instanceof` + * labeled alternative in `painless_parser.noncondexpression`. * @param ctx the parse tree */ - exitMapinit?: (ctx: MapinitContext) => void; - + exitInstanceof?: (ctx: InstanceofContext) => void; /** - * Enter a parse tree produced by the `variable` - * labeled alternative in `painless_parser.primary`. + * Enter a parse tree produced by the `nonconditional` + * labeled alternative in `painless_parser.expression`. * @param ctx the parse tree */ - enterVariable?: (ctx: VariableContext) => void; + enterNonconditional?: (ctx: NonconditionalContext) => void; /** - * Exit a parse tree produced by the `variable` - * labeled alternative in `painless_parser.primary`. + * Exit a parse tree produced by the `nonconditional` + * labeled alternative in `painless_parser.expression`. * @param ctx the parse tree */ - exitVariable?: (ctx: VariableContext) => void; - + exitNonconditional?: (ctx: NonconditionalContext) => void; /** - * Enter a parse tree produced by the `calllocal` - * labeled alternative in `painless_parser.primary`. + * Enter a parse tree produced by the `conditional` + * labeled alternative in `painless_parser.expression`. * @param ctx the parse tree */ - enterCalllocal?: (ctx: CalllocalContext) => void; + enterConditional?: (ctx: ConditionalContext) => void; /** - * Exit a parse tree produced by the `calllocal` - * labeled alternative in `painless_parser.primary`. + * Exit a parse tree produced by the `conditional` + * labeled alternative in `painless_parser.expression`. * @param ctx the parse tree */ - exitCalllocal?: (ctx: CalllocalContext) => void; - + exitConditional?: (ctx: ConditionalContext) => void; /** - * Enter a parse tree produced by the `newobject` - * labeled alternative in `painless_parser.primary`. + * Enter a parse tree produced by the `assignment` + * labeled alternative in `painless_parser.expression`. * @param ctx the parse tree */ - enterNewobject?: (ctx: NewobjectContext) => void; + enterAssignment?: (ctx: AssignmentContext) => void; /** - * Exit a parse tree produced by the `newobject` - * labeled alternative in `painless_parser.primary`. + * Exit a parse tree produced by the `assignment` + * labeled alternative in `painless_parser.expression`. * @param ctx the parse tree */ - exitNewobject?: (ctx: NewobjectContext) => void; - + exitAssignment?: (ctx: AssignmentContext) => void; /** - * Enter a parse tree produced by `painless_parser.source`. + * Enter a parse tree produced by the `pre` + * labeled alternative in `painless_parser.unary`. * @param ctx the parse tree */ - enterSource?: (ctx: SourceContext) => void; + enterPre?: (ctx: PreContext) => void; /** - * Exit a parse tree produced by `painless_parser.source`. + * Exit a parse tree produced by the `pre` + * labeled alternative in `painless_parser.unary`. * @param ctx the parse tree */ - exitSource?: (ctx: SourceContext) => void; - + exitPre?: (ctx: PreContext) => void; /** - * Enter a parse tree produced by `painless_parser.function`. + * Enter a parse tree produced by the `addsub` + * labeled alternative in `painless_parser.unary`. * @param ctx the parse tree */ - enterFunction?: (ctx: FunctionContext) => void; + enterAddsub?: (ctx: AddsubContext) => void; /** - * Exit a parse tree produced by `painless_parser.function`. + * Exit a parse tree produced by the `addsub` + * labeled alternative in `painless_parser.unary`. * @param ctx the parse tree */ - exitFunction?: (ctx: FunctionContext) => void; - + exitAddsub?: (ctx: AddsubContext) => void; /** - * Enter a parse tree produced by `painless_parser.parameters`. + * Enter a parse tree produced by the `notaddsub` + * labeled alternative in `painless_parser.unary`. * @param ctx the parse tree */ - enterParameters?: (ctx: ParametersContext) => void; + enterNotaddsub?: (ctx: NotaddsubContext) => void; /** - * Exit a parse tree produced by `painless_parser.parameters`. + * Exit a parse tree produced by the `notaddsub` + * labeled alternative in `painless_parser.unary`. * @param ctx the parse tree */ - exitParameters?: (ctx: ParametersContext) => void; - + exitNotaddsub?: (ctx: NotaddsubContext) => void; /** - * Enter a parse tree produced by `painless_parser.statement`. + * Enter a parse tree produced by the `read` + * labeled alternative in `painless_parser.unarynotaddsub`. * @param ctx the parse tree */ - enterStatement?: (ctx: StatementContext) => void; + enterRead?: (ctx: ReadContext) => void; /** - * Exit a parse tree produced by `painless_parser.statement`. + * Exit a parse tree produced by the `read` + * labeled alternative in `painless_parser.unarynotaddsub`. * @param ctx the parse tree */ - exitStatement?: (ctx: StatementContext) => void; - + exitRead?: (ctx: ReadContext) => void; /** - * Enter a parse tree produced by `painless_parser.rstatement`. + * Enter a parse tree produced by the `post` + * labeled alternative in `painless_parser.unarynotaddsub`. * @param ctx the parse tree */ - enterRstatement?: (ctx: RstatementContext) => void; + enterPost?: (ctx: PostContext) => void; /** - * Exit a parse tree produced by `painless_parser.rstatement`. + * Exit a parse tree produced by the `post` + * labeled alternative in `painless_parser.unarynotaddsub`. * @param ctx the parse tree */ - exitRstatement?: (ctx: RstatementContext) => void; - + exitPost?: (ctx: PostContext) => void; /** - * Enter a parse tree produced by `painless_parser.dstatement`. + * Enter a parse tree produced by the `not` + * labeled alternative in `painless_parser.unarynotaddsub`. * @param ctx the parse tree */ - enterDstatement?: (ctx: DstatementContext) => void; + enterNot?: (ctx: NotContext) => void; /** - * Exit a parse tree produced by `painless_parser.dstatement`. + * Exit a parse tree produced by the `not` + * labeled alternative in `painless_parser.unarynotaddsub`. * @param ctx the parse tree */ - exitDstatement?: (ctx: DstatementContext) => void; - + exitNot?: (ctx: NotContext) => void; /** - * Enter a parse tree produced by `painless_parser.trailer`. + * Enter a parse tree produced by the `cast` + * labeled alternative in `painless_parser.unarynotaddsub`. * @param ctx the parse tree */ - enterTrailer?: (ctx: TrailerContext) => void; + enterCast?: (ctx: CastContext) => void; /** - * Exit a parse tree produced by `painless_parser.trailer`. + * Exit a parse tree produced by the `cast` + * labeled alternative in `painless_parser.unarynotaddsub`. * @param ctx the parse tree */ - exitTrailer?: (ctx: TrailerContext) => void; - + exitCast?: (ctx: CastContext) => void; /** - * Enter a parse tree produced by `painless_parser.block`. + * Enter a parse tree produced by the `primordefcast` + * labeled alternative in `painless_parser.castexpression`. * @param ctx the parse tree */ - enterBlock?: (ctx: BlockContext) => void; + enterPrimordefcast?: (ctx: PrimordefcastContext) => void; /** - * Exit a parse tree produced by `painless_parser.block`. + * Exit a parse tree produced by the `primordefcast` + * labeled alternative in `painless_parser.castexpression`. * @param ctx the parse tree */ - exitBlock?: (ctx: BlockContext) => void; - + exitPrimordefcast?: (ctx: PrimordefcastContext) => void; /** - * Enter a parse tree produced by `painless_parser.empty`. + * Enter a parse tree produced by the `refcast` + * labeled alternative in `painless_parser.castexpression`. * @param ctx the parse tree */ - enterEmpty?: (ctx: EmptyContext) => void; + enterRefcast?: (ctx: RefcastContext) => void; /** - * Exit a parse tree produced by `painless_parser.empty`. + * Exit a parse tree produced by the `refcast` + * labeled alternative in `painless_parser.castexpression`. * @param ctx the parse tree */ - exitEmpty?: (ctx: EmptyContext) => void; - + exitRefcast?: (ctx: RefcastContext) => void; /** - * Enter a parse tree produced by `painless_parser.initializer`. + * Enter a parse tree produced by `painless_parser.primordefcasttype`. * @param ctx the parse tree */ - enterInitializer?: (ctx: InitializerContext) => void; + enterPrimordefcasttype?: (ctx: PrimordefcasttypeContext) => void; /** - * Exit a parse tree produced by `painless_parser.initializer`. + * Exit a parse tree produced by `painless_parser.primordefcasttype`. * @param ctx the parse tree */ - exitInitializer?: (ctx: InitializerContext) => void; - + exitPrimordefcasttype?: (ctx: PrimordefcasttypeContext) => void; /** - * Enter a parse tree produced by `painless_parser.afterthought`. + * Enter a parse tree produced by `painless_parser.refcasttype`. * @param ctx the parse tree */ - enterAfterthought?: (ctx: AfterthoughtContext) => void; + enterRefcasttype?: (ctx: RefcasttypeContext) => void; /** - * Exit a parse tree produced by `painless_parser.afterthought`. + * Exit a parse tree produced by `painless_parser.refcasttype`. * @param ctx the parse tree */ - exitAfterthought?: (ctx: AfterthoughtContext) => void; - + exitRefcasttype?: (ctx: RefcasttypeContext) => void; /** - * Enter a parse tree produced by `painless_parser.declaration`. + * Enter a parse tree produced by the `dynamic` + * labeled alternative in `painless_parser.chain`. * @param ctx the parse tree */ - enterDeclaration?: (ctx: DeclarationContext) => void; + enterDynamic?: (ctx: DynamicContext) => void; /** - * Exit a parse tree produced by `painless_parser.declaration`. + * Exit a parse tree produced by the `dynamic` + * labeled alternative in `painless_parser.chain`. * @param ctx the parse tree */ - exitDeclaration?: (ctx: DeclarationContext) => void; - + exitDynamic?: (ctx: DynamicContext) => void; /** - * Enter a parse tree produced by `painless_parser.decltype`. + * Enter a parse tree produced by the `newarray` + * labeled alternative in `painless_parser.chain`. * @param ctx the parse tree */ - enterDecltype?: (ctx: DecltypeContext) => void; + enterNewarray?: (ctx: NewarrayContext) => void; /** - * Exit a parse tree produced by `painless_parser.decltype`. + * Exit a parse tree produced by the `newarray` + * labeled alternative in `painless_parser.chain`. * @param ctx the parse tree */ - exitDecltype?: (ctx: DecltypeContext) => void; - + exitNewarray?: (ctx: NewarrayContext) => void; /** - * Enter a parse tree produced by `painless_parser.type`. + * Enter a parse tree produced by the `precedence` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - enterType?: (ctx: TypeContext) => void; + enterPrecedence?: (ctx: PrecedenceContext) => void; /** - * Exit a parse tree produced by `painless_parser.type`. + * Exit a parse tree produced by the `precedence` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - exitType?: (ctx: TypeContext) => void; - + exitPrecedence?: (ctx: PrecedenceContext) => void; /** - * Enter a parse tree produced by `painless_parser.declvar`. + * Enter a parse tree produced by the `numeric` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - enterDeclvar?: (ctx: DeclvarContext) => void; + enterNumeric?: (ctx: NumericContext) => void; /** - * Exit a parse tree produced by `painless_parser.declvar`. + * Exit a parse tree produced by the `numeric` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - exitDeclvar?: (ctx: DeclvarContext) => void; - + exitNumeric?: (ctx: NumericContext) => void; /** - * Enter a parse tree produced by `painless_parser.trap`. + * Enter a parse tree produced by the `true` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - enterTrap?: (ctx: TrapContext) => void; + enterTrue?: (ctx: TrueContext) => void; /** - * Exit a parse tree produced by `painless_parser.trap`. + * Exit a parse tree produced by the `true` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - exitTrap?: (ctx: TrapContext) => void; - + exitTrue?: (ctx: TrueContext) => void; /** - * Enter a parse tree produced by `painless_parser.noncondexpression`. + * Enter a parse tree produced by the `false` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - enterNoncondexpression?: (ctx: NoncondexpressionContext) => void; + enterFalse?: (ctx: FalseContext) => void; /** - * Exit a parse tree produced by `painless_parser.noncondexpression`. + * Exit a parse tree produced by the `false` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - exitNoncondexpression?: (ctx: NoncondexpressionContext) => void; - + exitFalse?: (ctx: FalseContext) => void; /** - * Enter a parse tree produced by `painless_parser.expression`. + * Enter a parse tree produced by the `null` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - enterExpression?: (ctx: ExpressionContext) => void; + enterNull?: (ctx: NullContext) => void; /** - * Exit a parse tree produced by `painless_parser.expression`. + * Exit a parse tree produced by the `null` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - exitExpression?: (ctx: ExpressionContext) => void; - + exitNull?: (ctx: NullContext) => void; /** - * Enter a parse tree produced by `painless_parser.unary`. + * Enter a parse tree produced by the `string` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - enterUnary?: (ctx: UnaryContext) => void; + enterString?: (ctx: StringContext) => void; /** - * Exit a parse tree produced by `painless_parser.unary`. + * Exit a parse tree produced by the `string` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - exitUnary?: (ctx: UnaryContext) => void; - + exitString?: (ctx: StringContext) => void; /** - * Enter a parse tree produced by `painless_parser.unarynotaddsub`. + * Enter a parse tree produced by the `regex` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - enterUnarynotaddsub?: (ctx: UnarynotaddsubContext) => void; + enterRegex?: (ctx: RegexContext) => void; /** - * Exit a parse tree produced by `painless_parser.unarynotaddsub`. + * Exit a parse tree produced by the `regex` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - exitUnarynotaddsub?: (ctx: UnarynotaddsubContext) => void; - + exitRegex?: (ctx: RegexContext) => void; /** - * Enter a parse tree produced by `painless_parser.castexpression`. + * Enter a parse tree produced by the `listinit` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - enterCastexpression?: (ctx: CastexpressionContext) => void; + enterListinit?: (ctx: ListinitContext) => void; /** - * Exit a parse tree produced by `painless_parser.castexpression`. + * Exit a parse tree produced by the `listinit` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - exitCastexpression?: (ctx: CastexpressionContext) => void; - + exitListinit?: (ctx: ListinitContext) => void; /** - * Enter a parse tree produced by `painless_parser.primordefcasttype`. + * Enter a parse tree produced by the `mapinit` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - enterPrimordefcasttype?: (ctx: PrimordefcasttypeContext) => void; + enterMapinit?: (ctx: MapinitContext) => void; /** - * Exit a parse tree produced by `painless_parser.primordefcasttype`. + * Exit a parse tree produced by the `mapinit` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - exitPrimordefcasttype?: (ctx: PrimordefcasttypeContext) => void; - + exitMapinit?: (ctx: MapinitContext) => void; /** - * Enter a parse tree produced by `painless_parser.refcasttype`. + * Enter a parse tree produced by the `variable` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - enterRefcasttype?: (ctx: RefcasttypeContext) => void; + enterVariable?: (ctx: VariableContext) => void; /** - * Exit a parse tree produced by `painless_parser.refcasttype`. + * Exit a parse tree produced by the `variable` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - exitRefcasttype?: (ctx: RefcasttypeContext) => void; - + exitVariable?: (ctx: VariableContext) => void; /** - * Enter a parse tree produced by `painless_parser.chain`. + * Enter a parse tree produced by the `calllocal` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - enterChain?: (ctx: ChainContext) => void; + enterCalllocal?: (ctx: CalllocalContext) => void; /** - * Exit a parse tree produced by `painless_parser.chain`. + * Exit a parse tree produced by the `calllocal` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - exitChain?: (ctx: ChainContext) => void; - + exitCalllocal?: (ctx: CalllocalContext) => void; /** - * Enter a parse tree produced by `painless_parser.primary`. + * Enter a parse tree produced by the `newobject` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - enterPrimary?: (ctx: PrimaryContext) => void; + enterNewobject?: (ctx: NewobjectContext) => void; /** - * Exit a parse tree produced by `painless_parser.primary`. + * Exit a parse tree produced by the `newobject` + * labeled alternative in `painless_parser.primary`. * @param ctx the parse tree */ - exitPrimary?: (ctx: PrimaryContext) => void; - + exitNewobject?: (ctx: NewobjectContext) => void; /** * Enter a parse tree produced by `painless_parser.postfix`. * @param ctx the parse tree @@ -1035,7 +799,6 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitPostfix?: (ctx: PostfixContext) => void; - /** * Enter a parse tree produced by `painless_parser.postdot`. * @param ctx the parse tree @@ -1046,7 +809,6 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitPostdot?: (ctx: PostdotContext) => void; - /** * Enter a parse tree produced by `painless_parser.callinvoke`. * @param ctx the parse tree @@ -1057,7 +819,6 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitCallinvoke?: (ctx: CallinvokeContext) => void; - /** * Enter a parse tree produced by `painless_parser.fieldaccess`. * @param ctx the parse tree @@ -1068,7 +829,6 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitFieldaccess?: (ctx: FieldaccessContext) => void; - /** * Enter a parse tree produced by `painless_parser.braceaccess`. * @param ctx the parse tree @@ -1079,18 +839,30 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitBraceaccess?: (ctx: BraceaccessContext) => void; - /** - * Enter a parse tree produced by `painless_parser.arrayinitializer`. + * Enter a parse tree produced by the `newstandardarray` + * labeled alternative in `painless_parser.arrayinitializer`. * @param ctx the parse tree */ - enterArrayinitializer?: (ctx: ArrayinitializerContext) => void; + enterNewstandardarray?: (ctx: NewstandardarrayContext) => void; /** - * Exit a parse tree produced by `painless_parser.arrayinitializer`. + * Exit a parse tree produced by the `newstandardarray` + * labeled alternative in `painless_parser.arrayinitializer`. * @param ctx the parse tree */ - exitArrayinitializer?: (ctx: ArrayinitializerContext) => void; - + exitNewstandardarray?: (ctx: NewstandardarrayContext) => void; + /** + * Enter a parse tree produced by the `newinitializedarray` + * labeled alternative in `painless_parser.arrayinitializer`. + * @param ctx the parse tree + */ + enterNewinitializedarray?: (ctx: NewinitializedarrayContext) => void; + /** + * Exit a parse tree produced by the `newinitializedarray` + * labeled alternative in `painless_parser.arrayinitializer`. + * @param ctx the parse tree + */ + exitNewinitializedarray?: (ctx: NewinitializedarrayContext) => void; /** * Enter a parse tree produced by `painless_parser.listinitializer`. * @param ctx the parse tree @@ -1101,7 +873,6 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitListinitializer?: (ctx: ListinitializerContext) => void; - /** * Enter a parse tree produced by `painless_parser.mapinitializer`. * @param ctx the parse tree @@ -1112,7 +883,6 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitMapinitializer?: (ctx: MapinitializerContext) => void; - /** * Enter a parse tree produced by `painless_parser.maptoken`. * @param ctx the parse tree @@ -1123,7 +893,6 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitMaptoken?: (ctx: MaptokenContext) => void; - /** * Enter a parse tree produced by `painless_parser.arguments`. * @param ctx the parse tree @@ -1134,7 +903,6 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitArguments?: (ctx: ArgumentsContext) => void; - /** * Enter a parse tree produced by `painless_parser.argument`. * @param ctx the parse tree @@ -1145,7 +913,6 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitArgument?: (ctx: ArgumentContext) => void; - /** * Enter a parse tree produced by `painless_parser.lambda`. * @param ctx the parse tree @@ -1156,7 +923,6 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitLambda?: (ctx: LambdaContext) => void; - /** * Enter a parse tree produced by `painless_parser.lamtype`. * @param ctx the parse tree @@ -1167,16 +933,41 @@ export interface painless_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitLamtype?: (ctx: LamtypeContext) => void; - /** - * Enter a parse tree produced by `painless_parser.funcref`. + * Enter a parse tree produced by the `classfuncref` + * labeled alternative in `painless_parser.funcref`. + * @param ctx the parse tree + */ + enterClassfuncref?: (ctx: ClassfuncrefContext) => void; + /** + * Exit a parse tree produced by the `classfuncref` + * labeled alternative in `painless_parser.funcref`. + * @param ctx the parse tree + */ + exitClassfuncref?: (ctx: ClassfuncrefContext) => void; + /** + * Enter a parse tree produced by the `constructorfuncref` + * labeled alternative in `painless_parser.funcref`. + * @param ctx the parse tree + */ + enterConstructorfuncref?: (ctx: ConstructorfuncrefContext) => void; + /** + * Exit a parse tree produced by the `constructorfuncref` + * labeled alternative in `painless_parser.funcref`. + * @param ctx the parse tree + */ + exitConstructorfuncref?: (ctx: ConstructorfuncrefContext) => void; + /** + * Enter a parse tree produced by the `localfuncref` + * labeled alternative in `painless_parser.funcref`. * @param ctx the parse tree */ - enterFuncref?: (ctx: FuncrefContext) => void; + enterLocalfuncref?: (ctx: LocalfuncrefContext) => void; /** - * Exit a parse tree produced by `painless_parser.funcref`. + * Exit a parse tree produced by the `localfuncref` + * labeled alternative in `painless_parser.funcref`. * @param ctx the parse tree */ - exitFuncref?: (ctx: FuncrefContext) => void; + exitLocalfuncref?: (ctx: LocalfuncrefContext) => void; } diff --git a/packages/kbn-monaco/src/painless/worker/lib/lexer.ts b/packages/kbn-monaco/src/painless/worker/lib/lexer.ts index 95895211bfae9..fb9377a5f9d3c 100644 --- a/packages/kbn-monaco/src/painless/worker/lib/lexer.ts +++ b/packages/kbn-monaco/src/painless/worker/lib/lexer.ts @@ -6,8 +6,8 @@ * Side Public License, v 1. */ -import type { Token } from 'antlr4ts'; -import { painless_lexer as PainlessLexer } from '../../antlr/painless_lexer'; +import type { Token } from 'antlr4'; +import { default as PainlessLexer } from '../../antlr/painless_lexer'; /* * This extends the PainlessLexer class in order to handle backslashes appropriately diff --git a/packages/kbn-monaco/src/painless/worker/lib/parser.ts b/packages/kbn-monaco/src/painless/worker/lib/parser.ts index 3adf758e49084..f33ca8b7e4667 100644 --- a/packages/kbn-monaco/src/painless/worker/lib/parser.ts +++ b/packages/kbn-monaco/src/painless/worker/lib/parser.ts @@ -6,11 +6,11 @@ * Side Public License, v 1. */ -import { CommonTokenStream, CharStreams } from 'antlr4ts'; -import { painless_parser as PainlessParser, SourceContext } from '../../antlr/painless_parser'; +import { CommonTokenStream, CharStreams } from 'antlr4'; +import { default as PainlessParser, SourceContext } from '../../antlr/painless_parser'; import { PainlessLexerEnhanced } from './lexer'; import { EditorError } from '../../../types'; -import { ANTLREErrorListener } from '../../../common/error_listener'; +import { ANTLRErrorListener } from '../../../common/error_listener'; const parse = ( code: string @@ -20,7 +20,7 @@ const parse = ( } => { const inputStream = CharStreams.fromString(code); const lexer = new PainlessLexerEnhanced(inputStream); - const painlessLangErrorListener = new ANTLREErrorListener(); + const painlessLangErrorListener = new ANTLRErrorListener(); const tokenStream = new CommonTokenStream(lexer); const parser = new PainlessParser(tokenStream); diff --git a/packages/kbn-reporting/public/share/share_context_menu/reporting_panel_content/reporting_panel_content.tsx b/packages/kbn-reporting/public/share/share_context_menu/reporting_panel_content/reporting_panel_content.tsx index f464f7217860b..359a708a86a96 100644 --- a/packages/kbn-reporting/public/share/share_context_menu/reporting_panel_content/reporting_panel_content.tsx +++ b/packages/kbn-reporting/public/share/share_context_menu/reporting_panel_content/reporting_panel_content.tsx @@ -7,7 +7,6 @@ */ import React, { Component, ReactElement } from 'react'; -import url from 'url'; import { CSV_REPORT_TYPE, CSV_REPORT_TYPE_V2 } from '@kbn/reporting-export-types-csv-common'; import { PDF_REPORT_TYPE, PDF_REPORT_TYPE_V2 } from '@kbn/reporting-export-types-pdf-common'; @@ -88,7 +87,7 @@ class ReportingPanelContentUi extends Component { props.reportType, this.props.apiClient.getDecoratedJobParams(this.props.getJobParams(true)) ); - return url.resolve(window.location.href, relativePath); + return new URL(relativePath, window.location.href).toString(); }; public componentDidUpdate(_prevProps: Props, prevState: State) { diff --git a/packages/kbn-search-connectors/connectors.ts b/packages/kbn-search-connectors/connectors.ts index 425236b846a90..76270c3a8e94d 100644 --- a/packages/kbn-search-connectors/connectors.ts +++ b/packages/kbn-search-connectors/connectors.ts @@ -9,6 +9,8 @@ import { i18n } from '@kbn/i18n'; export interface ConnectorServerSideDefinition { + categories?: string[]; + description?: string; iconPath: string; isBeta: boolean; isNative: boolean; @@ -24,6 +26,10 @@ export interface ConnectorServerSideDefinition { export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ { + categories: ['enterprise_search', 'elastic_stack', 'custom', 'connector', 'connector_client'], + description: i18n.translate('searchConnectors.content.nativeConnectors.azureBlob.description', { + defaultMessage: 'Search over your content on Azure Blob Storage.', + }), iconPath: 'azure_blob_storage.svg', isBeta: false, isNative: true, @@ -34,6 +40,13 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'azure_blob_storage', }, { + categories: ['enterprise_search', 'elastic_stack', 'custom', 'connector', 'connector_client'], + description: i18n.translate( + 'searchConnectors.content.nativeConnectors.confluence.description', + { + defaultMessage: 'Search over your content on Confluence Cloud.', + } + ), iconPath: 'confluence_cloud.svg', isBeta: false, isNative: true, @@ -44,6 +57,13 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'confluence', }, { + categories: ['enterprise_search', 'elastic_stack', 'custom', 'connector', 'connector_client'], + description: i18n.translate( + 'searchConnectors.content.nativeConnectors.confluenceDataCenter.description', + { + defaultMessage: 'Search over your content on Confluence Data Center.', + } + ), iconPath: 'confluence_cloud.svg', isBeta: false, isNative: true, @@ -55,6 +75,16 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'confluence', }, { + categories: [ + 'enterprise_search', + 'elastic_stack', + 'datastore', + 'connector', + 'connector_client', + ], + description: i18n.translate('searchConnectors.content.nativeConnectors.dropbox.description', { + defaultMessage: 'Search over your files and folders stored on Dropbox.', + }), iconPath: 'dropbox.svg', isBeta: false, isNative: true, @@ -66,16 +96,58 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'dropbox', }, { + categories: [ + 'enterprise_search', + 'elastic_stack', + 'custom', + 'connector', + 'connector_client', + 'jira', + ], + description: i18n.translate('searchConnectors.content.nativeConnectors.jira.description', { + defaultMessage: 'Search over your content on Jira Cloud.', + }), iconPath: 'jira_cloud.svg', isBeta: false, isNative: true, keywords: ['jira', 'cloud', 'connector'], name: i18n.translate('searchConnectors.content.nativeConnectors.jira.name', { - defaultMessage: 'Jira Cloud & Server', + defaultMessage: 'Jira Cloud', + }), + serviceType: 'jira', + }, + { + categories: [ + 'enterprise_search', + 'elastic_stack', + 'custom', + 'connector', + 'connector_client', + 'jira', + ], + description: i18n.translate( + 'searchConnectors.content.nativeConnectors.jiraServer.description', + { + defaultMessage: 'Search over your content on Jira Server.', + } + ), + iconPath: 'jira_server.svg', + isBeta: false, + isNative: false, + keywords: ['jira', 'server', 'connector'], + name: i18n.translate('searchConnectors.content.nativeConnectors.jiraServer.name', { + defaultMessage: 'Jira Server', }), serviceType: 'jira', }, { + categories: ['enterprise_search', 'elastic_stack', 'custom', 'connector', 'connector_client'], + description: i18n.translate( + 'searchConnectors.content.nativeConnectors.jiraDataCenter.description', + { + defaultMessage: 'Search over your content on Jira Data Center.', + } + ), iconPath: 'jira_cloud.svg', isBeta: false, isTechPreview: true, @@ -87,6 +159,10 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'jira', }, { + categories: ['enterprise_search', 'elastic_stack', 'connector', 'connector_client'], + description: i18n.translate('searchConnectors.content.nativeConnectors.github.description', { + defaultMessage: 'Search over your projects and repos on GitHub.', + }), iconPath: 'github.svg', isBeta: false, isNative: true, @@ -97,6 +173,13 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'github', }, { + categories: ['enterprise_search', 'elastic_stack', 'custom', 'connector', 'connector_client'], + description: i18n.translate( + 'searchConnectors.content.nativeConnectors.googleCloud.description', + { + defaultMessage: 'Search over your content on Google Cloud Storage.', + } + ), iconPath: 'google_cloud_storage.svg', isBeta: false, isNative: true, @@ -107,6 +190,13 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'google_cloud_storage', }, { + categories: ['enterprise_search', 'elastic_stack', 'custom', 'connector', 'connector_client'], + description: i18n.translate( + 'searchConnectors.content.nativeConnectors.googleDrive.description', + { + defaultMessage: 'Search over your content on Google Drive.', + } + ), iconPath: 'google_drive.svg', isBeta: false, isNative: true, @@ -117,6 +207,16 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'google_drive', }, { + categories: [ + 'enterprise_search', + 'datastore', + 'elastic_stack', + 'connector', + 'connector_client', + ], + description: i18n.translate('searchConnectors.content.nativeConnectors.mongoDB.description', { + defaultMessage: 'Search over your MongoDB content.', + }), iconPath: 'mongodb.svg', isBeta: false, isNative: true, @@ -127,6 +227,16 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'mongodb', }, { + categories: [ + 'enterprise_search', + 'datastore', + 'elastic_stack', + 'connector', + 'connector_client', + ], + description: i18n.translate('searchConnectors.content.nativeConnectors.mysql.description', { + defaultMessage: 'Search over your MySQL content.', + }), iconPath: 'mysql.svg', isBeta: false, isNative: true, @@ -137,6 +247,17 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'mysql', }, { + categories: [ + 'enterprise_search', + 'custom', + 'elastic_stack', + 'datastore', + 'connector', + 'connector_client', + ], + description: i18n.translate('searchConnectors.content.nativeConnectors.msSql.description', { + defaultMessage: 'Search over your content on Microsoft SQL Server.', + }), iconPath: 'mssql.svg', isBeta: false, isNative: true, @@ -147,6 +268,13 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'mssql', }, { + description: i18n.translate( + 'searchConnectors.content.nativeConnectors.netowkrDrive.description', + { + defaultMessage: 'Search over your Network Drive content.', + } + ), + categories: ['enterprise_search', 'elastic_stack', 'connector', 'connector_client'], iconPath: 'network_drive.svg', isBeta: false, isNative: true, @@ -157,6 +285,10 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'network_drive', }, { + categories: ['enterprise_search', 'elastic_stack', 'custom', 'connector', 'connector_client'], + description: i18n.translate('searchConnectors.content.nativeConnectors.notion.description', { + defaultMessage: 'Search over your content on Notion.', + }), iconPath: 'notion.svg', isBeta: true, isNative: false, @@ -167,6 +299,20 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'notion', }, { + description: i18n.translate( + 'searchConnectors.content.nativeConnectors.postgreSQL.description', + { + defaultMessage: 'Search over your content on PostgreSQL.', + } + ), + categories: [ + 'enterprise_search', + 'elastic_stack', + 'custom', + 'datastore', + 'connector', + 'connector_client', + ], iconPath: 'postgresql.svg', isBeta: false, isNative: true, @@ -177,6 +323,10 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'postgresql', }, { + categories: ['enterprise_search', 'elastic_stack', 'custom', 'connector', 'connector_client'], + description: i18n.translate('searchConnectors.content.nativeConnectors.redis.description', { + defaultMessage: 'Search over your content on Redis.', + }), iconPath: 'redis.svg', isBeta: false, isNative: false, @@ -188,6 +338,13 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'redis', }, { + categories: ['enterprise_search', 'elastic_stack', 'connector', 'connector_client'], + description: i18n.translate( + 'searchConnectors.content.nativeConnectors.salesforce.description', + { + defaultMessage: 'Search over your content on Salesforce.', + } + ), iconPath: 'salesforce.svg', isBeta: false, isNative: true, @@ -198,6 +355,37 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'salesforce', }, { + categories: [ + 'enterprise_search', + 'elastic_stack', + 'custom', + 'datastore', + 'connector', + 'connector_client', + ], + description: i18n.translate( + 'searchConnectors.content.nativeConnectors.salesforceSandbox.description', + { + defaultMessage: 'Search over your content on Salesforce Sandbox.', + } + ), + iconPath: 'salesforce.svg', + isBeta: false, + isNative: true, + keywords: ['salesforce', 'cloud', 'connector', 'sandbox'], + name: i18n.translate('searchConnectors.content.nativeConnectors.salesforceBox.name', { + defaultMessage: 'Salesforce Sandbox', + }), + serviceType: 'salesforce', + }, + { + categories: ['enterprise_search', 'elastic_stack', 'connector', 'connector_client'], + description: i18n.translate( + 'searchConnectors.content.nativeConnectors.serviceNow.description', + { + defaultMessage: 'Search over your content on ServiceNow.', + } + ), iconPath: 'servicenow.svg', isBeta: false, isNative: true, @@ -209,17 +397,28 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'servicenow', }, { + categories: ['enterprise_search', 'elastic_stack', 'connector', 'connector_client'], + description: i18n.translate( + 'searchConnectors.content.nativeConnectors.sharepointOnline.description', + { + defaultMessage: 'Search over your content on SharePoint Online.', + } + ), iconPath: 'sharepoint_online.svg', isBeta: false, isNative: true, isTechPreview: false, keywords: ['sharepoint', 'office365', 'cloud', 'connector'], - name: i18n.translate('searchConnectors.content.nativeConnectors.sharepoint_online.name', { + name: i18n.translate('searchConnectors.content.nativeConnectors.sharepointOnline.name', { defaultMessage: 'Sharepoint Online', }), serviceType: 'sharepoint_online', }, { + categories: ['enterprise_search', 'elastic_stack', 'connector', 'connector_client'], + description: i18n.translate('searchConnectors.content.nativeConnectors.gmail.description', { + defaultMessage: 'Search over your content on Gmail.', + }), iconPath: 'gmail.svg', isBeta: true, isNative: true, @@ -230,6 +429,17 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'gmail', }, { + categories: [ + 'enterprise_search', + 'elastic_stack', + 'custom', + 'datastore', + 'connector', + 'connector_client', + ], + description: i18n.translate('searchConnectors.content.nativeConnectors.oracle.description', { + defaultMessage: 'Search over your content on Oracle.', + }), iconPath: 'oracle.svg', isBeta: true, isNative: true, @@ -240,6 +450,17 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'oracle', }, { + categories: [ + 'enterprise_search', + 'elastic_stack', + 'custom', + 'datastore', + 'connector', + 'connector_client', + ], + description: i18n.translate('searchConnectors.content.nativeConnectors.oneDrive.description', { + defaultMessage: 'Search over your content on OneDrive.', + }), iconPath: 'onedrive.svg', isBeta: false, isNative: true, @@ -250,6 +471,16 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'onedrive', }, { + description: i18n.translate('searchConnectors.content.nativeConnectors.s3.description', { + defaultMessage: 'Search over your content on Amazon S3.', + }), + categories: [ + 'enterprise_search', + 'datastore', + 'elastic_stack', + 'connector', + 'connector_client', + ], iconPath: 's3.svg', isBeta: false, isNative: true, @@ -260,6 +491,10 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 's3', }, { + description: i18n.translate('searchConnectors.content.nativeConnectors.slack.description', { + defaultMessage: 'Search over your content on Slack.', + }), + categories: ['enterprise_search', 'elastic_stack', 'connector', 'connector_client'], iconPath: 'slack.svg', isBeta: false, isNative: false, @@ -271,6 +506,13 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'slack', }, { + categories: ['enterprise_search', 'elastic_stack', 'custom', 'connector', 'connector_client'], + description: i18n.translate( + 'searchConnectors.content.nativeConnectors.sharepointServer.description', + { + defaultMessage: 'Search over your content on SharePoint Server.', + } + ), iconPath: 'sharepoint_server.svg', isBeta: true, isNative: false, @@ -282,6 +524,17 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'sharepoint_server', }, { + categories: [ + 'enterprise_search', + 'elastic_stack', + 'custom', + 'connector', + 'connector_client', + 'box', + ], + description: i18n.translate('searchConnectors.content.nativeConnectors.box.description', { + defaultMessage: 'Search over your content on Box.', + }), iconPath: 'box.svg', isBeta: false, isNative: false, @@ -293,6 +546,17 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'box', }, { + description: i18n.translate('searchConnectors.content.nativeConnectors.outlook.description', { + defaultMessage: 'Search over your content on Outlook.', + }), + categories: [ + 'enterprise_search', + 'elastic_stack', + 'custom', + 'connector', + 'connector_client', + 'outlook', + ], iconPath: 'outlook.svg', isBeta: true, isNative: true, @@ -303,6 +567,17 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'outlook', }, { + categories: [ + 'enterprise_search', + 'elastic_stack', + 'custom', + 'connector', + 'connector_client', + 'teams', + ], + description: i18n.translate('searchConnectors.content.nativeConnectors.teams.description', { + defaultMessage: 'Search over your content on Teams.', + }), iconPath: 'teams.svg', isBeta: false, isNative: false, @@ -311,9 +586,20 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ name: i18n.translate('searchConnectors.content.nativeConnectors.teams.name', { defaultMessage: 'Teams', }), - serviceType: 'microsoft_teams', + serviceType: 'teams', }, { + categories: [ + 'enterprise_search', + 'elastic_stack', + 'custom', + 'connector', + 'connector_client', + 'zoom', + ], + description: i18n.translate('searchConnectors.content.nativeConnectors.zoom.description', { + defaultMessage: 'Search over your content on Zoom.', + }), iconPath: 'zoom.svg', isBeta: false, isNative: false, @@ -325,6 +611,13 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ serviceType: 'zoom', }, { + categories: ['enterprise_search', 'custom', 'elastic_stack', 'connector', 'connector_client'], + description: i18n.translate( + 'searchConnectors.content.nativeConnectors.customConnector.description', + { + defaultMessage: 'Search over data stored on custom data sources.', + } + ), iconPath: 'custom.svg', isBeta: true, isNative: false, diff --git a/packages/kbn-search-connectors/lib/collect_connector_stats.test.ts b/packages/kbn-search-connectors/lib/collect_connector_stats.test.ts new file mode 100644 index 0000000000000..acbe7fb57a039 --- /dev/null +++ b/packages/kbn-search-connectors/lib/collect_connector_stats.test.ts @@ -0,0 +1,89 @@ +/* + * 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 { ConnectorSyncJob, Paginate } from '../types'; +import { fetchConnectors, fetchSyncJobs } from '..'; +import { collectConnectorStats } from './collect_connector_stats'; +import { + expectedDeletedConnectorStats, + expectedMysqlConnectorStats, + expectedSpoConnectorStats, + mysqlConnector, + mysqlFullSyncJob, + orphanedSyncJob, + spoAccessControlSyncJob, + spoConnector, + spoFullSyncJob, + spoIncrementalSyncJob, +} from './collect_connector_stats_test_data'; + +jest.mock('.', () => ({ + fetchConnectors: jest.fn(), + fetchSyncJobs: jest.fn(), +})); + +describe('collect connector stats', () => { + const mockClient = { + indices: { + stats: jest.fn(), + }, + search: jest.fn(), + }; + const mockSyncJobsResponse: Paginate = { + _meta: { + page: { + from: 0, + size: 5, + total: 5, + has_more_hits_than_total: false, + }, + }, + data: [ + spoFullSyncJob, + spoIncrementalSyncJob, + spoAccessControlSyncJob, + mysqlFullSyncJob, + orphanedSyncJob, + ], + }; + it('should collect connector stats', async () => { + (fetchConnectors as jest.Mock).mockImplementation(() => [spoConnector, mysqlConnector]); + (fetchSyncJobs as jest.Mock).mockImplementation(() => mockSyncJobsResponse); + mockClient.indices.stats.mockImplementation((params: { index: any }) => + Promise.resolve({ + _all: { + primaries: { + docs: { + count: params.index === spoConnector.index_name ? 1000 : 2000, + }, + store: { + size_in_bytes: params.index === spoConnector.index_name ? 10000 : 20000, + }, + }, + }, + }) + ); + mockClient.search.mockImplementation(() => + Promise.resolve({ + aggregations: { + table_count: { + value: 7, + }, + }, + }) + ); + + const collectedConnectorStats = await collectConnectorStats(mockClient as any); + + expect(collectedConnectorStats.sort((a, b) => (a.id > b.id ? 1 : -1))).toEqual([ + expectedSpoConnectorStats, + expectedMysqlConnectorStats, + expectedDeletedConnectorStats, + ]); + }); +}); diff --git a/packages/kbn-search-connectors/lib/collect_connector_stats.ts b/packages/kbn-search-connectors/lib/collect_connector_stats.ts new file mode 100644 index 0000000000000..c2ad0fe17f3dd --- /dev/null +++ b/packages/kbn-search-connectors/lib/collect_connector_stats.ts @@ -0,0 +1,403 @@ +/* + * 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 { ElasticsearchClient } from '@kbn/core-elasticsearch-server'; +import { AggregationsCardinalityAggregate } from '@elastic/elasticsearch/lib/api/types'; +import { + Connector, + ConnectorConfigProperties, + ConnectorStats, + ConnectorSyncJob, + CRAWLER_SERVICE_TYPE, + DataSourceSpecificStats, + DocumentsStats, + fetchConnectors, + fetchSyncJobs, + SyncJobStats, + SyncJobStatsByState, + SyncJobStatsByType, + SyncJobStatsDetails, + SyncJobType, + SyncStatus, + TriggerMethod, +} from '..'; + +export const collectConnectorStats = async ( + client: ElasticsearchClient +): Promise => { + const connectors = await fetchConnectors(client); + const syncJobs: ConnectorSyncJob[] = []; + + let hasMore: boolean | undefined; + let from = 0; + do { + const result = await fetchSyncJobs(client, undefined, from); + syncJobs.push(...result.data); + hasMore = result._meta.page.has_more_hits_than_total; + from += result._meta.page.size; + } while (hasMore); + + const connectorStatsArray: ConnectorStats[] = []; + const syncJobsMap = groupSyncJobsByConnector(syncJobs); + for (const connector of connectors) { + // skip crawlers + if (connector.service_type === CRAWLER_SERVICE_TYPE) { + continue; + } + const connectorStats: ConnectorStats = { + id: connector.id, + serviceType: connector.service_type, + isNative: connector.is_native, + isDeleted: false, + status: connector.status, + indexName: connector.index_name, + dlsEnabled: !!connector.configuration.use_document_level_security?.value, + sslEnabled: connector.configuration.ssl_enabled + ? !!(connector.configuration.ssl_enabled as ConnectorConfigProperties).value + : false, + fetchSelectively: fetchSelectively(connector), + textExtractionServiceEnabled: !!connector.configuration.use_text_extraction_service?.value, + documents: await documentsStats(client, connector), + dataSourceSpecific: await dataSourceSpecificStats(client, connector), + scheduling: { + accessControl: connector.scheduling.access_control, + full: connector.scheduling.full, + incremental: connector.scheduling.incremental, + }, + }; + + if (connector.pipeline) { + connectorStats.ingestPipeline = { + name: connector.pipeline.name, + extractBinaryContent: connector.pipeline.extract_binary_content, + reduceWhitespace: connector.pipeline.reduce_whitespace, + runMLInference: connector.pipeline.run_ml_inference, + }; + } + + if (connector.filtering.length > 0) { + const filtering = connector.filtering[0]; + connectorStats.syncRules = { + active: { + withBasicRules: + Array.isArray(filtering?.active?.rules) && filtering.active.rules.length > 1, + withAdvancedRules: + !!filtering?.active?.advanced_snippet?.value && + Object.keys(filtering.active.advanced_snippet.value).length > 0, + }, + draft: { + withBasicRules: + Array.isArray(filtering?.draft?.rules) && filtering.draft.rules.length > 1, + withAdvancedRules: + !!filtering?.draft?.advanced_snippet?.value && + Object.keys(filtering.draft.advanced_snippet.value).length > 0, + }, + }; + } + + if (syncJobsMap.has(connector.id)) { + // @ts-ignore + connectorStats.syncJobs = syncJobsStats(syncJobsMap.get(connector.id)); + syncJobsMap.delete(connector.id); + } + connectorStatsArray.push(connectorStats); + } + + // process orphaned sync jobs + for (const [connectorId, orphanedSyncJobs] of syncJobsMap) { + const connectorStats: ConnectorStats = { + id: connectorId, + isDeleted: true, + syncJobs: syncJobsStats(orphanedSyncJobs), + }; + connectorStatsArray.push(connectorStats); + } + + return connectorStatsArray; +}; + +function groupSyncJobsByConnector(syncJobs: ConnectorSyncJob[]): Map { + const syncJobMaps: Map = new Map(); + for (const syncJob of syncJobs) { + // filter out sync jobs for crawler + if (syncJob.connector.service_type === CRAWLER_SERVICE_TYPE) { + continue; + } + const connectorId = syncJob.connector.id ? syncJob.connector.id : 'undefined'; + if (!syncJobMaps.has(connectorId)) { + syncJobMaps.set(connectorId, []); + } + // @ts-ignore + syncJobMaps.get(connectorId).push(syncJob); + } + return syncJobMaps; +} + +function fetchSelectively(connector: Connector): boolean { + const rcfMap: Record = { + azure_blob_storage: 'containers', + confluence: 'spaces', + github: 'repositories', + jira: 'projects', + mssql: 'tables', + mysql: 'tables', + oracle: 'tables', + postgresql: 'tables', + s3: 'buckets', + servicenow: 'services', + sharepoint_online: 'site_collections', + sharepoint_server: 'site_collections', + }; + + if (!connector.service_type || !(connector.service_type in rcfMap)) { + return false; + } + + const rcfField = rcfMap[connector.service_type]; + if (!(rcfField in connector.configuration)) { + return false; + } + + return !( + (connector.configuration[rcfField] as ConnectorConfigProperties).value as string + ).includes('*'); +} + +const documentsStats = async ( + client: ElasticsearchClient, + connector: Connector +): Promise => { + const stats: DocumentsStats = { + total: 0, + volume: 0, + inLastSync: connector.last_indexed_document_count ? connector.last_indexed_document_count : 0, + }; + if (!connector.index_name) { + return stats; + } + try { + const indicesStatsResponse = await client.indices.stats({ index: connector.index_name }); + stats.total = indicesStatsResponse._all.primaries?.docs?.count ?? 0; + stats.volume = indicesStatsResponse._all.primaries?.store?.size_in_bytes ?? 0; + } catch (e) { + /* empty */ + } + + return stats; +}; + +const dataSourceSpecificStats = async ( + client: ElasticsearchClient, + connector: Connector +): Promise => { + const stats: DataSourceSpecificStats = {}; + switch (connector.service_type) { + case 'confluence': + stats.confluence = { + dataSourceType: (connector.configuration.data_source as ConnectorConfigProperties) + ?.value as string, + }; + break; + case 'github': + stats.github = { + isCloud: + (connector.configuration.data_source as ConnectorConfigProperties)?.value === + 'github_cloud', + }; + break; + case 'jira': + stats.jira = { + dataSourceType: (connector.configuration.data_source as ConnectorConfigProperties) + ?.value as string, + }; + break; + case 'mongodb': + stats.mongodb = { + directConnect: !!(connector.configuration.direct_connection as ConnectorConfigProperties) + ?.value, + }; + break; + case 'mssql': + stats.mssql = { + validateHost: !!(connector.configuration.validate_host as ConnectorConfigProperties)?.value, + tables: connector.index_name ? await tableCounts(client, connector.index_name, 'table') : 0, + }; + break; + case 'mysql': + stats.mysql = { + tables: connector.index_name ? await tableCounts(client, connector.index_name, 'Table') : 0, + }; + break; + case 'oracle': + stats.oracle = { + tables: connector.index_name ? await tableCounts(client, connector.index_name, 'Table') : 0, + }; + break; + case 'postgresql': + stats.postgresql = { + tables: connector.index_name ? await tableCounts(client, connector.index_name, 'table') : 0, + }; + break; + case 'slack': + stats.slack = { + autoJoinChannelsEnabled: !!( + connector.configuration.auto_join_channels as ConnectorConfigProperties + )?.value, + syncUsersEnabled: !!(connector.configuration.sync_users as ConnectorConfigProperties) + ?.value, + fetchLastNDays: (connector.configuration.fetch_last_n_days as ConnectorConfigProperties) + ?.value as number, + }; + break; + case 'zoom': + stats.zoom = { + recordingAge: (connector.configuration.recording_age as ConnectorConfigProperties) + ?.value as number, + }; + break; + } + return stats; +}; + +const tableCounts = async ( + client: ElasticsearchClient, + indexName: string, + tableField: string +): Promise => { + try { + const aggs = { + table_count: { + cardinality: { + field: `${tableField}.keyword`, + }, + }, + }; + + const searchResponse = await client.search({ index: indexName, aggs, size: 0 }); + + return ( + (searchResponse.aggregations?.table_count as AggregationsCardinalityAggregate).value ?? 0 + ); + } catch (e) { + return 0; + } +}; + +function syncJobsStats(syncJobs: ConnectorSyncJob[]): SyncJobStats { + const stats: SyncJobStats = { + overall: syncJobsStatsDetails(syncJobs), + }; + + const syncJobsWithTextExtractionServiceEnabled = syncJobs.filter( + (syncJob) => !!syncJob.connector.configuration.use_text_extraction_service?.value + ); + if (syncJobsWithTextExtractionServiceEnabled.length > 0) { + stats.withTextExtractionServiceEnabled = syncJobsStatsDetails( + syncJobsWithTextExtractionServiceEnabled + ); + } + + return stats; +} + +function syncJobsStatsDetails(syncJobs: ConnectorSyncJob[]): SyncJobStatsDetails { + const stats: SyncJobStatsDetails = { + total: syncJobs.length, + }; + const last30DaysSyncJobs = recentSyncJobs(30, syncJobs); + if (last30DaysSyncJobs.length > 0) { + stats.last30Days = syncJobsStatsByType(last30DaysSyncJobs); + } + const last7DaysSyncJobs = recentSyncJobs(7, syncJobs); + if (last7DaysSyncJobs.length > 0) { + stats.last7Days = syncJobsStatsByType(last7DaysSyncJobs); + } + return stats; +} + +function recentSyncJobs(days: number, syncJobs: ConnectorSyncJob[]): ConnectorSyncJob[] { + const today = new Date(); + const nDaysAgo = new Date(today.setDate(today.getDate() - days)); + return syncJobs.filter((syncJob) => { + const createdAt = new Date(syncJob.created_at); + return !isNaN(createdAt.getDate()) && createdAt > nDaysAgo; + }); +} + +function syncJobsStatsByType(syncJobs: ConnectorSyncJob[]): SyncJobStatsByType { + const stats: SyncJobStatsByType = { + overall: syncJobsStatsByState(syncJobs), + }; + const fullSyncJobs = syncJobs.filter((syncJob) => syncJob.job_type === SyncJobType.FULL); + if (fullSyncJobs.length > 0) { + stats.full = syncJobsStatsByState(fullSyncJobs); + } + const incrementalSyncJobs = syncJobs.filter( + (syncJob) => syncJob.job_type === SyncJobType.INCREMENTAL + ); + if (incrementalSyncJobs.length > 0) { + stats.incremental = syncJobsStatsByState(incrementalSyncJobs); + } + const accessControlSyncJobs = syncJobs.filter( + (syncJob) => syncJob.job_type === SyncJobType.ACCESS_CONTROL + ); + if (accessControlSyncJobs.length > 0) { + stats.accessControl = syncJobsStatsByState(accessControlSyncJobs); + } + return stats; +} + +function syncJobsStatsByState(syncJobs: ConnectorSyncJob[]): SyncJobStatsByState { + let manual = 0; + let scheduled = 0; + let completed = 0; + let errored = 0; + let canceled = 0; + let suspended = 0; + let idle = 0; + let running = 0; + let duration = 0; + + for (const syncJob of syncJobs) { + completed += syncJob.status === SyncStatus.COMPLETED ? 1 : 0; + errored += syncJob.status === SyncStatus.ERROR ? 1 : 0; + canceled += syncJob.status === SyncStatus.CANCELED ? 1 : 0; + suspended += syncJob.status === SyncStatus.SUSPENDED ? 1 : 0; + running += syncJob.status === SyncStatus.IN_PROGRESS ? 1 : 0; + manual += syncJob.trigger_method === TriggerMethod.ON_DEMAND ? 1 : 0; + scheduled += syncJob.trigger_method === TriggerMethod.SCHEDULED ? 1 : 0; + + if (syncJob.status in [SyncStatus.IN_PROGRESS, SyncStatus.CANCELING] && syncJob.last_seen) { + const lastSeen = new Date(syncJob.last_seen); + // A sync job with last_seen not updated for more than 5 mins is considered idle + if (!isNaN(lastSeen.getTime()) && new Date().getTime() - lastSeen.getTime() > 5 * 60 * 1000) { + idle += 1; + } + } + if (syncJob.started_at && syncJob.completed_at) { + const startedAt = new Date(syncJob.started_at); + const completedAt = new Date(syncJob.completed_at); + if (!isNaN(startedAt.getTime()) && !isNaN(completedAt.getTime())) { + duration += Math.floor((completedAt.getTime() - startedAt.getTime()) / 1000); + } + } + } + + return { + total: syncJobs.length, + manual, + scheduled, + completed, + errored, + canceled, + suspended, + idle, + running, + totalDurationSeconds: duration, + } as SyncJobStatsByState; +} diff --git a/packages/kbn-search-connectors/lib/collect_connector_stats_test_data.ts b/packages/kbn-search-connectors/lib/collect_connector_stats_test_data.ts new file mode 100644 index 0000000000000..73614cfb66787 --- /dev/null +++ b/packages/kbn-search-connectors/lib/collect_connector_stats_test_data.ts @@ -0,0 +1,598 @@ +/* + * 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. + */ + +// @ts-nocheck +import { + Connector, + ConnectorStats, + ConnectorStatus, + ConnectorSyncJob, + SyncJobType, + SyncStatus, + TriggerMethod, +} from '..'; + +const now = Date.now(); + +export const spoConnector: Connector = { + id: '1', + index_name: 'search_spo', + is_native: false, + status: ConnectorStatus.CONNECTED, + service_type: 'sharepoint_online', + last_indexed_document_count: 1000, + pipeline: { + extract_binary_content: false, + name: 'ent-search-generic-ingestion', + reduce_whitespace: true, + run_ml_inference: false, + }, + scheduling: { + access_control: { + enabled: true, + interval: '0 0 0 * * ?', + }, + full: { + enabled: true, + interval: '0 0 0 * * ?', + }, + incremental: { + enabled: false, + interval: '0 0 0 * * ?', + }, + }, + configuration: { + use_document_level_security: { + value: true, + }, + use_text_extraction_service: { + value: true, + }, + site_collections: { + value: 'test-site', + }, + }, + filtering: [ + { + active: { + advanced_snippet: { + value: {}, + }, + rules: [ + { + id: 'DEFAULT', + }, + { + id: 'NEW', + }, + ], + }, + domain: 'DEFAULT', + draft: { + advanced_snippet: { + value: { + id: 'NEW', + }, + }, + rules: [ + { + id: 'DEFAULT', + }, + ], + }, + }, + ], +}; + +export const mysqlConnector: Connector = { + id: '2', + index_name: 'search_mysql', + is_native: true, + status: ConnectorStatus.ERROR, + service_type: 'mysql', + last_indexed_document_count: 2000, + pipeline: { + extract_binary_content: true, + name: 'ent-search-generic-ingestion', + reduce_whitespace: true, + run_ml_inference: false, + }, + scheduling: { + access_control: { + enabled: false, + interval: '0 0 0 * * ?', + }, + full: { + enabled: true, + interval: '0 0 0 * * ?', + }, + incremental: { + enabled: false, + interval: '0 0 0 * * ?', + }, + }, + configuration: { + use_document_level_security: { + value: false, + }, + use_text_extraction_service: { + value: false, + }, + tables: { + value: '*', + }, + ssl_enabled: { + value: true, + }, + }, + filtering: [ + { + active: { + advanced_snippet: { + value: {}, + }, + rules: [ + { + id: 'DEFAULT', + }, + ], + }, + domain: 'DEFAULT', + draft: { + advanced_snippet: { + value: {}, + }, + rules: [ + { + id: 'DEFAULT', + }, + ], + }, + }, + ], +}; + +export const spoFullSyncJob: ConnectorSyncJob = { + id: '1', + job_type: SyncJobType.FULL, + status: SyncStatus.COMPLETED, + trigger_method: TriggerMethod.SCHEDULED, + connector: { + id: spoConnector.id, + configuration: { + use_text_extraction_service: { + value: true, + }, + }, + }, + // created 10 days ago + created_at: new Date(now - 10 * 24 * 3600 * 1000).toISOString(), + // started 3 days ago + started_at: new Date(now - 10 * 24 * 3600 * 1000).toISOString(), + // completed after 100 seconds + completed_at: new Date(now - 10 * 24 * 3600 * 1000 + 100 * 1000).toISOString(), +}; + +export const spoIncrementalSyncJob: ConnectorSyncJob = { + id: '2', + job_type: SyncJobType.INCREMENTAL, + status: SyncStatus.ERROR, + trigger_method: TriggerMethod.ON_DEMAND, + connector: { + id: spoConnector.id, + configuration: { + use_text_extraction_service: { + value: true, + }, + }, + }, + // created 3 days ago + created_at: new Date(now - 3 * 24 * 3600 * 1000).toISOString(), + // started 3 days ago + started_at: new Date(now - 3 * 24 * 3600 * 1000).toISOString(), + // completed after 100 seconds + completed_at: new Date(now - 3 * 24 * 3600 * 1000 + 100 * 1000).toISOString(), +}; + +export const spoAccessControlSyncJob: ConnectorSyncJob = { + id: '3', + job_type: SyncJobType.ACCESS_CONTROL, + status: SyncStatus.COMPLETED, + trigger_method: TriggerMethod.ON_DEMAND, + connector: { + id: spoConnector.id, + configuration: { + use_text_extraction_service: { + value: true, + }, + }, + }, + // created 3 days ago + created_at: new Date(now - 3 * 24 * 3600 * 1000).toISOString(), + // started 3 days ago + started_at: new Date(now - 3 * 24 * 3600 * 1000).toISOString(), + // completed after 20 seconds + completed_at: new Date(now - 3 * 24 * 3600 * 1000 + 20 * 1000).toISOString(), +}; + +export const mysqlFullSyncJob: ConnectorSyncJob = { + id: '4', + job_type: SyncJobType.FULL, + status: SyncStatus.COMPLETED, + trigger_method: TriggerMethod.SCHEDULED, + connector: { + id: mysqlConnector.id, + configuration: { + use_text_extraction_service: { + value: false, + }, + }, + }, + // created 12 days ago + created_at: new Date(now - 12 * 24 * 3600 * 1000).toISOString(), + // started 12 days ago + started_at: new Date(now - 12 * 24 * 3600 * 1000).toISOString(), + // completed after 200 seconds + completed_at: new Date(now - 12 * 24 * 3600 * 1000 + 200 * 1000).toISOString(), +}; + +export const orphanedSyncJob: ConnectorSyncJob = { + id: '5', + job_type: SyncJobType.FULL, + status: SyncStatus.COMPLETED, + trigger_method: TriggerMethod.ON_DEMAND, + connector: { + id: '3', + configuration: { + use_text_extraction_service: { + value: false, + }, + }, + }, + // created 12 days ago + created_at: new Date(now - 12 * 24 * 3600 * 1000).toISOString(), + // started 12 days ago + started_at: new Date(now - 12 * 24 * 3600 * 1000).toISOString(), + // completed after 200 seconds + completed_at: new Date(now - 12 * 24 * 3600 * 1000 + 200 * 1000).toISOString(), +}; + +export const expectedSpoConnectorStats: ConnectorStats = { + id: spoConnector.id, + serviceType: spoConnector.service_type, + isNative: spoConnector.is_native, + isDeleted: false, + status: spoConnector.status, + indexName: spoConnector.index_name, + dlsEnabled: true, + sslEnabled: false, + fetchSelectively: true, + textExtractionServiceEnabled: true, + documents: { + total: 1000, + volume: 10000, + inLastSync: 1000, + }, + dataSourceSpecific: {}, + scheduling: { + accessControl: spoConnector.scheduling.access_control, + full: spoConnector.scheduling.full, + incremental: spoConnector.scheduling.incremental, + }, + syncRules: { + active: { + withBasicRules: true, + withAdvancedRules: false, + }, + draft: { + withBasicRules: false, + withAdvancedRules: true, + }, + }, + ingestPipeline: { + name: spoConnector.pipeline.name, + extractBinaryContent: spoConnector.pipeline.extract_binary_content, + reduceWhitespace: spoConnector.pipeline.reduce_whitespace, + runMLInference: spoConnector.pipeline.run_ml_inference, + }, + syncJobs: { + overall: { + total: 3, + last30Days: { + overall: { + total: 3, + manual: 2, + scheduled: 1, + completed: 2, + errored: 1, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 220, + }, + accessControl: { + total: 1, + manual: 1, + scheduled: 0, + completed: 1, + errored: 0, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 20, + }, + full: { + total: 1, + manual: 0, + scheduled: 1, + completed: 1, + errored: 0, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 100, + }, + incremental: { + total: 1, + manual: 1, + scheduled: 0, + completed: 0, + errored: 1, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 100, + }, + }, + last7Days: { + overall: { + total: 2, + manual: 2, + scheduled: 0, + completed: 1, + errored: 1, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 120, + }, + accessControl: { + total: 1, + manual: 1, + scheduled: 0, + completed: 1, + errored: 0, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 20, + }, + incremental: { + total: 1, + manual: 1, + scheduled: 0, + completed: 0, + errored: 1, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 100, + }, + }, + }, + withTextExtractionServiceEnabled: { + total: 3, + last30Days: { + overall: { + total: 3, + manual: 2, + scheduled: 1, + completed: 2, + errored: 1, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 220, + }, + accessControl: { + total: 1, + manual: 1, + scheduled: 0, + completed: 1, + errored: 0, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 20, + }, + full: { + total: 1, + manual: 0, + scheduled: 1, + completed: 1, + errored: 0, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 100, + }, + incremental: { + total: 1, + manual: 1, + scheduled: 0, + completed: 0, + errored: 1, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 100, + }, + }, + last7Days: { + overall: { + total: 2, + manual: 2, + scheduled: 0, + completed: 1, + errored: 1, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 120, + }, + accessControl: { + total: 1, + manual: 1, + scheduled: 0, + completed: 1, + errored: 0, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 20, + }, + incremental: { + total: 1, + manual: 1, + scheduled: 0, + completed: 0, + errored: 1, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 100, + }, + }, + }, + }, +}; + +export const expectedMysqlConnectorStats: ConnectorStats = { + id: mysqlConnector.id, + serviceType: mysqlConnector.service_type, + isNative: mysqlConnector.is_native, + isDeleted: false, + status: mysqlConnector.status, + indexName: mysqlConnector.index_name, + dlsEnabled: false, + sslEnabled: true, + fetchSelectively: false, + textExtractionServiceEnabled: false, + documents: { + total: 2000, + volume: 20000, + inLastSync: 2000, + }, + dataSourceSpecific: { + mysql: { + tables: 7, + }, + }, + scheduling: { + accessControl: mysqlConnector.scheduling.access_control, + full: mysqlConnector.scheduling.full, + incremental: mysqlConnector.scheduling.incremental, + }, + syncRules: { + active: { + withBasicRules: false, + withAdvancedRules: false, + }, + draft: { + withBasicRules: false, + withAdvancedRules: false, + }, + }, + ingestPipeline: { + name: mysqlConnector.pipeline.name, + extractBinaryContent: mysqlConnector.pipeline.extract_binary_content, + reduceWhitespace: mysqlConnector.pipeline.reduce_whitespace, + runMLInference: mysqlConnector.pipeline.run_ml_inference, + }, + syncJobs: { + overall: { + total: 1, + last30Days: { + overall: { + total: 1, + manual: 0, + scheduled: 1, + completed: 1, + errored: 0, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 200, + }, + full: { + total: 1, + manual: 0, + scheduled: 1, + completed: 1, + errored: 0, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 200, + }, + }, + }, + }, +}; + +export const expectedDeletedConnectorStats: ConnectorStats = { + id: orphanedSyncJob.connector.id, + isDeleted: true, + syncJobs: { + overall: { + total: 1, + last30Days: { + overall: { + total: 1, + manual: 1, + scheduled: 0, + completed: 1, + errored: 0, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 200, + }, + full: { + total: 1, + manual: 1, + scheduled: 0, + completed: 1, + errored: 0, + canceled: 0, + suspended: 0, + idle: 0, + running: 0, + totalDurationSeconds: 200, + }, + }, + }, + }, +}; diff --git a/packages/kbn-search-connectors/lib/create_connector_document.test.ts b/packages/kbn-search-connectors/lib/create_connector_document.test.ts index a5a25bc6ace8c..e5920c4a7f10b 100644 --- a/packages/kbn-search-connectors/lib/create_connector_document.test.ts +++ b/packages/kbn-search-connectors/lib/create_connector_document.test.ts @@ -91,7 +91,9 @@ describe('createConnectorDocument', () => { last_access_control_sync_error: null, last_access_control_sync_scheduled_at: null, last_access_control_sync_status: null, + last_deleted_document_count: null, last_incremental_sync_scheduled_at: null, + last_indexed_document_count: null, last_seen: null, last_sync_error: null, last_sync_scheduled_at: null, diff --git a/packages/kbn-search-connectors/lib/create_connector_document.ts b/packages/kbn-search-connectors/lib/create_connector_document.ts index 5d83eded6f0ce..e25977f8e8573 100644 --- a/packages/kbn-search-connectors/lib/create_connector_document.ts +++ b/packages/kbn-search-connectors/lib/create_connector_document.ts @@ -101,7 +101,9 @@ export function createConnectorDocument({ last_access_control_sync_error: null, last_access_control_sync_scheduled_at: null, last_access_control_sync_status: null, + last_deleted_document_count: null, last_incremental_sync_scheduled_at: null, + last_indexed_document_count: null, last_seen: null, last_sync_error: null, last_sync_scheduled_at: null, diff --git a/packages/kbn-search-connectors/lib/index.ts b/packages/kbn-search-connectors/lib/index.ts index e7269a0620b62..80bd6c554c54c 100644 --- a/packages/kbn-search-connectors/lib/index.ts +++ b/packages/kbn-search-connectors/lib/index.ts @@ -7,6 +7,7 @@ */ export * from './cancel_syncs'; +export * from './collect_connector_stats'; export * from './create_connector'; export * from './create_connector_document'; export * from './create_connector_secret'; diff --git a/packages/kbn-search-connectors/types/connector_stats.ts b/packages/kbn-search-connectors/types/connector_stats.ts new file mode 100644 index 0000000000000..7c72a4b669b6e --- /dev/null +++ b/packages/kbn-search-connectors/types/connector_stats.ts @@ -0,0 +1,124 @@ +/* + * 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 { ConnectorStatus } from '..'; + +export interface ConnectorStats { + id: string; + serviceType?: string | null; + isNative?: boolean; + isDeleted: boolean; + status?: ConnectorStatus; + indexName?: string | null; + dlsEnabled?: boolean; + sslEnabled?: boolean; + fetchSelectively?: boolean; + textExtractionServiceEnabled?: boolean; + documents?: DocumentsStats; + dataSourceSpecific?: DataSourceSpecificStats; + scheduling?: { + accessControl: Scheduling; + full: Scheduling; + incremental: Scheduling; + }; + syncRules?: { + active: { + withBasicRules: boolean; + withAdvancedRules: boolean; + }; + draft: { + withBasicRules: boolean; + withAdvancedRules: boolean; + }; + }; + ingestPipeline?: { + name: string; + extractBinaryContent: boolean; + reduceWhitespace: boolean; + runMLInference: boolean; + }; + syncJobs?: SyncJobStats; +} + +export interface DataSourceSpecificStats { + confluence?: { + dataSourceType: string; + }; + github?: { + isCloud: boolean; + }; + jira?: { + dataSourceType: string; + }; + mongodb?: { + directConnect: boolean; + }; + mssql?: { + validateHost: boolean; + tables: number; + }; + mysql?: { + tables: number; + }; + oracle?: { + tables: number; + }; + postgresql?: { + tables: number; + }; + slack?: { + autoJoinChannelsEnabled: boolean; + syncUsersEnabled: boolean; + fetchLastNDays: number; + }; + zoom?: { + recordingAge: number; + }; +} + +export interface DocumentsStats { + total: number; + volume: number; + inLastSync: number; +} + +interface Scheduling { + enabled: boolean; + interval: string; +} + +export interface SyncJobStats { + overall: SyncJobStatsDetails; + withTextExtractionServiceEnabled?: SyncJobStatsDetails; +} + +export interface SyncJobStatsDetails { + total: number; + last30Days?: SyncJobStatsByType; + last7Days?: SyncJobStatsByType; +} + +export interface SyncJobStatsByType { + overall: SyncJobStatsByState; + accessControl?: SyncJobStatsByState; + full?: SyncJobStatsByState; + incremental?: SyncJobStatsByState; +} + +export interface SyncJobStatsByState { + total: number; + manual: number; + scheduled: number; + completed: number; + errored: number; + canceled: number; + suspended: number; + idle: number; + running: number; + totalDurationSeconds: number; +} diff --git a/packages/kbn-search-connectors/types/connectors.ts b/packages/kbn-search-connectors/types/connectors.ts index 007b7d00cc16e..5ef0f85424f30 100644 --- a/packages/kbn-search-connectors/types/connectors.ts +++ b/packages/kbn-search-connectors/types/connectors.ts @@ -230,7 +230,9 @@ export interface Connector { last_access_control_sync_error: string | null; last_access_control_sync_scheduled_at: string | null; last_access_control_sync_status: SyncStatus | null; + last_deleted_document_count: number | null; last_incremental_sync_scheduled_at: string | null; + last_indexed_document_count: number | null; last_seen: string | null; last_sync_error: string | null; last_sync_scheduled_at: string | null; diff --git a/packages/kbn-search-connectors/types/index.ts b/packages/kbn-search-connectors/types/index.ts index 06775cb61c584..f36b339c25d0b 100644 --- a/packages/kbn-search-connectors/types/index.ts +++ b/packages/kbn-search-connectors/types/index.ts @@ -8,6 +8,7 @@ export * from './connectors'; export * from './connectors_api'; +export * from './connector_stats'; export * from './native_connectors'; export * from './optimistic_concurrency'; export * from './pagination'; diff --git a/packages/kbn-search-connectors/types/native_connectors.ts b/packages/kbn-search-connectors/types/native_connectors.ts index b8279fc9c4c85..04875986c063d 100644 --- a/packages/kbn-search-connectors/types/native_connectors.ts +++ b/packages/kbn-search-connectors/types/native_connectors.ts @@ -3542,7 +3542,7 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record useAsync(createListIndexWithOptionalSignal); +export const useCreateListIndex = ({ + http, + onError, +}: { + http: ApiParams['http']; + onError?: (err: unknown) => void; +}) => { + const queryClient = useQueryClient(); + + const { mutate, isLoading, error } = useMutation( + () => createListIndexWithOptionalSignal({ http }), + { + onSuccess: () => { + queryClient.invalidateQueries(READ_INDEX_QUERY_KEY); + }, + onError, + } + ); + + return { + start: mutate, + loading: isLoading, + error, + }; +}; diff --git a/packages/kbn-securitysolution-list-hooks/src/use_read_list_index/index.ts b/packages/kbn-securitysolution-list-hooks/src/use_read_list_index/index.ts index 18b2ef1ea04e0..2305fda76c705 100644 --- a/packages/kbn-securitysolution-list-hooks/src/use_read_list_index/index.ts +++ b/packages/kbn-securitysolution-list-hooks/src/use_read_list_index/index.ts @@ -6,9 +6,45 @@ * Side Public License, v 1. */ -import { readListIndex } from '@kbn/securitysolution-list-api'; -import { useAsync, withOptionalSignal } from '@kbn/securitysolution-hook-utils'; +import { useQuery } from '@tanstack/react-query'; + +import { readListIndex, ApiParams } from '@kbn/securitysolution-list-api'; +import { withOptionalSignal } from '@kbn/securitysolution-hook-utils'; + +import { READ_INDEX_QUERY_KEY } from '../constants'; const readListIndexWithOptionalSignal = withOptionalSignal(readListIndex); -export const useReadListIndex = () => useAsync(readListIndexWithOptionalSignal); +export const useReadListIndex = ({ + http, + isEnabled, + onError, +}: { + isEnabled: boolean; + http: ApiParams['http']; + onError?: (err: unknown) => void; +}) => { + const query = useQuery( + READ_INDEX_QUERY_KEY, + async ({ signal }) => { + if (!isEnabled) { + return null; + } + + return readListIndexWithOptionalSignal({ http, signal }); + }, + { + onError, + retry: false, + refetchOnWindowFocus: false, + enabled: isEnabled, + staleTime: Infinity, + } + ); + + return { + result: query.data, + loading: query.isFetching, + error: query.error, + }; +}; diff --git a/src/dev/build/cli.ts b/src/dev/build/cli.ts index 9a967e1cc85c9..e9acd8245af02 100644 --- a/src/dev/build/cli.ts +++ b/src/dev/build/cli.ts @@ -43,6 +43,7 @@ if (showHelp) { --docker-cross-compile {dim Produce arm64 and amd64 Docker images} --docker-contexts {dim Only build the Docker build contexts} --skip-canvas-shareable-runtime {dim Don't build the Canvas shareable runtime} + --skip-cdn-assets {dim Don't build CDN assets} --skip-docker-ubi {dim Don't build the docker ubi image} --skip-docker-ubuntu {dim Don't build the docker ubuntu image} --skip-docker-fips {dim Don't build the docker fips image} diff --git a/src/dev/build/tasks/create_cdn_assets_task.ts b/src/dev/build/tasks/create_cdn_assets_task.ts index a9ec8beb0955c..2555795d50d80 100644 --- a/src/dev/build/tasks/create_cdn_assets_task.ts +++ b/src/dev/build/tasks/create_cdn_assets_task.ts @@ -38,16 +38,14 @@ export const CreateCdnAssets: Task = { const manifest = Jsonc.parse(readFileSync(path, 'utf8')) as any; if (manifest?.plugin?.id) { const pluginRoot = resolve(dirname(path)); - + // packages/core/apps/core-apps-server-internal/src/core_app.ts + const assetsSource = resolve(pluginRoot, 'public', 'assets'); + const assetsDest = resolve(assets, buildSha, 'plugins', manifest.plugin.id, 'assets'); try { - // packages/core/plugins/core-plugins-server-internal/src/plugins_service.ts - const assetsSource = resolve(pluginRoot, 'assets'); - const assetsDest = resolve('plugins', manifest.plugin.id, 'assets'); await access(assetsSource); await mkdirp(assetsDest); await copyAll(assetsSource, assetsDest); } catch (e) { - // assets are optional if (!(e.code === 'ENOENT' && e.syscall === 'access')) throw e; } diff --git a/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.test.ts b/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.test.ts index 33987c09d88dd..74395bec8adb5 100644 --- a/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.test.ts +++ b/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.test.ts @@ -16,6 +16,7 @@ import { SearchStrategyDependencies } from '../../types'; import { enhancedEsSearchStrategyProvider } from './ese_search_strategy'; import { createSearchSessionsClientMock } from '../../mocks'; import { getMockSearchConfig } from '../../../../config.mock'; +import { DataViewType } from '@kbn/data-views-plugin/common'; const mockAsyncResponse = { body: { @@ -246,7 +247,7 @@ describe('ES search strategy', () => { await esSearch .search( { - indexType: 'rollup', + indexType: DataViewType.ROLLUP, params, }, {}, @@ -274,7 +275,7 @@ describe('ES search strategy', () => { await esSearch .search( { - indexType: 'rollup', + indexType: DataViewType.ROLLUP, params, }, {}, diff --git a/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.ts b/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.ts index bcf8a3fafcf16..54b56e45f0a1a 100644 --- a/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.ts +++ b/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.ts @@ -21,7 +21,7 @@ import type { IEsSearchResponse, ISearchOptions, } from '../../../../common'; -import { pollSearch } from '../../../../common'; +import { DataViewType, pollSearch } from '../../../../common'; import { getDefaultAsyncGetParams, getDefaultAsyncSubmitParams, @@ -171,7 +171,7 @@ export const enhancedEsSearchStrategyProvider = ( search: (request, options: IAsyncSearchOptions, deps) => { logger.debug(`search ${JSON.stringify(request.params) || request.id}`); - if (request.indexType === 'rollup' && deps.rollupsEnabled) { + if (request.indexType === DataViewType.ROLLUP && deps.rollupsEnabled) { return from(rollupSearch(request, options, deps)); } else { return asyncSearch(request, options, deps); diff --git a/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx b/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx index f850ef4ec3671..cc96bfe5ffa91 100644 --- a/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx +++ b/src/plugins/data_view_management/public/components/edit_index_pattern/edit_index_pattern.tsx @@ -21,7 +21,7 @@ import { } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; -import { DataView, DataViewField, RuntimeField } from '@kbn/data-views-plugin/public'; +import { DataView, DataViewField, DataViewType, RuntimeField } from '@kbn/data-views-plugin/public'; import { DATA_VIEW_SAVED_OBJECT_TYPE } from '@kbn/data-views-plugin/public'; import { useKibana } from '@kbn/kibana-react-plugin/public'; import { @@ -170,7 +170,7 @@ export const EditIndexPattern = withRouter( }); const isRollup = - new URLSearchParams(useLocation().search).get('type') === 'rollup' && + new URLSearchParams(useLocation().search).get('type') === DataViewType.ROLLUP && dataViews.getRollupsEnabled(); const displayIndexPatternEditor = showEditDialog ? ( { - return indexPatternType === 'rollup'; + return indexPatternType === DataViewType.ROLLUP; }; export async function getIndexPatterns(defaultIndex: string, dataViewsService: DataViewsContract) { @@ -76,14 +77,14 @@ export const getTags = ( const tags = []; if (isDefault) { tags.push({ - key: 'default', + key: DataViewType.DEFAULT, name: defaultIndexPatternListName, 'data-test-subj': 'default-tag', }); } if (isRollup(indexPattern.type) && rollupsEnabled) { tags.push({ - key: 'rollup', + key: DataViewType.ROLLUP, name: rollupIndexPatternListName, 'data-test-subj': 'rollup-tag', }); diff --git a/src/plugins/data_views/common/content_management/v1/cm_services.ts b/src/plugins/data_views/common/content_management/v1/cm_services.ts index c850672353c97..707af53d5226f 100644 --- a/src/plugins/data_views/common/content_management/v1/cm_services.ts +++ b/src/plugins/data_views/common/content_management/v1/cm_services.ts @@ -16,12 +16,13 @@ import { createResultSchema, searchOptionsSchemas, } from '@kbn/content-management-utils'; +import { DataViewType } from '../..'; import { serializedFieldFormatSchema, fieldSpecSchema } from '../../schemas'; const dataViewAttributesSchema = schema.object( { title: schema.string(), - type: schema.maybe(schema.literal('rollup')), + type: schema.maybe(schema.literal(DataViewType.ROLLUP)), timeFieldName: schema.maybe(schema.string()), sourceFilters: schema.maybe( schema.arrayOf( diff --git a/src/plugins/data_views/common/data_views/_pattern_cache.ts b/src/plugins/data_views/common/data_views/_pattern_cache.ts deleted file mode 100644 index 19db5b21e5934..0000000000000 --- a/src/plugins/data_views/common/data_views/_pattern_cache.ts +++ /dev/null @@ -1,40 +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 { DataView } from './data_view'; - -export interface DataViewCache { - get: (id: string) => Promise | undefined; - set: (id: string, value: Promise) => Promise; - clear: (id: string) => void; - clearAll: () => void; -} - -export function createDataViewCache(): DataViewCache { - const vals: Record> = {}; - const cache: DataViewCache = { - get: (id: string) => { - return vals[id]; - }, - set: (id: string, prom: Promise) => { - vals[id] = prom; - return prom; - }, - clear: (id: string) => { - delete vals[id]; - }, - clearAll: () => { - for (const id in vals) { - if (vals.hasOwnProperty(id)) { - delete vals[id]; - } - } - }, - }; - return cache; -} diff --git a/src/plugins/data_views/common/data_views/data_views.ts b/src/plugins/data_views/common/data_views/data_views.ts index a244868c0614d..ca47c6087aa05 100644 --- a/src/plugins/data_views/common/data_views/data_views.ts +++ b/src/plugins/data_views/common/data_views/data_views.ts @@ -13,7 +13,6 @@ import { FieldFormatsStartCommon, FORMATS_UI_SETTINGS } from '@kbn/field-formats import { v4 as uuidv4 } from 'uuid'; import { PersistenceAPI } from '../types'; -import { createDataViewCache } from '.'; import type { RuntimeField, RuntimeFieldSpec, RuntimeType } from '../types'; import { DataView } from './data_view'; import { @@ -319,7 +318,7 @@ export class DataViewsService { * @param key used to indicate uniqueness of the error */ private onError: OnError; - private dataViewCache: ReturnType; + private dataViewCache: Map>; /** * Can the user save advanced settings? */ @@ -355,7 +354,7 @@ export class DataViewsService { this.getCanSave = getCanSave; this.getCanSaveAdvancedSettings = getCanSaveAdvancedSettings; - this.dataViewCache = createDataViewCache(); + this.dataViewCache = new Map(); this.scriptedFieldsEnabled = scriptedFieldsEnabled; } @@ -450,9 +449,9 @@ export class DataViewsService { */ clearInstanceCache = (id?: string) => { if (id) { - this.dataViewCache.clear(id); + this.dataViewCache.delete(id); } else { - this.dataViewCache.clearAll(); + this.dataViewCache.clear(); } }; @@ -930,13 +929,17 @@ export class DataViewsService { return dataView; }); - const indexPatternPromise = - dataViewFromCache || - this.dataViewCache.set(id, this.getSavedObjectAndInit(id, displayErrors)); + let indexPatternPromise: Promise; + if (dataViewFromCache) { + indexPatternPromise = dataViewFromCache; + } else { + indexPatternPromise = this.getSavedObjectAndInit(id, displayErrors); + this.dataViewCache.set(id, indexPatternPromise); + } // don't cache failed requests indexPatternPromise.catch(() => { - this.dataViewCache.clear(id); + this.dataViewCache.delete(id); }); return indexPatternPromise; @@ -999,11 +1002,16 @@ export class DataViewsService { return cachedDataView; } - return this.dataViewCache.set(spec.id, doCreate()); + const dataViewPromise = doCreate(); + + this.dataViewCache.set(spec.id, dataViewPromise); + + return dataViewPromise; } const dataView = await doCreate(); - return this.dataViewCache.set(dataView.id!, Promise.resolve(dataView)); + this.dataViewCache.set(dataView.id!, Promise.resolve(dataView)); + return dataView; } /** @@ -1162,7 +1170,7 @@ export class DataViewsService { indexPattern.version = samePattern.version; // Clear cache - this.dataViewCache.clear(indexPattern.id!); + this.dataViewCache.delete(indexPattern.id!); // Try the save again return this.updateSavedObject(indexPattern, saveAttempts, ignoreErrors, displayErrors); @@ -1179,7 +1187,7 @@ export class DataViewsService { if (!(await this.getCanSave())) { throw new DataViewInsufficientAccessError(indexPatternId); } - this.dataViewCache.clear(indexPatternId); + this.dataViewCache.delete(indexPatternId); return this.savedObjectsClient.delete(indexPatternId); } diff --git a/src/plugins/data_views/common/data_views/index.ts b/src/plugins/data_views/common/data_views/index.ts index 27b973c4db72a..080ffe3bbd98d 100644 --- a/src/plugins/data_views/common/data_views/index.ts +++ b/src/plugins/data_views/common/data_views/index.ts @@ -6,7 +6,6 @@ * Side Public License, v 1. */ -export * from './_pattern_cache'; export * from './flatten_hit'; export * from './data_view'; export * from './data_views'; diff --git a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.test.ts b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.test.ts index 669a370badebc..6de3f31ff2895 100644 --- a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.test.ts +++ b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.test.ts @@ -9,7 +9,7 @@ import * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { IndexPatternsFetcher } from '.'; import { elasticsearchServiceMock } from '@kbn/core/server/mocks'; -import { DataViewMissingIndices } from '../../common'; +import { DataViewMissingIndices, DataViewType } from '../../common'; const rollupResponse = { foo: { @@ -51,7 +51,7 @@ describe('Index Pattern Fetcher - server', () => { indexPatterns = new IndexPatternsFetcher(esClient, true, true); await indexPatterns.getFieldsForWildcard({ pattern: patternList, - type: 'rollup', + type: DataViewType.ROLLUP, rollupIndex: 'foo', }); expect(esClient.rollup.getRollupIndexCaps).toHaveBeenCalledTimes(1); @@ -64,7 +64,7 @@ describe('Index Pattern Fetcher - server', () => { indexPatterns = new IndexPatternsFetcher(esClient, true, false); await indexPatterns.getFieldsForWildcard({ pattern: patternList, - type: 'rollup', + type: DataViewType.ROLLUP, rollupIndex: 'foo', }); expect(esClient.rollup.getRollupIndexCaps).toHaveBeenCalledTimes(0); diff --git a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts index f444ddbc434f0..4ad8232a5b9bd 100644 --- a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts +++ b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts @@ -18,6 +18,7 @@ import { getCapabilitiesForRollupIndices, mergeCapabilitiesWithFields, } from './lib'; +import { DataViewType } from '../../common/types'; export interface FieldDescriptor { aggregatable: boolean; @@ -105,7 +106,7 @@ export class IndexPatternsFetcher { includeEmptyFields, }); - if (this.rollupsEnabled && type === 'rollup' && rollupIndex) { + if (this.rollupsEnabled && type === DataViewType.ROLLUP && rollupIndex) { const rollupFields: FieldDescriptor[] = []; const capabilityCheck = getCapabilitiesForRollupIndices( await this.elasticsearchClient.rollup.getRollupIndexCaps({ diff --git a/src/plugins/discover/public/application/main/utils/fetch_documents.ts b/src/plugins/discover/public/application/main/utils/fetch_documents.ts index 0c67653274398..5d6206f6776bf 100644 --- a/src/plugins/discover/public/application/main/utils/fetch_documents.ts +++ b/src/plugins/discover/public/application/main/utils/fetch_documents.ts @@ -12,6 +12,7 @@ import { isRunningResponse, ISearchSource } from '@kbn/data-plugin/public'; import { buildDataTableRecordList } from '@kbn/discover-utils'; import type { EsHitRecord } from '@kbn/discover-utils/types'; import type { SearchResponseWarning } from '@kbn/search-response-warnings'; +import { DataViewType } from '@kbn/data-views-plugin/public'; import type { RecordsFetchResponse } from '../../types'; import { getAllowedSampleSize } from '../../../utils/get_allowed_sample_size'; import { FetchDeps } from './fetch_all'; @@ -29,7 +30,7 @@ export const fetchDocuments = ( searchSource.setField('trackTotalHits', false); searchSource.setField('highlightAll', true); searchSource.setField('version', true); - if (searchSource.getField('index')?.type === 'rollup') { + if (searchSource.getField('index')?.type === DataViewType.ROLLUP) { // We treat that data view as "normal" even if it was a rollup data view, // since the rollup endpoint does not support querying individual documents, but we // can get them from the regular _search API that will be used if the data view diff --git a/src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts b/src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts index 50555601d4bca..d3382efd2dc0d 100644 --- a/src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts +++ b/src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts @@ -7,7 +7,7 @@ */ import { SavedObjectAttributes } from '@kbn/core/public'; - +import type { FinderAttributes } from '@kbn/saved-objects-finder-plugin/common'; import { IContainer } from '..'; import { EmbeddableFactory } from './embeddable_factory'; import { EmbeddableStateWithType } from '../../../common/types'; @@ -19,7 +19,7 @@ export const defaultEmbeddableFactoryProvider = < I extends EmbeddableInput = EmbeddableInput, O extends EmbeddableOutput = EmbeddableOutput, E extends IEmbeddable = IEmbeddable, - T = SavedObjectAttributes + T extends FinderAttributes = SavedObjectAttributes >( def: EmbeddableFactoryDefinition ): EmbeddableFactory => { diff --git a/src/plugins/embeddable/public/lib/embeddables/embeddable_factory.ts b/src/plugins/embeddable/public/lib/embeddables/embeddable_factory.ts index cb777aecb53b8..cb19b82d75c98 100644 --- a/src/plugins/embeddable/public/lib/embeddables/embeddable_factory.ts +++ b/src/plugins/embeddable/public/lib/embeddables/embeddable_factory.ts @@ -8,6 +8,7 @@ import type { SavedObjectMetaData } from '@kbn/saved-objects-finder-plugin/public'; import { PersistableState } from '@kbn/kibana-utils-plugin/common'; +import type { FinderAttributes } from '@kbn/saved-objects-finder-plugin/common'; import { UiActionsPresentableGrouping } from '@kbn/ui-actions-plugin/public'; import { EmbeddableInput, EmbeddableOutput, IEmbeddable } from './i_embeddable'; import { ErrorEmbeddable } from './error_embeddable'; @@ -45,7 +46,7 @@ export interface EmbeddableFactory< TEmbeddableInput, TEmbeddableOutput >, - TSavedObjectAttributes = unknown + TSavedObjectAttributes extends FinderAttributes = FinderAttributes > extends PersistableState { /** * The version of this Embeddable factory. This will be used in the client side migration system @@ -65,7 +66,6 @@ export interface EmbeddableFactory< */ readonly isEditable: () => Promise; - // @ts-expect-error upgrade typescript v4.9.5 readonly savedObjectMetaData?: SavedObjectMetaData; /** diff --git a/src/plugins/embeddable/public/lib/embeddables/embeddable_factory_definition.ts b/src/plugins/embeddable/public/lib/embeddables/embeddable_factory_definition.ts index 4c360ffd40eb5..66e0f7f0db3eb 100644 --- a/src/plugins/embeddable/public/lib/embeddables/embeddable_factory_definition.ts +++ b/src/plugins/embeddable/public/lib/embeddables/embeddable_factory_definition.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +import type { FinderAttributes } from '@kbn/saved-objects-finder-plugin/common'; import { IEmbeddable } from './i_embeddable'; import { EmbeddableFactory } from './embeddable_factory'; import { EmbeddableInput, EmbeddableOutput } from '..'; @@ -14,7 +15,7 @@ export type EmbeddableFactoryDefinition< I extends EmbeddableInput = EmbeddableInput, O extends EmbeddableOutput = EmbeddableOutput, E extends IEmbeddable = IEmbeddable, - T = unknown + T extends FinderAttributes = FinderAttributes > = // Required parameters Pick< diff --git a/src/plugins/embeddable/public/types.ts b/src/plugins/embeddable/public/types.ts index 7f24f525ae49f..a4f3aa97e55cc 100644 --- a/src/plugins/embeddable/public/types.ts +++ b/src/plugins/embeddable/public/types.ts @@ -8,6 +8,7 @@ import type { SerializableRecord } from '@kbn/utility-types'; import { SavedObjectAttributes } from '@kbn/core/public'; +import type { FinderAttributes } from '@kbn/saved-objects-finder-plugin/common'; import { PersistableState, PersistableStateDefinition } from '@kbn/kibana-utils-plugin/common'; import { EmbeddableFactory, @@ -34,7 +35,7 @@ export type EmbeddableFactoryProvider = < I extends EmbeddableInput = EmbeddableInput, O extends EmbeddableOutput = EmbeddableOutput, E extends IEmbeddable = IEmbeddable, - T = SavedObjectAttributes + T extends FinderAttributes = SavedObjectAttributes >( def: EmbeddableFactoryDefinition ) => EmbeddableFactory; diff --git a/src/plugins/navigation/common/constants.ts b/src/plugins/navigation/common/constants.ts new file mode 100644 index 0000000000000..891b583b3ad84 --- /dev/null +++ b/src/plugins/navigation/common/constants.ts @@ -0,0 +1,13 @@ +/* + * 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 const ENABLE_SOLUTION_NAV_UI_SETTING_ID = 'solutionNav:enable'; + +export const OPT_IN_STATUS_SOLUTION_NAV_UI_SETTING_ID = 'solutionNav:optInStatus'; + +export const DEFAULT_SOLUTION_NAV_UI_SETTING_ID = 'solutionNav:default'; diff --git a/src/plugins/navigation/common/index.ts b/src/plugins/navigation/common/index.ts new file mode 100644 index 0000000000000..94e93f76ba1e1 --- /dev/null +++ b/src/plugins/navigation/common/index.ts @@ -0,0 +1,13 @@ +/* + * 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 { + DEFAULT_SOLUTION_NAV_UI_SETTING_ID, + ENABLE_SOLUTION_NAV_UI_SETTING_ID, + OPT_IN_STATUS_SOLUTION_NAV_UI_SETTING_ID, +} from './constants'; diff --git a/src/plugins/navigation/kibana.jsonc b/src/plugins/navigation/kibana.jsonc index 26edb0999699d..6a32cda8d0df0 100644 --- a/src/plugins/navigation/kibana.jsonc +++ b/src/plugins/navigation/kibana.jsonc @@ -4,8 +4,9 @@ "owner": "@elastic/appex-sharedux", "plugin": { "id": "navigation", - "server": false, + "server": true, "browser": true, + "optionalPlugins": ["cloud"], "requiredPlugins": ["unifiedSearch"], "requiredBundles": [] } diff --git a/src/plugins/navigation/public/index.ts b/src/plugins/navigation/public/index.ts index a68f8f2bbcdbd..44a90ce5598b1 100644 --- a/src/plugins/navigation/public/index.ts +++ b/src/plugins/navigation/public/index.ts @@ -19,6 +19,8 @@ export { TopNavMenu, TopNavMenuItems, TopNavMenuBadges } from './top_nav_menu'; export type { NavigationPublicSetup as NavigationPublicPluginSetup, NavigationPublicStart as NavigationPublicPluginStart, + SolutionNavigationOptInStatus, + SolutionType, } from './types'; // Export plugin after all other imports diff --git a/src/plugins/navigation/public/mocks.ts b/src/plugins/navigation/public/mocks.ts index e6e4ff5128b0e..26a43d4c10109 100644 --- a/src/plugins/navigation/public/mocks.ts +++ b/src/plugins/navigation/public/mocks.ts @@ -26,6 +26,7 @@ const createStartContract = (): jest.Mocked => { createTopNavWithCustomContext: jest.fn().mockImplementation(() => jest.fn()), AggregateQueryTopNavMenu: jest.fn(), }, + addSolutionNavigation: jest.fn(), }; return startContract; }; diff --git a/src/plugins/navigation/public/plugin.test.ts b/src/plugins/navigation/public/plugin.test.ts new file mode 100644 index 0000000000000..fbc9bb7b1e3fb --- /dev/null +++ b/src/plugins/navigation/public/plugin.test.ts @@ -0,0 +1,137 @@ +/* + * 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 { coreMock } from '@kbn/core/public/mocks'; +import { unifiedSearchPluginMock } from '@kbn/unified-search-plugin/public/mocks'; +import { of } from 'rxjs'; +import { + DEFAULT_SOLUTION_NAV_UI_SETTING_ID, + ENABLE_SOLUTION_NAV_UI_SETTING_ID, + OPT_IN_STATUS_SOLUTION_NAV_UI_SETTING_ID, +} from '../common'; +import { NavigationPublicPlugin } from './plugin'; +import { ConfigSchema } from './types'; + +const defaultConfig: ConfigSchema['solutionNavigation'] = { + featureOn: true, + enabled: true, + optInStatus: 'visible', + defaultSolution: 'es', +}; + +const setup = ( + partialConfig: Partial & { + featureOn: boolean; + } +) => { + const initializerContext = coreMock.createPluginInitializerContext({ + solutionNavigation: { + ...defaultConfig, + ...partialConfig, + }, + }); + const plugin = new NavigationPublicPlugin(initializerContext); + + const coreStart = coreMock.createStart(); + const unifiedSearch = unifiedSearchPluginMock.createStartContract(); + + const getGlobalSetting$ = jest.fn(); + const settingsGlobalClient = { + ...coreStart.settings.globalClient, + get$: getGlobalSetting$, + }; + coreStart.settings.globalClient = settingsGlobalClient; + + return { plugin, coreStart, unifiedSearch, getGlobalSetting$ }; +}; + +describe('Navigation Plugin', () => { + describe('feature flag disabled', () => { + const featureOn = false; + + it('should not add the default solutions nor set the active nav if the feature is disabled', () => { + const { plugin, coreStart, unifiedSearch } = setup({ featureOn }); + plugin.start(coreStart, { unifiedSearch }); + expect(coreStart.chrome.project.updateSolutionNavigations).not.toHaveBeenCalled(); + expect(coreStart.chrome.project.changeActiveSolutionNavigation).not.toHaveBeenCalled(); + }); + }); + + describe('feature flag enabled', () => { + const featureOn = true; + + it('should add the default solution navs but **not** set the active nav', () => { + const { plugin, coreStart, unifiedSearch, getGlobalSetting$ } = setup({ featureOn }); + + const uiSettingsValues: Record = { + [ENABLE_SOLUTION_NAV_UI_SETTING_ID]: false, // NOT enabled, so we should not set the active nav + [OPT_IN_STATUS_SOLUTION_NAV_UI_SETTING_ID]: 'visible', + [DEFAULT_SOLUTION_NAV_UI_SETTING_ID]: 'es', + }; + + getGlobalSetting$.mockImplementation((settingId: string) => { + const value = uiSettingsValues[settingId]; + return of(value); + }); + + plugin.start(coreStart, { unifiedSearch }); + + expect(coreStart.chrome.project.updateSolutionNavigations).toHaveBeenCalled(); + const [arg] = coreStart.chrome.project.updateSolutionNavigations.mock.calls[0]; + expect(Object.keys(arg)).toEqual(['es', 'oblt', 'security']); + + expect(coreStart.chrome.project.changeActiveSolutionNavigation).toHaveBeenCalledWith(null); + }); + + it('should add the default solution navs **and** set the active nav', () => { + const { plugin, coreStart, unifiedSearch, getGlobalSetting$ } = setup({ featureOn }); + + const uiSettingsValues: Record = { + [ENABLE_SOLUTION_NAV_UI_SETTING_ID]: true, + [OPT_IN_STATUS_SOLUTION_NAV_UI_SETTING_ID]: 'visible', + [DEFAULT_SOLUTION_NAV_UI_SETTING_ID]: 'security', + }; + + getGlobalSetting$.mockImplementation((settingId: string) => { + const value = uiSettingsValues[settingId] ?? 'unknown'; + return of(value); + }); + + plugin.start(coreStart, { unifiedSearch }); + + expect(coreStart.chrome.project.updateSolutionNavigations).toHaveBeenCalled(); + + expect(coreStart.chrome.project.changeActiveSolutionNavigation).toHaveBeenCalledWith( + uiSettingsValues[DEFAULT_SOLUTION_NAV_UI_SETTING_ID], + { onlyIfNotSet: true } + ); + }); + + it('if not "visible", should not set the active nav', () => { + const { plugin, coreStart, unifiedSearch, getGlobalSetting$ } = setup({ featureOn }); + + const uiSettingsValues: Record = { + [ENABLE_SOLUTION_NAV_UI_SETTING_ID]: true, + [OPT_IN_STATUS_SOLUTION_NAV_UI_SETTING_ID]: 'hidden', + [DEFAULT_SOLUTION_NAV_UI_SETTING_ID]: 'security', + }; + + getGlobalSetting$.mockImplementation((settingId: string) => { + const value = uiSettingsValues[settingId] ?? 'unknown'; + return of(value); + }); + + plugin.start(coreStart, { unifiedSearch }); + + expect(coreStart.chrome.project.updateSolutionNavigations).toHaveBeenCalled(); + expect(coreStart.chrome.project.changeActiveSolutionNavigation).toHaveBeenCalledWith(null, { + onlyIfNotSet: true, + }); + }); + }); +}); diff --git a/src/plugins/navigation/public/plugin.ts b/src/plugins/navigation/public/plugin.ts index 58e21e4a99f13..ffdbe978dca24 100644 --- a/src/plugins/navigation/public/plugin.ts +++ b/src/plugins/navigation/public/plugin.ts @@ -6,16 +6,32 @@ * Side Public License, v 1. */ +import { combineLatest, debounceTime, of, ReplaySubject, takeUntil } from 'rxjs'; import { PluginInitializerContext, CoreSetup, CoreStart, Plugin } from '@kbn/core/public'; -import { UnifiedSearchPublicPluginStart } from '@kbn/unified-search-plugin/public'; +import type { UnifiedSearchPublicPluginStart } from '@kbn/unified-search-plugin/public'; +import type { + CloudURLs, + NavigationTreeDefinition, + SolutionNavigationDefinition, + SolutionNavigationDefinitions, +} from '@kbn/core-chrome-browser'; +import { InternalChromeStart } from '@kbn/core-chrome-browser-internal'; +import { + ENABLE_SOLUTION_NAV_UI_SETTING_ID, + OPT_IN_STATUS_SOLUTION_NAV_UI_SETTING_ID, + DEFAULT_SOLUTION_NAV_UI_SETTING_ID, +} from '../common'; import { NavigationPublicSetup, NavigationPublicStart, NavigationPublicSetupDependencies, NavigationPublicStartDependencies, + ConfigSchema, + SolutionNavigation, } from './types'; import { TopNavMenuExtensionsRegistry, createTopNav } from './top_nav_menu'; import { RegisteredTopNavMenuData } from './top_nav_menu/top_nav_menu_data'; +import { getSideNavComponent } from './side_navigation'; export class NavigationPublicPlugin implements @@ -28,8 +44,9 @@ export class NavigationPublicPlugin { private readonly topNavMenuExtensionsRegistry: TopNavMenuExtensionsRegistry = new TopNavMenuExtensionsRegistry(); + private readonly stop$ = new ReplaySubject(1); - constructor(_initializerContext: PluginInitializerContext) {} + constructor(private initializerContext: PluginInitializerContext) {} public setup(_core: CoreSetup): NavigationPublicSetup { return { @@ -40,10 +57,11 @@ export class NavigationPublicPlugin } public start( - _core: CoreStart, - { unifiedSearch }: NavigationPublicStartDependencies + core: CoreStart, + { unifiedSearch, cloud }: NavigationPublicStartDependencies ): NavigationPublicStart { const extensions = this.topNavMenuExtensionsRegistry.getAll(); + const chrome = core.chrome as InternalChromeStart; /* * @@ -65,14 +83,151 @@ export class NavigationPublicPlugin return createTopNav(customUnifiedSearch ?? unifiedSearch, customExtensions ?? extensions); }; + const config = this.initializerContext.config.get(); + const { + solutionNavigation: { featureOn: isSolutionNavigationFeatureOn }, + } = config; + + if (isSolutionNavigationFeatureOn) { + this.addDefaultSolutionNavigation({ core, chrome, cloud }); + + combineLatest([ + core.settings.globalClient.get$(ENABLE_SOLUTION_NAV_UI_SETTING_ID), + core.settings.globalClient.get$(OPT_IN_STATUS_SOLUTION_NAV_UI_SETTING_ID), + core.settings.globalClient.get$(DEFAULT_SOLUTION_NAV_UI_SETTING_ID), + ]) + .pipe(takeUntil(this.stop$), debounceTime(10)) + .subscribe(([enabled, status, defaultSolution]) => { + if (!enabled) { + chrome.project.changeActiveSolutionNavigation(null); + } else { + // TODO: Here we will need to check if the user has opt-in or not.... (value set in their user profile) + const changeImmediately = status === 'visible'; + chrome.project.changeActiveSolutionNavigation( + changeImmediately ? defaultSolution : null, + { onlyIfNotSet: true } + ); + } + }); + } + return { ui: { TopNavMenu: createTopNav(unifiedSearch, extensions), AggregateQueryTopNavMenu: createTopNav(unifiedSearch, extensions), createTopNavWithCustomContext: createCustomTopNav, }, + addSolutionNavigation: this.addSolutionNavigation.bind(this), }; } - public stop() {} + public stop() { + this.stop$.next(); + } + + private addSolutionNavigation(solutionNavigation: SolutionNavigation) { + // TODO: Implement. This handler will allow any plugin (e.g. security) to register a solution navigation. + } + + private addDefaultSolutionNavigation({ + core, + chrome, + cloud = {}, + }: { + core: CoreStart; + chrome: InternalChromeStart; + cloud?: CloudURLs; + }) { + const { project } = chrome; + const activeNavigationNodes$ = project.getActiveNavigationNodes$(); + const navigationTreeUi$ = project.getNavigationTreeUi$(); + + const getSideNavComponentGetter: ( + navTree: NavigationTreeDefinition, + id: string + ) => SolutionNavigationDefinition['sideNavComponentGetter'] = (navTree, id) => () => { + project.initNavigation(of(navTree), { cloudUrls: cloud }); + + return getSideNavComponent({ + navProps: { navigationTree$: navigationTreeUi$ }, + deps: { core, activeNodes$: activeNavigationNodes$ }, + }); + }; + + const solutionNavs: SolutionNavigationDefinitions = { + es: { + id: 'es', + title: 'Search', + icon: 'logoElasticsearch', + homePage: 'discover', // Temp. Wil be updated when all links are registered + sideNavComponentGetter: getSideNavComponentGetter( + { + body: [ + // Temp. In future work this will be loaded from a package + { + type: 'navGroup', + id: 'search_project_nav', + title: 'Search', + icon: 'logoElasticsearch', + defaultIsCollapsed: false, + isCollapsible: false, + breadcrumbStatus: 'hidden', + children: [], + }, + ], + }, + 'search' + ), + }, + oblt: { + id: 'oblt', + title: 'Observability', + icon: 'logoObservability', + homePage: 'discover', // Temp. Wil be updated when all links are registered + sideNavComponentGetter: getSideNavComponentGetter( + { + body: [ + // Temp. In future work this will be loaded from a package + { + type: 'navGroup', + id: 'observability_project_nav', + title: 'Observability', + icon: 'logoObservability', + defaultIsCollapsed: false, + isCollapsible: false, + breadcrumbStatus: 'hidden', + children: [], + }, + ], + }, + 'oblt' + ), + }, + security: { + id: 'security', + title: 'Security', + icon: 'logoSecurity', + homePage: 'discover', // Temp. Wil be updated when all links are registered + sideNavComponentGetter: getSideNavComponentGetter( + { + body: [ + // Temp. In future work this will be loaded from a package + { + type: 'navGroup', + id: 'security_project_nav', + title: 'Security', + icon: 'logoSecurity', + breadcrumbStatus: 'hidden', + defaultIsCollapsed: false, + children: [], + }, + ], + }, + 'security' + ), + }, + }; + + chrome.project.updateSolutionNavigations(solutionNavs, true); + } } diff --git a/src/plugins/navigation/public/side_navigation/index.tsx b/src/plugins/navigation/public/side_navigation/index.tsx new file mode 100644 index 0000000000000..959413fbe523f --- /dev/null +++ b/src/plugins/navigation/public/side_navigation/index.tsx @@ -0,0 +1,25 @@ +/* + * 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 React, { Suspense, type FC } from 'react'; +import { EuiLoadingSpinner } from '@elastic/eui'; +import type { SideNavComponent as SideNavComponentType } from '@kbn/core-chrome-browser'; + +import type { Props as NavigationProps } from './side_navigation'; + +const SideNavComponentLazy = React.lazy(() => import('./side_navigation')); + +const SideNavComponent: FC = (props) => ( + }> + + +); + +export const getSideNavComponent = (props: NavigationProps): SideNavComponentType => { + return () => ; +}; diff --git a/src/plugins/navigation/public/side_navigation/side_navigation.tsx b/src/plugins/navigation/public/side_navigation/side_navigation.tsx new file mode 100644 index 0000000000000..960db584365a9 --- /dev/null +++ b/src/plugins/navigation/public/side_navigation/side_navigation.tsx @@ -0,0 +1,32 @@ +/* + * 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 React, { type FC } from 'react'; +import { + Navigation, + NavigationKibanaProvider, + type NavigationProps, + type NavigationKibanaDependencies, +} from '@kbn/shared-ux-chrome-navigation'; + +export interface Props { + navProps: NavigationProps; + deps: NavigationKibanaDependencies; +} + +export const SideNavigation: FC = ({ navProps, deps }) => { + return ( + + + + ); +}; + +// We need to use the default export here because of the way React.lazy works +// eslint-disable-next-line import/no-default-export +export default SideNavigation; diff --git a/src/plugins/navigation/public/types.ts b/src/plugins/navigation/public/types.ts index 9dea8415ca874..9ba333ec641c1 100644 --- a/src/plugins/navigation/public/types.ts +++ b/src/plugins/navigation/public/types.ts @@ -8,6 +8,9 @@ import { AggregateQuery, Query } from '@kbn/es-query'; import { UnifiedSearchPublicPluginStart } from '@kbn/unified-search-plugin/public'; +import type { SolutionNavigationDefinition } from '@kbn/core-chrome-browser'; +import type { CloudSetup, CloudStart } from '@kbn/cloud-plugin/public'; + import { TopNavMenuProps, TopNavMenuExtensionsRegistrySetup, createTopNav } from './top_nav_menu'; import { RegisteredTopNavMenuData } from './top_nav_menu/top_nav_menu_data'; @@ -15,6 +18,8 @@ export interface NavigationPublicSetup { registerMenuItem: TopNavMenuExtensionsRegistrySetup['register']; } +export type SolutionNavigation = Omit; + export interface NavigationPublicStart { ui: { TopNavMenu: (props: TopNavMenuProps) => React.ReactElement; @@ -24,11 +29,28 @@ export interface NavigationPublicStart { customExtensions?: RegisteredTopNavMenuData[] ) => ReturnType; }; + /** Add a solution navigation to the header nav switcher. */ + addSolutionNavigation: (solutionNavigation: SolutionNavigation) => void; } -// eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface NavigationPublicSetupDependencies {} +export interface NavigationPublicSetupDependencies { + cloud?: CloudSetup; +} export interface NavigationPublicStartDependencies { unifiedSearch: UnifiedSearchPublicPluginStart; + cloud?: CloudStart; +} + +export type SolutionNavigationOptInStatus = 'visible' | 'hidden' | 'ask'; + +export type SolutionType = 'es' | 'oblt' | 'security'; + +export interface ConfigSchema { + solutionNavigation: { + featureOn: boolean; + enabled: boolean; + optInStatus: SolutionNavigationOptInStatus; + defaultSolution: SolutionType | 'ask'; + }; } diff --git a/src/plugins/navigation/server/config.ts b/src/plugins/navigation/server/config.ts new file mode 100644 index 0000000000000..abf62b0da37ed --- /dev/null +++ b/src/plugins/navigation/server/config.ts @@ -0,0 +1,39 @@ +/* + * 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 { schema, TypeOf } from '@kbn/config-schema'; +import type { PluginConfigDescriptor } from '@kbn/core-plugins-server'; + +const configSchema = schema.object({ + solutionNavigation: schema.object({ + featureOn: schema.boolean({ defaultValue: false }), + enabled: schema.boolean({ defaultValue: false }), + optInStatus: schema.oneOf( + [schema.literal('visible'), schema.literal('hidden'), schema.literal('ask')], + { defaultValue: 'ask' } + ), + defaultSolution: schema.oneOf( + [ + schema.literal('ask'), + schema.literal('es'), + schema.literal('oblt'), + schema.literal('security'), + ], + { defaultValue: 'es' } + ), + }), +}); + +export type NavigationConfig = TypeOf; + +export const config: PluginConfigDescriptor = { + exposeToBrowser: { + solutionNavigation: true, + }, + schema: configSchema, +}; diff --git a/src/plugins/navigation/server/index.ts b/src/plugins/navigation/server/index.ts new file mode 100644 index 0000000000000..24721a25854cd --- /dev/null +++ b/src/plugins/navigation/server/index.ts @@ -0,0 +1,16 @@ +/* + * 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 type { PluginInitializerContext } from '@kbn/core/server'; + +import { NavigationServerPlugin } from './plugin'; + +export { config } from './config'; + +export async function plugin(initializerContext: PluginInitializerContext) { + return new NavigationServerPlugin(initializerContext); +} diff --git a/src/plugins/navigation/server/plugin.ts b/src/plugins/navigation/server/plugin.ts new file mode 100644 index 0000000000000..2220d19cc6768 --- /dev/null +++ b/src/plugins/navigation/server/plugin.ts @@ -0,0 +1,74 @@ +/* + * 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 type { CoreSetup, CoreStart, Plugin, PluginInitializerContext } from '@kbn/core/server'; +import type { UiSettingsParams } from '@kbn/core/types'; + +import type { NavigationConfig } from './config'; +import type { + NavigationServerSetup, + NavigationServerSetupDependencies, + NavigationServerStart, + NavigationServerStartDependencies, +} from './types'; +import { getUiSettings } from './ui_settings'; + +export class NavigationServerPlugin + implements + Plugin< + NavigationServerSetup, + NavigationServerStart, + NavigationServerSetupDependencies, + NavigationServerStartDependencies + > +{ + constructor(private initializerContext: PluginInitializerContext) {} + + setup(core: CoreSetup, plugins: NavigationServerSetupDependencies) { + if (!this.isServerless()) { + const config = this.initializerContext.config.get(); + + if (config.solutionNavigation.featureOn) { + core.uiSettings.registerGlobal(getUiSettings(config)); + } + } + + return {}; + } + + start(core: CoreStart, plugins: NavigationServerStartDependencies) { + const config = this.initializerContext.config.get(); + + if (!Boolean(config.solutionNavigation.featureOn)) { + this.removeUiSettings(core, getUiSettings(config)); + } + + return {}; + } + + /** + * Remove UI settings values that might have been set when the feature was enabled. + * If the feature is disabled in kibana.yml, we want to remove the settings from the + * saved objects. + * + * @param core CoreStart + * @param uiSettings Navigation UI settings + */ + private removeUiSettings(core: CoreStart, uiSettings: Record) { + if (this.isServerless()) return; + + const savedObjectsClient = core.savedObjects.createInternalRepository(); + const uiSettingsClient = core.uiSettings.globalAsScopedToClient(savedObjectsClient); + + const keys = Object.keys(uiSettings); + return uiSettingsClient.removeMany(keys, { validateKeys: false, handleWriteErrors: true }); + } + + private isServerless() { + return this.initializerContext.env.packageInfo.buildFlavor === 'serverless'; + } +} diff --git a/src/plugins/navigation/server/types.ts b/src/plugins/navigation/server/types.ts new file mode 100644 index 0000000000000..920e1e5b8cd52 --- /dev/null +++ b/src/plugins/navigation/server/types.ts @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface NavigationServerSetup {} + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface NavigationServerStart {} + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface NavigationServerSetupDependencies {} + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface NavigationServerStartDependencies {} diff --git a/src/plugins/navigation/server/ui_settings.ts b/src/plugins/navigation/server/ui_settings.ts new file mode 100644 index 0000000000000..3d40ace802375 --- /dev/null +++ b/src/plugins/navigation/server/ui_settings.ts @@ -0,0 +1,110 @@ +/* + * 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 { schema } from '@kbn/config-schema'; +import { UiSettingsParams } from '@kbn/core/types'; +import { i18n } from '@kbn/i18n'; + +import { + ENABLE_SOLUTION_NAV_UI_SETTING_ID, + DEFAULT_SOLUTION_NAV_UI_SETTING_ID, + OPT_IN_STATUS_SOLUTION_NAV_UI_SETTING_ID, +} from '../common/constants'; +import { NavigationConfig } from './config'; + +const optInStatusOptionLabels = { + visible: i18n.translate('navigation.advancedSettings.optInVisibleStatus', { + defaultMessage: 'Visible', + }), + hidden: i18n.translate('navigation.advancedSettings.optInHiddenStatus', { + defaultMessage: 'Hidden', + }), + ask: i18n.translate('navigation.advancedSettings.optInAskStatus', { + defaultMessage: 'Ask', + }), +}; + +const solutionsOptionLabels = { + ask: i18n.translate('navigation.advancedSettings.askUserWhichSolution', { + defaultMessage: 'Ask user to choose a solution', + }), + es: i18n.translate('navigation.advancedSettings.searchSolution', { + defaultMessage: 'Search', + }), + oblt: i18n.translate('navigation.advancedSettings.observabilitySolution', { + defaultMessage: 'Observability', + }), + security: i18n.translate('navigation.advancedSettings.securitySolution', { + defaultMessage: 'Security', + }), +}; + +const categoryLabel = i18n.translate('navigation.uiSettings.categoryLabel', { + defaultMessage: 'Technical preview', +}); + +/** + * uiSettings definitions for Navigation + */ +export const getUiSettings = (config: NavigationConfig): Record => { + return { + [ENABLE_SOLUTION_NAV_UI_SETTING_ID]: { + category: [categoryLabel], + name: i18n.translate('navigation.uiSettings.enableSolutionNav.name', { + defaultMessage: 'Enable solution navigation', + }), + description: i18n.translate('navigation.uiSettings.enableSolutionNav.description', { + defaultMessage: 'Let users opt in to the new solution navigation experience.', + }), + schema: schema.boolean(), + value: config.solutionNavigation.enabled, + order: 1, + }, + [OPT_IN_STATUS_SOLUTION_NAV_UI_SETTING_ID]: { + category: [categoryLabel], + description: i18n.translate('navigation.uiSettings.optInStatusSolutionNav.description', { + defaultMessage: `Define how user will opt-in to the new navigation. +
    +
  • {visible}: The new navigation is visible immediately to all user. They will be able to opt-out from their user profile.
  • +
  • {hidden}: The new navigation is hidden by default. Users can opt-in from their user profile. No banners are shown.
  • +
  • {ask}: Show a banner to the users inviting them to try the new navigation experience.
  • +
`, + values: { + visible: optInStatusOptionLabels.visible, + hidden: optInStatusOptionLabels.hidden, + ask: optInStatusOptionLabels.ask, + }, + }), + name: i18n.translate('navigation.uiSettings.optInStatusSolutionNav.name', { + defaultMessage: 'Opt-in behaviour', + }), + type: 'select', + schema: schema.string(), + value: config.solutionNavigation.optInStatus, + options: ['visible', 'hidden', 'ask'], + optionLabels: optInStatusOptionLabels, + order: 2, + }, + [DEFAULT_SOLUTION_NAV_UI_SETTING_ID]: { + category: [categoryLabel], + description: i18n.translate('navigation.uiSettings.defaultSolutionNav.description', { + defaultMessage: + 'The default solution to display to the users once they opt-in to the new navigation.', + }), + name: i18n.translate('navigation.uiSettings.defaultSolutionNav.name', { + defaultMessage: 'Default solution', + }), + type: 'select', + schema: schema.string(), + value: config.solutionNavigation.defaultSolution, + options: ['ask', 'es', 'oblt', 'security'], + optionLabels: solutionsOptionLabels, + order: 2, + }, + }; +}; diff --git a/src/plugins/navigation/tsconfig.json b/src/plugins/navigation/tsconfig.json index d10df84c43f8b..6befc349f606d 100644 --- a/src/plugins/navigation/tsconfig.json +++ b/src/plugins/navigation/tsconfig.json @@ -3,7 +3,13 @@ "compilerOptions": { "outDir": "target/types", }, - "include": ["public/**/*"], + "include": [ + "index.ts", + "common/**/*.ts", + "public/**/*.ts", + "public/**/*.tsx", + "server/**/*.ts" + ], "kbn_references": [ "@kbn/core", "@kbn/unified-search-plugin", @@ -11,6 +17,13 @@ "@kbn/i18n-react", "@kbn/test-jest-helpers", "@kbn/react-kibana-mount", + "@kbn/core-chrome-browser", + "@kbn/core-chrome-browser-internal", + "@kbn/shared-ux-chrome-navigation", + "@kbn/cloud-plugin", + "@kbn/config-schema", + "@kbn/core-plugins-server", + "@kbn/i18n", ], "exclude": [ "target/**/*", diff --git a/src/plugins/presentation_util/public/services/create/index.ts b/src/plugins/presentation_util/public/services/create/index.ts index d616d7bee20c8..32b3638f1a623 100644 --- a/src/plugins/presentation_util/public/services/create/index.ts +++ b/src/plugins/presentation_util/public/services/create/index.ts @@ -27,7 +27,7 @@ type ServiceHooks = { [K in keyof Services]: { useService: () => Servi * * The `Services` generic determines the shape of all service APIs being produced. */ -export class PluginServices { +export class PluginServices> { private registry: PluginServiceRegistry | null = null; /** diff --git a/src/plugins/presentation_util/public/services/create/provider.tsx b/src/plugins/presentation_util/public/services/create/provider.tsx index c95231c6826d6..0cebcce5e9572 100644 --- a/src/plugins/presentation_util/public/services/create/provider.tsx +++ b/src/plugins/presentation_util/public/services/create/provider.tsx @@ -16,9 +16,11 @@ import { PluginServiceFactory } from './factory'; * The `StartParameters` generic determines what parameters are expected to * start the service. */ -export type PluginServiceProviders = { +export type PluginServiceProviders< + Services extends Record, + StartParameters = {} +> = { [K in keyof Services]: PluginServiceProvider< - // @ts-expect-error upgrade typescript v4.9.5 Services[K], StartParameters, Services, diff --git a/src/plugins/presentation_util/public/services/create/providers_mediator.ts b/src/plugins/presentation_util/public/services/create/providers_mediator.ts index dd5937149850c..f7ffce71338c3 100644 --- a/src/plugins/presentation_util/public/services/create/providers_mediator.ts +++ b/src/plugins/presentation_util/public/services/create/providers_mediator.ts @@ -9,7 +9,10 @@ import { DependencyManager } from './dependency_manager'; import { PluginServiceProviders, PluginServiceRequiredServices } from './provider'; -export class PluginServiceProvidersMediator { +export class PluginServiceProvidersMediator< + Services extends Record, + StartParameters +> { constructor(private readonly providers: PluginServiceProviders) {} start(params: StartParameters) { diff --git a/src/plugins/presentation_util/public/services/create/registry.tsx b/src/plugins/presentation_util/public/services/create/registry.tsx index 8369815a042af..056822408f8be 100644 --- a/src/plugins/presentation_util/public/services/create/registry.tsx +++ b/src/plugins/presentation_util/public/services/create/registry.tsx @@ -18,7 +18,10 @@ import { PluginServiceProvidersMediator } from './providers_mediator'; * The `StartParameters` generic determines what parameters are expected to * start the service. */ -export class PluginServiceRegistry { +export class PluginServiceRegistry< + Services extends Record, + StartParameters = {} +> { private providers: PluginServiceProviders; private providersMediator: PluginServiceProvidersMediator; private _isStarted = false; diff --git a/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/rollup_search_strategy.ts b/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/rollup_search_strategy.ts index 35223f5159a86..89236a9fa5d6e 100644 --- a/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/rollup_search_strategy.ts +++ b/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/rollup_search_strategy.ts @@ -8,6 +8,7 @@ import { getCapabilitiesForRollupIndices } from '@kbn/data-plugin/server'; import type { DataViewsService } from '@kbn/data-views-plugin/common'; +import { DataViewType } from '@kbn/data-views-plugin/common'; import { AbstractSearchStrategy, EsSearchRequest } from './abstract_search_strategy'; import { RollupSearchCapabilities } from '../capabilities/rollup_search_capabilities'; @@ -30,7 +31,7 @@ export class RollupSearchStrategy extends AbstractSearchStrategy { esRequests: EsSearchRequest[], trackedEsSearches?: TrackedEsSearches ) { - return super.search(requestContext, req, esRequests, trackedEsSearches, 'rollup'); + return super.search(requestContext, req, esRequests, trackedEsSearches, DataViewType.ROLLUP); } async getRollupData( @@ -60,7 +61,7 @@ export class RollupSearchStrategy extends AbstractSearchStrategy { if ( indexPatternString && ((!indexPattern && !isIndexPatternContainsWildcard(indexPatternString)) || - indexPattern?.type === 'rollup') + indexPattern?.type === DataViewType.ROLLUP) ) { const rollupData = await this.getRollupData(requestContext, indexPatternString); const rollupIndices = getRollupIndices(rollupData); @@ -96,7 +97,7 @@ export class RollupSearchStrategy extends AbstractSearchStrategy { capabilities?: unknown ) { return super.getFieldsForWildcard(fetchedIndexPattern, indexPatternsService, capabilities, { - type: 'rollup', + type: DataViewType.ROLLUP, rollupIndex: fetchedIndexPattern.indexPatternString, }); } diff --git a/test/api_integration/apis/custom_integration/integrations.ts b/test/api_integration/apis/custom_integration/integrations.ts index fd974a92adb1e..a924b416f30c8 100644 --- a/test/api_integration/apis/custom_integration/integrations.ts +++ b/test/api_integration/apis/custom_integration/integrations.ts @@ -22,7 +22,7 @@ export default function ({ getService }: FtrProviderContext) { expect(resp.body).to.be.an('array'); - expect(resp.body.length).to.be(56); + expect(resp.body.length).to.be(49); // Test for sample data card expect(resp.body.findIndex((c: { id: string }) => c.id === 'sample_data_all')).to.be.above( diff --git a/test/functional/apps/dashboard_elements/links/links_create_edit.ts b/test/functional/apps/dashboard_elements/links/links_create_edit.ts index e0abfffbad181..ce50c82c06b48 100644 --- a/test/functional/apps/dashboard_elements/links/links_create_edit.ts +++ b/test/functional/apps/dashboard_elements/links/links_create_edit.ts @@ -37,7 +37,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const DASHBOARD_NAME = 'Test Links panel'; const LINKS_PANEL_NAME = 'Some links'; - describe('links panel create and edit', () => { + // Failing: See https://github.com/elastic/kibana/issues/177675 + describe.skip('links panel create and edit', () => { describe('creation', async () => { before(async () => { await dashboard.navigateToApp(); diff --git a/test/plugin_functional/test_suites/core_plugins/rendering.ts b/test/plugin_functional/test_suites/core_plugins/rendering.ts index b68ff285076e3..e15d9947ecc6a 100644 --- a/test/plugin_functional/test_suites/core_plugins/rendering.ts +++ b/test/plugin_functional/test_suites/core_plugins/rendering.ts @@ -161,6 +161,10 @@ export default function ({ getService }: PluginFunctionalProviderContext) { 'monitoring.ui.enabled (boolean)', 'monitoring.ui.min_interval_seconds (number)', 'monitoring.ui.show_license_expiration (boolean)', + 'navigation.solutionNavigation.featureOn (boolean)', + 'navigation.solutionNavigation.enabled (boolean)', + 'navigation.solutionNavigation.optInStatus (alternatives)', + 'navigation.solutionNavigation.defaultSolution (alternatives)', 'newsfeed.fetchInterval (duration)', 'newsfeed.mainInterval (duration)', 'newsfeed.service.pathTemplate (string)', diff --git a/x-pack/plugins/canvas/canvas_plugin_src/renderers/markdown/index.tsx b/x-pack/plugins/canvas/canvas_plugin_src/renderers/markdown/index.tsx index bb8bf638daa12..9ad4ef51ca04c 100644 --- a/x-pack/plugins/canvas/canvas_plugin_src/renderers/markdown/index.tsx +++ b/x-pack/plugins/canvas/canvas_plugin_src/renderers/markdown/index.tsx @@ -29,22 +29,24 @@ export const getMarkdownRenderer = render(domNode, config, handlers) { const fontStyle = config.font ? config.font.spec : {}; - ReactDOM.render( - - - {config.content} - - , - domNode, - () => handlers.done() - ); + if (config.content) { + ReactDOM.render( + + + {config.content} + + , + domNode, + () => handlers.done() + ); - handlers.onDestroy(() => ReactDOM.unmountComponentAtNode(domNode)); + handlers.onDestroy(() => ReactDOM.unmountComponentAtNode(domNode)); + } }, }); diff --git a/x-pack/plugins/cases/public/components/all_cases/severity_filter.test.tsx b/x-pack/plugins/cases/public/components/all_cases/severity_filter.test.tsx index ca09d53501e5f..66b808dca5591 100644 --- a/x-pack/plugins/cases/public/components/all_cases/severity_filter.test.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/severity_filter.test.tsx @@ -14,7 +14,8 @@ import { screen, waitFor } from '@testing-library/react'; import { waitForEuiPopoverOpen } from '@elastic/eui/lib/test/rtl'; import { SeverityFilter } from './severity_filter'; -describe('Severity form field', () => { +// FLAKY: https://github.com/elastic/kibana/issues/176336 +describe.skip('Severity form field', () => { const onChange = jest.fn(); let appMockRender: AppMockRenderer; const props = { diff --git a/x-pack/plugins/cases/public/components/cases_context/use_application.tsx b/x-pack/plugins/cases/public/components/cases_context/use_application.tsx index f21c40b6ee603..4ea44c087705d 100644 --- a/x-pack/plugins/cases/public/components/cases_context/use_application.tsx +++ b/x-pack/plugins/cases/public/components/cases_context/use_application.tsx @@ -5,6 +5,7 @@ * 2.0. */ import useObservable from 'react-use/lib/useObservable'; +import type { BehaviorSubject, Observable } from 'rxjs'; import { useKibana } from '../../common/lib/kibana'; interface UseApplicationReturn { @@ -12,11 +13,28 @@ interface UseApplicationReturn { appTitle: string | undefined; } +const isBehaviorSubjectObservable = ( + observable: Observable +): observable is BehaviorSubject => 'value' in observable; + +/** + * Checks if the observable is stateful and, in case, sets up `useObservable` with an initial value + */ +const useStatefulObservable = (observable: Observable) => { + let initialValue: T | undefined; + + if (isBehaviorSubjectObservable(observable)) { + initialValue = observable.value; + } + + return useObservable(observable, initialValue); +}; + export const useApplication = (): UseApplicationReturn => { const { currentAppId$, applications$ } = useKibana().services.application; // retrieve the most recent value from the BehaviorSubject - const appId = useObservable(currentAppId$); - const applications = useObservable(applications$); + const appId = useStatefulObservable(currentAppId$); + const applications = useStatefulObservable(applications$); const appTitle = appId ? applications?.get(appId)?.category?.label ?? applications?.get(appId)?.title diff --git a/x-pack/plugins/cases/public/components/category/category_form_field.test.tsx b/x-pack/plugins/cases/public/components/category/category_form_field.test.tsx index cdaae6f49c5cc..d656bdf499eb0 100644 --- a/x-pack/plugins/cases/public/components/category/category_form_field.test.tsx +++ b/x-pack/plugins/cases/public/components/category/category_form_field.test.tsx @@ -16,7 +16,17 @@ import { categories } from '../../containers/mock'; import { MAX_CATEGORY_LENGTH } from '../../../common/constants'; import { FormTestComponent } from '../../common/test_utils'; -describe('Category', () => { +// FLAKY: https://github.com/elastic/kibana/issues/177791 +// FLAKY: https://github.com/elastic/kibana/issues/177792 +// FLAKY: https://github.com/elastic/kibana/issues/177793 +// FLAKY: https://github.com/elastic/kibana/issues/177794 +// FLAKY: https://github.com/elastic/kibana/issues/177795 +// FLAKY: https://github.com/elastic/kibana/issues/177796 +// FLAKY: https://github.com/elastic/kibana/issues/171605 +// FLAKY: https://github.com/elastic/kibana/issues/171606 +// FLAKY: https://github.com/elastic/kibana/issues/171607 +// FLAKY: https://github.com/elastic/kibana/issues/171608 +describe.skip('Category', () => { let appMockRender: AppMockRenderer; const onSubmit = jest.fn(); diff --git a/x-pack/plugins/cases/public/components/create/flyout/create_case_flyout.test.tsx b/x-pack/plugins/cases/public/components/create/flyout/create_case_flyout.test.tsx index ae41ae9ac2648..f23cd4a0c723d 100644 --- a/x-pack/plugins/cases/public/components/create/flyout/create_case_flyout.test.tsx +++ b/x-pack/plugins/cases/public/components/create/flyout/create_case_flyout.test.tsx @@ -39,7 +39,8 @@ const defaultProps = { owner: 'securitySolution', }; -describe('CreateCaseFlyout', () => { +// FLAKY: https://github.com/elastic/kibana/issues/174525 +describe.skip('CreateCaseFlyout', () => { let appMockRenderer: AppMockRenderer; beforeEach(() => { diff --git a/x-pack/plugins/cases/public/components/user_actions/property_actions/alert_property_actions.test.tsx b/x-pack/plugins/cases/public/components/user_actions/property_actions/alert_property_actions.test.tsx index ac2d1d245b56b..64dfa08944ea1 100644 --- a/x-pack/plugins/cases/public/components/user_actions/property_actions/alert_property_actions.test.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/property_actions/alert_property_actions.test.tsx @@ -17,7 +17,8 @@ import { } from '../../../common/mock'; import { AlertPropertyActions } from './alert_property_actions'; -describe('AlertPropertyActions', () => { +// FLAKY: https://github.com/elastic/kibana/issues/174667 +describe.skip('AlertPropertyActions', () => { let appMock: AppMockRenderer; const props = { diff --git a/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/bulk_action/utils.ts b/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/bulk_action/utils.ts index 5b592b6b9926c..6fbd4cf07d5c8 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/bulk_action/utils.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/bulk_action/utils.ts @@ -42,8 +42,9 @@ const disableDetectionRules = async ( ): Promise => { const detectionRulesIdsToDisable = await getDetectionRuleIdsToDisable(detectionRules); if (!detectionRulesIdsToDisable.length) return []; - await detectionRulesClient.bulkDisableRules({ ids: detectionRulesIdsToDisable }); - return detectionRulesIdsToDisable; + const uniqueDetectionRulesIdsToDisable = [...new Set(detectionRulesIdsToDisable)]; // Prevent muting the same rule twice. + await detectionRulesClient.bulkDisableRules({ ids: uniqueDetectionRulesIdsToDisable }); + return uniqueDetectionRulesIdsToDisable; }; export const getDetectionRules = async ( diff --git a/x-pack/plugins/embeddable_enhanced/public/plugin.ts b/x-pack/plugins/embeddable_enhanced/public/plugin.ts index ed829a9326e9e..b46390d529c23 100644 --- a/x-pack/plugins/embeddable_enhanced/public/plugin.ts +++ b/x-pack/plugins/embeddable_enhanced/public/plugin.ts @@ -23,6 +23,7 @@ import { AdvancedUiActionsSetup, AdvancedUiActionsStart, } from '@kbn/ui-actions-enhanced-plugin/public'; +import type { FinderAttributes } from '@kbn/saved-objects-finder-plugin/common'; import { EnhancedEmbeddable } from './types'; import { EmbeddableActionStorage, @@ -76,7 +77,7 @@ export class EmbeddableEnhancedPlugin I extends EmbeddableInput = EmbeddableInput, O extends EmbeddableOutput = EmbeddableOutput, E extends IEmbeddable = IEmbeddable, - T = unknown + T extends FinderAttributes = {} >( def: EmbeddableFactoryDefinition ): EmbeddableFactory => { diff --git a/x-pack/plugins/embeddable_enhanced/tsconfig.json b/x-pack/plugins/embeddable_enhanced/tsconfig.json index 6a3face73f9ca..2c7f1c5d23270 100644 --- a/x-pack/plugins/embeddable_enhanced/tsconfig.json +++ b/x-pack/plugins/embeddable_enhanced/tsconfig.json @@ -15,6 +15,7 @@ "@kbn/kibana-utils-plugin", "@kbn/data-plugin", "@kbn/utility-types", + "@kbn/saved-objects-finder-plugin", ], "exclude": [ "target/**/*", diff --git a/x-pack/plugins/enterprise_search/common/types/connector_stats.ts b/x-pack/plugins/enterprise_search/common/types/connector_stats.ts new file mode 100644 index 0000000000000..b48d75120634d --- /dev/null +++ b/x-pack/plugins/enterprise_search/common/types/connector_stats.ts @@ -0,0 +1,121 @@ +/* + * 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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export interface ConnectorStats { + id: string; + serviceType?: string | null; + isNative?: boolean; + isDeleted: boolean; + status?: string; + indexName?: string | null; + dlsEnabled?: boolean; + sslEnabled?: boolean; + fetchSelectively?: boolean; + textExtractionServiceEnabled?: boolean; + documents?: DocumentsStats; + dataSourceSpecific?: DataSourceSpecificStats; + scheduling?: { + accessControl: Scheduling; + full: Scheduling; + incremental: Scheduling; + }; + syncRules?: { + active: { + withBasicRules: boolean; + withAdvancedRules: boolean; + }; + draft: { + withBasicRules: boolean; + withAdvancedRules: boolean; + }; + }; + ingestPipeline?: { + name: string; + extractBinaryContent: boolean; + reduceWhitespace: boolean; + runMLInference: boolean; + }; + syncJobs?: SyncJobStats; +} + +export interface DataSourceSpecificStats { + confluence?: { + dataSourceType: string; + }; + github?: { + isCloud: boolean; + }; + jira?: { + dataSourceType: string; + }; + mongodb?: { + directConnect: boolean; + }; + mssql?: { + validateHost: boolean; + tables: number; + }; + mysql?: { + tables: number; + }; + oracle?: { + tables: number; + }; + postgresql?: { + tables: number; + }; + slack?: { + autoJoinChannelsEnabled: boolean; + syncUsersEnabled: boolean; + fetchLastNDays: number; + }; + zoom?: { + recordingAge: number; + }; +} + +export interface DocumentsStats { + total: number; + volume: number; + inLastSync: number; +} + +interface Scheduling { + enabled: boolean; + interval: string; +} + +export interface SyncJobStats { + overall: SyncJobStatsDetails; + withTextExtractionServiceEnabled?: SyncJobStatsDetails; +} + +export interface SyncJobStatsDetails { + total: number; + last30Days?: SyncJobStatsByType; + last7Days?: SyncJobStatsByType; +} + +export interface SyncJobStatsByType { + overall: SyncJobStatsByState; + accessControl?: SyncJobStatsByState; + full?: SyncJobStatsByState; + incremental?: SyncJobStatsByState; +} + +export interface SyncJobStatsByState { + total: number; + manual: number; + scheduled: number; + completed: number; + errored: number; + canceled: number; + suspended: number; + idle: number; + running: number; + totalDurationSeconds: number; +} diff --git a/x-pack/plugins/enterprise_search/common/types/index.ts b/x-pack/plugins/enterprise_search/common/types/index.ts index bbd14f9f968c8..650a852f47e6b 100644 --- a/x-pack/plugins/enterprise_search/common/types/index.ts +++ b/x-pack/plugins/enterprise_search/common/types/index.ts @@ -71,5 +71,6 @@ export interface ClientConfigType { }; } +export type { ConnectorStats } from './connector_stats'; export type { ElasticsearchIndexWithPrivileges } from './indices'; export type { KibanaDeps } from './kibana_deps'; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/search_indices.mock.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/search_indices.mock.ts index 38affc5fd9c57..6312cd1da4437 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/search_indices.mock.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/search_indices.mock.ts @@ -121,7 +121,9 @@ export const indices: ElasticsearchIndexWithIngestion[] = [ last_access_control_sync_error: null, last_access_control_sync_scheduled_at: null, last_access_control_sync_status: SyncStatus.COMPLETED, + last_deleted_document_count: null, last_incremental_sync_scheduled_at: null, + last_indexed_document_count: null, last_seen: null, last_sync_error: null, last_sync_scheduled_at: null, @@ -248,7 +250,9 @@ export const indices: ElasticsearchIndexWithIngestion[] = [ last_access_control_sync_error: null, last_access_control_sync_scheduled_at: null, last_access_control_sync_status: SyncStatus.COMPLETED, + last_deleted_document_count: null, last_incremental_sync_scheduled_at: null, + last_indexed_document_count: null, last_seen: null, last_sync_error: null, last_sync_scheduled_at: null, diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/view_index.mock.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/view_index.mock.ts index e479982971a7f..c4abfbd2fc6dd 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/view_index.mock.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/view_index.mock.ts @@ -127,7 +127,9 @@ export const connectorIndex: ConnectorViewIndex = { last_access_control_sync_error: null, last_access_control_sync_scheduled_at: null, last_access_control_sync_status: SyncStatus.COMPLETED, + last_deleted_document_count: null, last_incremental_sync_scheduled_at: null, + last_indexed_document_count: null, last_seen: null, last_sync_error: null, last_sync_scheduled_at: null, @@ -258,7 +260,9 @@ export const crawlerIndex: CrawlerViewIndex = { last_access_control_sync_error: null, last_access_control_sync_scheduled_at: null, last_access_control_sync_status: SyncStatus.COMPLETED, + last_deleted_document_count: null, last_incremental_sync_scheduled_at: null, + last_indexed_document_count: null, last_seen: null, last_sync_error: null, last_sync_scheduled_at: null, diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_configuration.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_configuration.tsx index 5bca872f7290b..439115ffa1dec 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_configuration.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_configuration.tsx @@ -281,7 +281,7 @@ export const ConnectorConfiguration: React.FC = () => { - + { isLoading={isLoading} pageHeader={{ pageTitle: connector ? : '...', + rightSideGroupProps: { + gutterSize: 's', + responsive: false, + wrap: false, + }, rightSideItems: getHeaderActions(index, hasAppSearchAccess), tabs, }} diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_stats.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_stats.tsx index 39f7cfa4df188..a40f8bbb76a4c 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_stats.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_stats.tsx @@ -45,9 +45,13 @@ export interface StatCardProps { title: string; } +const noIndexText = i18n.translate('xpack.enterpriseSearch.connectors.connectorStats.noIndex', { + defaultMessage: 'No index related', +}); + export const StatCard: React.FC = ({ title, content, footer }) => { return ( - + @@ -108,7 +112,7 @@ export const ConnectorStats: React.FC = ({ connector, index - +

{i18n.translate( 'xpack.enterpriseSearch.connectors.connectorStats.p.DocumentsLabel', @@ -125,21 +129,27 @@ export const ConnectorStats: React.FC = ({ connector, index - - - {i18n.translate( - 'xpack.enterpriseSearch.connectors.connectorStats.seeDocumentsTextLabel', - { - defaultMessage: 'See documents', - } - )} + {connector.index_name ? ( + + + {i18n.translate( + 'xpack.enterpriseSearch.connectors.connectorStats.seeDocumentsTextLabel', + { + defaultMessage: 'See documents', + } + )} + + + ) : ( + + {noIndexText} - + )} } @@ -159,21 +169,19 @@ export const ConnectorStats: React.FC = ({ connector, index ) : ( - i18n.translate('xpack.enterpriseSearch.connectors.connectorStats.noIndex', { - defaultMessage: 'No index related', - }) + noIndexText ) } footer={ - - + + - + {i18n.translate( 'xpack.enterpriseSearch.connectors.connectorStats.configureLink', { @@ -206,23 +214,29 @@ export const ConnectorStats: React.FC = ({ connector, index ) } footer={ - - - - - {i18n.translate( - 'xpack.enterpriseSearch.connectors.connectorStats.managePipelines', - { - defaultMessage: 'Manage pipelines', - } - )} + + + {connector.index_name ? ( + + + {i18n.translate( + 'xpack.enterpriseSearch.connectors.connectorStats.managePipelines', + { + defaultMessage: 'Manage pipelines', + } + )} + + + ) : ( + + {noIndexText} - + )} } diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/native_connector_configuration.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/native_connector_configuration.tsx index 5cfcb8bf54735..f6f4ce570dd7e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/native_connector_configuration.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/native_connector_configuration.tsx @@ -195,7 +195,7 @@ export const NativeConnectorConfiguration: React.FC = () => { - + = ({ isCrawler }) => { const { data, isLoading, searchParams, isEmpty, connectors } = useValues(ConnectorsLogic); const { errorConnectingMessage } = useValues(HttpLogic); const [searchQuery, setSearchValue] = useState(''); + const [showMoreOptionsPopover, setShowMoreOptionsPopover] = useState(false); + const [showDefaultSettingsFlyout, setShowDefaultSettingsFlyout] = useState(false); + const { productFeatures } = useValues(KibanaLogic); useEffect(() => { setIsFirstRequest(); }, [isCrawler]); useEffect(() => { - fetchConnectors({ ...searchParams, searchQuery, fetchCrawlersOnly: isCrawler }); + fetchConnectors({ ...searchParams, fetchCrawlersOnly: isCrawler, searchQuery }); }, [searchParams.from, searchParams.size, searchQuery, isCrawler]); return !isLoading && isEmpty && !isCrawler ? ( @@ -87,49 +96,103 @@ export const Connectors: React.FC = ({ isCrawler }) => { }), rightSideGroupProps: { gutterSize: 's', + responsive: false, }, rightSideItems: isLoading ? [] : !isCrawler ? [ - { - KibanaLogic.values.navigateToUrl(NEW_INDEX_SELECT_CONNECTOR_PATH); - }} - > - - , - { - KibanaLogic.values.navigateToUrl(NEW_INDEX_SELECT_CONNECTOR_NATIVE_PATH); - }} - > - {i18n.translate( - 'xpack.enterpriseSearch.connectors.newNativeConnectorButtonLabel', - { - defaultMessage: 'New Native Connector', - } - )} - , - { - KibanaLogic.values.navigateToUrl(NEW_INDEX_SELECT_CONNECTOR_CLIENTS_PATH); - }} - > - {i18n.translate( - 'xpack.enterpriseSearch.connectors.newConnectorsClientButtonLabel', - { defaultMessage: 'New Connector Client' } - )} - , + + + { + KibanaLogic.values.navigateToUrl(NEW_INDEX_SELECT_CONNECTOR_PATH); + }} + > + + + + + setShowMoreOptionsPopover(false)} + button={ + setShowMoreOptionsPopover(!showMoreOptionsPopover)} + /> + } + > + { + KibanaLogic.values.navigateToUrl( + NEW_INDEX_SELECT_CONNECTOR_NATIVE_PATH + ); + }} + icon="plusInCircle" + > + {i18n.translate( + 'xpack.enterpriseSearch.connectors.newNativeConnectorButtonLabel', + { + defaultMessage: 'New Native Connector', + } + )} + , + { + KibanaLogic.values.navigateToUrl( + NEW_INDEX_SELECT_CONNECTOR_CLIENTS_PATH + ); + }} + > + {i18n.translate( + 'xpack.enterpriseSearch.connectors.newConnectorsClientButtonLabel', + { defaultMessage: 'New Connector Client' } + )} + , + ]} + /> + + + , + ...(productFeatures.hasDefaultIngestPipeline + ? [ + setShowDefaultSettingsFlyout(true)} + > + {i18n.translate( + 'xpack.enterpriseSearch.content.searchIndices.defaultSettings', + { + defaultMessage: 'Default settings', + } + )} + , + ] + : []), ] : [ = ({ isCrawler }) => { defaultMessage: 'New web crawler', })} , + ...(productFeatures.hasDefaultIngestPipeline + ? [ + setShowDefaultSettingsFlyout(true)} + > + {i18n.translate( + 'xpack.enterpriseSearch.content.searchIndices.defaultSettings', + { + defaultMessage: 'Default settings', + } + )} + , + ] + : []), ], }} > + {productFeatures.hasDefaultIngestPipeline && showDefaultSettingsFlyout && ( + setShowDefaultSettingsFlyout(false)} /> + )} {Boolean(errorConnectingMessage) && ( <> diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx index 6c4c377ddd110..51444b4967c91 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx @@ -229,6 +229,9 @@ export const SearchIndex: React.FC = () => { isLoading={isInitialLoading} pageHeader={{ pageTitle: indexName, + rightSideGroupProps: { + responsive: false, + }, rightSideItems: getHeaderActions(index, hasAppSearchAccess), }} > diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/search_indices.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/search_indices.tsx index 64ae1486d650c..1540b944b2dec 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/search_indices.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/search_indices.tsx @@ -34,12 +34,12 @@ import { NEW_API_PATH } from '../../routes'; import { EnterpriseSearchContentPageTemplate } from '../layout/page_template'; import { CannotConnect } from '../search_index/components/cannot_connect'; +import { DefaultSettingsFlyout } from '../settings/default_settings_flyout'; import { DeleteIndexModal } from './delete_index_modal'; import { IndicesLogic } from './indices_logic'; import { IndicesStats } from './indices_stats'; import { IndicesTable } from './indices_table'; - import './search_indices.scss'; export const baseBreadcrumbs = [ @@ -54,8 +54,9 @@ export const SearchIndices: React.FC = () => { const [showHiddenIndices, setShowHiddenIndices] = useState(false); const [onlyShowSearchOptimizedIndices, setOnlyShowSearchOptimizedIndices] = useState(false); const [searchQuery, setSearchValue] = useState(''); - const { config } = useValues(KibanaLogic); + const { config, productFeatures } = useValues(KibanaLogic); const { errorConnectingMessage } = useValues(HttpLogic); + const [showDefaultSettingsFlyout, setShowDefaultSettingsFlyout] = useState(false); useEffect(() => { // We don't want to trigger loading for each search query change, so we need this @@ -98,6 +99,9 @@ export const SearchIndices: React.FC = () => { ? undefined : { pageTitle, + rightSideGroupProps: { + gutterSize: 's', + }, rightSideItems: isLoading ? [] : [ @@ -116,10 +120,29 @@ export const SearchIndices: React.FC = () => { )} , + ...(productFeatures.hasDefaultIngestPipeline + ? [ + setShowDefaultSettingsFlyout(true)} + > + {i18n.translate( + 'xpack.enterpriseSearch.content.searchIndices.defaultSettings', + { + defaultMessage: 'Default settings', + } + )} + , + ] + : []), ], } } > + {productFeatures.hasDefaultIngestPipeline && showDefaultSettingsFlyout && ( + setShowDefaultSettingsFlyout(false)} /> + )} {config.host && config.canDeployEntSearch && errorConnectingMessage && ( <> diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/settings/default_settings_flyout.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/settings/default_settings_flyout.tsx new file mode 100644 index 0000000000000..fd866a4ec82d9 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/settings/default_settings_flyout.tsx @@ -0,0 +1,225 @@ +/* + * 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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import { useValues, useActions } from 'kea'; + +import { + EuiButton, + EuiButtonEmpty, + EuiCallOut, + EuiFlexGroup, + EuiFlexItem, + EuiFlyout, + EuiFlyoutBody, + EuiFlyoutFooter, + EuiFlyoutHeader, + EuiLink, + EuiSpacer, + EuiText, + EuiTitle, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n-react'; + +import { docLinks } from '../../../shared/doc_links'; + +import { SettingsLogic } from './settings_logic'; +import { SettingsPanel } from './settings_panel'; + +export interface DefaultSettingsFlyoutProps { + closeFlyout: () => void; +} + +const Callout = ( + + {i18n.translate('xpack.enterpriseSearch.defaultSettingsFlyout.callout.body', { + defaultMessage: + 'You can also enable or disable this feature for a specific index on the index’s configuration page.', + })} + +); +export const DefaultSettingsFlyout: React.FC = ({ closeFlyout }) => { + const { makeRequest, setPipeline } = useActions(SettingsLogic); + const { defaultPipeline, hasNoChanges, isLoading, pipelineState } = useValues(SettingsLogic); + const { + extract_binary_content: extractBinaryContent, + reduce_whitespace: reduceWhitespace, + run_ml_inference: runMLInference, + } = pipelineState; + return ( + + + +

+ {i18n.translate( + 'xpack.enterpriseSearch.defaultSettingsFlyout.h2.defaultSettingsLabel', + { defaultMessage: 'Default Settings' } + )} +

+ + + + +

+ + {i18n.translate( + 'xpack.enterpriseSearch.defaultSettingsFlyout.body.description.ingestPipelinesLink.link', + { + defaultMessage: 'ingest pipelines', + } + )} + + ), + }} + /> +

+
+ + + setPipeline({ + ...pipelineState, + extract_binary_content: !pipelineState.extract_binary_content, + }) + } + title={i18n.translate('xpack.enterpriseSearch.content.settings.contentExtraction.title', { + defaultMessage: 'Deployment wide content extraction', + })} + value={extractBinaryContent} + /> + + + setPipeline({ + ...pipelineState, + reduce_whitespace: !pipelineState.reduce_whitespace, + }) + } + title={i18n.translate( + 'xpack.enterpriseSearch.content.settings.whitespaceReduction.deploymentHeaderTitle', + { + defaultMessage: 'Deployment wide whitespace reduction', + } + )} + value={reduceWhitespace} + /> + + + {i18n.translate('xpack.enterpriseSearch.content.settings.mlInference.link', { + defaultMessage: 'Learn more about document enrichment with ML', + })} + + } + onChange={() => + setPipeline({ + ...pipelineState, + run_ml_inference: !pipelineState.run_ml_inference, + }) + } + title={i18n.translate( + 'xpack.enterpriseSearch.content.settings.mlInference.deploymentHeaderTitle', + { + defaultMessage: 'Deployment wide ML Inference Pipelines extraction', + } + )} + value={runMLInference} + /> +
+ + + + closeFlyout()} + data-test-subj={'entSearchContentSettingsCancelButtonButton'} + > + {i18n.translate('xpack.enterpriseSearch.content.settings.cancelButtonLabel', { + defaultMessage: 'Cancel', + })} + + + + + + setPipeline(defaultPipeline)} + data-test-subj={'entSearchContentSettingsResetButton'} + > + {i18n.translate('xpack.enterpriseSearch.content.settings.resetButtonLabel', { + defaultMessage: 'Reset', + })} + + + + makeRequest(pipelineState)} + data-test-subj={'entSearchContentSettingsSaveButton'} + > + {i18n.translate('xpack.enterpriseSearch.content.settings.saveButtonLabel', { + defaultMessage: 'Save', + })} + + + + + + + + ); +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/settings/index.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/settings/index.ts deleted file mode 100644 index 5f8bbf1491904..0000000000000 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/settings/index.ts +++ /dev/null @@ -1,8 +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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -export { Settings } from './settings'; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/settings/settings.test.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/settings/settings.test.tsx deleted file mode 100644 index 212425ddb874b..0000000000000 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/settings/settings.test.tsx +++ /dev/null @@ -1,45 +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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; - -import { screen } from '@testing-library/react'; - -import '@testing-library/jest-dom'; - -import { HttpSetupMock } from '@kbn/core-http-browser-mocks'; - -import { HttpLogic } from '../../../shared/http'; -import { TestHelper } from '../../../test_helpers/test_utils.test_helper'; -import { FetchDefaultPipelineApiLogic } from '../../api/connector/get_default_pipeline_api_logic'; - -import { Settings } from './settings'; - -test('displays Settings Save-Reset buttons disabled by default', async () => { - TestHelper.prepare(); - TestHelper.mountLogic(FetchDefaultPipelineApiLogic); - TestHelper.appendCallback(() => { - const http = HttpLogic.values.http as HttpSetupMock; - http.get.mockImplementationOnce(() => - Promise.resolve({ - extract_binary_content: true, - name: 'test', - reduce_whitespace: true, - run_ml_inference: true, - }) - ); - }); - TestHelper.render(); - - const saveButton = screen.getByTestId('entSearchContentSettingsSaveButton'); - const resetButton = screen.getByTestId('entSearchContentSettingsResetButton'); - - expect(saveButton).toHaveTextContent('Save'); - expect(saveButton).toBeDisabled(); - expect(resetButton).toHaveTextContent('Reset'); - expect(resetButton).toBeDisabled(); -}); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/settings/settings.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/settings/settings.tsx deleted file mode 100644 index 6c4e9c3c1178a..0000000000000 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/settings/settings.tsx +++ /dev/null @@ -1,168 +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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; - -import { useActions, useValues } from 'kea'; - -import { EuiButton, EuiLink, EuiSpacer } from '@elastic/eui'; -import { i18n } from '@kbn/i18n'; - -import { FormattedMessage } from '@kbn/i18n-react'; - -import { docLinks } from '../../../shared/doc_links'; -import { EnterpriseSearchContentPageTemplate } from '../layout/page_template'; - -import { SettingsLogic } from './settings_logic'; -import { SettingsPanel } from './settings_panel'; - -export const Settings: React.FC = () => { - const { makeRequest, setPipeline } = useActions(SettingsLogic); - const { defaultPipeline, hasNoChanges, isLoading, pipelineState } = useValues(SettingsLogic); - const { - extract_binary_content: extractBinaryContent, - reduce_whitespace: reduceWhitespace, - run_ml_inference: runMLInference, - } = pipelineState; - - return ( - - {i18n.translate('xpack.enterpriseSearch.content.settings.ingestLink', { - defaultMessage: 'ingest pipelines', - })} - - ), - }} - /> - ), - pageTitle: i18n.translate('xpack.enterpriseSearch.content.settings.headerTitle', { - defaultMessage: 'Content Settings', - }), - rightSideItems: [ - makeRequest(pipelineState)} - data-test-subj={'entSearchContentSettingsSaveButton'} - > - {i18n.translate('xpack.enterpriseSearch.content.settings.saveButtonLabel', { - defaultMessage: 'Save', - })} - , - setPipeline(defaultPipeline)} - data-test-subj={'entSearchContentSettingsResetButton'} - > - {i18n.translate('xpack.enterpriseSearch.content.settings.resetButtonLabel', { - defaultMessage: 'Reset', - })} - , - ], - }} - pageViewTelemetry="Settings" - isLoading={false} - > - - setPipeline({ - ...pipelineState, - extract_binary_content: !pipelineState.extract_binary_content, - }) - } - title={i18n.translate('xpack.enterpriseSearch.content.settings.contentExtraction.title', { - defaultMessage: 'Deployment wide content extraction', - })} - value={extractBinaryContent} - /> - - - setPipeline({ - ...pipelineState, - reduce_whitespace: !pipelineState.reduce_whitespace, - }) - } - title={i18n.translate( - 'xpack.enterpriseSearch.content.settings.whitespaceReduction.deploymentHeaderTitle', - { - defaultMessage: 'Deployment wide whitespace reduction', - } - )} - value={reduceWhitespace} - /> - - - {i18n.translate('xpack.enterpriseSearch.content.settings.mlInference.link', { - defaultMessage: 'Learn more about document enrichment with ML', - })} - - } - onChange={() => - setPipeline({ - ...pipelineState, - run_ml_inference: !pipelineState.run_ml_inference, - }) - } - title={i18n.translate( - 'xpack.enterpriseSearch.content.settings.mlInference.deploymentHeaderTitle', - { - defaultMessage: 'Deployment wide ML Inference Pipelines extraction', - } - )} - value={runMLInference} - /> - - ); -}; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/settings/settings_panel.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/settings/settings_panel.tsx index 673861d80e6ef..635d627b6d9b9 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/settings/settings_panel.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/settings/settings_panel.tsx @@ -16,7 +16,6 @@ import { EuiSwitchEvent, EuiText, } from '@elastic/eui'; -import { i18n } from '@kbn/i18n'; interface SettingsPanelProps { description: string; @@ -45,23 +44,19 @@ export const SettingsPanel: React.FC = ({

{description}

-

- {i18n.translate( - 'xpack.enterpriseSearch.content.settings.contentExtraction.descriptionTwo', - { - defaultMessage: - 'You can also enable or disable this feature for a specific index on the index’s configuration page.', - } - )} -

+ {link && ( + <> + + {link} + + )}
- {link && {link}}
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/index.test.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/index.test.tsx index 6b2a17ddee57d..9fcfe7c7fcfab 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/index.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/index.test.tsx @@ -18,7 +18,6 @@ import { SetupGuide } from '../enterprise_search_overview/components/setup_guide import { VersionMismatchPage } from '../shared/version_mismatch'; import { SearchIndicesRouter } from './components/search_indices'; -import { Settings } from './components/settings'; import { EnterpriseSearchContent, EnterpriseSearchContentConfigured } from '.'; @@ -49,7 +48,7 @@ describe('EnterpriseSearchContent', () => { }); it('renders EnterpriseSearchContentConfigured when config.host is not set & Ent Search cannot be deployed', () => { - setMockValues({ errorConnectingMessage: '', config: { canDeployEntSearch: false, host: '' } }); + setMockValues({ config: { canDeployEntSearch: false, host: '' }, errorConnectingMessage: '' }); const wrapper = shallow(); expect(wrapper.find(EnterpriseSearchContentConfigured)).toHaveLength(1); @@ -61,6 +60,5 @@ describe('EnterpriseSearchContentConfigured', () => { it('renders engine routes', () => { expect(wrapper.find(SearchIndicesRouter)).toHaveLength(1); - expect(wrapper.find(Settings)).toHaveLength(1); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/index.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/index.tsx index cd99649bcc88d..3e0240bc2538d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/index.tsx @@ -24,7 +24,6 @@ import { ConnectorDetailRouter } from './components/connector_detail/connector_d import { Connectors } from './components/connectors/connectors'; import { NotFound } from './components/not_found'; import { SearchIndicesRouter } from './components/search_indices'; -import { Settings } from './components/settings'; import { CONNECTORS_PATH, CONNECTOR_DETAIL_PATH, @@ -32,7 +31,6 @@ import { ERROR_STATE_PATH, ROOT_PATH, SEARCH_INDICES_PATH, - SETTINGS_PATH, SETUP_GUIDE_PATH, } from './routes'; @@ -88,9 +86,6 @@ export const EnterpriseSearchContentConfigured: React.FC - - - diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.test.tsx index 2e9f7d1d03aae..d643a2371984c 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.test.tsx @@ -57,12 +57,6 @@ const baseNavItems = [ items: undefined, name: 'Web crawlers', }, - { - href: '/app/enterprise_search/content/settings', - id: 'settings', - items: undefined, - name: 'Settings', - }, ], name: 'Content', }, @@ -366,15 +360,12 @@ describe('useEnterpriseSearchAnalyticsNav', () => { it('returns basic nav all params are empty', () => { const navItems = useEnterpriseSearchAnalyticsNav(); - // filter out settings item because we're setting hasDefaultIngestPipeline to false expect(navItems).toEqual( baseNavItems.map((item) => item.id === 'content' ? { ...item, - items: item.items?.filter( - (contentItem: { id: string }) => contentItem.id !== 'settings' - ), + items: item.items, } : item ) @@ -382,16 +373,13 @@ describe('useEnterpriseSearchAnalyticsNav', () => { }); it('returns basic nav if only name provided', () => { - // filter out settings item because we're setting hasDefaultIngestPipeline to false const navItems = useEnterpriseSearchAnalyticsNav('my-test-collection'); expect(navItems).toEqual( baseNavItems.map((item) => item.id === 'content' ? { ...item, - items: item.items?.filter( - (contentItem: { id: string }) => contentItem.id !== 'settings' - ), + items: item.items, } : item ) diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx index ba4a119ed808d..5f0efc3688d6d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx @@ -29,14 +29,13 @@ import { CONNECTORS_PATH, CRAWLERS_PATH, SEARCH_INDICES_PATH, - SETTINGS_PATH, } from '../../enterprise_search_content/routes'; import { KibanaLogic } from '../kibana'; import { generateNavLink } from './nav_link_helpers'; export const useEnterpriseSearchNav = () => { - const { isSidebarEnabled, productAccess, productFeatures } = useValues(KibanaLogic); + const { isSidebarEnabled, productAccess } = useValues(KibanaLogic); const indicesNavItems = useIndicesNav(); if (!isSidebarEnabled) return undefined; @@ -65,10 +64,10 @@ export const useEnterpriseSearchNav = () => { defaultMessage: 'Indices', }), ...generateNavLink({ + items: indicesNavItems, shouldNotCreateHref: true, shouldShowActiveForSubroutes: true, to: ENTERPRISE_SEARCH_CONTENT_PLUGIN.URL + SEARCH_INDICES_PATH, - items: indicesNavItems, }), }, { @@ -93,21 +92,6 @@ export const useEnterpriseSearchNav = () => { to: ENTERPRISE_SEARCH_CONTENT_PLUGIN.URL + CRAWLERS_PATH, }), }, - ...(productFeatures.hasDefaultIngestPipeline - ? [ - { - id: 'settings', - name: i18n.translate('xpack.enterpriseSearch.nav.contentSettingsTitle', { - defaultMessage: 'Settings', - }), - ...generateNavLink({ - shouldNotCreateHref: true, - shouldShowActiveForSubroutes: true, - to: ENTERPRISE_SEARCH_CONTENT_PLUGIN.URL + SETTINGS_PATH, - }), - }, - ] - : []), ], name: i18n.translate('xpack.enterpriseSearch.nav.contentTitle', { defaultMessage: 'Content', diff --git a/x-pack/plugins/enterprise_search/server/collectors/connectors/telemetry.test.ts b/x-pack/plugins/enterprise_search/server/collectors/connectors/telemetry.test.ts index 13ec0803ec8f5..13c3f808a20de 100644 --- a/x-pack/plugins/enterprise_search/server/collectors/connectors/telemetry.test.ts +++ b/x-pack/plugins/enterprise_search/server/collectors/connectors/telemetry.test.ts @@ -5,19 +5,18 @@ * 2.0. */ +import { mockLogger } from '../../__mocks__'; + +import { collectConnectorStats } from '@kbn/search-connectors'; import { createCollectorFetchContextMock } from '@kbn/usage-collection-plugin/server/mocks'; +import { ConnectorStats } from '../../../common/types'; + import { registerTelemetryUsageCollector } from './telemetry'; -const indexNotFoundError = { - meta: { - body: { - error: { - type: 'index_not_found_exception', - }, - }, - }, -}; +jest.mock('@kbn/search-connectors', () => ({ + collectConnectorStats: jest.fn(), +})); describe('Connectors Telemetry Usage Collector', () => { const makeUsageCollectorStub = jest.fn(); @@ -32,7 +31,7 @@ describe('Connectors Telemetry Usage Collector', () => { describe('registerTelemetryUsageCollector', () => { it('should make and register the usage collector', () => { - registerTelemetryUsageCollector(usageCollectionMock); + registerTelemetryUsageCollector(usageCollectionMock, mockLogger); expect(registerStub).toHaveBeenCalledTimes(1); expect(makeUsageCollectorStub).toHaveBeenCalledTimes(1); @@ -43,42 +42,30 @@ describe('Connectors Telemetry Usage Collector', () => { describe('fetchTelemetryMetrics', () => { it('should return telemetry data', async () => { - const fetchContextMock = createCollectorFetchContextMock(); - fetchContextMock.esClient.count = jest.fn().mockImplementation((query: any) => - Promise.resolve({ - count: query.query.bool.filter[0].term.is_native ? 5 : 2, - }) - ); - registerTelemetryUsageCollector(usageCollectionMock); + const connectorStats: ConnectorStats = { + id: '1', + isDeleted: false, + }; + (collectConnectorStats as jest.Mock).mockImplementation(() => [connectorStats]); + registerTelemetryUsageCollector(usageCollectionMock, mockLogger); const telemetryMetrics = await makeUsageCollectorStub.mock.calls[0][0].fetch( - fetchContextMock + createCollectorFetchContextMock() ); expect(telemetryMetrics).toEqual({ - native: { - total: 5, - }, - clients: { - total: 2, - }, + connectors: [connectorStats], }); }); - it('should return default telemetry on index not found error', async () => { - const fetchContextMock = createCollectorFetchContextMock(); - fetchContextMock.esClient.count = jest - .fn() - .mockImplementation(() => Promise.reject(indexNotFoundError)); - registerTelemetryUsageCollector(usageCollectionMock); + it('should return default telemetry when collectConnectorStats raises error', async () => { + (collectConnectorStats as jest.Mock).mockImplementation(() => { + throw new Error(); + }); + registerTelemetryUsageCollector(usageCollectionMock, mockLogger); const telemetryMetrics = await makeUsageCollectorStub.mock.calls[0][0].fetch( - fetchContextMock + createCollectorFetchContextMock() ); expect(telemetryMetrics).toEqual({ - native: { - total: 0, - }, - clients: { - total: 0, - }, + connectors: [], }); }); }); diff --git a/x-pack/plugins/enterprise_search/server/collectors/connectors/telemetry.ts b/x-pack/plugins/enterprise_search/server/collectors/connectors/telemetry.ts index 1a4712379b161..16c4feaa5626c 100644 --- a/x-pack/plugins/enterprise_search/server/collectors/connectors/telemetry.ts +++ b/x-pack/plugins/enterprise_search/server/collectors/connectors/telemetry.ts @@ -5,49 +5,329 @@ * 2.0. */ -import { ElasticsearchClient } from '@kbn/core/server'; +import { ElasticsearchClient, Logger } from '@kbn/core/server'; -import { CONNECTORS_INDEX } from '@kbn/search-connectors'; +import { collectConnectorStats } from '@kbn/search-connectors'; import { UsageCollectionSetup } from '@kbn/usage-collection-plugin/server'; -import { isIndexNotFoundException } from '../../utils/identify_exceptions'; +import { ConnectorStats } from '../../../common/types'; interface Telemetry { - native: { - total: number; - }; - clients: { - total: number; - }; + connectors: ConnectorStats[]; } const defaultTelemetryMetrics: Telemetry = { - native: { - total: 0, - }, - clients: { - total: 0, - }, + connectors: [], }; /** * Register the telemetry collector */ -export const registerTelemetryUsageCollector = (usageCollection: UsageCollectionSetup) => { +export const registerTelemetryUsageCollector = ( + usageCollection: UsageCollectionSetup, + log: Logger +) => { const telemetryUsageCollector = usageCollection.makeUsageCollector({ type: 'connectors', isReady: () => true, schema: { - native: { - total: { type: 'long' }, - }, - clients: { - total: { type: 'long' }, + connectors: { + type: 'array', + items: { + id: { type: 'keyword' }, + serviceType: { type: 'keyword' }, + isNative: { type: 'boolean' }, + isDeleted: { type: 'boolean' }, + status: { type: 'keyword' }, + indexName: { type: 'keyword' }, + dlsEnabled: { type: 'boolean' }, + sslEnabled: { type: 'boolean' }, + fetchSelectively: { type: 'boolean' }, + textExtractionServiceEnabled: { type: 'boolean' }, + documents: { + total: { type: 'long' }, + volume: { type: 'long' }, + inLastSync: { type: 'long' }, + }, + dataSourceSpecific: { + confluence: { + dataSourceType: { type: 'keyword' }, + }, + github: { + isCloud: { type: 'boolean' }, + }, + jira: { + dataSourceType: { type: 'keyword' }, + }, + mongodb: { + directConnect: { type: 'boolean' }, + }, + mssql: { + validateHost: { type: 'boolean' }, + tables: { type: 'long' }, + }, + mysql: { + tables: { type: 'long' }, + }, + oracle: { + tables: { type: 'long' }, + }, + postgresql: { + tables: { type: 'long' }, + }, + slack: { + autoJoinChannelsEnabled: { type: 'boolean' }, + syncUsersEnabled: { type: 'boolean' }, + fetchLastNDays: { type: 'long' }, + }, + zoom: { + recordingAge: { type: 'long' }, + }, + }, + scheduling: { + accessControl: { + enabled: { type: 'boolean' }, + interval: { type: 'text' }, + }, + full: { + enabled: { type: 'boolean' }, + interval: { type: 'text' }, + }, + incremental: { + enabled: { type: 'boolean' }, + interval: { type: 'text' }, + }, + }, + syncRules: { + active: { + withBasicRules: { type: 'boolean' }, + withAdvancedRules: { type: 'boolean' }, + }, + draft: { + withBasicRules: { type: 'boolean' }, + withAdvancedRules: { type: 'boolean' }, + }, + }, + ingestPipeline: { + name: { type: 'keyword' }, + extractBinaryContent: { type: 'boolean' }, + reduceWhitespace: { type: 'boolean' }, + runMLInference: { type: 'boolean' }, + }, + syncJobs: { + overall: { + total: { type: 'long' }, + last30Days: { + overall: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + accessControl: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + full: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + incremental: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + }, + last7Days: { + overall: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + accessControl: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + full: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + incremental: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + }, + }, + withTextExtractionServiceEnabled: { + total: { type: 'long' }, + last30Days: { + overall: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + accessControl: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + full: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + incremental: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + }, + last7Days: { + overall: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + accessControl: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + full: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + incremental: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + }, + }, + }, + }, }, }, async fetch({ esClient }) { - return await fetchTelemetryMetrics(esClient); + return await fetchTelemetryMetrics(esClient, log); }, }); usageCollection.registerCollector(telemetryUsageCollector); @@ -56,61 +336,17 @@ export const registerTelemetryUsageCollector = (usageCollection: UsageCollection /** * Fetch the aggregated telemetry metrics */ - -// @ts-ignore -export const fetchTelemetryMetrics = async (client: ElasticsearchClient): Promise => { +export const fetchTelemetryMetrics = async ( + client: ElasticsearchClient, + log: Logger +): Promise => { try { - const [nativeCountResponse, clientsCountResponse] = await Promise.all([ - client.count({ - index: CONNECTORS_INDEX, - query: { - bool: { - filter: [ - { - term: { - is_native: true, - }, - }, - ], - must_not: [ - { - term: { - service_type: { - value: 'elastic-crawler', - }, - }, - }, - ], - }, - }, - }), - client.count({ - index: CONNECTORS_INDEX, - query: { - bool: { - filter: [ - { - term: { - is_native: false, - }, - }, - ], - }, - }, - }), - ]); - + const connectors = await collectConnectorStats(client); return { - native: { - total: nativeCountResponse.count, - }, - clients: { - total: clientsCountResponse.count, - }, + connectors, } as Telemetry; } catch (error) { - if (isIndexNotFoundException(error)) { - return defaultTelemetryMetrics; - } + log.error(`Couldn't fetch telemetry due to error: ${error}`); + return defaultTelemetryMetrics; } }; diff --git a/x-pack/plugins/enterprise_search/server/integrations.ts b/x-pack/plugins/enterprise_search/server/integrations.ts index 957920d416af3..162ab362f9656 100644 --- a/x-pack/plugins/enterprise_search/server/integrations.ts +++ b/x-pack/plugins/enterprise_search/server/integrations.ts @@ -9,6 +9,8 @@ import type { HttpServiceSetup } from '@kbn/core/server'; import type { CustomIntegrationsPluginSetup } from '@kbn/custom-integrations-plugin/server'; import { i18n } from '@kbn/i18n'; +import { CONNECTOR_DEFINITIONS } from '@kbn/search-connectors'; + import { ConfigType } from '.'; export const registerEnterpriseSearchIntegrations = ( @@ -83,1040 +85,29 @@ export const registerEnterpriseSearchIntegrations = ( }); if (config.hasConnectors) { - customIntegrations.registerCustomIntegration({ - id: 'dropbox', - title: i18n.translate('xpack.enterpriseSearch.content.integrations.dropbox', { - defaultMessage: 'Dropbox', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.content.integrations.dropboxDescription', - { - defaultMessage: 'Search over your files and folders stored on Dropbox.', - } - ), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'datastore', - 'connector', - 'connector_client', - ...nativeSearchTag, - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=dropbox', - icons: [ - { - type: 'svg', - src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/dropbox.svg'), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'dropbox_paper', - title: i18n.translate('xpack.enterpriseSearch.content.integrations.dropboxPaper', { - defaultMessage: 'Dropbox Paper', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.content.integrations.dropboxPaperDescription', - { - defaultMessage: 'Search over your files and folders stored on Dropbox Paper.', - } - ), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'datastore', - 'connector', - 'connector_client', - ...nativeSearchTag, - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=dropbox', - icons: [ - { - type: 'svg', - src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/dropbox.svg'), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'github', - title: i18n.translate('xpack.enterpriseSearch.content.integrations.github', { - defaultMessage: 'GitHub', - }), - description: i18n.translate('xpack.enterpriseSearch.content.integrations.githubDescription', { - defaultMessage: 'Search over your projects and repos on GitHub.', - }), - categories: ['enterprise_search', 'elastic_stack', 'connector', 'connector_client'], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=github', - icons: [ - { - type: 'svg', - src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/github.svg'), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'github_server', - title: i18n.translate('xpack.enterpriseSearch.content.integrations.githubServer', { - defaultMessage: 'GitHub Enterprise Server', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.content.integrations.githubServerDescription', - { - defaultMessage: 'Search over your projects and repos on GitHub.', - } - ), - categories: ['enterprise_search', 'elastic_stack', 'connector', 'connector_client'], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=github', - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - '/plugins/enterpriseSearch/assets/source_icons/github_enterprise_server.svg' - ), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'gmail', - title: i18n.translate('xpack.enterpriseSearch.content.integrations.gmail', { - defaultMessage: 'Gmail', - }), - description: i18n.translate('xpack.enterpriseSearch.content.integrations.gmailDescription', { - defaultMessage: 'Search over your content on Gmail.', - }), - categories: ['enterprise_search', 'elastic_stack', 'connector', 'connector_client'], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=gmail', - icons: [ - { - type: 'svg', - src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/gmail.svg'), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'mongodb', - title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.mongoDBName', { - defaultMessage: 'MongoDB', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.mongoDBDescription', - { - defaultMessage: 'Search over your MongoDB content.', - } - ), - categories: [ - 'enterprise_search', - 'datastore', - 'elastic_stack', - ...nativeSearchTag, - 'connector', - 'connector_client', - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=mongodb', - icons: [ - { - type: 'svg', - src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/mongodb.svg'), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'mysql', - title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.mysqlName', { - defaultMessage: 'MySQL', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.mysqlDescription', - { - defaultMessage: 'Search over your MySQL content.', - } - ), - categories: [ - 'enterprise_search', - 'datastore', - 'elastic_stack', - ...nativeSearchTag, - 'connector', - 'connector_client', - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=mysql', - icons: [ - { - type: 'svg', - src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/mysql.svg'), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'onedrive', - title: i18n.translate('xpack.enterpriseSearch.integrations.oneDriveTitle', { - defaultMessage: 'OneDrive', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.oneDriveDescription', - { - defaultMessage: 'Search over your content on OneDrive.', - } - ), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'custom', - 'datastore', - 'connector', - 'connector_client', - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=onedrive', - icons: [ - { - type: 'svg', - src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/onedrive.svg'), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'build_a_connector', - title: i18n.translate('xpack.enterpriseSearch.integrations.buildAConnectorName', { - defaultMessage: 'Customized connector', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.integrations.buildAConnectorDescription', - { - defaultMessage: 'Search over data stored on custom data sources.', - } - ), - categories: ['enterprise_search', 'custom', 'elastic_stack', 'connector', 'connector_client'], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=custom', - icons: [ - { - type: 'eui', - src: 'logoEnterpriseSearch', - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'postgresql', - title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.postgresqlName', { - defaultMessage: 'PostgreSQL', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.postgreSQLDescription', - { - defaultMessage: 'Search over your content on PostgreSQL.', - } - ), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'custom', - 'datastore', - 'connector', - 'connector_client', - ...nativeSearchTag, - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=postgresql', - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - '/plugins/enterpriseSearch/assets/source_icons/postgresql.svg' - ), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'salesforce_sandbox', - title: i18n.translate('xpack.enterpriseSearch.integrations.salesforceSandboxTitle', { - defaultMessage: 'Salesforce Sandbox', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.salesforceSandboxDescription', - { - defaultMessage: 'Search over your content on Salesforce Sandbox.', - } - ), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'custom', - 'datastore', - 'connector', - 'connector_client', - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=salesforce', - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - '/plugins/enterpriseSearch/assets/source_icons/salesforce_sandbox.svg' - ), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'servicenow', - title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.serviceNowName', { - defaultMessage: 'ServiceNow', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.serviceNowDescription', - { - defaultMessage: 'Search over your content on ServiceNow.', - } - ), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'connector', - 'connector_client', - ...nativeSearchTag, - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=service_now', - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - '/plugins/enterpriseSearch/assets/source_icons/servicenow.svg' - ), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'salesforce', - title: i18n.translate('xpack.enterpriseSearch.integrations.salesforceName', { - defaultMessage: 'Salesforce', - }), - description: i18n.translate('xpack.enterpriseSearch.integrations.salesforceDescription', { - defaultMessage: 'Search over your content on Salesforce.', - }), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'connector', - 'connector_client', - ...nativeSearchTag, - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=salesforce', - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - '/plugins/enterpriseSearch/assets/source_icons/salesforce.svg' - ), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'sharepoint_online', - title: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineName', - { - defaultMessage: 'SharePoint Online', - } - ), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineDescription', - { - defaultMessage: 'Search over your content on SharePoint Online.', - } - ), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'connector', - 'connector_client', - ...nativeSearchTag, - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=sharepoint_online', - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - '/plugins/enterpriseSearch/assets/source_icons/sharepoint_online.svg' - ), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'sharepoint_server', - title: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerName', - { - defaultMessage: 'SharePoint Server', - } - ), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerDescription', - { - defaultMessage: 'Search over your content on SharePoint Server.', - } - ), - categories: ['enterprise_search', 'elastic_stack', 'custom', 'connector', 'connector_client'], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=sharepoint_server', - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - '/plugins/enterpriseSearch/assets/source_icons/sharepoint_server.svg' - ), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'slack', - title: i18n.translate('xpack.enterpriseSearch.content.integrations.slack', { - defaultMessage: 'Slack', - }), - description: i18n.translate('xpack.enterpriseSearch.content.integrations.slackDescription', { - defaultMessage: 'Search over your content on Slack.', - }), - categories: ['enterprise_search', 'elastic_stack', 'connector', 'connector_client'], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=slack', - icons: [ - { - type: 'svg', - src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/slack.svg'), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'oracle', - title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.oracleName', { - defaultMessage: 'Oracle', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.oracleDescription', - { - defaultMessage: 'Search over your content on Oracle.', - } - ), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'custom', - 'datastore', - 'connector', - 'connector_client', - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=oracle', - icons: [ - { - type: 'svg', - src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/oracle.svg'), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'mssql', - title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.msSqlName', { - defaultMessage: 'Microsoft SQL', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.msSqlDescription', - { - defaultMessage: 'Search over your content on Microsoft SQL Server.', - } - ), - categories: [ - 'enterprise_search', - 'custom', - 'elastic_stack', - 'datastore', - 'connector', - 'connector_client', - ...nativeSearchTag, - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=mssql', - icons: [ - { - type: 'svg', - src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/mssql.svg'), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'network_drive_connector', - title: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.networkDriveName', - { - defaultMessage: 'Network Drive', - } - ), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.netowkrDriveDescription', - { - defaultMessage: 'Search over your Network Drive content.', - } - ), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'connector', - 'connector_client', - ...nativeSearchTag, - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=network_drive', - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - '/plugins/enterpriseSearch/assets/source_icons/network_drive.svg' - ), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'amazon_s3', - title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.s3', { - defaultMessage: 'Amazon S3', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.s3Description', - { - defaultMessage: 'Search over your content on Amazon S3.', - } - ), - categories: [ - 'enterprise_search', - 'datastore', - 'elastic_stack', - 'connector', - 'connector_client', - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=s3', - icons: [ - { - type: 'svg', - src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/s3.svg'), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'google_cloud_storage', - title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.googleCloud', { - defaultMessage: 'Google Cloud Storage', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.googleCloudDescription', - { - defaultMessage: 'Search over your content on Google Cloud Storage.', - } - ), - categories: ['enterprise_search', 'elastic_stack', 'custom', 'connector', 'connector_client'], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=google_cloud_storage', - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - '/plugins/enterpriseSearch/assets/source_icons/google_cloud_storage.svg' - ), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'google_drive', - title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.googleDrive', { - defaultMessage: 'Google Drive', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.googleDriveDescription', - { - defaultMessage: 'Search over your content on Google Drive.', - } - ), - categories: ['enterprise_search', 'elastic_stack', 'custom', 'connector', 'connector_client'], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=google_drive', - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - '/plugins/enterpriseSearch/assets/source_icons/google_drive.svg' - ), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'azure_blob_storage', - title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.azureBlob', { - defaultMessage: 'Azure Blob Storage', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.azureBlobDescription', - { - defaultMessage: 'Search over your content on Azure Blob Storage.', - } - ), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'custom', - 'connector', - 'connector_client', - ...nativeSearchTag, - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=azure_blob_storage', - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - '/plugins/enterpriseSearch/assets/source_icons/azure_blob_storage.svg' - ), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - customIntegrations.registerCustomIntegration({ - id: 'confluence_cloud', - title: i18n.translate('xpack.enterpriseSearch.integrations.connectors.confluenceTitle', { - defaultMessage: 'Confluence Cloud', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.integrations.connectors.confluenceDescription', - { - defaultMessage: 'Search over your content on Confluence Cloud.', - } - ), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'custom', - 'connector', - 'connector_client', - ...nativeSearchTag, - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=confluence', - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - '/plugins/enterpriseSearch/assets/source_icons/confluence_cloud.svg' - ), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - customIntegrations.registerCustomIntegration({ - id: 'confluence_server', - title: i18n.translate( - 'xpack.enterpriseSearch.integrations.connectors.confluenceServerTitle', - { - defaultMessage: 'Confluence Server', - } - ), - description: i18n.translate( - 'xpack.enterpriseSearch.integrations.connectors.confluenceServerDescription', - { - defaultMessage: 'Search over your content on Confluence Server.', - } - ), - categories: ['enterprise_search', 'elastic_stack', 'custom', 'connector', 'connector_client'], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=confluence', - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - '/plugins/enterpriseSearch/assets/source_icons/confluence_cloud.svg' - ), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - customIntegrations.registerCustomIntegration({ - id: 'confluence_data_center', - title: i18n.translate( - 'xpack.enterpriseSearch.integrations.connectors.confluenceDataCenterTitle', - { - defaultMessage: 'Confluence Data Center', - } - ), - description: i18n.translate( - 'xpack.enterpriseSearch.integrations.connectors.confluenceDataCenterDescription', - { - defaultMessage: 'Search over your content on Confluence Data Center.', - } - ), - categories: ['enterprise_search', 'elastic_stack', 'custom', 'connector', 'connector_client'], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=confluence', - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - '/plugins/enterpriseSearch/assets/source_icons/confluence_cloud.svg' - ), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - customIntegrations.registerCustomIntegration({ - id: 'jira_cloud', - title: i18n.translate('xpack.enterpriseSearch.integrations.connectors.jiraCloudTitle', { - defaultMessage: 'Jira Cloud', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.integrations.connectors.jiraDescription', - { - defaultMessage: 'Search over your content on Jira Cloud.', - } - ), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'custom', - 'connector', - 'connector_client', - 'jira', - ...nativeSearchTag, - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=jira', - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - '/plugins/enterpriseSearch/assets/source_icons/jira_cloud.svg' - ), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - customIntegrations.registerCustomIntegration({ - id: 'jira_data_center', - title: i18n.translate( - 'xpack.enterpriseSearch.integrations.connectors.jiraDataCenterCloudTitle', - { - defaultMessage: 'Jira Data Center', - } - ), - description: i18n.translate( - 'xpack.enterpriseSearch.integrations.connectors.jiraDataCenterDescription', - { - defaultMessage: 'Search over your content on Jira Data Center.', - } - ), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'custom', - 'connector', - 'connector_client', - ...nativeSearchTag, - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=jira', - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - '/plugins/enterpriseSearch/assets/source_icons/jira_cloud.svg' - ), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'jira_server', - title: i18n.translate('xpack.enterpriseSearch.integrations.connectors.jiraServerTitle', { - defaultMessage: 'Jira Server', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.integrations.connectors.jiraServerDescription', - { - defaultMessage: 'Search over your content on Jira Server.', - } - ), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'custom', - 'connector', - 'connector_client', - 'jira', - ...nativeSearchTag, - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=jira', - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - '/plugins/enterpriseSearch/assets/source_icons/jira_server.svg' - ), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'outlook', - title: i18n.translate('xpack.enterpriseSearch.integrations.connectors.outlookTitle', { - defaultMessage: 'Outlook', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.integrations.connectors.outlookDescription', - { - defaultMessage: 'Search over your content on Outlook.', - } - ), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'custom', - 'connector', - 'connector_client', - 'outlook', - ...nativeSearchTag, - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=outlook', - icons: [ - { - type: 'svg', - src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/outlook.svg'), - }, - ], - shipper: 'enterprise_search', - isBeta: true, - }); - - customIntegrations.registerCustomIntegration({ - id: 'zoom', - title: i18n.translate('xpack.enterpriseSearch.integrations.connectors.zoomTitle', { - defaultMessage: 'Zoom', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.integrations.connectors.zoomDescription', - { - defaultMessage: 'Search over your content on Zoom.', - } - ), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'custom', - 'connector', - 'connector_client', - 'zoom', - ...nativeSearchTag, - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=zoom', - icons: [ - { - type: 'svg', - src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/zoom.svg'), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'teams', - title: i18n.translate('xpack.enterpriseSearch.integrations.connectors.teamsTitle', { - defaultMessage: 'Teams', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.integrations.connectors.teamsDescription', - { - defaultMessage: 'Search over your content on Teams.', - } - ), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'custom', - 'connector', - 'connector_client', - 'teams', - ...nativeSearchTag, - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=teams', - icons: [ - { - type: 'svg', - src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/teams.svg'), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'box', - title: i18n.translate('xpack.enterpriseSearch.integrations.connectors.boxTitle', { - defaultMessage: 'Box', - }), - description: i18n.translate('xpack.enterpriseSearch.integrations.connectors.boxDescription', { - defaultMessage: 'Search over your content on Box.', - }), - categories: [ - 'enterprise_search', - 'elastic_stack', - 'custom', - 'connector', - 'connector_client', - 'box', - ...nativeSearchTag, - ], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=box', - icons: [ - { - type: 'svg', - src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/box.svg'), - }, - ], - shipper: 'enterprise_search', - isBeta: false, - }); - - customIntegrations.registerCustomIntegration({ - id: 'notion', - title: i18n.translate('xpack.enterpriseSearch.integrations.connectors.notionTitle', { - defaultMessage: 'Notion', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.integrations.connectors.notionDescription', - { - defaultMessage: 'Search over your content on Notion.', - } - ), - categories: ['enterprise_search', 'elastic_stack', 'custom', 'connector', 'connector_client'], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=notion', - icons: [ - { - type: 'svg', - src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/notion.svg'), - }, - ], - shipper: 'enterprise_search', - isBeta: true, - }); - - customIntegrations.registerCustomIntegration({ - id: 'redis', - title: i18n.translate('xpack.enterpriseSearch.integrations.connectors.redisTitle', { - defaultMessage: 'Redis', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.integrations.connectors.redisDescription', - { - defaultMessage: 'Search over your content on Redis.', - } - ), - categories: ['enterprise_search', 'elastic_stack', 'custom', 'connector', 'connector_client'], - uiInternalPath: - '/app/enterprise_search/content/search_indices/new_index/connector?service_type=redis', - icons: [ - { - type: 'svg', - src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/redis.svg'), - }, - ], - shipper: 'enterprise_search', - isBeta: false, + CONNECTOR_DEFINITIONS.forEach((connector) => { + const connectorType = connector.isNative && isCloud ? 'native' : 'connector_client'; + const categories = connector.isNative + ? [...(connector.categories || []), ...nativeSearchTag] + : connector.categories; + + customIntegrations.registerCustomIntegration({ + categories: categories || [], + description: connector.description || '', + icons: [ + { + src: http.basePath.prepend( + `/plugins/enterpriseSearch/assets/source_icons/${connector.iconPath}` + ), + type: 'svg', + }, + ], + id: connector.serviceType, + isBeta: connector.isBeta, + shipper: 'enterprise_search', + title: connector.name, + uiInternalPath: `/app/enterprise_search/content/search_indices/new_index/connector?connector_type=${connectorType}&service_type=${connector.serviceType}`, + }); }); } }; diff --git a/x-pack/plugins/enterprise_search/server/lib/crawler/post_connector.test.ts b/x-pack/plugins/enterprise_search/server/lib/crawler/post_connector.test.ts index 034fbebc35855..372add3ba15f4 100644 --- a/x-pack/plugins/enterprise_search/server/lib/crawler/post_connector.test.ts +++ b/x-pack/plugins/enterprise_search/server/lib/crawler/post_connector.test.ts @@ -93,7 +93,9 @@ describe('recreateConnectorDocument lib function', () => { last_access_control_sync_error: null, last_access_control_sync_scheduled_at: null, last_access_control_sync_status: null, + last_deleted_document_count: null, last_incremental_sync_scheduled_at: null, + last_indexed_document_count: null, last_seen: null, last_sync_error: null, last_sync_scheduled_at: null, diff --git a/x-pack/plugins/enterprise_search/server/plugin.ts b/x-pack/plugins/enterprise_search/server/plugin.ts index 5e65699224bd5..73574f1b98d03 100644 --- a/x-pack/plugins/enterprise_search/server/plugin.ts +++ b/x-pack/plugins/enterprise_search/server/plugin.ts @@ -288,7 +288,7 @@ export class EnterpriseSearchPlugin implements Plugin { if (usageCollection) { registerESTelemetryUsageCollector(usageCollection, savedObjectsStarted, this.logger); - registerCNTelemetryUsageCollector(usageCollection); + registerCNTelemetryUsageCollector(usageCollection, this.logger); if (config.canDeployEntSearch) { registerASTelemetryUsageCollector(usageCollection, savedObjectsStarted, this.logger); registerWSTelemetryUsageCollector(usageCollection, savedObjectsStarted, this.logger); @@ -343,7 +343,7 @@ export class EnterpriseSearchPlugin implements Plugin { */ if (globalSearch) { - globalSearch.registerResultProvider(getSearchResultProvider(http.basePath, config)); + globalSearch.registerResultProvider(getSearchResultProvider(http.basePath, config, isCloud)); globalSearch.registerResultProvider(getIndicesSearchResultProvider(http.basePath)); } } diff --git a/x-pack/plugins/enterprise_search/server/utils/search_result_provider.test.ts b/x-pack/plugins/enterprise_search/server/utils/search_result_provider.test.ts index f1736d88d1ea4..37ec58ac8c17a 100644 --- a/x-pack/plugins/enterprise_search/server/utils/search_result_provider.test.ts +++ b/x-pack/plugins/enterprise_search/server/utils/search_result_provider.test.ts @@ -42,7 +42,31 @@ describe('Enterprise Search search provider', () => { title: 'MongoDB', type: 'Search', url: { - path: `${ENTERPRISE_SEARCH_CONTENT_PLUGIN.URL}/search_indices/new_index/connector?service_type=mongodb`, + path: `${ENTERPRISE_SEARCH_CONTENT_PLUGIN.URL}/search_indices/new_index/connector?connector_type=connector_client&service_type=mongodb`, + prependBasePath: true, + }, + }; + + const nativeMongoResult = { + icon: '/kbn/plugins/enterpriseSearch/assets/source_icons/mongodb.svg', + id: 'mongodb', + score: 75, + title: 'MongoDB', + type: 'Search', + url: { + path: `${ENTERPRISE_SEARCH_CONTENT_PLUGIN.URL}/search_indices/new_index/connector?connector_type=native&service_type=mongodb`, + prependBasePath: true, + }, + }; + + const customizedConnectorResult = { + icon: '/kbn/plugins/enterpriseSearch/assets/source_icons/custom.svg', + id: '', + score: 75, + title: 'Customized connector', + type: 'Search', + url: { + path: `${ENTERPRISE_SEARCH_CONTENT_PLUGIN.URL}/search_indices/new_index/connector?connector_type=connector_client&service_type=`, prependBasePath: true, }, }; @@ -59,10 +83,14 @@ describe('Enterprise Search search provider', () => { }, }; - const searchResultProvider = getSearchResultProvider(basePathMock, { - hasConnectors: true, - hasWebCrawler: true, - } as any); + const searchResultProvider = getSearchResultProvider( + basePathMock, + { + hasConnectors: true, + hasWebCrawler: true, + } as any, + false + ); beforeEach(() => {}); @@ -117,10 +145,14 @@ describe('Enterprise Search search provider', () => { }); it('omits crawler if config has crawler disabled', () => { - const searchProvider = getSearchResultProvider(basePathMock, { - hasConnectors: true, - hasWebCrawler: false, - } as any); + const searchProvider = getSearchResultProvider( + basePathMock, + { + hasConnectors: true, + hasWebCrawler: false, + } as any, + false + ); getTestScheduler().run(({ expectObservable }) => { expectObservable( searchProvider.find( @@ -135,10 +167,14 @@ describe('Enterprise Search search provider', () => { }); it('omits connectors if config has connectors disabled', () => { - const searchProvider = getSearchResultProvider(basePathMock, { - hasConnectors: false, - hasWebCrawler: true, - } as any); + const searchProvider = getSearchResultProvider( + basePathMock, + { + hasConnectors: false, + hasWebCrawler: true, + } as any, + false + ); getTestScheduler().run(({ expectObservable }) => { expectObservable( searchProvider.find( @@ -205,11 +241,15 @@ describe('Enterprise Search search provider', () => { }); }); it('returns results for legacy app search', () => { - const searchProvider = getSearchResultProvider(basePathMock, { - hasConnectors: false, - hasWebCrawler: false, - canDeployEntSearch: true, - } as any); + const searchProvider = getSearchResultProvider( + basePathMock, + { + canDeployEntSearch: true, + hasConnectors: false, + hasWebCrawler: false, + } as any, + false + ); getTestScheduler().run(({ expectObservable }) => { expectObservable( searchProvider.find( @@ -223,11 +263,15 @@ describe('Enterprise Search search provider', () => { }); }); it('does not return results for legacy workplace search', () => { - const searchProvider = getSearchResultProvider(basePathMock, { - hasConnectors: false, - hasWebCrawler: false, - canDeployEntSearch: true, - } as any); + const searchProvider = getSearchResultProvider( + basePathMock, + { + canDeployEntSearch: true, + hasConnectors: false, + hasWebCrawler: false, + } as any, + false + ); getTestScheduler().run(({ expectObservable }) => { expectObservable( searchProvider.find( @@ -240,5 +284,30 @@ describe('Enterprise Search search provider', () => { }); }); }); + + it('returns appropriate native flags when on cloud', () => { + const searchProvider = getSearchResultProvider( + basePathMock, + { + hasConnectors: true, + hasWebCrawler: true, + } as any, + true + ); + getTestScheduler().run(({ expectObservable }) => { + expectObservable( + searchProvider.find( + { term: '' }, + { aborted$: NEVER, maxResults: 100, preference: '' }, + {} as any + ) + ).toBe('(a|)', { + a: expect.arrayContaining([ + { ...nativeMongoResult, score: 80 }, + { ...customizedConnectorResult, score: 80 }, + ]), + }); + }); + }); }); }); diff --git a/x-pack/plugins/enterprise_search/server/utils/search_result_provider.ts b/x-pack/plugins/enterprise_search/server/utils/search_result_provider.ts index 64bdabb8c3d6e..3f73e3872c850 100644 --- a/x-pack/plugins/enterprise_search/server/utils/search_result_provider.ts +++ b/x-pack/plugins/enterprise_search/server/utils/search_result_provider.ts @@ -25,6 +25,7 @@ type ServiceDefinition = | ConnectorServerSideDefinition | { iconPath?: string; + isNative?: boolean; keywords: string[]; name: string; serviceType: string; @@ -34,6 +35,8 @@ type ServiceDefinition = export function toSearchResult({ basePath, iconPath, + isCloud, + isNative, name, score, serviceType, @@ -41,11 +44,20 @@ export function toSearchResult({ }: { basePath: IBasePath; iconPath?: string; + isCloud: boolean; + isNative?: boolean; name: string; score: number; serviceType: string; url?: string; }) { + const isCrawler = serviceType === ENTERPRISE_SEARCH_CONNECTOR_CRAWLER_SERVICE_TYPE; + const connectorTypeParam = !isCrawler + ? isCloud && isNative + ? 'native' + : 'connector_client' + : null; + return { icon: iconPath ? basePath.prepend(`/plugins/enterpriseSearch/assets/source_icons/${iconPath}`) @@ -60,9 +72,9 @@ export function toSearchResult({ path: url ?? `${ENTERPRISE_SEARCH_CONTENT_PLUGIN.URL}/search_indices/new_index/${ - serviceType === ENTERPRISE_SEARCH_CONNECTOR_CRAWLER_SERVICE_TYPE + isCrawler ? 'crawler' - : `connector?service_type=${serviceType}` + : `connector?connector_type=${connectorTypeParam}&service_type=${serviceType}` }`, prependBasePath: true, }, @@ -71,7 +83,8 @@ export function toSearchResult({ export function getSearchResultProvider( basePath: IBasePath, - config: ConfigType + config: ConfigType, + isCloud: boolean ): GlobalSearchResultProvider { return { find: ({ term, types, tags }, { aborted$, maxResults }) => { @@ -118,7 +131,7 @@ export function getSearchResultProvider( ]; const result = services .map((service) => { - const { iconPath, keywords, name, serviceType } = service; + const { iconPath, isNative, keywords, name, serviceType } = service; const url = 'url' in service ? service.url : undefined; let score = 0; const searchTerm = (term || '').toLowerCase(); @@ -136,7 +149,16 @@ export function getSearchResultProvider( } else if (keywords.some((keyword) => keyword.includes(searchTerm))) { score = 50; } - return toSearchResult({ basePath, iconPath, name, score, serviceType, url }); + return toSearchResult({ + basePath, + iconPath, + isCloud, + isNative, + name, + score, + serviceType, + url, + }); }) .filter(({ score }) => score > 0) .slice(0, maxResults); diff --git a/x-pack/plugins/index_management/__jest__/client_integration/index_details_page/index_details_page.test.tsx b/x-pack/plugins/index_management/__jest__/client_integration/index_details_page/index_details_page.test.tsx index a27a453e4d0d2..d2e33b12e3637 100644 --- a/x-pack/plugins/index_management/__jest__/client_integration/index_details_page/index_details_page.test.tsx +++ b/x-pack/plugins/index_management/__jest__/client_integration/index_details_page/index_details_page.test.tsx @@ -125,7 +125,8 @@ describe('', () => { it('updates the breadcrumbs to index details stats', async () => { await testBed.actions.clickIndexDetailsTab(IndexDetailsSection.Stats); expect(breadcrumbService.setBreadcrumbs).toHaveBeenLastCalledWith( - IndexManagementBreadcrumb.indexDetailsStats + IndexManagementBreadcrumb.indexDetails, + { text: 'Statistics' } ); }); @@ -237,7 +238,8 @@ describe('', () => { describe('Overview tab', () => { it('updates the breadcrumbs to index details overview', async () => { expect(breadcrumbService.setBreadcrumbs).toHaveBeenLastCalledWith( - IndexManagementBreadcrumb.indexDetailsOverview + IndexManagementBreadcrumb.indexDetails, + { text: 'Overview' } ); }); @@ -455,7 +457,8 @@ describe('', () => { it('updates the breadcrumbs to index details mappings', async () => { await testBed.actions.clickIndexDetailsTab(IndexDetailsSection.Mappings); expect(breadcrumbService.setBreadcrumbs).toHaveBeenLastCalledWith( - IndexManagementBreadcrumb.indexDetailsMappings + IndexManagementBreadcrumb.indexDetails, + { text: 'Mappings' } ); }); it('loads mappings from the API', async () => { @@ -551,7 +554,8 @@ describe('', () => { it('updates the breadcrumbs to index details settings', async () => { await testBed.actions.clickIndexDetailsTab(IndexDetailsSection.Settings); expect(breadcrumbService.setBreadcrumbs).toHaveBeenLastCalledWith( - IndexManagementBreadcrumb.indexDetailsSettings + IndexManagementBreadcrumb.indexDetails, + { text: 'Settings' } ); }); @@ -938,6 +942,34 @@ describe('', () => { expect(content).toEqual(testContent); }); + it("sets breadcrumbs for the tab using the tab's name", async () => { + await testBed.actions.clickIndexDetailsTab(testTabId); + expect(breadcrumbService.setBreadcrumbs).toHaveBeenLastCalledWith( + IndexManagementBreadcrumb.indexDetails, + { text: 'Test tab' } + ); + }); + + it('sets breadcrumbs for the tab using the tab property', async () => { + const extensionsServiceMock = { + indexDetailsTabs: [{ ...additionalTab, breadcrumb: { text: 'special breadcrumb' } }], + }; + await act(async () => { + testBed = await setup({ + httpSetup, + dependencies: { + services: { extensionsService: extensionsServiceMock }, + }, + }); + }); + testBed.component.update(); + await testBed.actions.clickIndexDetailsTab(testTabId); + expect(breadcrumbService.setBreadcrumbs).toHaveBeenLastCalledWith( + IndexManagementBreadcrumb.indexDetails, + { text: 'special breadcrumb' } + ); + }); + it('additional tab is the first in the order', () => { const tabs = testBed.actions.getIndexDetailsTabs(); expect(tabs).toEqual(['Test tab', 'Overview', 'Mappings', 'Settings', 'Statistics']); diff --git a/x-pack/plugins/index_management/common/constants/home_sections.ts b/x-pack/plugins/index_management/common/constants/home_sections.ts index 436a9ae56aa1a..d44e64acbbad8 100644 --- a/x-pack/plugins/index_management/common/constants/home_sections.ts +++ b/x-pack/plugins/index_management/common/constants/home_sections.ts @@ -7,6 +7,7 @@ import { FunctionComponent, ReactNode } from 'react'; import { ApplicationStart } from '@kbn/core-application-browser'; +import { EuiBreadcrumb } from '@elastic/eui'; import { Index } from '../types'; export enum Section { @@ -41,4 +42,5 @@ export interface IndexDetailsTab { // an optional function to return a boolean for when to render the tab // if omitted, the tab is always rendered shouldRenderTab?: (args: { index: Index }) => boolean; + breadcrumb?: EuiBreadcrumb; } diff --git a/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_content.tsx b/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_content.tsx index 3c29a658daa28..dcd1cacaa0ba9 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_content.tsx +++ b/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_content.tsx @@ -15,6 +15,7 @@ import { } from '@elastic/eui'; import { css } from '@emotion/react'; import { FormattedMessage } from '@kbn/i18n-react'; +import { i18n } from '@kbn/i18n'; import { RouteComponentProps } from 'react-router-dom'; import { resetIndexUrlParams } from './reset_index_url_params'; @@ -39,25 +40,25 @@ import { DetailsPageTab } from './details_page_tab'; const defaultTabs: IndexDetailsTab[] = [ { id: IndexDetailsSection.Overview, - name: ( - - ), + name: i18n.translate('xpack.idxMgmt.indexDetails.overviewTitle', { + defaultMessage: 'Overview', + }), renderTabContent: ({ index }) => , order: 10, }, { id: IndexDetailsSection.Mappings, - name: ( - - ), + name: i18n.translate('xpack.idxMgmt.indexDetails.mappingsTitle', { + defaultMessage: 'Mappings', + }), renderTabContent: ({ index }) => , order: 20, }, { id: IndexDetailsSection.Settings, - name: ( - - ), + name: i18n.translate('xpack.idxMgmt.indexDetails.settingsTitle', { + defaultMessage: 'Settings', + }), renderTabContent: ({ index }) => , order: 30, }, @@ -65,7 +66,9 @@ const defaultTabs: IndexDetailsTab[] = [ const statsTab: IndexDetailsTab = { id: IndexDetailsSection.Stats, - name: , + name: i18n.translate('xpack.idxMgmt.indexDetails.statsTitle', { + defaultMessage: 'Statistics', + }), renderTabContent: ({ index }) => ( ), diff --git a/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_mappings.tsx b/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_mappings.tsx index 196c61f654b88..ddae61efc631a 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_mappings.tsx +++ b/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_mappings.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { FunctionComponent, useEffect, useMemo, useState } from 'react'; +import React, { FunctionComponent, useMemo, useState } from 'react'; import { EuiButton, EuiPageTemplate, EuiSpacer, EuiText } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; @@ -14,15 +14,11 @@ import { SectionLoading } from '@kbn/es-ui-shared-plugin/public'; import { DetailsPageMappingsContent } from './details_page_mappings_content'; import { Index } from '../../../../../../common'; import { useLoadIndexMappings } from '../../../../services'; -import { breadcrumbService, IndexManagementBreadcrumb } from '../../../../services/breadcrumbs'; export const DetailsPageMappings: FunctionComponent<{ index: Index }> = ({ index }) => { const { isLoading, data, error, resendRequest } = useLoadIndexMappings(index.name); const [jsonError, setJsonError] = useState(false); - useEffect(() => { - breadcrumbService.setBreadcrumbs(IndexManagementBreadcrumb.indexDetailsMappings); - }, []); const stringifiedData = useMemo(() => { if (data) { try { diff --git a/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_overview/details_page_overview.tsx b/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_overview/details_page_overview.tsx index 0a9503c56cb59..c3e985a638fd5 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_overview/details_page_overview.tsx +++ b/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_overview/details_page_overview.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { useState, useMemo, useEffect } from 'react'; +import React, { useState, useMemo } from 'react'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import { @@ -30,7 +30,6 @@ import { StatusDetails } from './status_details'; import type { Index } from '../../../../../../../common'; import { useAppContext } from '../../../../../app_context'; import { documentationService } from '../../../../../services'; -import { breadcrumbService, IndexManagementBreadcrumb } from '../../../../../services/breadcrumbs'; import { languageDefinitions, curlDefinition } from './languages'; import { DataStreamDetails } from './data_stream_details'; import { StorageDetails } from './storage_details'; @@ -60,10 +59,6 @@ export const DetailsPageOverview: React.FunctionComponent = ({ indexDetai services: { extensionsService }, } = useAppContext(); - useEffect(() => { - breadcrumbService.setBreadcrumbs(IndexManagementBreadcrumb.indexDetailsOverview); - }, []); - const [selectedLanguage, setSelectedLanguage] = useState(curlDefinition); const elasticsearchURL = useMemo(() => { diff --git a/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_settings.tsx b/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_settings.tsx index bf169ac2b9e5e..e04b4798c4041 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_settings.tsx +++ b/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_settings.tsx @@ -5,13 +5,12 @@ * 2.0. */ -import React, { FunctionComponent, useEffect } from 'react'; +import React, { FunctionComponent } from 'react'; import { EuiButton, EuiPageTemplate, EuiSpacer, EuiText } from '@elastic/eui'; import { SectionLoading } from '@kbn/es-ui-shared-plugin/public'; import { FormattedMessage } from '@kbn/i18n-react'; import { useLoadIndexSettings } from '../../../../services'; -import { breadcrumbService, IndexManagementBreadcrumb } from '../../../../services/breadcrumbs'; import { DetailsPageSettingsContent } from './details_page_settings_content'; export const DetailsPageSettings: FunctionComponent<{ @@ -19,10 +18,6 @@ export const DetailsPageSettings: FunctionComponent<{ }> = ({ indexName }) => { const { isLoading, data, error, resendRequest } = useLoadIndexSettings(indexName); - useEffect(() => { - breadcrumbService.setBreadcrumbs(IndexManagementBreadcrumb.indexDetailsSettings); - }, []); - if (isLoading) { return ( diff --git a/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_stats.tsx b/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_stats.tsx index 600eac5873954..b113bb7fcbd4c 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_stats.tsx +++ b/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_stats.tsx @@ -26,7 +26,6 @@ import { css } from '@emotion/react'; import { IndicesStatsResponse } from '@elastic/elasticsearch/lib/api/types'; import { SectionLoading, Error } from '../../../../../shared_imports'; import { loadIndexStatistics, documentationService } from '../../../../services'; -import { breadcrumbService, IndexManagementBreadcrumb } from '../../../../services/breadcrumbs'; export const DetailsPageStats: FunctionComponent<{ indexName: string; isIndexOpen: boolean }> = ({ indexName, @@ -36,10 +35,6 @@ export const DetailsPageStats: FunctionComponent<{ indexName: string; isIndexOpe const [error, setError] = useState(); const [indexStats, setIndexStats] = useState(); - useEffect(() => { - breadcrumbService.setBreadcrumbs(IndexManagementBreadcrumb.indexDetailsStats); - }, []); - const fetchIndexStats = useCallback(async () => { setIsLoading(true); try { diff --git a/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_tab.tsx b/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_tab.tsx index 9f760aab91324..79c41c0fb2044 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_tab.tsx +++ b/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_tab.tsx @@ -5,7 +5,9 @@ * 2.0. */ -import React, { FunctionComponent } from 'react'; +import React, { FunctionComponent, useEffect } from 'react'; +import { EuiBreadcrumb } from '@elastic/eui'; +import { breadcrumbService, IndexManagementBreadcrumb } from '../../../../services/breadcrumbs'; import { Index } from '../../../../../../common'; import { IndexDetailsTab, IndexDetailsTabId } from '../../../../../../common/constants'; import { useAppContext } from '../../../../app_context'; @@ -21,6 +23,12 @@ export const DetailsPageTab: FunctionComponent = ({ tabs, tab, index }) = const { core: { getUrlForApp }, } = useAppContext(); + + useEffect(() => { + const breadcrumb: EuiBreadcrumb = selectedTab?.breadcrumb ?? { text: selectedTab?.name }; + breadcrumbService.setBreadcrumbs(IndexManagementBreadcrumb.indexDetails, breadcrumb); + }, [selectedTab]); + return selectedTab ? ( selectedTab.renderTabContent({ index, getUrlForApp }) ) : ( diff --git a/x-pack/plugins/index_management/public/application/services/breadcrumbs.ts b/x-pack/plugins/index_management/public/application/services/breadcrumbs.ts index eb42288ffecbc..3b91a447f89da 100644 --- a/x-pack/plugins/index_management/public/application/services/breadcrumbs.ts +++ b/x-pack/plugins/index_management/public/application/services/breadcrumbs.ts @@ -20,10 +20,7 @@ export enum IndexManagementBreadcrumb { /** * Index details page */ - indexDetailsOverview = 'indexDetailsOverview', - indexDetailsMappings = 'indexDetailsMappings', - indexDetailsSettings = 'indexDetailsSettings', - indexDetailsStats = 'indexDetailsStats', + indexDetails = 'indexDetails', /** * Data streams tab */ @@ -79,48 +76,11 @@ class BreadcrumbService { }, ]; - const indexDetailsBreadcrumb = { - text: i18n.translate('xpack.idxMgmt.breadcrumb.indexDetailsLabel', { - defaultMessage: 'Index details', - }), - }; - - this.breadcrumbs.indexDetailsOverview = [ - ...this.breadcrumbs.indices, - indexDetailsBreadcrumb, - { - text: i18n.translate('xpack.idxMgmt.breadcrumb.indexDetailsOverviewLabel', { - defaultMessage: 'Overview', - }), - }, - ]; - - this.breadcrumbs.indexDetailsMappings = [ - ...this.breadcrumbs.indices, - indexDetailsBreadcrumb, - { - text: i18n.translate('xpack.idxMgmt.breadcrumb.indexDetailsMappingsLabel', { - defaultMessage: 'Mappings', - }), - }, - ]; - - this.breadcrumbs.indexDetailsSettings = [ + this.breadcrumbs.indexDetails = [ ...this.breadcrumbs.indices, - indexDetailsBreadcrumb, { - text: i18n.translate('xpack.idxMgmt.breadcrumb.indexDetailsSettingsLabel', { - defaultMessage: 'Settings', - }), - }, - ]; - - this.breadcrumbs.indexDetailsStats = [ - ...this.breadcrumbs.indices, - indexDetailsBreadcrumb, - { - text: i18n.translate('xpack.idxMgmt.breadcrumb.indexDetailsStatsLabel', { - defaultMessage: 'Stats', + text: i18n.translate('xpack.idxMgmt.breadcrumb.indexDetailsLabel', { + defaultMessage: 'Index details', }), }, ]; @@ -236,7 +196,10 @@ class BreadcrumbService { ]; } - public setBreadcrumbs(type: IndexManagementBreadcrumb): void { + public setBreadcrumbs( + type: IndexManagementBreadcrumb, + additionalBreadcrumb?: EuiBreadcrumb + ): void { if (!this.setBreadcrumbsHandler) { throw new Error(`BreadcrumbService#setup() must be called first!`); } @@ -245,6 +208,10 @@ class BreadcrumbService { ? [...this.breadcrumbs[type]!] : [...this.breadcrumbs.home!]; + if (additionalBreadcrumb) { + newBreadcrumbs.push(additionalBreadcrumb); + } + // Pop off last breadcrumb const lastBreadcrumb = newBreadcrumbs.pop() as { text: string; diff --git a/x-pack/plugins/lens/public/lens_suggestions_api.ts b/x-pack/plugins/lens/public/lens_suggestions_api.ts index ffcf3b5a6d53d..3bdadbf337227 100644 --- a/x-pack/plugins/lens/public/lens_suggestions_api.ts +++ b/x-pack/plugins/lens/public/lens_suggestions_api.ts @@ -20,6 +20,7 @@ export enum ChartType { Treemap = 'Treemap', Tagcloud = 'Tag cloud', Waffle = 'Waffle', + Table = 'Table', } interface SuggestionsApiProps { @@ -78,34 +79,11 @@ export const suggestionsApi = ({ dataViews, }); if (!suggestions.length) return []; - const activeVisualization = suggestions[0]; - if ( - activeVisualization.incomplete || - excludedVisualizations?.includes(activeVisualization.visualizationId) - ) { - return []; - } - // compute the rest suggestions depending on the active one and filter out the lnsLegacyMetric - const newSuggestions = getSuggestions({ - datasourceMap, - datasourceStates: { - textBased: { - isLoading: false, - state: activeVisualization.datasourceState, - }, - }, - visualizationMap, - activeVisualization: visualizationMap[activeVisualization.visualizationId], - visualizationState: activeVisualization.visualizationState, - dataViews, - }).filter((sug) => !sug.hide && sug.visualizationId !== 'lnsLegacyMetric'); - const suggestionsList = [activeVisualization, ...newSuggestions]; - // check if there is an XY chart suggested // if user has requested for a line or area, we want to sligthly change the state // to return line / area instead of a bar chart const chartType = preferredChartType?.toLowerCase(); - const XYSuggestion = suggestionsList.find((sug) => sug.visualizationId === 'lnsXY'); + const XYSuggestion = suggestions.find((sug) => sug.visualizationId === 'lnsXY'); if (XYSuggestion && chartType && ['area', 'line'].includes(chartType)) { const visualizationState = visualizationMap[ XYSuggestion.visualizationId @@ -117,17 +95,39 @@ export const suggestionsApi = ({ }, ]; } - // in case the user asks for another type (except from area, line) check if it exists // in suggestions and return this instead - if (suggestionsList.length > 1 && preferredChartType) { - const suggestionFromModel = suggestionsList.find( + if (suggestions.length > 1 && preferredChartType) { + const suggestionFromModel = suggestions.find( (s) => s.title.includes(preferredChartType) || s.visualizationId.includes(preferredChartType) ); if (suggestionFromModel) { return [suggestionFromModel]; } } + const activeVisualization = suggestions[0]; + if ( + activeVisualization.incomplete || + excludedVisualizations?.includes(activeVisualization.visualizationId) + ) { + return []; + } + // compute the rest suggestions depending on the active one and filter out the lnsLegacyMetric + const newSuggestions = getSuggestions({ + datasourceMap, + datasourceStates: { + textBased: { + isLoading: false, + state: activeVisualization.datasourceState, + }, + }, + visualizationMap, + activeVisualization: visualizationMap[activeVisualization.visualizationId], + visualizationState: activeVisualization.visualizationState, + dataViews, + }).filter((sug) => !sug.hide && sug.visualizationId !== 'lnsLegacyMetric'); + const suggestionsList = [activeVisualization, ...newSuggestions]; + // if there is no preference from the user, send everything // until we separate the text based suggestions logic from the dataview one, // we want to sort XY first diff --git a/x-pack/plugins/lists/public/lists/hooks/use_create_list_index.test.ts b/x-pack/plugins/lists/public/lists/hooks/use_create_list_index.test.ts index 44b7e57f11cb1..3e91e9b269830 100644 --- a/x-pack/plugins/lists/public/lists/hooks/use_create_list_index.test.ts +++ b/x-pack/plugins/lists/public/lists/hooks/use_create_list_index.test.ts @@ -11,11 +11,14 @@ import * as Api from '@kbn/securitysolution-list-api'; import { httpServiceMock } from '@kbn/core/public/mocks'; import { getAcknowledgeSchemaResponseMock } from '../../../common/schemas/response/acknowledge_schema.mock'; +import { createQueryWrapperMock } from '../mocks/query_wrapper'; jest.mock('@kbn/securitysolution-list-api'); // TODO: This test should be ported to the package: packages/kbn-securitysolution-list-hooks/src/use_create_list_index/index.test.ts once we have mocks in kbn packages +const { wrapper: queryWrapper, queryClient } = createQueryWrapperMock(); + describe('useCreateListIndex', () => { let httpMock: ReturnType; @@ -24,13 +27,62 @@ describe('useCreateListIndex', () => { (Api.createListIndex as jest.Mock).mockResolvedValue(getAcknowledgeSchemaResponseMock()); }); - it('invokes Api.createListIndex', async () => { - const { result, waitForNextUpdate } = renderHook(() => useCreateListIndex()); + it('should call Api.createListIndex when start() executes', async () => { + const { result, waitForNextUpdate } = renderHook(() => useCreateListIndex({ http: httpMock }), { + wrapper: queryWrapper, + }); act(() => { - result.current.start({ http: httpMock }); + result.current.start(); }); await waitForNextUpdate(); expect(Api.createListIndex).toHaveBeenCalledWith(expect.objectContaining({ http: httpMock })); }); + + it('should call onError callback when Api.createListIndex fails', async () => { + const onError = jest.fn(); + jest.spyOn(Api, 'createListIndex').mockRejectedValue(new Error('Mocked error')); + + const { result, waitForNextUpdate } = renderHook( + () => useCreateListIndex({ http: httpMock, onError }), + { wrapper: queryWrapper } + ); + + act(() => { + result.current.start(); + }); + await waitForNextUpdate(); + + expect(onError).toHaveBeenCalledWith(new Error('Mocked error'), undefined, undefined); + }); + + it('should not invalidate read index query on failure', async () => { + jest.spyOn(Api, 'createListIndex').mockRejectedValue(new Error('Mocked error')); + const invalidateQueriesSpy = jest.spyOn(queryClient, 'invalidateQueries'); + + const { result, waitForNextUpdate } = renderHook(() => useCreateListIndex({ http: httpMock }), { + wrapper: queryWrapper, + }); + + act(() => { + result.current.start(); + }); + await waitForNextUpdate(); + + expect(invalidateQueriesSpy).not.toHaveBeenCalled(); + }); + + it('should invalidate read index query on success', async () => { + const { result, waitForNextUpdate } = renderHook(() => useCreateListIndex({ http: httpMock }), { + wrapper: queryWrapper, + }); + const invalidateQueriesSpy = jest.spyOn(queryClient, 'invalidateQueries'); + + act(() => { + result.current.start(); + }); + await waitForNextUpdate(); + + expect(invalidateQueriesSpy).toHaveBeenCalledWith(['detectionEngine', 'listIndex']); + }); }); diff --git a/x-pack/plugins/lists/public/lists/hooks/use_read_list_index.test.ts b/x-pack/plugins/lists/public/lists/hooks/use_read_list_index.test.ts index d8740b63fac58..dc57825d9acfa 100644 --- a/x-pack/plugins/lists/public/lists/hooks/use_read_list_index.test.ts +++ b/x-pack/plugins/lists/public/lists/hooks/use_read_list_index.test.ts @@ -5,32 +5,64 @@ * 2.0. */ -import { act, renderHook } from '@testing-library/react-hooks'; +import { renderHook } from '@testing-library/react-hooks'; import { useReadListIndex } from '@kbn/securitysolution-list-hooks'; import * as Api from '@kbn/securitysolution-list-api'; import { httpServiceMock } from '@kbn/core/public/mocks'; import { getAcknowledgeSchemaResponseMock } from '../../../common/schemas/response/acknowledge_schema.mock'; +import { createQueryWrapperMock } from '../mocks/query_wrapper'; jest.mock('@kbn/securitysolution-list-api'); +const { wrapper: queryWrapper } = createQueryWrapperMock(); + // TODO: Port this code over to the package: packages/kbn-securitysolution-list-hooks/src/use_read_list_index/index.test.ts once kibana has mocks in packages -describe('useReadListIndex', () => { +// FLAKY: https://github.com/elastic/kibana/issues/178026 +describe.skip('useReadListIndex', () => { let httpMock: ReturnType; beforeEach(() => { httpMock = httpServiceMock.createStartContract(); (Api.readListIndex as jest.Mock).mockResolvedValue(getAcknowledgeSchemaResponseMock()); + jest.resetAllMocks(); + }); + + it('should call Api.readListIndex when is enabled', async () => { + const { waitForNextUpdate } = renderHook( + () => useReadListIndex({ http: httpMock, isEnabled: true }), + { + wrapper: queryWrapper, + } + ); + + await waitForNextUpdate(); + + expect(Api.readListIndex).toHaveBeenCalled(); }); - it('invokes Api.readListIndex', async () => { - const { result, waitForNextUpdate } = renderHook(() => useReadListIndex()); - act(() => { - result.current.start({ http: httpMock }); + it('should not call Api.readListIndex when is not enabled', async () => { + renderHook(() => useReadListIndex({ http: httpMock, isEnabled: false }), { + wrapper: queryWrapper, }); + + expect(Api.readListIndex).not.toHaveBeenCalled(); + }); + + it('calls onError callback when apiCall fails', async () => { + const onError = jest.fn(); + jest.spyOn(Api, 'readListIndex').mockRejectedValue(new Error('Mocked error')); + + const { waitForNextUpdate } = renderHook( + () => useReadListIndex({ http: httpMock, isEnabled: true, onError }), + { + wrapper: queryWrapper, + } + ); + await waitForNextUpdate(); - expect(Api.readListIndex).toHaveBeenCalledWith(expect.objectContaining({ http: httpMock })); + expect(onError).toHaveBeenCalledWith(new Error('Mocked error')); }); }); diff --git a/x-pack/plugins/lists/public/lists/mocks/query_wrapper.tsx b/x-pack/plugins/lists/public/lists/mocks/query_wrapper.tsx new file mode 100644 index 0000000000000..605e998fe678f --- /dev/null +++ b/x-pack/plugins/lists/public/lists/mocks/query_wrapper.tsx @@ -0,0 +1,34 @@ +/* + * 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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; + +export const createQueryWrapperMock = (): { + queryClient: QueryClient; + wrapper: React.FC; +} => { + const queryClient = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + logger: { + error: () => undefined, + log: () => undefined, + warn: () => undefined, + }, + }); + + return { + queryClient, + wrapper: ({ children }) => ( + {children} + ), + }; +}; diff --git a/x-pack/plugins/maps/public/classes/sources/es_agg_source/index.ts b/x-pack/plugins/maps/public/classes/sources/es_agg_source/index.ts index 9f262ac02648e..09fa1a70c843b 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_agg_source/index.ts +++ b/x-pack/plugins/maps/public/classes/sources/es_agg_source/index.ts @@ -6,5 +6,6 @@ */ export type { IESAggSource, ESAggsSourceSyncMeta } from './types'; +export { hasESAggSourceMethod } from './types'; export { AbstractESAggSource, DEFAULT_METRIC } from './es_agg_source'; export { getAggDisplayName } from './get_agg_display_name'; diff --git a/x-pack/plugins/maps/public/classes/sources/es_agg_source/types.ts b/x-pack/plugins/maps/public/classes/sources/es_agg_source/types.ts index 6f758c505fd89..7d31f07b9ab53 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_agg_source/types.ts +++ b/x-pack/plugins/maps/public/classes/sources/es_agg_source/types.ts @@ -7,9 +7,16 @@ import { DataView } from '@kbn/data-plugin/common'; import { AGG_TYPE } from '../../../../common/constants'; -import type { IESSource } from '../es_source'; +import type { IESSource } from '../es_source/types'; import { IESAggField } from '../../fields/agg'; +export function hasESAggSourceMethod( + source: IESSource, + methodName: keyof IESAggSource +): source is Pick { + return typeof (source as IESAggSource)[methodName] === 'function'; +} + export interface IESAggSource extends IESSource { getAggKey(aggType: AGG_TYPE, fieldName: string): string; getAggLabel(aggType: AGG_TYPE, fieldLabel: string): Promise; diff --git a/x-pack/plugins/maps/public/classes/sources/es_source/es_source.ts b/x-pack/plugins/maps/public/classes/sources/es_source/es_source.ts index 0e5a48b3d5827..23b82159a4bae 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_source/es_source.ts +++ b/x-pack/plugins/maps/public/classes/sources/es_source/es_source.ts @@ -16,7 +16,7 @@ import { RequestAdapter } from '@kbn/inspector-plugin/common/adapters/request'; import { lastValueFrom } from 'rxjs'; import type { TimeRange } from '@kbn/es-query'; import { extractWarnings, type SearchResponseWarning } from '@kbn/search-response-warnings'; -import type { IESAggSource } from '../es_agg_source'; +import { hasESAggSourceMethod } from '../es_agg_source/types'; import { AbstractVectorSource, BoundsRequestMeta } from '../vector_source'; import { getAutocompleteService, @@ -183,15 +183,10 @@ export class AbstractESSource extends AbstractVectorSource implements IESSource // buffer can be empty const geoField = await this._getGeoField(); const buffer: MapExtent = - 'isGeoGridPrecisionAware' in this && - 'getGeoGridPrecision' in this && - // @ts-expect-error upgrade typescript v4.9.5 - (this as IESAggSource).isGeoGridPrecisionAware() - ? expandToTileBoundaries( - requestMeta.buffer, - // @ts-expect-error upgrade typescript v4.9.5 - (this as IESAggSource).getGeoGridPrecision(requestMeta.zoom) - ) + hasESAggSourceMethod(this, 'isGeoGridPrecisionAware') && + hasESAggSourceMethod(this, 'getGeoGridPrecision') && + this.isGeoGridPrecisionAware() + ? expandToTileBoundaries(requestMeta.buffer, this.getGeoGridPrecision(requestMeta.zoom)) : requestMeta.buffer; const extentFilter = createExtentFilter(buffer, [geoField.name]); diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_style_property.tsx b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_style_property.tsx index 72a930553f4ec..c69e4d855ad90 100644 --- a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_style_property.tsx +++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_style_property.tsx @@ -99,7 +99,7 @@ export interface IDynamicStyleProperty extends IStyleProperty { ): boolean; } -export class DynamicStyleProperty +export class DynamicStyleProperty extends AbstractStyleProperty implements IDynamicStyleProperty { @@ -350,7 +350,6 @@ export class DynamicStyleProperty } getDataMappingFunction() { - // @ts-expect-error upgrade typescript v4.9.5 return 'dataMappingFunction' in this._options ? (this._options as T & { dataMappingFunction: DATA_MAPPING_FUNCTION }).dataMappingFunction : DATA_MAPPING_FUNCTION.INTERPOLATE; diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/static_style_property.ts b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_style_property.ts index ed09d35235eda..aad248ecc2033 100644 --- a/x-pack/plugins/maps/public/classes/styles/vector/properties/static_style_property.ts +++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_style_property.ts @@ -8,6 +8,6 @@ import { AbstractStyleProperty } from './style_property'; import { STYLE_TYPE } from '../../../../../common/constants'; -export class StaticStyleProperty extends AbstractStyleProperty { +export class StaticStyleProperty extends AbstractStyleProperty { static type = STYLE_TYPE.STATIC; } diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/style_property.ts b/x-pack/plugins/maps/public/classes/styles/vector/properties/style_property.ts index ee3da4e3636b3..3de004690e3e7 100644 --- a/x-pack/plugins/maps/public/classes/styles/vector/properties/style_property.ts +++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/style_property.ts @@ -32,7 +32,7 @@ export interface IStyleProperty { getDisplayStyleName(): string; } -export class AbstractStyleProperty implements IStyleProperty { +export class AbstractStyleProperty implements IStyleProperty { protected readonly _options: T; protected readonly _styleName: VECTOR_STYLES; diff --git a/x-pack/plugins/maps/public/classes/styles/vector/symbol_utils.tsx b/x-pack/plugins/maps/public/classes/styles/vector/symbol_utils.tsx index a0a2b27abb2f4..4f70524751b63 100644 --- a/x-pack/plugins/maps/public/classes/styles/vector/symbol_utils.tsx +++ b/x-pack/plugins/maps/public/classes/styles/vector/symbol_utils.tsx @@ -59,7 +59,9 @@ export async function createSdfIcon({ svgCanvas.width = size; svgCanvas.height = size; const svgCtx = svgCanvas.getContext('2d'); - // @ts-expect-error upgrade typescript v4.9.5 + if (!svgCtx) { + return null; + } const v = Canvg.fromString(svgCtx, svg, { ignoreDimensions: true, offsetX: buffer / 2, diff --git a/x-pack/plugins/maps/public/lazy_wrapper.tsx b/x-pack/plugins/maps/public/lazy_wrapper.tsx index 184cbc310da46..6444237e82f36 100644 --- a/x-pack/plugins/maps/public/lazy_wrapper.tsx +++ b/x-pack/plugins/maps/public/lazy_wrapper.tsx @@ -16,7 +16,7 @@ const Fallback = () => ( interface Props { getLazyComponent: () => FC; - lazyComponentProps: T; + lazyComponentProps: JSX.IntrinsicAttributes & T; } export function LazyWrapper({ getLazyComponent, lazyComponentProps }: Props) { @@ -24,7 +24,6 @@ export function LazyWrapper({ getLazyComponent, lazyComponentProps }: Props }> - {/* @ts-expect-error upgrade typescript v4.9.5*/} diff --git a/x-pack/plugins/ml/public/application/app.tsx b/x-pack/plugins/ml/public/application/app.tsx index 449f03d81b9fd..0413529ca4d67 100644 --- a/x-pack/plugins/ml/public/application/app.tsx +++ b/x-pack/plugins/ml/public/application/app.tsx @@ -10,6 +10,7 @@ import './_index.scss'; import ReactDOM from 'react-dom'; import { pick } from 'lodash'; +import type { DataViewsContract } from '@kbn/data-views-plugin/public'; import type { AppMountParameters, CoreStart, HttpStart } from '@kbn/core/public'; import type { UsageCollectionSetup } from '@kbn/usage-collection-plugin/public'; import { DatePickerContextProvider, type DatePickerDependencies } from '@kbn/ml-date-picker'; @@ -33,6 +34,8 @@ import { HttpService } from './services/http_service'; import type { PageDependencies } from './routing/router'; import { EnabledFeaturesContextProvider } from './contexts/ml'; import type { StartServices } from './contexts/kibana'; +import { fieldFormatServiceFactory } from './services/field_format_service_factory'; +import { indexServiceFactory } from './util/index_service'; export type MlDependencies = Omit< MlSetupDependencies, @@ -53,13 +56,29 @@ const localStorage = new Storage(window.localStorage); /** * Provides global services available across the entire ML app. */ -export function getMlGlobalServices(httpStart: HttpStart, usageCollection?: UsageCollectionSetup) { +export function getMlGlobalServices( + httpStart: HttpStart, + dataViews: DataViewsContract, + usageCollection?: UsageCollectionSetup +) { const httpService = new HttpService(httpStart); const mlApiServices = mlApiServicesProvider(httpService); + // Note on the following services: + // - `mlIndexUtils` is just instantiated here to be passed on to `mlFieldFormatService`, + // but it's not being made available as part of global services. Since it's just + // some stateless utils `useMlIndexUtils()` should be used from within components. + // - `mlFieldFormatService` is a stateful legacy service that relied on "dependency cache", + // so because of its own state it needs to be made available as a global service. + // In the long run we should again try to get rid of it here and make it available via + // its own context or possibly without having a singleton like state at all, since the + // way this manages its own state right now doesn't consider React component lifecycles. + const mlIndexUtils = indexServiceFactory(dataViews); + const mlFieldFormatService = fieldFormatServiceFactory(mlApiServices, mlIndexUtils); return { httpService, mlApiServices, + mlFieldFormatService, mlUsageCollection: mlUsageCollectionProvider(usageCollection), mlCapabilities: new MlCapabilitiesService(mlApiServices), mlLicense: new MlLicense(), @@ -106,7 +125,7 @@ const App: FC = ({ coreStart, deps, appMountParams, isServerless, mlFe unifiedSearch: deps.unifiedSearch, usageCollection: deps.usageCollection, ...coreStart, - mlServices: getMlGlobalServices(coreStart.http, deps.usageCollection), + mlServices: getMlGlobalServices(coreStart.http, deps.data.dataViews, deps.usageCollection), }; }, [deps, coreStart]); @@ -168,25 +187,13 @@ export const renderApp = ( setDependencyCache({ timefilter: deps.data.query.timefilter, fieldFormats: deps.fieldFormats, - autocomplete: deps.unifiedSearch.autocomplete, config: coreStart.uiSettings!, - chrome: coreStart.chrome!, docLinks: coreStart.docLinks!, toastNotifications: coreStart.notifications.toasts, - overlays: coreStart.overlays, - theme: coreStart.theme, recentlyAccessed: coreStart.chrome!.recentlyAccessed, - basePath: coreStart.http.basePath, - savedSearch: deps.savedSearch, application: coreStart.application, http: coreStart.http, - security: deps.security, - dashboard: deps.dashboard, maps: deps.maps, - dataVisualizer: deps.dataVisualizer, - dataViews: deps.data.dataViews, - share: deps.share, - lens: deps.lens, }); appMountParams.onAppLeave((actions) => actions.default()); diff --git a/x-pack/plugins/ml/public/application/components/anomalies_table/anomalies_table.js b/x-pack/plugins/ml/public/application/components/anomalies_table/anomalies_table.js index 0edb008184aae..220497ba13b10 100644 --- a/x-pack/plugins/ml/public/application/components/anomalies_table/anomalies_table.js +++ b/x-pack/plugins/ml/public/application/components/anomalies_table/anomalies_table.js @@ -18,6 +18,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiInMemoryTable, EuiText } from '@elastic/e import { FormattedMessage } from '@kbn/i18n-react'; import { usePageUrlState } from '@kbn/ml-url-state'; +import { context } from '@kbn/kibana-react-plugin/public'; import { getColumns } from './anomalies_table_columns'; @@ -29,6 +30,8 @@ import { ml } from '../../services/ml_api_service'; import { INFLUENCERS_LIMIT, ANOMALIES_TABLE_TABS, MAX_CHARS } from './anomalies_table_constants'; export class AnomaliesTableInternal extends Component { + static contextType = context; + constructor(props) { super(props); @@ -189,6 +192,7 @@ export class AnomaliesTableInternal extends Component { } const columns = getColumns( + this.context.services.mlServices.mlFieldFormatService, tableData.anomalies, tableData.jobIds, tableData.examplesByJobId, diff --git a/x-pack/plugins/ml/public/application/components/anomalies_table/anomalies_table.test.js b/x-pack/plugins/ml/public/application/components/anomalies_table/anomalies_table.test.js index d474969475d64..d8f00b92992c6 100644 --- a/x-pack/plugins/ml/public/application/components/anomalies_table/anomalies_table.test.js +++ b/x-pack/plugins/ml/public/application/components/anomalies_table/anomalies_table.test.js @@ -18,9 +18,6 @@ jest.mock('../../license', () => ({ jest.mock('../../capabilities/get_capabilities', () => ({ getCapabilities: () => {}, })); -jest.mock('../../services/field_format_service', () => ({ - getFieldFormat: () => {}, -})); jest.mock('./links_menu', () => () =>
mocked link component
); jest.mock('./description_cell', () => () => (
mocked description component
@@ -31,6 +28,10 @@ jest.mock('./influencers_cell', () => () => (
mocked influencer component
)); +const mlFieldFormatServiceMock = { + getFieldFormat: () => {}, +}; + const columnData = { items: mockAnomaliesTableData.default.anomalies, jobIds: mockAnomaliesTableData.default.jobIds, @@ -48,6 +49,7 @@ const columnData = { describe('AnomaliesTable', () => { test('all columns created', () => { const columns = getColumns( + mlFieldFormatServiceMock, columnData.items, columnData.jobIds, columnData.examplesByJobId, @@ -103,6 +105,7 @@ describe('AnomaliesTable', () => { }; const columns = getColumns( + mlFieldFormatServiceMock, noEntityValueColumnData.items, noEntityValueColumnData.jobIds, noEntityValueColumnData.examplesByJobId, @@ -133,6 +136,7 @@ describe('AnomaliesTable', () => { }; const columns = getColumns( + mlFieldFormatServiceMock, noInfluencersColumnData.items, noInfluencersColumnData.jobIds, noInfluencersColumnData.examplesByJobId, @@ -163,6 +167,7 @@ describe('AnomaliesTable', () => { }; const columns = getColumns( + mlFieldFormatServiceMock, noActualColumnData.items, noActualColumnData.jobIds, noActualColumnData.examplesByJobId, @@ -193,6 +198,7 @@ describe('AnomaliesTable', () => { }; const columns = getColumns( + mlFieldFormatServiceMock, noTypicalColumnData.items, noTypicalColumnData.jobIds, noTypicalColumnData.examplesByJobId, @@ -223,6 +229,7 @@ describe('AnomaliesTable', () => { }; const columns = getColumns( + mlFieldFormatServiceMock, multipleJobIdsData.items, multipleJobIdsData.jobIds, multipleJobIdsData.examplesByJobId, diff --git a/x-pack/plugins/ml/public/application/components/anomalies_table/anomalies_table_columns.js b/x-pack/plugins/ml/public/application/components/anomalies_table/anomalies_table_columns.js index cfc8c128f11a7..1f9eadff694f3 100644 --- a/x-pack/plugins/ml/public/application/components/anomalies_table/anomalies_table_columns.js +++ b/x-pack/plugins/ml/public/application/components/anomalies_table/anomalies_table_columns.js @@ -25,7 +25,6 @@ import { EntityCell } from '../entity_cell'; import { InfluencersCell } from './influencers_cell'; import { LinksMenu } from './links_menu'; import { checkPermission } from '../../capabilities/check_capabilities'; -import { mlFieldFormatService } from '../../services/field_format_service'; import { formatValue } from '../../formatters/format_value'; import { INFLUENCERS_LIMIT, ANOMALIES_TABLE_TABS } from './anomalies_table_constants'; import { SeverityCell } from './severity_cell'; @@ -56,6 +55,7 @@ function showLinksMenuForItem(item, showViewSeriesLink, sourceIndicesWithGeoFiel } export function getColumns( + mlFieldFormatService, items, jobIds, examplesByJobId, diff --git a/x-pack/plugins/ml/public/application/components/anomalies_table/links_menu.tsx b/x-pack/plugins/ml/public/application/components/anomalies_table/links_menu.tsx index c67092978d38a..cafb4bfdfa435 100644 --- a/x-pack/plugins/ml/public/application/components/anomalies_table/links_menu.tsx +++ b/x-pack/plugins/ml/public/application/components/anomalies_table/links_menu.tsx @@ -42,7 +42,7 @@ import { escapeQuotes } from '@kbn/es-query'; import { isQuery } from '@kbn/data-plugin/public'; import { PLUGIN_ID } from '../../../../common/constants/app'; -import { findMessageField, getDataViewIdFromName } from '../../util/index_utils'; +import { findMessageField } from '../../util/index_utils'; import { getInitialAnomaliesLayers, getInitialSourceIndexFieldLayers } from '../../../maps/util'; import { parseInterval } from '../../../../common/util/parse_interval'; import { ML_APP_LOCATOR, ML_PAGES } from '../../../../common/constants/locator'; @@ -61,6 +61,7 @@ import { usePermissionCheck } from '../../capabilities/check_capabilities'; import type { TimeRangeBounds } from '../../util/time_buckets'; import { useMlKibana } from '../../contexts/kibana'; import { getFieldTypeFromMapping } from '../../services/mapping_service'; +import { useMlIndexUtils } from '../../util/index_service'; import { getQueryStringForInfluencers } from './get_query_string_for_influencers'; @@ -97,6 +98,7 @@ export const LinksMenuUI = (props: LinksMenuProps) => { const { services: { data, share, application, uiActions }, } = kibana; + const { getDataViewIdFromName } = useMlIndexUtils(); const job = useMemo(() => { return mlJobService.getJob(props.anomaly.jobId); diff --git a/x-pack/plugins/ml/public/application/components/custom_urls/custom_urls.tsx b/x-pack/plugins/ml/public/application/components/custom_urls/custom_urls.tsx index c64f7f3ee2861..0b4b68981471a 100644 --- a/x-pack/plugins/ml/public/application/components/custom_urls/custom_urls.tsx +++ b/x-pack/plugins/ml/public/application/components/custom_urls/custom_urls.tsx @@ -24,7 +24,7 @@ import { import { FormattedMessage } from '@kbn/i18n-react'; import { i18n } from '@kbn/i18n'; -import { withKibana } from '@kbn/kibana-react-plugin/public'; +import { context } from '@kbn/kibana-react-plugin/public'; import type { DataViewListItem } from '@kbn/data-views-plugin/common'; import type { MlUrlConfig } from '@kbn/ml-anomaly-utils'; import { isDataFrameAnalyticsConfigs } from '@kbn/ml-data-frame-analytics-utils'; @@ -42,9 +42,9 @@ import { getTestUrl, type CustomUrlSettings, } from './custom_url_editor/utils'; -import { loadDataViewListItems } from '../../jobs/jobs_list/components/edit_job_flyout/edit_utils'; import { openCustomUrlWindow } from '../../util/custom_url_utils'; import type { CustomUrlsWrapperProps } from './custom_urls_wrapper'; +import { indexServiceFactory } from '../../util/index_service'; interface CustomUrlsState { customUrls: MlUrlConfig[]; @@ -55,13 +55,15 @@ interface CustomUrlsState { supportedFilterFields: string[]; } interface CustomUrlsProps extends CustomUrlsWrapperProps { - kibana: MlKibanaReactContextValue; currentTimeFilter?: EsQueryTimeRange; dashboardService: DashboardService; isPartialDFAJob?: boolean; } -class CustomUrlsUI extends Component { +export class CustomUrls extends Component { + static contextType = context; + declare context: MlKibanaReactContextValue; + private toastNotificationService: ToastNotificationService | undefined; constructor(props: CustomUrlsProps) { @@ -84,9 +86,10 @@ class CustomUrlsUI extends Component { } componentDidMount() { - const { toasts } = this.props.kibana.services.notifications; + const { toasts } = this.context.services.notifications; this.toastNotificationService = toastNotificationServiceProvider(toasts); const { dashboardService } = this.props; + const mlIndexUtils = indexServiceFactory(this.context.services.data.dataViews); dashboardService .fetchDashboards() @@ -105,7 +108,8 @@ class CustomUrlsUI extends Component { ); }); - loadDataViewListItems() + mlIndexUtils + .loadDataViewListItems() .then((dataViewListItems) => { this.setState({ dataViewListItems }); }) @@ -146,7 +150,7 @@ class CustomUrlsUI extends Component { }; addNewCustomUrl = () => { - const { dashboard } = this.props.kibana.services; + const { dashboard } = this.context.services; buildCustomUrlFromSettings(dashboard, this.state.editorSettings as CustomUrlSettings) .then((customUrl) => { @@ -173,7 +177,7 @@ class CustomUrlsUI extends Component { http: { basePath }, data: { dataViews }, dashboard, - } = this.props.kibana.services; + } = this.context.services; const dataViewId = this.state?.editorSettings?.kibanaSettings?.discoverIndexPatternId; const job = this.props.job; dataViews @@ -361,5 +365,3 @@ class CustomUrlsUI extends Component { ); } } - -export const CustomUrls = withKibana(CustomUrlsUI); diff --git a/x-pack/plugins/ml/public/application/contexts/kibana/__mocks__/kibana_context.ts b/x-pack/plugins/ml/public/application/contexts/kibana/__mocks__/kibana_context.ts index ab19e7c19b93e..671df792a9375 100644 --- a/x-pack/plugins/ml/public/application/contexts/kibana/__mocks__/kibana_context.ts +++ b/x-pack/plugins/ml/public/application/contexts/kibana/__mocks__/kibana_context.ts @@ -65,6 +65,9 @@ export const kibanaContextMock = { mlCapabilities: { refreshCapabilities: jest.fn(), }, + mlFieldFormatService: { + getFieldFormat: jest.fn(), + }, }, notifications: notificationServiceMock.createStartContract(), }, diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/common/use_results_view_config.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/common/use_results_view_config.ts index 139b49f7c2b45..22acd894d63ef 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/common/use_results_view_config.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/common/use_results_view_config.ts @@ -20,9 +20,9 @@ import { } from '@kbn/ml-data-frame-analytics-utils'; import { useMlKibana } from '../../contexts/kibana'; -import { getDataViewIdFromName } from '../../util/index_utils'; import { ml } from '../../services/ml_api_service'; import { newJobCapsServiceAnalytics } from '../../services/new_job_capabilities/new_job_capabilities_service_analytics'; +import { useMlIndexUtils } from '../../util/index_service'; import { isGetDataFrameAnalyticsStatsResponseOk } from '../pages/analytics_management/services/analytics_service/get_analytics'; import { useTrainedModelsApiService } from '../../services/ml_api_service/trained_models'; @@ -35,6 +35,7 @@ export const useResultsViewConfig = (jobId: string) => { data: { dataViews }, }, } = useMlKibana(); + const { getDataViewIdFromName } = useMlIndexUtils(); const trainedModelsApiService = useTrainedModelsApiService(); const [dataView, setDataView] = useState(undefined); diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/job_map/components/controls.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/job_map/components/controls.tsx index 2786046610fc7..e637b2718f233 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/job_map/components/controls.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/job_map/components/controls.tsx @@ -39,13 +39,13 @@ import { useMlKibana, } from '../../../../contexts/kibana'; import { useEnabledFeatures } from '../../../../contexts/ml'; -import { getDataViewIdFromName } from '../../../../util/index_utils'; import { useNavigateToWizardWithClonedJob } from '../../analytics_management/components/action_clone/clone_action_name'; import { useDeleteAction, DeleteActionModal, } from '../../analytics_management/components/action_delete'; import { DeleteSpaceAwareItemCheckModal } from '../../../../components/delete_space_aware_item_check_modal'; +import { useMlIndexUtils } from '../../../../util/index_service'; interface Props { details: Record; @@ -115,6 +115,7 @@ export const Controls: FC = React.memo( application: { navigateToUrl, capabilities }, }, } = useMlKibana(); + const { getDataViewIdFromName } = useMlIndexUtils(); const hasIngestPipelinesCapabilities = capabilities.management?.ingest?.ingest_pipelines === true; diff --git a/x-pack/plugins/ml/public/application/explorer/actions/job_selection.ts b/x-pack/plugins/ml/public/application/explorer/actions/job_selection.ts index ed244cbd894ba..5ace1a3422aab 100644 --- a/x-pack/plugins/ml/public/application/explorer/actions/job_selection.ts +++ b/x-pack/plugins/ml/public/application/explorer/actions/job_selection.ts @@ -8,13 +8,16 @@ import { from } from 'rxjs'; import { map } from 'rxjs/operators'; -import { mlFieldFormatService } from '../../services/field_format_service'; +import type { MlFieldFormatService } from '../../services/field_format_service'; import { mlJobService } from '../../services/job_service'; import { EXPLORER_ACTION } from '../explorer_constants'; import { createJobs } from '../explorer_utils'; -export function jobSelectionActionCreator(selectedJobIds: string[]) { +export function jobSelectionActionCreator( + mlFieldFormatService: MlFieldFormatService, + selectedJobIds: string[] +) { return from(mlFieldFormatService.populateFormats(selectedJobIds)).pipe( map((resp) => { if (resp.error) { diff --git a/x-pack/plugins/ml/public/application/explorer/anomaly_explorer_context.tsx b/x-pack/plugins/ml/public/application/explorer/anomaly_explorer_context.tsx index 53b9edc97cb6b..4228881a5e4fe 100644 --- a/x-pack/plugins/ml/public/application/explorer/anomaly_explorer_context.tsx +++ b/x-pack/plugins/ml/public/application/explorer/anomaly_explorer_context.tsx @@ -17,29 +17,29 @@ import { AnomalyChartsStateService } from './anomaly_charts_state_service'; import { AnomalyExplorerChartsService } from '../services/anomaly_explorer_charts_service'; import { useTableSeverity } from '../components/controls/select_severity'; import { AnomalyDetectionAlertsStateService } from './alerts'; - -export type AnomalyExplorerContextValue = - | { - anomalyExplorerChartsService: AnomalyExplorerChartsService; - anomalyExplorerCommonStateService: AnomalyExplorerCommonStateService; - anomalyTimelineService: AnomalyTimelineService; - anomalyTimelineStateService: AnomalyTimelineStateService; - chartsStateService: AnomalyChartsStateService; - anomalyDetectionAlertsStateService: AnomalyDetectionAlertsStateService; - } - | undefined; +import { explorerServiceFactory, type ExplorerService } from './explorer_dashboard_service'; + +export interface AnomalyExplorerContextValue { + anomalyExplorerChartsService: AnomalyExplorerChartsService; + anomalyExplorerCommonStateService: AnomalyExplorerCommonStateService; + anomalyTimelineService: AnomalyTimelineService; + anomalyTimelineStateService: AnomalyTimelineStateService; + chartsStateService: AnomalyChartsStateService; + anomalyDetectionAlertsStateService: AnomalyDetectionAlertsStateService; + explorerService: ExplorerService; +} /** * Context of the Anomaly Explorer page. */ -export const AnomalyExplorerContext = React.createContext(undefined); +export const AnomalyExplorerContext = React.createContext( + undefined +); /** * Hook for consuming {@link AnomalyExplorerContext}. */ -export function useAnomalyExplorerContext(): - | Exclude - | never { +export function useAnomalyExplorerContext() { const context = useContext(AnomalyExplorerContext); if (context === undefined) { @@ -59,7 +59,7 @@ export const AnomalyExplorerContextProvider: FC = ({ children }) => { const { services: { - mlServices: { mlApiServices }, + mlServices: { mlApiServices, mlFieldFormatService }, uiSettings, data, }, @@ -70,10 +70,17 @@ export const AnomalyExplorerContextProvider: FC = ({ children }) => { // eslint-disable-next-line react-hooks/exhaustive-deps const mlResultsService = useMemo(() => mlResultsServiceProvider(mlApiServices), []); - const [anomalyExplorerContextValue, setAnomalyExplorerContextValue] = - useState(undefined); + const [anomalyExplorerContextValue, setAnomalyExplorerContextValue] = useState< + AnomalyExplorerContextValue | undefined + >(undefined); + // It might look tempting to refactor this into `useMemo()` and just return + // `anomalyExplorerContextValue`, but these services internally might call other state + // updates so using `useEffect` is the right thing to do here to not get errors + // related to React lifecycle methods. useEffect(() => { + const explorerService = explorerServiceFactory(mlFieldFormatService); + const anomalyTimelineService = new AnomalyTimelineService( timefilter, uiSettings, @@ -118,6 +125,7 @@ export const AnomalyExplorerContextProvider: FC = ({ children }) => { anomalyTimelineStateService, chartsStateService, anomalyDetectionAlertsStateService, + explorerService, }); return () => { diff --git a/x-pack/plugins/ml/public/application/explorer/explorer.tsx b/x-pack/plugins/ml/public/application/explorer/explorer.tsx index 7d04cfee36c66..04e12740059b8 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer.tsx +++ b/x-pack/plugins/ml/public/application/explorer/explorer.tsx @@ -79,6 +79,7 @@ import { useMlKibana, useMlLocator } from '../contexts/kibana'; import { useAnomalyExplorerContext } from './anomaly_explorer_context'; import { ML_ANOMALY_EXPLORER_PANELS } from '../../../common/types/storage'; import { AlertsPanel } from './alerts'; +import { useMlIndexUtils } from '../util/index_service'; interface ExplorerPageProps { jobSelectorProps: JobSelectorProps; @@ -371,6 +372,7 @@ export const Explorer: FC = ({ }, } = useMlKibana(); const { euiTheme } = useEuiTheme(); + const mlIndexUtils = useMlIndexUtils(); const mlLocator = useMlLocator(); const { @@ -444,7 +446,7 @@ export const Explorer: FC = ({ useEffect(() => { if (!noJobsSelected) { - getDataViewsAndIndicesWithGeoFields(selectedJobs, dataViewsService) + getDataViewsAndIndicesWithGeoFields(selectedJobs, dataViewsService, mlIndexUtils) .then(({ sourceIndicesWithGeoFieldsMap, dataViews: dv }) => { setSourceIndicesWithGeoFields(sourceIndicesWithGeoFieldsMap); setDataViews(dv); diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.js index 175b58a72c0a5..54c079c745cd2 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.js @@ -24,6 +24,7 @@ import { getSeverityWithLow, } from '@kbn/ml-anomaly-utils'; import { formatHumanReadableDateTime } from '@kbn/ml-date-utils'; +import { context } from '@kbn/kibana-react-plugin/public'; import { formatValue } from '../../formatters/format_value'; import { @@ -34,7 +35,6 @@ import { chartExtendedLimits, } from '../../util/chart_utils'; import { LoadingIndicator } from '../../components/loading_indicator/loading_indicator'; -import { mlFieldFormatService } from '../../services/field_format_service'; import { CHART_TYPE } from '../explorer_constants'; import { TRANSPARENT_BACKGROUND } from './constants'; @@ -49,6 +49,8 @@ const CONTENT_WRAPPER_HEIGHT = 215; const Y_AXIS_LABEL_THRESHOLD = 10; export class ExplorerChartDistribution extends React.Component { + static contextType = context; + static propTypes = { seriesConfig: PropTypes.object, severity: PropTypes.number, @@ -83,7 +85,10 @@ export class ExplorerChartDistribution extends React.Component { return; } - const fieldFormat = mlFieldFormatService.getFieldFormat(config.jobId, config.detectorIndex); + const fieldFormat = this.context.services.mlServices.mlFieldFormatService.getFieldFormat( + config.jobId, + config.detectorIndex + ); let vizWidth = 0; const chartHeight = 170; diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.test.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.test.js index 5a146c51b61c1..123c377506d4a 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.test.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.test.js @@ -7,13 +7,9 @@ import { chartData as mockChartData } from './__mocks__/mock_chart_data_rare'; import seriesConfig from './__mocks__/mock_series_config_rare.json'; -jest.mock('../../services/field_format_service', () => ({ - mlFieldFormatService: { - getFieldFormat: jest.fn(), - }, -})); import { mountWithIntl } from '@kbn/test-jest-helpers'; +import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; import React from 'react'; import { ExplorerChartDistribution } from './explorer_chart_distribution'; @@ -28,6 +24,15 @@ const utilityProps = { x: 10432423, }, }; + +const servicesMock = { + mlServices: { + mlFieldFormatService: { + getFieldFormat: jest.fn(), + }, + }, +}; + describe('ExplorerChart', () => { const mlSelectSeverityServiceMock = { state: { @@ -49,11 +54,13 @@ describe('ExplorerChart', () => { }; const wrapper = mountWithIntl( - + + + ); // without setting any attributes and corresponding data @@ -74,12 +81,14 @@ describe('ExplorerChart', () => { }; const wrapper = mountWithIntl( - + + + ); // test if the loading indicator is shown @@ -106,14 +115,16 @@ describe('ExplorerChart', () => { // We create the element including a wrapper which sets the width: return mountWithIntl( -
- -
+ +
+ +
+
); } diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.js index 95933451d6f47..82c7fb4eb4daf 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.js @@ -24,6 +24,7 @@ import { getSeverityWithLow, } from '@kbn/ml-anomaly-utils'; import { formatHumanReadableDateTime } from '@kbn/ml-date-utils'; +import { context } from '@kbn/kibana-react-plugin/public'; import { formatValue } from '../../formatters/format_value'; import { @@ -39,13 +40,14 @@ import { getMultiBucketImpactTooltipValue, } from '../../util/chart_utils'; import { LoadingIndicator } from '../../components/loading_indicator/loading_indicator'; -import { mlFieldFormatService } from '../../services/field_format_service'; import { TRANSPARENT_BACKGROUND } from './constants'; const CONTENT_WRAPPER_HEIGHT = 215; const CONTENT_WRAPPER_CLASS = 'ml-explorer-chart-content-wrapper'; export class ExplorerChartSingleMetric extends React.Component { + static contextType = context; + static propTypes = { tooManyBuckets: PropTypes.bool, seriesConfig: PropTypes.object, @@ -85,7 +87,10 @@ export class ExplorerChartSingleMetric extends React.Component { return; } - const fieldFormat = mlFieldFormatService.getFieldFormat(config.jobId, config.detectorIndex); + const fieldFormat = this.context.services.mlServices.mlFieldFormatService.getFieldFormat( + config.jobId, + config.detectorIndex + ); let vizWidth = 0; const chartHeight = 170; diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.test.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.test.js index 3bc38c5754e88..baaca53324a72 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.test.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.test.js @@ -7,13 +7,9 @@ import { chartData as mockChartData } from './__mocks__/mock_chart_data'; import seriesConfig from './__mocks__/mock_series_config_filebeat.json'; -jest.mock('../../services/field_format_service', () => ({ - mlFieldFormatService: { - getFieldFormat: jest.fn(), - }, -})); import { mountWithIntl } from '@kbn/test-jest-helpers'; +import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; import React from 'react'; import { ExplorerChartSingleMetric } from './explorer_chart_single_metric'; @@ -50,12 +46,14 @@ describe('ExplorerChart', () => { }; const wrapper = mountWithIntl( - + + + ); // without setting any attributes and corresponding data @@ -76,13 +74,15 @@ describe('ExplorerChart', () => { }; const wrapper = mountWithIntl( - + + + ); // test if the loading indicator is shown @@ -110,15 +110,17 @@ describe('ExplorerChart', () => { // We create the element including a wrapper which sets the width: return mountWithIntl( -
- -
+ +
+ +
+
); } diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container.test.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container.test.js index 766ab0ee7f723..38f8eca99ae68 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container.test.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container.test.js @@ -9,6 +9,7 @@ import React from 'react'; import { mount, shallow } from 'enzyme'; import { I18nProvider } from '@kbn/i18n-react'; +import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; import { getDefaultChartsData } from './explorer_charts_container_service'; import { ExplorerChartsContainer, getEntitiesQuery } from './explorer_charts_container'; @@ -20,23 +21,12 @@ import { kibanaContextMock } from '../../contexts/kibana/__mocks__/kibana_contex import { timeBucketsMock } from '../../util/__mocks__/time_buckets'; import { timefilterMock } from '../../contexts/kibana/__mocks__/use_timefilter'; -jest.mock('../../services/field_format_service', () => ({ - mlFieldFormatService: { - getFieldFormat: jest.fn(), - }, -})); jest.mock('../../services/job_service', () => ({ mlJobService: { getJob: jest.fn(), }, })); -jest.mock('@kbn/kibana-react-plugin/public', () => ({ - withKibana: (comp) => { - return comp; - }, -})); - jest.mock('../../contexts/kibana', () => ({ useMlKibana: () => { return { @@ -95,7 +85,13 @@ describe('ExplorerChartsContainer', () => { test('Minimal Initialization', () => { const wrapper = shallow( - + + + ); @@ -120,7 +116,9 @@ describe('ExplorerChartsContainer', () => { }; const wrapper = mount( - + + + ); @@ -147,7 +145,9 @@ describe('ExplorerChartsContainer', () => { }; const wrapper = mount( - + + + ); diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_dashboard_service.ts b/x-pack/plugins/ml/public/application/explorer/explorer_dashboard_service.ts index 5bcd305389d39..457f588573f1c 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_dashboard_service.ts +++ b/x-pack/plugins/ml/public/application/explorer/explorer_dashboard_service.ts @@ -17,6 +17,7 @@ import { DeepPartial } from '../../../common/types/common'; import { jobSelectionActionCreator } from './actions'; import { EXPLORER_ACTION } from './explorer_constants'; import { explorerReducer, getExplorerDefaultState, ExplorerState } from './reducers'; +import type { MlFieldFormatService } from '../services/field_format_service'; type ExplorerAction = Action | Observable; export const explorerAction$ = new Subject(); @@ -49,7 +50,7 @@ const setExplorerDataActionCreator = (payload: DeepPartial) => ({ }); // Export observable state and action dispatchers as service -export const explorerService = { +export const explorerServiceFactory = (mlFieldFormatService: MlFieldFormatService) => ({ state$: explorerState$, clearExplorerData: () => { explorerAction$.next({ type: EXPLORER_ACTION.CLEAR_EXPLORER_DATA }); @@ -61,7 +62,7 @@ export const explorerService = { explorerAction$.next({ type: EXPLORER_ACTION.CLEAR_JOBS }); }, updateJobSelection: (selectedJobIds: string[]) => { - explorerAction$.next(jobSelectionActionCreator(selectedJobIds)); + explorerAction$.next(jobSelectionActionCreator(mlFieldFormatService, selectedJobIds)); }, setExplorerData: (payload: DeepPartial) => { explorerAction$.next(setExplorerDataActionCreator(payload)); @@ -69,6 +70,6 @@ export const explorerService = { setChartsDataLoading: () => { explorerAction$.next({ type: EXPLORER_ACTION.SET_CHARTS_DATA_LOADING }); }, -}; +}); -export type ExplorerService = typeof explorerService; +export type ExplorerService = ReturnType; diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_utils.ts b/x-pack/plugins/ml/public/application/explorer/explorer_utils.ts index a3c464898ca77..9aa68e0a3fa43 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_utils.ts +++ b/x-pack/plugins/ml/public/application/explorer/explorer_utils.ts @@ -30,7 +30,7 @@ import { ANNOTATIONS_TABLE_DEFAULT_QUERY_SIZE, ANOMALIES_TABLE_DEFAULT_QUERY_SIZE, } from '../../../common/constants/search'; -import { getDataViewIdFromName } from '../util/index_utils'; +import type { MlIndexUtils } from '../util/index_service'; import { isSourceDataChartableForDetector, isModelPlotChartableForDetector, @@ -633,7 +633,8 @@ export function removeFilterFromQueryString( // Returns an object mapping job ids to source indices which map to geo fields for that index export async function getDataViewsAndIndicesWithGeoFields( selectedJobs: Array, - dataViewsService: DataViewsContract + dataViewsService: DataViewsContract, + mlIndexUtils: MlIndexUtils ): Promise<{ sourceIndicesWithGeoFieldsMap: SourceIndicesWithGeoFields; dataViews: DataView[] }> { const sourceIndicesWithGeoFieldsMap: SourceIndicesWithGeoFields = {}; // Avoid searching for data view again if previous job already has same source index @@ -654,7 +655,8 @@ export async function getDataViewsAndIndicesWithGeoFields( if (Array.isArray(sourceIndices)) { for (const sourceIndex of sourceIndices) { const cachedDV = dataViewsMap.get(sourceIndex); - const dataViewId = cachedDV?.id ?? (await getDataViewIdFromName(sourceIndex)); + const dataViewId = + cachedDV?.id ?? (await mlIndexUtils.getDataViewIdFromName(sourceIndex)); if (dataViewId) { const dataView = cachedDV ?? (await dataViewsService.get(dataViewId)); diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_utils.d.ts b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_utils.d.ts deleted file mode 100644 index ea58dc1bfb26f..0000000000000 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_utils.d.ts +++ /dev/null @@ -1,10 +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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import type { DataViewListItem } from '@kbn/data-views-plugin/common'; - -export function loadDataViewListItems(): Promise; diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_utils.js b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_utils.js index 9798fbe119556..d587f83a50b5e 100644 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_utils.js +++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_utils.js @@ -8,7 +8,6 @@ import { difference } from 'lodash'; import { getNewJobLimits } from '../../../../services/ml_server_info'; import { processCreatedBy } from '../../../../../../common/util/job_utils'; -import { getDataViews } from '../../../../util/dependency_cache'; import { ml } from '../../../../services/ml_api_service'; export function saveJob(job, newJobData, finish) { @@ -72,11 +71,6 @@ function saveDatafeed(datafeedConfig, job) { }); } -export async function loadDataViewListItems() { - const dataViewsService = getDataViews(); - return (await dataViewsService.getIdsWithTitle()).sort((a, b) => a.title.localeCompare(b.title)); -} - function extractDescription(job, newJobData) { const description = newJobData.description; if (newJobData.description !== job.description) { diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_dashboard/quick_create_job_base.ts b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_dashboard/quick_create_job_base.ts index f5f491426b0a3..456cf54142812 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_dashboard/quick_create_job_base.ts +++ b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_dashboard/quick_create_job_base.ts @@ -17,6 +17,7 @@ import { FilterStateStore } from '@kbn/es-query'; import type { Embeddable } from '@kbn/lens-plugin/public'; import type { MapEmbeddable } from '@kbn/maps-plugin/public'; import type { ErrorType } from '@kbn/ml-error-utils'; +import type { DataViewsContract } from '@kbn/data-views-plugin/public'; import type { MlApiServices } from '../../../services/ml_api_service'; import type { Job, Datafeed } from '../../../../../common/types/anomaly_detection_jobs'; import { getFiltersForDSLQuery } from '../../../../../common/util/job_utils'; @@ -58,6 +59,7 @@ function mergeQueriesCheck( export class QuickJobCreatorBase { constructor( + protected readonly dataViews: DataViewsContract, protected readonly kibanaConfig: IUiSettingsClient, protected readonly timeFilter: TimefilterContract, protected readonly dashboardService: DashboardStart, diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/quick_create_job.ts b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/quick_create_job.ts index 4df2b74347f47..0860f8c9f4d86 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/quick_create_job.ts +++ b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/quick_create_job.ts @@ -14,6 +14,7 @@ import type { } from '@kbn/lens-plugin/public'; import type { IUiSettingsClient } from '@kbn/core/public'; import type { TimefilterContract } from '@kbn/data-plugin/public'; +import type { DataViewsContract } from '@kbn/data-views-plugin/public'; import type { Filter, Query } from '@kbn/es-query'; import type { DashboardStart } from '@kbn/dashboard-plugin/public'; @@ -38,12 +39,13 @@ import { QuickJobCreatorBase, type CreateState } from '../job_from_dashboard'; export class QuickLensJobCreator extends QuickJobCreatorBase { constructor( private readonly lens: LensPublicStart, + dataViews: DataViewsContract, kibanaConfig: IUiSettingsClient, timeFilter: TimefilterContract, dashboardService: DashboardStart, mlApiServices: MlApiServices ) { - super(kibanaConfig, timeFilter, dashboardService, mlApiServices); + super(dataViews, kibanaConfig, timeFilter, dashboardService, mlApiServices); } public async createAndSaveJob( diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/route_resolver.ts b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/route_resolver.ts index c8ad1ee6942e4..d6a815777fa9d 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/route_resolver.ts +++ b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/route_resolver.ts @@ -12,6 +12,7 @@ import type { LensPublicStart, LensSavedObjectAttributes } from '@kbn/lens-plugi import type { IUiSettingsClient } from '@kbn/core-ui-settings-browser'; import type { TimefilterContract } from '@kbn/data-plugin/public'; import type { DashboardStart } from '@kbn/dashboard-plugin/public'; +import type { DataViewsContract } from '@kbn/data-views-plugin/public'; import { QuickLensJobCreator } from './quick_create_job'; import type { MlApiServices } from '../../../services/ml_api_service'; @@ -19,6 +20,7 @@ import { getDefaultQuery, getRisonValue } from '../utils/new_job_utils'; interface Dependencies { lens: LensPublicStart; + dataViews: DataViewsContract; kibanaConfig: IUiSettingsClient; timeFilter: TimefilterContract; dashboardService: DashboardStart; @@ -33,7 +35,7 @@ export async function resolver( filtersRisonString: string, layerIndexRisonString: string ) { - const { lens, mlApiServices, timeFilter, kibanaConfig, dashboardService } = deps; + const { dataViews, lens, mlApiServices, timeFilter, kibanaConfig, dashboardService } = deps; if (lensSavedObjectRisonString === undefined) { throw new Error('Cannot create visualization'); } @@ -51,6 +53,7 @@ export async function resolver( const jobCreator = new QuickLensJobCreator( lens, + dataViews, kibanaConfig, timeFilter, dashboardService, diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_map/quick_create_job.ts b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_map/quick_create_job.ts index 4142891daef41..4331c665172a7 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_map/quick_create_job.ts +++ b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_map/quick_create_job.ts @@ -10,11 +10,10 @@ import type { MapEmbeddable } from '@kbn/maps-plugin/public'; import type { IUiSettingsClient } from '@kbn/core/public'; import type { TimefilterContract } from '@kbn/data-plugin/public'; import type { Filter, Query } from '@kbn/es-query'; -import type { DataView } from '@kbn/data-views-plugin/public'; +import type { DataView, DataViewsContract } from '@kbn/data-views-plugin/public'; import type { DashboardStart } from '@kbn/dashboard-plugin/public'; import type { MlApiServices } from '../../../services/ml_api_service'; -import { getDataViews } from '../../../util/dependency_cache'; import { CREATED_BY_LABEL, JOB_TYPE, @@ -40,12 +39,13 @@ interface VisDescriptor { export class QuickGeoJobCreator extends QuickJobCreatorBase { constructor( + dataViews: DataViewsContract, kibanaConfig: IUiSettingsClient, timeFilter: TimefilterContract, dashboardService: DashboardStart, mlApiServices: MlApiServices ) { - super(kibanaConfig, timeFilter, dashboardService, mlApiServices); + super(dataViews, kibanaConfig, timeFilter, dashboardService, mlApiServices); } public async createAndSaveGeoJob({ @@ -250,7 +250,7 @@ export class QuickGeoJobCreator extends QuickJobCreatorBase { }: VisDescriptor) { const dataView: DataView = sourceDataView ? sourceDataView - : await getDataViews().get(dataViewId!, true); + : await this.dataViews.get(dataViewId!, true); const jobConfig = createEmptyJob(); const datafeedConfig = createEmptyDatafeed(dataView.getIndexPattern()); diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_map/route_resolver.ts b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_map/route_resolver.ts index 0728ca3c61d59..c102f0ee6ddd9 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_map/route_resolver.ts +++ b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_map/route_resolver.ts @@ -8,12 +8,14 @@ import type { IUiSettingsClient } from '@kbn/core-ui-settings-browser'; import type { TimefilterContract } from '@kbn/data-plugin/public'; import type { DashboardStart } from '@kbn/dashboard-plugin/public'; +import type { DataViewsContract } from '@kbn/data-views-plugin/public'; import type { MlApiServices } from '../../../services/ml_api_service'; import { QuickGeoJobCreator } from './quick_create_job'; import { getDefaultQuery, getRisonValue } from '../utils/new_job_utils'; interface Dependencies { + dataViews: DataViewsContract; kibanaConfig: IUiSettingsClient; timeFilter: TimefilterContract; dashboardService: DashboardStart; @@ -30,7 +32,7 @@ export async function resolver( toRisonString: string, layerRisonString?: string ) { - const { kibanaConfig, timeFilter, dashboardService, mlApiServices } = deps; + const { dataViews, kibanaConfig, timeFilter, dashboardService, mlApiServices } = deps; const defaultLayer = { query: getDefaultQuery(), filters: [] }; const dashboard = getRisonValue(dashboardRisonString, defaultLayer); @@ -49,6 +51,7 @@ export async function resolver( const to = getRisonValue(toRisonString, ''); const jobCreator = new QuickGeoJobCreator( + dataViews, kibanaConfig, timeFilter, dashboardService, diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_pattern_analysis/quick_create_job.ts b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_pattern_analysis/quick_create_job.ts index 220b0c0446670..f1073b4cb39bc 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_pattern_analysis/quick_create_job.ts +++ b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_pattern_analysis/quick_create_job.ts @@ -8,7 +8,8 @@ import type { IUiSettingsClient } from '@kbn/core/public'; import type { DataPublicPluginStart, TimefilterContract } from '@kbn/data-plugin/public'; import type { DashboardStart } from '@kbn/dashboard-plugin/public'; -import { DataViewField, DataView } from '@kbn/data-views-plugin/common'; +import type { DataViewField, DataView } from '@kbn/data-views-plugin/common'; +import type { DataViewsContract } from '@kbn/data-views-plugin/public'; import type { TimeRange } from '@kbn/es-query'; import { i18n } from '@kbn/i18n'; import { MLCATEGORY, ML_JOB_AGGREGATION } from '@kbn/ml-anomaly-utils'; @@ -30,13 +31,14 @@ export type CategorizationType = typeof CATEGORIZATION_TYPE[keyof typeof CATEGOR export class QuickCategorizationJobCreator extends QuickJobCreatorBase { constructor( + dataViews: DataViewsContract, kibanaConfig: IUiSettingsClient, timeFilter: TimefilterContract, dashboardService: DashboardStart, private data: DataPublicPluginStart, mlApiServices: MlApiServices ) { - super(kibanaConfig, timeFilter, dashboardService, mlApiServices); + super(dataViews, kibanaConfig, timeFilter, dashboardService, mlApiServices); } public async createAndSaveJob( diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_pattern_analysis/route_resolver.ts b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_pattern_analysis/route_resolver.ts index 0f8462128d2cf..69ca29f9a5ab4 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_pattern_analysis/route_resolver.ts +++ b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_pattern_analysis/route_resolver.ts @@ -52,6 +52,7 @@ export async function resolver( const stopOnWarn = getRisonValue(stopOnWarnRisonString, false); const jobCreator = new QuickCategorizationJobCreator( + data.dataViews, kibanaConfig, timeFilter, dashboardService, diff --git a/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/jobs_list_page.tsx b/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/jobs_list_page.tsx index 0ea71f4220858..258ebeb148dbf 100644 --- a/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/jobs_list_page.tsx +++ b/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/jobs_list_page.tsx @@ -76,8 +76,8 @@ export const JobsListPage: FC = ({ const theme$ = coreStart.theme.theme$; const mlServices = useMemo( - () => getMlGlobalServices(coreStart.http, usageCollection), - [coreStart.http, usageCollection] + () => getMlGlobalServices(coreStart.http, data.dataViews, usageCollection), + [coreStart.http, data.dataViews, usageCollection] ); const check = async () => { diff --git a/x-pack/plugins/ml/public/application/routing/routes/explorer.tsx b/x-pack/plugins/ml/public/application/routing/routes/explorer.tsx index 5a3e129bbfaaa..5a8399418b399 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/explorer.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/explorer.tsx @@ -28,7 +28,6 @@ import { Explorer } from '../../explorer'; import { mlJobService } from '../../services/job_service'; import { ml } from '../../services/ml_api_service'; import { useExplorerData } from '../../explorer/actions'; -import { explorerService } from '../../explorer/explorer_dashboard_service'; import { getDateFormatTz } from '../../explorer/explorer_utils'; import { useJobSelection } from '../../components/job_selector/use_job_selection'; import { useTableInterval } from '../../components/controls/select_interval'; @@ -118,8 +117,9 @@ const ExplorerUrlStateManager: FC = ({ jobsWithTim (job) => jobIds.includes(job.id) && job.isRunning === true ); - const explorerState = useObservable(explorerService.state$); const anomalyExplorerContext = useAnomalyExplorerContext(); + const { explorerService } = anomalyExplorerContext; + const explorerState = useObservable(anomalyExplorerContext.explorerService.state$); const refresh = useRefresh(); const lastRefresh = refresh?.lastRefresh ?? 0; @@ -177,6 +177,7 @@ const ExplorerUrlStateManager: FC = ({ jobsWithTim // clear any data to prevent next page from rendering old charts explorerService.clearExplorerData(); }; + // eslint-disable-next-line react-hooks/exhaustive-deps }, []); const [explorerData, loadExplorerData] = useExplorerData(); @@ -185,6 +186,7 @@ const ExplorerUrlStateManager: FC = ({ jobsWithTim if (explorerData !== undefined && Object.keys(explorerData).length > 0) { explorerService.setExplorerData(explorerData); } + // eslint-disable-next-line react-hooks/exhaustive-deps }, [explorerData]); const [tableInterval] = useTableInterval(); diff --git a/x-pack/plugins/ml/public/application/routing/routes/new_job/from_lens.tsx b/x-pack/plugins/ml/public/application/routing/routes/new_job/from_lens.tsx index c030cd8eeb34b..1ad7058b43622 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/new_job/from_lens.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/new_job/from_lens.tsx @@ -30,6 +30,7 @@ const PageWrapper: FC = ({ location }) => { const { services: { data: { + dataViews, query: { timefilter: { timefilter: timeFilter }, }, @@ -44,7 +45,7 @@ const PageWrapper: FC = ({ location }) => { const { context } = useRouteResolver('full', ['canCreateJob'], { redirect: () => resolver( - { lens, mlApiServices, timeFilter, kibanaConfig, dashboardService }, + { dataViews, lens, mlApiServices, timeFilter, kibanaConfig, dashboardService }, vis, from, to, diff --git a/x-pack/plugins/ml/public/application/routing/routes/new_job/from_map.tsx b/x-pack/plugins/ml/public/application/routing/routes/new_job/from_map.tsx index 2c0d1d77b3d47..81dfc5b218ef6 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/new_job/from_map.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/new_job/from_map.tsx @@ -37,6 +37,7 @@ const PageWrapper: FC = ({ location }) => { const { services: { data: { + dataViews, query: { timefilter: { timefilter: timeFilter }, }, @@ -50,7 +51,7 @@ const PageWrapper: FC = ({ location }) => { const { context } = useRouteResolver('full', ['canCreateJob'], { redirect: () => resolver( - { mlApiServices, timeFilter, kibanaConfig, dashboardService }, + { dataViews, mlApiServices, timeFilter, kibanaConfig, dashboardService }, dashboard, dataViewId, embeddable, diff --git a/x-pack/plugins/ml/public/application/services/field_format_service.ts b/x-pack/plugins/ml/public/application/services/field_format_service.ts index 8519a13e7d7bc..de4885861d331 100644 --- a/x-pack/plugins/ml/public/application/services/field_format_service.ts +++ b/x-pack/plugins/ml/public/application/services/field_format_service.ts @@ -6,7 +6,6 @@ */ import { mlFunctionToESAggregation } from '../../../common/util/job_utils'; -import { getDataViewById, getDataViewIdFromName } from '../util/index_utils'; import { mlJobService } from './job_service'; import type { MlIndexUtils } from '../util/index_service'; import type { MlApiServices } from './ml_api_service'; @@ -20,7 +19,7 @@ export class FieldFormatService { indexPatternIdsByJob: IndexPatternIdsByJob = {}; formatsByJob: FormatsByJobId = {}; - constructor(private mlApiServices?: MlApiServices, private mlIndexUtils?: MlIndexUtils) {} + constructor(private mlApiServices: MlApiServices, private mlIndexUtils: MlIndexUtils) {} // Populate the service with the FieldFormats for the list of jobs with the // specified IDs. List of Kibana data views is passed, with a title @@ -36,7 +35,6 @@ export class FieldFormatService { ( await Promise.all( jobIds.map(async (jobId) => { - const getDataViewId = this.mlIndexUtils?.getDataViewIdFromName ?? getDataViewIdFromName; let jobObj; if (this.mlApiServices) { const { jobs } = await this.mlApiServices.getJobs({ jobId }); @@ -46,7 +44,9 @@ export class FieldFormatService { } return { jobId, - dataViewId: await getDataViewId(jobObj.datafeed_config!.indices.join(',')), + dataViewId: await this.mlIndexUtils.getDataViewIdFromName( + jobObj.datafeed_config!.indices.join(',') + ), }; }) ) @@ -81,7 +81,6 @@ export class FieldFormatService { async getFormatsForJob(jobId: string): Promise { let jobObj; - const getDataView = this.mlIndexUtils?.getDataViewById ?? getDataViewById; if (this.mlApiServices) { const { jobs } = await this.mlApiServices.getJobs({ jobId }); jobObj = jobs[0]; @@ -94,7 +93,7 @@ export class FieldFormatService { const dataViewId = this.indexPatternIdsByJob[jobId]; if (dataViewId !== undefined) { // Load the full data view configuration to obtain the formats of each field. - const dataView = await getDataView(dataViewId); + const dataView = await this.mlIndexUtils.getDataViewById(dataViewId); // Store the FieldFormat for each job by detector_index. const fieldList = dataView.fields; detectors.forEach((dtr) => { @@ -114,5 +113,4 @@ export class FieldFormatService { } } -export const mlFieldFormatService = new FieldFormatService(); -export type MlFieldFormatService = typeof mlFieldFormatService; +export type MlFieldFormatService = FieldFormatService; diff --git a/x-pack/plugins/ml/public/application/services/job_service.d.ts b/x-pack/plugins/ml/public/application/services/job_service.d.ts index 465e4528bd9c5..d21dc7ea03d50 100644 --- a/x-pack/plugins/ml/public/application/services/job_service.d.ts +++ b/x-pack/plugins/ml/public/application/services/job_service.d.ts @@ -8,13 +8,15 @@ import { TimeRange } from '@kbn/data-plugin/common/query/timefilter/types'; import { CombinedJob, Datafeed, Job } from '../../../common/types/anomaly_detection_jobs'; import { Calendar } from '../../../common/types/calendars'; +import type { ToastNotificationService } from './toast_notification_service'; +import type { MlApiServices } from './ml_api_service'; export interface ExistingJobsAndGroups { jobIds: string[]; groupIds: string[]; } -declare interface JobService { +export declare interface MlJobService { jobs: CombinedJob[]; createResultsUrlForJobs: (jobs: any[], target: string, timeRange?: TimeRange) => string; tempJobCloningObjects: { @@ -46,4 +48,8 @@ declare interface JobService { detectorsByJob: Record; } -export const mlJobService: JobService; +export const mlJobService: MlJobService; +export const mlJobServiceFactory: ( + toastNotificationServiceOverride?: ToastNotificationService, + mlOverride?: MlApiServices +) => MlJobService; diff --git a/x-pack/plugins/ml/public/application/services/job_service.js b/x-pack/plugins/ml/public/application/services/job_service.js index 0fc78db628fcb..a82c1af038489 100644 --- a/x-pack/plugins/ml/public/application/services/job_service.js +++ b/x-pack/plugins/ml/public/application/services/job_service.js @@ -21,7 +21,20 @@ let jobs = []; let datafeedIds = {}; class JobService { - constructor() { + // The overrides allow the use of JobService in contexts where + // the dependency cache is not available, for example when embedding + // the Single Metric Viewer chart. Note we cannot set the members here + // already based on the dependency cache because they will not be + // initialized yet. So this wouldn't work: + // + // this.ml = mlOverride ?? ml; + // + // That's why we have the getters like getMl() below to only access them + // when the methods of this class are being called. + constructor(toastNotificationServiceOverride, mlOverride) { + this.toastNotificationService = toastNotificationServiceOverride; + this.ml = mlOverride; + // tempJobCloningObjects -> used to pass a job object between the job management page and // and the advanced wizard. // if populated when loading the advanced wizard, the job is used for cloning. @@ -48,16 +61,26 @@ class JobService { this.customUrlsByJob = {}; } + getMl() { + return this.ml ?? ml; + } + + getToastNotificationService() { + return this.toastNotificationService ?? getToastNotificationService(); + } + loadJobs() { return new Promise((resolve, reject) => { jobs = []; datafeedIds = {}; - ml.getJobs() + this.getMl() + .getJobs() .then((resp) => { jobs = resp.jobs; // load jobs stats - ml.getJobStats() + this.getMl() + .getJobStats() .then((statsResp) => { // merge jobs stats into jobs for (let i = 0; i < jobs.length; i++) { @@ -107,7 +130,7 @@ class JobService { function error(err) { console.log('jobService error getting list of jobs:', err); - getToastNotificationService().displayErrorToast(err); + this.getToastNotificationService().displayErrorToast(err); reject({ jobs, err }); } }); @@ -127,13 +150,15 @@ class JobService { refreshJob(jobId) { return new Promise((resolve, reject) => { - ml.getJobs({ jobId }) + this.getMl() + .getJobs({ jobId }) .then((resp) => { if (resp.jobs && resp.jobs.length) { const newJob = resp.jobs[0]; // load jobs stats - ml.getJobStats({ jobId }) + this.getMl() + .getJobStats({ jobId }) .then((statsResp) => { // merge jobs stats into jobs for (let j = 0; j < statsResp.jobs.length; j++) { @@ -188,7 +213,7 @@ class JobService { function error(err) { console.log('JobService error getting list of jobs:', err); - getToastNotificationService().displayErrorToast(err); + this.getToastNotificationService().displayErrorToast(err); reject({ jobs, err }); } }); @@ -198,12 +223,14 @@ class JobService { return new Promise((resolve, reject) => { const sId = datafeedId !== undefined ? { datafeed_id: datafeedId } : undefined; - ml.getDatafeeds(sId) + this.getMl() + .getDatafeeds(sId) .then((resp) => { const datafeeds = resp.datafeeds; // load datafeeds stats - ml.getDatafeedStats() + this.getMl() + .getDatafeedStats() .then((statsResp) => { // merge datafeeds stats into datafeeds for (let i = 0; i < datafeeds.length; i++) { @@ -226,7 +253,7 @@ class JobService { function error(err) { console.log('loadDatafeeds error getting list of datafeeds:', err); - getToastNotificationService().displayErrorToast(err); + this.getToastNotificationService().displayErrorToast(err); reject({ jobs, err }); } }); @@ -236,7 +263,8 @@ class JobService { return new Promise((resolve, reject) => { const datafeedId = this.getDatafeedId(jobId); - ml.getDatafeedStats({ datafeedId }) + this.getMl() + .getDatafeedStats({ datafeedId }) .then((resp) => { // console.log('updateSingleJobCounts controller query response:', resp); const datafeeds = resp.datafeeds; @@ -261,7 +289,7 @@ class JobService { } // return the promise chain - return ml.addJob({ jobId: job.job_id, job }).then(func).catch(func); + return this.getMl().addJob({ jobId: job.job_id, job }).then(func).catch(func); } cloneDatafeed(datafeed) { @@ -285,18 +313,18 @@ class JobService { } openJob(jobId) { - return ml.openJob({ jobId }); + return this.getMl().openJob({ jobId }); } closeJob(jobId) { - return ml.closeJob({ jobId }); + return this.getMl().closeJob({ jobId }); } saveNewDatafeed(datafeedConfig, jobId) { const datafeedId = `datafeed-${jobId}`; datafeedConfig.job_id = jobId; - return ml.addDatafeed({ + return this.getMl().addDatafeed({ datafeedId, datafeedConfig, }); @@ -312,11 +340,12 @@ class JobService { end++; } - ml.startDatafeed({ - datafeedId, - start, - end, - }) + this.getMl() + .startDatafeed({ + datafeedId, + start, + end, + }) .then((resp) => { resolve(resp); }) @@ -328,29 +357,30 @@ class JobService { } forceStartDatafeeds(dIds, start, end) { - return ml.jobs.forceStartDatafeeds(dIds, start, end); + return this.getMl().jobs.forceStartDatafeeds(dIds, start, end); } stopDatafeeds(dIds) { - return ml.jobs.stopDatafeeds(dIds); + return this.getMl().jobs.stopDatafeeds(dIds); } deleteJobs(jIds, deleteUserAnnotations, deleteAlertingRules) { - return ml.jobs.deleteJobs(jIds, deleteUserAnnotations, deleteAlertingRules); + return this.getMl().jobs.deleteJobs(jIds, deleteUserAnnotations, deleteAlertingRules); } closeJobs(jIds) { - return ml.jobs.closeJobs(jIds); + return this.getMl().jobs.closeJobs(jIds); } resetJobs(jIds, deleteUserAnnotations) { - return ml.jobs.resetJobs(jIds, deleteUserAnnotations); + return this.getMl().jobs.resetJobs(jIds, deleteUserAnnotations); } validateDetector(detector) { return new Promise((resolve, reject) => { if (detector) { - ml.validateDetector({ detector }) + this.getMl() + .validateDetector({ detector }) .then((resp) => { resolve(resp); }) @@ -402,7 +432,7 @@ class JobService { async getJobAndGroupIds() { try { - return await ml.jobs.getAllJobAndGroupIds(); + return await this.getMl().jobs.getAllJobAndGroupIds(); } catch (error) { return { jobIds: [], @@ -563,3 +593,5 @@ function createResultsUrl(jobIds, start, end, resultsPage, mode = 'absolute') { } export const mlJobService = new JobService(); +export const mlJobServiceFactory = (toastNotificationServiceOverride, mlOverride) => + new JobService(toastNotificationServiceOverride, mlOverride); diff --git a/x-pack/plugins/ml/public/application/services/new_job_capabilities/new_job_capabilities_service.ts b/x-pack/plugins/ml/public/application/services/new_job_capabilities/new_job_capabilities_service.ts index 511a1a1457b02..0df13dfe2814b 100644 --- a/x-pack/plugins/ml/public/application/services/new_job_capabilities/new_job_capabilities_service.ts +++ b/x-pack/plugins/ml/public/application/services/new_job_capabilities/new_job_capabilities_service.ts @@ -13,6 +13,7 @@ import { type FieldId, EVENT_RATE_FIELD_ID, } from '@kbn/ml-anomaly-utils'; +import { DataViewType } from '@kbn/data-views-plugin/public'; import { getGeoFields, filterCategoryFields } from '../../../../common/util/fields_utils'; import { ml, type MlApiServices } from '../ml_api_service'; import { processTextAndKeywordFields, NewJobCapabilitiesServiceBase } from './new_job_capabilities'; @@ -57,7 +58,7 @@ export class NewJobCapsService extends NewJobCapabilitiesServiceBase { const resp = await this._mlApiService.jobs.newJobCaps( dataView.getIndexPattern(), - dataView.type === 'rollup' + dataView.type === DataViewType.ROLLUP ); const { fields: allFields, aggs } = createObjects(resp, dataView.getIndexPattern()); diff --git a/x-pack/plugins/ml/public/application/services/new_job_capabilities/new_job_capabilities_service_analytics.ts b/x-pack/plugins/ml/public/application/services/new_job_capabilities/new_job_capabilities_service_analytics.ts index fe5fd94777c64..794bb3d641650 100644 --- a/x-pack/plugins/ml/public/application/services/new_job_capabilities/new_job_capabilities_service_analytics.ts +++ b/x-pack/plugins/ml/public/application/services/new_job_capabilities/new_job_capabilities_service_analytics.ts @@ -6,7 +6,7 @@ */ import { ES_FIELD_TYPES, KBN_FIELD_TYPES } from '@kbn/field-types'; -import { DataView } from '@kbn/data-views-plugin/public'; +import { DataView, DataViewType } from '@kbn/data-views-plugin/public'; import type { Field, NewJobCapsResponse } from '@kbn/ml-anomaly-utils'; import { getDependentVar, @@ -63,7 +63,7 @@ class NewJobCapsServiceAnalytics extends NewJobCapabilitiesServiceBase { try { const resp: NewJobCapsResponse = await ml.dataFrameAnalytics.newJobCapsAnalytics( dataView.getIndexPattern(), - dataView.type === 'rollup' + dataView.type === DataViewType.ROLLUP ); const allFields = removeNestedFieldChildren(resp, dataView.getIndexPattern()); diff --git a/x-pack/plugins/ml/public/application/timeseriesexplorer/components/timeseries_chart/timeseries_chart.js b/x-pack/plugins/ml/public/application/timeseriesexplorer/components/timeseries_chart/timeseries_chart.js index 9ed67ed6ec446..b8f90717d29ee 100644 --- a/x-pack/plugins/ml/public/application/timeseriesexplorer/components/timeseries_chart/timeseries_chart.js +++ b/x-pack/plugins/ml/public/application/timeseriesexplorer/components/timeseries_chart/timeseries_chart.js @@ -22,6 +22,7 @@ import { EuiPopover } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { getFormattedSeverityScore, getSeverityWithLow } from '@kbn/ml-anomaly-utils'; import { formatHumanReadableDateTimeSeconds } from '@kbn/ml-date-utils'; +import { context } from '@kbn/kibana-react-plugin/public'; import { formatValue } from '../../../formatters/format_value'; import { @@ -41,7 +42,6 @@ import { mlTableService } from '../../../services/table_service'; import { ContextChartMask } from '../context_chart_mask'; import { findChartPointForAnomalyTime } from '../../timeseriesexplorer_utils'; import { mlEscape } from '../../../util/string_utils'; -import { mlFieldFormatService } from '../../../services/field_format_service'; import { ANNOTATION_MASK_ID, getAnnotationBrush, @@ -53,7 +53,6 @@ import { ANNOTATION_MIN_WIDTH, } from './timeseries_chart_annotations'; import { MlAnnotationUpdatesContext } from '../../../contexts/ml/ml_annotation_updates_context'; -import { context } from '@kbn/kibana-react-plugin/public'; import { LinksMenuUI } from '../../../components/anomalies_table/links_menu'; import { RuleEditorFlyout } from '../../../components/rule_editor'; @@ -304,12 +303,10 @@ class TimeseriesChartIntl extends Component { chartElement.selectAll('*').remove(); if (typeof selectedJob !== 'undefined') { - this.fieldFormat = this.context?.services?.mlServices?.mlFieldFormatService - ? this.context.services.mlServices.mlFieldFormatService.getFieldFormat( - selectedJob.job_id, - detectorIndex - ) - : mlFieldFormatService.getFieldFormat(selectedJob.job_id, detectorIndex); + this.fieldFormat = this.context.services.mlServices.mlFieldFormatService.getFieldFormat( + selectedJob.job_id, + detectorIndex + ); } else { return; } diff --git a/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.js b/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.js index cb1f18fd82358..21a2c1488a13b 100644 --- a/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.js +++ b/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.js @@ -19,6 +19,7 @@ import React, { createRef, Fragment } from 'react'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; +import { context } from '@kbn/kibana-react-plugin/public'; import { EuiCallOut, @@ -55,7 +56,6 @@ import { TimeseriesexplorerNoChartData } from './components/timeseriesexplorer_n import { TimeSeriesExplorerPage } from './timeseriesexplorer_page'; import { ml } from '../services/ml_api_service'; -import { mlFieldFormatService } from '../services/field_format_service'; import { mlForecastService } from '../services/forecast_service'; import { mlJobService } from '../services/job_service'; import { mlResultsService } from '../services/results_service'; @@ -137,6 +137,11 @@ export class TimeSeriesExplorer extends React.Component { */ contextChart$ = new Subject(); + /** + * Access ML services in react context. + */ + static contextType = context; + /** * Returns field names that don't have a selection yet. */ @@ -691,7 +696,7 @@ export class TimeSeriesExplorer extends React.Component { appStateHandler(APP_STATE_ACTION.SET_DETECTOR_INDEX, detectorId); } // Populate the map of jobs / detectors / field formatters for the selected IDs and refresh. - mlFieldFormatService.populateFormats([jobId]); + this.context.services.mlServices.mlFieldFormatService.populateFormats([jobId]); } componentDidMount() { diff --git a/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer_embeddable_chart/timeseriesexplorer_embeddable_chart.js b/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer_embeddable_chart/timeseriesexplorer_embeddable_chart.js index fd6b0239199bc..457b2994d3626 100644 --- a/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer_embeddable_chart/timeseriesexplorer_embeddable_chart.js +++ b/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer_embeddable_chart/timeseriesexplorer_embeddable_chart.js @@ -9,10 +9,10 @@ * React component for rendering Single Metric Viewer. */ -import { isEqual } from 'lodash'; +import { get, has, isEqual } from 'lodash'; import moment from 'moment-timezone'; import { Subject, Subscription, forkJoin } from 'rxjs'; -import { debounceTime, switchMap, tap, withLatestFrom } from 'rxjs/operators'; +import { map, debounceTime, switchMap, tap, withLatestFrom } from 'rxjs/operators'; import PropTypes from 'prop-types'; import React, { Fragment } from 'react'; @@ -32,6 +32,7 @@ import { } from '@elastic/eui'; import { TimeSeriesExplorerHelpPopover } from '../timeseriesexplorer_help_popover'; +import { ANOMALIES_TABLE_DEFAULT_QUERY_SIZE } from '../../../../common/constants/search'; import { isModelPlotEnabled, isModelPlotChartableForDetector, @@ -75,6 +76,8 @@ export class TimeSeriesExplorerEmbeddableChart extends React.Component { selectedDetectorIndex: PropTypes.number, selectedEntities: PropTypes.object, selectedForecastId: PropTypes.string, + tableInterval: PropTypes.string, + tableSeverity: PropTypes.number, zoom: PropTypes.object, toastNotificationService: PropTypes.object, dataViewsService: PropTypes.object, @@ -242,6 +245,74 @@ export class TimeSeriesExplorerEmbeddableChart extends React.Component { this.props.appStateHandler(APP_STATE_ACTION.SET_ZOOM, zoomState); }; + loadAnomaliesTableData = (earliestMs, latestMs) => { + const { + dateFormatTz, + selectedDetectorIndex, + selectedJob, + tableInterval, + tableSeverity, + functionDescription, + } = this.props; + const entityControls = this.getControlsForDetector(); + + return this.context.services.mlServices.mlApiServices.results + .getAnomaliesTableData( + [selectedJob.job_id], + this.getCriteriaFields(selectedDetectorIndex, entityControls), + [], + tableInterval, + tableSeverity, + earliestMs, + latestMs, + dateFormatTz, + ANOMALIES_TABLE_DEFAULT_QUERY_SIZE, + undefined, + undefined, + functionDescription + ) + .pipe( + map((resp) => { + const { mlJobService } = this.context.services.mlServices; + const anomalies = resp.anomalies; + const detectorsByJob = mlJobService.detectorsByJob; + anomalies.forEach((anomaly) => { + // Add a detector property to each anomaly. + // Default to functionDescription if no description available. + // TODO - when job_service is moved server_side, move this to server endpoint. + const jobId = anomaly.jobId; + const detector = get(detectorsByJob, [jobId, anomaly.detectorIndex]); + anomaly.detector = get( + detector, + ['detector_description'], + anomaly.source.function_description + ); + + // For detectors with rules, add a property with the rule count. + const customRules = detector.custom_rules; + if (customRules !== undefined) { + anomaly.rulesLength = customRules.length; + } + + // Add properties used for building the links menu. + // TODO - when job_service is moved server_side, move this to server endpoint. + if (has(mlJobService.customUrlsByJob, jobId)) { + anomaly.customUrls = mlJobService.customUrlsByJob[jobId]; + } + }); + + return { + tableData: { + anomalies, + interval: resp.interval, + examplesByJobId: resp.examplesByJobId, + showViewSeriesLink: false, + }, + }; + }) + ); + }; + setForecastId = (forecastId) => { this.props.appStateHandler(APP_STATE_ACTION.SET_FORECAST_ID, forecastId); }; @@ -562,7 +633,26 @@ export class TimeSeriesExplorerEmbeddableChart extends React.Component { } }), switchMap((selection) => { - return forkJoin([this.getFocusData(selection)]); + // Calculate the aggregation interval for the focus chart. + const bounds = { min: moment(selection.from), max: moment(selection.to) }; + + // Ensure the search bounds align to the bucketing interval so that the first and last buckets are complete. + // For sum or count detectors, short buckets would hold smaller values, and model bounds would also be affected + // to some extent with all detector functions if not searching complete buckets. + const searchBounds = this.getBoundsRoundedToInterval( + bounds, + this.getFocusAggregationInterval({ + from: selection.from, + to: selection.to, + }), + false + ); + + return forkJoin([ + this.getFocusData(selection), + // Load the data for the anomalies table. + this.loadAnomaliesTableData(searchBounds.min.valueOf(), searchBounds.max.valueOf()), + ]); }), withLatestFrom(this.contextChart$) ) @@ -674,11 +764,13 @@ export class TimeSeriesExplorerEmbeddableChart extends React.Component { showModelBounds, showModelBoundsCheckbox, swimlaneData, + tableData, zoomFrom, zoomTo, zoomFromFocusLoaded, zoomToFocusLoaded, chartDataError, + sourceIndicesWithGeoFields, } = this.state; const chartProps = { modelPlotEnabled, @@ -888,6 +980,8 @@ export class TimeSeriesExplorerEmbeddableChart extends React.Component { showForecast={showForecast} showModelBounds={showModelBounds} lastRefresh={lastRefresh} + tableData={tableData} + sourceIndicesWithGeoFields={sourceIndicesWithGeoFields} /> )} diff --git a/x-pack/plugins/ml/public/application/util/dependency_cache.ts b/x-pack/plugins/ml/public/application/util/dependency_cache.ts index d69b299b53cfd..b462207e67d9b 100644 --- a/x-pack/plugins/ml/public/application/util/dependency_cache.ts +++ b/x-pack/plugins/ml/public/application/util/dependency_cache.ts @@ -8,100 +8,52 @@ import type { DataPublicPluginSetup } from '@kbn/data-plugin/public'; import type { IUiSettingsClient, - ChromeStart, ApplicationStart, HttpStart, I18nStart, DocLinksStart, ToastsStart, - OverlayStart, - ThemeServiceStart, ChromeRecentlyAccessed, - IBasePath, } from '@kbn/core/public'; -import type { UnifiedSearchPublicPluginStart } from '@kbn/unified-search-plugin/public'; -import type { DashboardStart } from '@kbn/dashboard-plugin/public'; import type { FieldFormatsStart } from '@kbn/field-formats-plugin/public'; -import type { DataViewsContract } from '@kbn/data-views-plugin/public'; -import type { SecurityPluginStart } from '@kbn/security-plugin/public'; import type { MapsStartApi } from '@kbn/maps-plugin/public'; -import type { DataVisualizerPluginStart } from '@kbn/data-visualizer-plugin/public'; -import type { SharePluginStart } from '@kbn/share-plugin/public'; -import type { LensPublicStart } from '@kbn/lens-plugin/public'; -import type { SavedSearchPublicPluginStart } from '@kbn/saved-search-plugin/public'; export interface DependencyCache { timefilter: DataPublicPluginSetup['query']['timefilter'] | null; config: IUiSettingsClient | null; - chrome: ChromeStart | null; docLinks: DocLinksStart | null; toastNotifications: ToastsStart | null; - overlays: OverlayStart | null; - theme: ThemeServiceStart | null; recentlyAccessed: ChromeRecentlyAccessed | null; fieldFormats: FieldFormatsStart | null; - autocomplete: UnifiedSearchPublicPluginStart['autocomplete'] | null; - basePath: IBasePath | null; - savedSearch: SavedSearchPublicPluginStart | null; application: ApplicationStart | null; http: HttpStart | null; - security: SecurityPluginStart | undefined | null; i18n: I18nStart | null; - dashboard: DashboardStart | null; maps: MapsStartApi | null; - dataVisualizer: DataVisualizerPluginStart | null; - dataViews: DataViewsContract | null; - share: SharePluginStart | null; - lens: LensPublicStart | null; } const cache: DependencyCache = { timefilter: null, config: null, - chrome: null, docLinks: null, toastNotifications: null, - overlays: null, - theme: null, recentlyAccessed: null, fieldFormats: null, - autocomplete: null, - basePath: null, - savedSearch: null, application: null, http: null, - security: null, i18n: null, - dashboard: null, maps: null, - dataVisualizer: null, - dataViews: null, - share: null, - lens: null, }; export function setDependencyCache(deps: Partial) { cache.timefilter = deps.timefilter || null; cache.config = deps.config || null; - cache.chrome = deps.chrome || null; cache.docLinks = deps.docLinks || null; cache.toastNotifications = deps.toastNotifications || null; - cache.overlays = deps.overlays || null; - cache.theme = deps.theme || null; cache.recentlyAccessed = deps.recentlyAccessed || null; cache.fieldFormats = deps.fieldFormats || null; - cache.autocomplete = deps.autocomplete || null; - cache.basePath = deps.basePath || null; - cache.savedSearch = deps.savedSearch || null; cache.application = deps.application || null; cache.http = deps.http || null; - cache.security = deps.security || null; cache.i18n = deps.i18n || null; - cache.dashboard = deps.dashboard || null; - cache.dataVisualizer = deps.dataVisualizer || null; - cache.dataViews = deps.dataViews || null; - cache.share = deps.share || null; - cache.lens = deps.lens || null; } export function getTimefilter() { @@ -110,12 +62,6 @@ export function getTimefilter() { } return cache.timefilter.timefilter; } -export function getTimeHistory() { - if (cache.timefilter === null) { - throw new Error("timefilter hasn't been initialized"); - } - return cache.timefilter.history; -} export function getDocLinks() { if (cache.docLinks === null) { @@ -131,20 +77,6 @@ export function getToastNotifications() { return cache.toastNotifications; } -export function getOverlays() { - if (cache.overlays === null) { - throw new Error("overlays haven't been initialized"); - } - return cache.overlays; -} - -export function getTheme() { - if (cache.theme === null) { - throw new Error("theme hasn't been initialized"); - } - return cache.theme; -} - export function getUiSettings() { if (cache.config === null) { throw new Error("uiSettings hasn't been initialized"); @@ -166,27 +98,6 @@ export function getFieldFormats() { return cache.fieldFormats; } -export function getAutocomplete() { - if (cache.autocomplete === null) { - throw new Error("autocomplete hasn't been initialized"); - } - return cache.autocomplete; -} - -export function getChrome() { - if (cache.chrome === null) { - throw new Error("chrome hasn't been initialized"); - } - return cache.chrome; -} - -export function getBasePath() { - if (cache.basePath === null) { - throw new Error("basePath hasn't been initialized"); - } - return cache.basePath; -} - export function getApplication() { if (cache.application === null) { throw new Error("application hasn't been initialized"); @@ -201,13 +112,6 @@ export function getHttp() { return cache.http; } -export function getSecurity() { - if (cache.security === null) { - throw new Error("security hasn't been initialized"); - } - return cache.security; -} - export function getI18n() { if (cache.i18n === null) { throw new Error("i18n hasn't been initialized"); @@ -215,41 +119,6 @@ export function getI18n() { return cache.i18n; } -export function getDashboard() { - if (cache.dashboard === null) { - throw new Error("dashboard hasn't been initialized"); - } - return cache.dashboard; -} - -export function getDataViews() { - if (cache.dataViews === null) { - throw new Error("dataViews hasn't been initialized"); - } - return cache.dataViews; -} - -export function getFileDataVisualizer() { - if (cache.dataVisualizer === null) { - throw new Error("dataVisualizer hasn't been initialized"); - } - return cache.dataVisualizer; -} - -export function getShare() { - if (cache.share === null) { - throw new Error("share hasn't been initialized"); - } - return cache.share; -} - -export function getLens() { - if (cache.lens === null) { - throw new Error("lens hasn't been initialized"); - } - return cache.lens; -} - export function clearCache() { Object.keys(cache).forEach((k) => { cache[k as keyof DependencyCache] = null; diff --git a/x-pack/plugins/ml/public/application/util/index_service.ts b/x-pack/plugins/ml/public/application/util/index_service.ts index f4b6a1fc13d77..62488208642ff 100644 --- a/x-pack/plugins/ml/public/application/util/index_service.ts +++ b/x-pack/plugins/ml/public/application/util/index_service.ts @@ -6,8 +6,11 @@ */ import type { DataView, DataViewsContract } from '@kbn/data-views-plugin/public'; + import type { Job } from '../../../common/types/anomaly_detection_jobs'; +import { useMlKibana } from '../contexts/kibana'; + // TODO Consolidate with legacy code in `ml/public/application/util/index_utils.ts`. export function indexServiceFactory(dataViewsService: DataViewsContract) { return { @@ -19,9 +22,6 @@ export function indexServiceFactory(dataViewsService: DataViewsContract) { * @returns The data view ID or null if it doesn't exist. */ async getDataViewIdFromName(name: string, job?: Job): Promise { - if (dataViewsService === null) { - throw new Error('Data views are not initialized!'); - } const dataViews = await dataViewsService.find(name); const dataView = dataViews.find((dv) => dv.getIndexPattern() === name); if (!dataView) { @@ -39,17 +39,20 @@ export function indexServiceFactory(dataViewsService: DataViewsContract) { return dataView.id ?? dataView.getIndexPattern(); }, getDataViewById(id: string): Promise { - if (dataViewsService === null) { - throw new Error('Data views are not initialized!'); - } - if (id) { return dataViewsService.get(id); } else { return dataViewsService.create({}); } }, + async loadDataViewListItems() { + return (await dataViewsService.getIdsWithTitle()).sort((a, b) => + a.title.localeCompare(b.title) + ); + }, }; } export type MlIndexUtils = ReturnType; + +export const useMlIndexUtils = () => indexServiceFactory(useMlKibana().services.data.dataViews); diff --git a/x-pack/plugins/ml/public/application/util/index_utils.ts b/x-pack/plugins/ml/public/application/util/index_utils.ts index 88ab0e2b1cfb8..a9074e573e55a 100644 --- a/x-pack/plugins/ml/public/application/util/index_utils.ts +++ b/x-pack/plugins/ml/public/application/util/index_utils.ts @@ -9,58 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { SavedSearch, SavedSearchPublicPluginStart } from '@kbn/saved-search-plugin/public'; import type { Query, Filter } from '@kbn/es-query'; import type { DataView, DataViewField, DataViewsContract } from '@kbn/data-views-plugin/common'; -import type { Job } from '../../../common/types/anomaly_detection_jobs'; -import { getToastNotifications, getDataViews } from './dependency_cache'; - -export async function getDataViewNames() { - const dataViewsService = getDataViews(); - if (dataViewsService === null) { - throw new Error('Data views are not initialized!'); - } - return (await dataViewsService.getIdsWithTitle()).map(({ title }) => title); -} - -/** - * Retrieves the data view ID from the given name. - * If a job is passed in, a temporary data view will be created if the requested data view doesn't exist. - * @param name - The name or index pattern of the data view. - * @param job - Optional job object. - * @returns The data view ID or null if it doesn't exist. - */ -export async function getDataViewIdFromName(name: string, job?: Job): Promise { - const dataViewsService = getDataViews(); - if (dataViewsService === null) { - throw new Error('Data views are not initialized!'); - } - const dataViews = await dataViewsService.find(name); - const dataView = dataViews.find((dv) => dv.getIndexPattern() === name); - if (!dataView) { - if (job !== undefined) { - const tempDataView = await dataViewsService.create({ - id: undefined, - name, - title: name, - timeFieldName: job.data_description.time_field!, - }); - return tempDataView.id ?? null; - } - return null; - } - return dataView.id ?? dataView.getIndexPattern(); -} - -export function getDataViewById(id: string): Promise { - const dataViewsService = getDataViews(); - if (dataViewsService === null) { - throw new Error('Data views are not initialized!'); - } - - if (id) { - return dataViewsService.get(id); - } else { - return dataViewsService.create({}); - } -} +import { getToastNotifications } from './dependency_cache'; export interface DataViewAndSavedSearch { savedSearch: SavedSearch | null; diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable.tsx b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable.tsx index d1a68091f2fee..e4a51f656249c 100644 --- a/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable.tsx +++ b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable.tsx @@ -76,7 +76,15 @@ export class AnomalyChartsEmbeddable extends AnomalyDetectionEmbeddable< ReactDOM.render( - + }> { expect(Object.keys(createServices[2])).toEqual([ 'anomalyDetectorService', 'anomalyExplorerService', + 'mlFieldFormatService', 'mlResultsService', ]); }); diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable_factory.ts b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable_factory.ts index e502d03bcd964..f91cbb6433aec 100644 --- a/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable_factory.ts +++ b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable_factory.ts @@ -55,42 +55,66 @@ export class AnomalyChartsEmbeddableFactory } public async getExplicitInput(): Promise> { - const [coreStart] = await this.getServices(); + const [coreStart, deps] = await this.getServices(); try { const { resolveEmbeddableAnomalyChartsUserInput } = await import( './anomaly_charts_setup_flyout' ); - return await resolveEmbeddableAnomalyChartsUserInput(coreStart); + return await resolveEmbeddableAnomalyChartsUserInput(coreStart, deps.data.dataViews); } catch (e) { return Promise.reject(); } } private async getServices(): Promise { - const [coreStart, pluginsStart] = await this.getStartServices(); - - const { AnomalyDetectorService } = await import( - '../../application/services/anomaly_detector_service' - ); - const { mlApiServicesProvider } = await import('../../application/services/ml_api_service'); - const { mlResultsServiceProvider } = await import('../../application/services/results_service'); + const [ + [coreStart, pluginsStart], + { AnomalyDetectorService }, + { fieldFormatServiceFactory }, + { indexServiceFactory }, + { mlApiServicesProvider }, + { mlResultsServiceProvider }, + ] = await Promise.all([ + await this.getStartServices(), + await import('../../application/services/anomaly_detector_service'), + await import('../../application/services/field_format_service_factory'), + await import('../../application/util/index_service'), + await import('../../application/services/ml_api_service'), + await import('../../application/services/results_service'), + ]); const httpService = new HttpService(coreStart.http); const anomalyDetectorService = new AnomalyDetectorService(httpService); const mlApiServices = mlApiServicesProvider(httpService); const mlResultsService = mlResultsServiceProvider(mlApiServices); - const anomalyExplorerService = new AnomalyExplorerChartsService( pluginsStart.data.query.timefilter.timefilter, mlApiServices, mlResultsService ); + // Note on the following services: + // - `mlIndexUtils` is just instantiated here to be passed on to `mlFieldFormatService`, + // but it's not being made available as part of global services. Since it's just + // some stateless utils `useMlIndexUtils()` should be used from within components. + // - `mlFieldFormatService` is a stateful legacy service that relied on "dependency cache", + // so because of its own state it needs to be made available as a global service. + // In the long run we should again try to get rid of it here and make it available via + // its own context or possibly without having a singleton like state at all, since the + // way this manages its own state right now doesn't consider React component lifecycles. + const mlIndexUtils = indexServiceFactory(pluginsStart.data.dataViews); + const mlFieldFormatService = fieldFormatServiceFactory(mlApiServices, mlIndexUtils); + return [ coreStart, pluginsStart as MlDependencies, - { anomalyDetectorService, anomalyExplorerService, mlResultsService }, + { + anomalyDetectorService, + anomalyExplorerService, + mlFieldFormatService, + mlResultsService, + }, ]; } diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_setup_flyout.tsx b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_setup_flyout.tsx index 92aea068c5b15..2dd09620dbbd1 100644 --- a/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_setup_flyout.tsx +++ b/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_setup_flyout.tsx @@ -8,6 +8,7 @@ import React from 'react'; import type { CoreStart } from '@kbn/core/public'; import { toMountPoint } from '@kbn/react-kibana-mount'; +import type { DataViewsContract } from '@kbn/data-views-plugin/public'; import { extractInfluencers } from '../../../common/util/job_utils'; import { VIEW_BY_JOB_LABEL } from '../../application/explorer/explorer_constants'; import { getDefaultExplorerChartsPanelTitle } from './anomaly_charts_embeddable'; @@ -19,6 +20,7 @@ import { mlApiServicesProvider } from '../../application/services/ml_api_service export async function resolveEmbeddableAnomalyChartsUserInput( coreStart: CoreStart, + dataViews: DataViewsContract, input?: AnomalyChartsEmbeddableInput ): Promise> { const { http, overlays, theme, i18n } = coreStart; @@ -27,7 +29,7 @@ export async function resolveEmbeddableAnomalyChartsUserInput( return new Promise(async (resolve, reject) => { try { - const { jobIds } = await resolveJobSelection(coreStart, input?.jobIds); + const { jobIds } = await resolveJobSelection(coreStart, dataViews, input?.jobIds); const title = input?.title ?? getDefaultExplorerChartsPanelTitle(jobIds); const { jobs } = await getJobs({ jobId: jobIds.join(',') }); const influencers = extractInfluencers(jobs); diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable_factory.ts b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable_factory.ts index 3e7f958ea778e..45c75a92e2e6c 100644 --- a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable_factory.ts +++ b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable_factory.ts @@ -55,11 +55,11 @@ export class AnomalySwimlaneEmbeddableFactory } public async getExplicitInput(): Promise> { - const [coreStart] = await this.getServices(); + const [coreStart, deps] = await this.getServices(); try { const { resolveAnomalySwimlaneUserInput } = await import('./anomaly_swimlane_setup_flyout'); - return await resolveAnomalySwimlaneUserInput(coreStart); + return await resolveAnomalySwimlaneUserInput(coreStart, deps.data.dataViews); } catch (e) { return Promise.reject(); } diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_setup_flyout.tsx b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_setup_flyout.tsx index dc2ca931cc805..34ba32cd4a127 100644 --- a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_setup_flyout.tsx +++ b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_setup_flyout.tsx @@ -8,6 +8,7 @@ import React from 'react'; import type { CoreStart } from '@kbn/core/public'; import { toMountPoint } from '@kbn/react-kibana-mount'; +import type { DataViewsContract } from '@kbn/data-views-plugin/public'; import { extractInfluencers } from '../../../common/util/job_utils'; import { VIEW_BY_JOB_LABEL } from '../../application/explorer/explorer_constants'; import { AnomalySwimlaneInitializer } from './anomaly_swimlane_initializer'; @@ -19,6 +20,7 @@ import { mlApiServicesProvider } from '../../application/services/ml_api_service export async function resolveAnomalySwimlaneUserInput( coreStart: CoreStart, + dataViews: DataViewsContract, input?: AnomalySwimlaneEmbeddableInput ): Promise> { const { http, overlays, theme, i18n } = coreStart; @@ -27,7 +29,7 @@ export async function resolveAnomalySwimlaneUserInput( return new Promise(async (resolve, reject) => { try { - const { jobIds } = await resolveJobSelection(coreStart, input?.jobIds); + const { jobIds } = await resolveJobSelection(coreStart, dataViews, input?.jobIds); const title = input?.title ?? getDefaultSwimlanePanelTitle(jobIds); const { jobs } = await getJobs({ jobId: jobIds.join(',') }); const influencers = extractInfluencers(jobs); diff --git a/x-pack/plugins/ml/public/embeddables/common/resolve_job_selection.tsx b/x-pack/plugins/ml/public/embeddables/common/resolve_job_selection.tsx index 182d070266c9a..73b5fc1305ff4 100644 --- a/x-pack/plugins/ml/public/embeddables/common/resolve_job_selection.tsx +++ b/x-pack/plugins/ml/public/embeddables/common/resolve_job_selection.tsx @@ -11,6 +11,7 @@ import { from } from 'rxjs'; import React from 'react'; import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; import { toMountPoint } from '@kbn/react-kibana-mount'; +import type { DataViewsContract } from '@kbn/data-views-plugin/public'; import { getInitialGroupsMap } from '../../application/components/job_selector/job_selector'; import { getMlGlobalServices } from '../../application/app'; import type { JobId } from '../../../common/types/anomaly_detection_jobs'; @@ -26,6 +27,7 @@ import { JobSelectorFlyout } from './components/job_selector_flyout'; */ export async function resolveJobSelection( coreStart: CoreStart, + dataViews: DataViewsContract, selectedJobIds?: JobId[], singleSelection: boolean = false ): Promise<{ jobIds: string[]; groups: Array<{ groupId: string; jobIds: string[] }> }> { @@ -70,7 +72,9 @@ export async function resolveJobSelection( const flyoutSession = coreStart.overlays.openFlyout( toMountPoint( - + = ({ dataView, field, query, timeRange }) => { const quickJobCreator = useMemo( () => new QuickCategorizationJobCreator( + data.dataViews, uiSettings, data.query.timefilter.timefilter, dashboardService, diff --git a/x-pack/plugins/ml/public/embeddables/job_creation/common/create_flyout.tsx b/x-pack/plugins/ml/public/embeddables/job_creation/common/create_flyout.tsx index b1bc9ec47ba94..f5ba980a4d54f 100644 --- a/x-pack/plugins/ml/public/embeddables/job_creation/common/create_flyout.tsx +++ b/x-pack/plugins/ml/public/embeddables/job_creation/common/create_flyout.tsx @@ -54,7 +54,7 @@ export function createFlyout( data, lens, dashboardService, - mlServices: getMlGlobalServices(http), + mlServices: getMlGlobalServices(http, data.dataViews), }} > = ({ layer, layerIndex, embeddable }) => () => new QuickLensJobCreator( lens, + data.dataViews, uiSettings, data.query.timefilter.timefilter, dashboardService, diff --git a/x-pack/plugins/ml/public/embeddables/job_creation/map/map_vis_layer_selection_flyout/layer/compatible_layer.tsx b/x-pack/plugins/ml/public/embeddables/job_creation/map/map_vis_layer_selection_flyout/layer/compatible_layer.tsx index 8f368dc0a82c0..52fcdd8aba8f3 100644 --- a/x-pack/plugins/ml/public/embeddables/job_creation/map/map_vis_layer_selection_flyout/layer/compatible_layer.tsx +++ b/x-pack/plugins/ml/public/embeddables/job_creation/map/map_vis_layer_selection_flyout/layer/compatible_layer.tsx @@ -56,6 +56,7 @@ export const CompatibleLayer: FC = ({ embeddable, layer, layerIndex }) => const quickJobCreator = useMemo( () => new QuickGeoJobCreator( + data.dataViews, uiSettings, data.query.timefilter.timefilter, dashboardService, diff --git a/x-pack/plugins/ml/public/embeddables/single_metric_viewer/embeddable_single_metric_viewer_container.tsx b/x-pack/plugins/ml/public/embeddables/single_metric_viewer/embeddable_single_metric_viewer_container.tsx index 88c120c9747e1..1ee3021aecc6b 100644 --- a/x-pack/plugins/ml/public/embeddables/single_metric_viewer/embeddable_single_metric_viewer_container.tsx +++ b/x-pack/plugins/ml/public/embeddables/single_metric_viewer/embeddable_single_metric_viewer_container.tsx @@ -6,6 +6,7 @@ */ import React, { FC, useCallback, useEffect, useRef, useState } from 'react'; +import moment from 'moment'; import { EuiResizeObserver } from '@elastic/eui'; import { Observable } from 'rxjs'; import { throttle } from 'lodash'; @@ -48,18 +49,7 @@ export interface EmbeddableSingleMetricViewerContainerProps { export const EmbeddableSingleMetricViewerContainer: FC< EmbeddableSingleMetricViewerContainerProps -> = ({ - id, - embeddableContext, - embeddableInput, - services, - refresh, - onInputChange, - onOutputChange, - onRenderComplete, - onError, - onLoading, -}) => { +> = ({ id, embeddableContext, embeddableInput, services, refresh, onRenderComplete }) => { useEmbeddableExecutionContext( services[0].executionContext, embeddableInput, @@ -72,8 +62,9 @@ export const EmbeddableSingleMetricViewerContainer: FC< const [detectorIndex, setDetectorIndex] = useState(0); const [selectedJob, setSelectedJob] = useState(); const [autoZoomDuration, setAutoZoomDuration] = useState(); + const [jobsLoaded, setJobsLoaded] = useState(false); - const { mlApiServices } = services[2]; + const { mlApiServices, mlJobService } = services[2]; const { data, bounds, lastRefresh } = useSingleMetricViewerInputResolver( embeddableInput, refresh, @@ -81,6 +72,10 @@ export const EmbeddableSingleMetricViewerContainer: FC< onRenderComplete ); const selectedJobId = data?.jobIds[0]; + // Need to make sure we fall back to `undefined` if `functionDescription` is an empty string, + // otherwise anomaly table data will not be loaded. + const functionDescription = + (data?.functionDescription ?? '') === '' ? undefined : data.functionDescription; const previousRefresh = usePrevious(lastRefresh ?? 0); const mlTimeSeriesExplorer = useTimeSeriesExplorerService(); @@ -88,6 +83,15 @@ export const EmbeddableSingleMetricViewerContainer: FC< const containerHeightRef = useRef(); const toastNotificationService = useToastNotificationService(); + useEffect(function setUpJobsLoaded() { + async function loadJobs() { + await mlJobService.loadJobsWrapper(); + setJobsLoaded(true); + } + loadJobs(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + useEffect( function setUpSelectedJob() { async function fetchSelectedJob() { @@ -174,7 +178,7 @@ export const EmbeddableSingleMetricViewerContainer: FC< ref={resizeRef} className="ml-time-series-explorer" > - {data !== undefined && autoZoomDuration !== undefined && ( + {data !== undefined && autoZoomDuration !== undefined && jobsLoaded && ( )} diff --git a/x-pack/plugins/ml/public/embeddables/single_metric_viewer/single_metric_viewer_embeddable.tsx b/x-pack/plugins/ml/public/embeddables/single_metric_viewer/single_metric_viewer_embeddable.tsx index 82a1b5abc8b63..23ac9e7ee2193 100644 --- a/x-pack/plugins/ml/public/embeddables/single_metric_viewer/single_metric_viewer_embeddable.tsx +++ b/x-pack/plugins/ml/public/embeddables/single_metric_viewer/single_metric_viewer_embeddable.tsx @@ -94,6 +94,7 @@ export class SingleMetricViewerEmbeddable extends Embeddable< ...this.services[2], }, ...this.services[0], + ...this.services[1], }} > diff --git a/x-pack/plugins/ml/public/embeddables/single_metric_viewer/single_metric_viewer_embeddable_factory.ts b/x-pack/plugins/ml/public/embeddables/single_metric_viewer/single_metric_viewer_embeddable_factory.ts index 06b2f9b024bfa..c377ce79ddef1 100644 --- a/x-pack/plugins/ml/public/embeddables/single_metric_viewer/single_metric_viewer_embeddable_factory.ts +++ b/x-pack/plugins/ml/public/embeddables/single_metric_viewer/single_metric_viewer_embeddable_factory.ts @@ -78,47 +78,69 @@ export class SingleMetricViewerEmbeddableFactory { fieldFormatServiceFactory }, { indexServiceFactory }, { mlApiServicesProvider }, + { mlJobServiceFactory }, { mlResultsServiceProvider }, + { MlCapabilitiesService }, { timeSeriesSearchServiceFactory }, + { toastNotificationServiceProvider }, ] = await Promise.all([ await this.getStartServices(), await import('../../application/services/anomaly_detector_service'), await import('../../application/services/field_format_service_factory'), await import('../../application/util/index_service'), await import('../../application/services/ml_api_service'), + await import('../../application/services/job_service'), await import('../../application/services/results_service'), + await import('../../application/capabilities/check_capabilities'), await import( '../../application/timeseriesexplorer/timeseriesexplorer_utils/time_series_search_service' ), + await import('../../application/services/toast_notification_service'), ]); const httpService = new HttpService(coreStart.http); const anomalyDetectorService = new AnomalyDetectorService(httpService); const mlApiServices = mlApiServicesProvider(httpService); + const mlJobService = mlJobServiceFactory( + toastNotificationServiceProvider(coreStart.notifications.toasts), + mlApiServices + ); const mlResultsService = mlResultsServiceProvider(mlApiServices); - const mlIndexUtils = indexServiceFactory(pluginsStart.data.dataViews); const mlTimeSeriesSearchService = timeSeriesSearchServiceFactory( mlResultsService, mlApiServices ); - const mlFieldFormatService = fieldFormatServiceFactory(mlApiServices, mlIndexUtils); - + const mlCapabilities = new MlCapabilitiesService(mlApiServices); const anomalyExplorerService = new AnomalyExplorerChartsService( pluginsStart.data.query.timefilter.timefilter, mlApiServices, mlResultsService ); + // Note on the following services: + // - `mlIndexUtils` is just instantiated here to be passed on to `mlFieldFormatService`, + // but it's not being made available as part of global services. Since it's just + // some stateless utils `useMlIndexUtils()` should be used from within components. + // - `mlFieldFormatService` is a stateful legacy service that relied on "dependency cache", + // so because of its own state it needs to be made available as a global service. + // In the long run we should again try to get rid of it here and make it available via + // its own context or possibly without having a singleton like state at all, since the + // way this manages its own state right now doesn't consider React component lifecycles. + const mlIndexUtils = indexServiceFactory(pluginsStart.data.dataViews); + const mlFieldFormatService = fieldFormatServiceFactory(mlApiServices, mlIndexUtils); + return [ coreStart, pluginsStart as MlDependencies, { anomalyDetectorService, anomalyExplorerService, - mlResultsService, mlApiServices, - mlTimeSeriesSearchService, + mlCapabilities, mlFieldFormatService, + mlJobService, + mlResultsService, + mlTimeSeriesSearchService, }, ]; } diff --git a/x-pack/plugins/ml/public/embeddables/single_metric_viewer/single_metric_viewer_setup_flyout.tsx b/x-pack/plugins/ml/public/embeddables/single_metric_viewer/single_metric_viewer_setup_flyout.tsx index e9822c01f865a..b20d032f5b907 100644 --- a/x-pack/plugins/ml/public/embeddables/single_metric_viewer/single_metric_viewer_setup_flyout.tsx +++ b/x-pack/plugins/ml/public/embeddables/single_metric_viewer/single_metric_viewer_setup_flyout.tsx @@ -26,7 +26,12 @@ export async function resolveEmbeddableSingleMetricViewerUserInput( return new Promise(async (resolve, reject) => { try { - const { jobIds } = await resolveJobSelection(coreStart, undefined, true); + const { jobIds } = await resolveJobSelection( + coreStart, + pluginStart.data.dataViews, + undefined, + true + ); const title = getDefaultSingleMetricViewerPanelTitle(jobIds); const { jobs } = await mlApiServices.getJobs({ jobId: jobIds.join(',') }); diff --git a/x-pack/plugins/ml/public/embeddables/types.ts b/x-pack/plugins/ml/public/embeddables/types.ts index 56a33f488d534..83c4a00213cad 100644 --- a/x-pack/plugins/ml/public/embeddables/types.ts +++ b/x-pack/plugins/ml/public/embeddables/types.ts @@ -19,6 +19,7 @@ import type { AnomalyTimelineService } from '../application/services/anomaly_tim import type { MlDependencies } from '../application/app'; import type { AppStateSelectedCells } from '../application/explorer/explorer_utils'; import { AnomalyExplorerChartsService } from '../application/services/anomaly_explorer_charts_service'; +import type { MlJobService } from '../application/services/job_service'; import { ANOMALY_EXPLORER_CHARTS_EMBEDDABLE_TYPE, ANOMALY_SWIMLANE_EMBEDDABLE_TYPE, @@ -30,6 +31,7 @@ import { MlResultsService } from '../application/services/results_service'; import type { MlApiServices } from '../application/services/ml_api_service'; import type { MlFieldFormatService } from '../application/services/field_format_service'; import type { MlTimeSeriesSeachService } from '../application/timeseriesexplorer/timeseriesexplorer_utils/time_series_search_service'; +import type { MlCapabilitiesService } from '../application/capabilities/check_capabilities'; export interface AnomalySwimlaneEmbeddableCustomInput { jobIds: JobId[]; @@ -123,6 +125,7 @@ export type SingleMetricViewerEmbeddableInput = EmbeddableInput & export interface AnomalyChartsServices { anomalyDetectorService: AnomalyDetectorService; anomalyExplorerService: AnomalyExplorerChartsService; + mlFieldFormatService: MlFieldFormatService; mlResultsService: MlResultsService; mlApiServices?: MlApiServices; } @@ -131,7 +134,9 @@ export interface SingleMetricViewerServices { anomalyExplorerService: AnomalyExplorerChartsService; anomalyDetectorService: AnomalyDetectorService; mlApiServices: MlApiServices; + mlCapabilities: MlCapabilitiesService; mlFieldFormatService: MlFieldFormatService; + mlJobService: MlJobService; mlResultsService: MlResultsService; mlTimeSeriesSearchService?: MlTimeSeriesSeachService; } diff --git a/x-pack/plugins/ml/public/plugin.ts b/x-pack/plugins/ml/public/plugin.ts index 9bbfe52bbca07..3744ac6aaa615 100644 --- a/x-pack/plugins/ml/public/plugin.ts +++ b/x-pack/plugins/ml/public/plugin.ts @@ -292,10 +292,8 @@ export class MlPlugin implements Plugin { } { setDependencyCache({ docLinks: core.docLinks!, - basePath: core.http.basePath, http: core.http, i18n: core.i18n, - lens: deps.lens, }); return { diff --git a/x-pack/plugins/ml/public/ui_actions/edit_anomaly_charts_panel_action.tsx b/x-pack/plugins/ml/public/ui_actions/edit_anomaly_charts_panel_action.tsx index d79c897958554..6aba5c1d61290 100644 --- a/x-pack/plugins/ml/public/ui_actions/edit_anomaly_charts_panel_action.tsx +++ b/x-pack/plugins/ml/public/ui_actions/edit_anomaly_charts_panel_action.tsx @@ -34,7 +34,7 @@ export function createEditAnomalyChartsPanelAction( throw new Error('Not possible to execute an action without the embeddable context'); } - const [coreStart] = await getStartServices(); + const [coreStart, deps] = await getStartServices(); try { const { resolveEmbeddableAnomalyChartsUserInput } = await import( @@ -43,6 +43,7 @@ export function createEditAnomalyChartsPanelAction( const result = await resolveEmbeddableAnomalyChartsUserInput( coreStart, + deps.data.dataViews, embeddable.getInput() ); embeddable.updateInput(result); diff --git a/x-pack/plugins/ml/public/ui_actions/edit_swimlane_panel_action.tsx b/x-pack/plugins/ml/public/ui_actions/edit_swimlane_panel_action.tsx index 4352dc2df89bf..b81e7b7c988a0 100644 --- a/x-pack/plugins/ml/public/ui_actions/edit_swimlane_panel_action.tsx +++ b/x-pack/plugins/ml/public/ui_actions/edit_swimlane_panel_action.tsx @@ -31,14 +31,18 @@ export function createEditSwimlanePanelAction( throw new Error('Not possible to execute an action without the embeddable context'); } - const [coreStart] = await getStartServices(); + const [coreStart, deps] = await getStartServices(); try { const { resolveAnomalySwimlaneUserInput } = await import( '../embeddables/anomaly_swimlane/anomaly_swimlane_setup_flyout' ); - const result = await resolveAnomalySwimlaneUserInput(coreStart, embeddable.getInput()); + const result = await resolveAnomalySwimlaneUserInput( + coreStart, + deps.data.dataViews, + embeddable.getInput() + ); embeddable.updateInput(result); } catch (e) { return Promise.reject(); diff --git a/x-pack/plugins/ml/server/models/job_service/new_job_caps/rollup.ts b/x-pack/plugins/ml/server/models/job_service/new_job_caps/rollup.ts index 4a0fa9876b8d8..0bddc3b2dff21 100644 --- a/x-pack/plugins/ml/server/models/job_service/new_job_caps/rollup.ts +++ b/x-pack/plugins/ml/server/models/job_service/new_job_caps/rollup.ts @@ -9,6 +9,7 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { IScopedClusterClient } from '@kbn/core/server'; import type { DataViewsService, DataView } from '@kbn/data-views-plugin/common'; import type { RollupFields } from '@kbn/ml-anomaly-utils'; +import { DataViewType } from '@kbn/data-views-plugin/common'; export interface RollupJob { job_id: string; @@ -67,7 +68,8 @@ async function loadRollupIndexPattern( ): Promise { const resp = await dataViewsService.find('*', 10000); const obj = resp.find( - (dv) => dv.type === 'rollup' && dv.title === indexPattern && dv.typeMeta !== undefined + (dv) => + dv.type === DataViewType.ROLLUP && dv.title === indexPattern && dv.typeMeta !== undefined ); return obj ?? null; diff --git a/x-pack/plugins/observability_solution/infra/public/alerting/inventory/components/expression_chart.tsx b/x-pack/plugins/observability_solution/infra/public/alerting/inventory/components/expression_chart.tsx index 6c352ea7f1a66..666fbdc84f9d8 100644 --- a/x-pack/plugins/observability_solution/infra/public/alerting/inventory/components/expression_chart.tsx +++ b/x-pack/plugins/observability_solution/infra/public/alerting/inventory/components/expression_chart.tsx @@ -231,4 +231,6 @@ const convertMetricValue = (metric: SnapshotMetricType, value: number) => { const converters: Record number> = { cpu: (n) => Number(n) / 100, memory: (n) => Number(n) / 100, + tx: (n) => Number(n) / 8, + rx: (n) => Number(n) / 8, }; diff --git a/x-pack/plugins/observability_solution/infra/public/components/ml/anomaly_detection/flyout_home.tsx b/x-pack/plugins/observability_solution/infra/public/components/ml/anomaly_detection/flyout_home.tsx index 680c1c63cca43..958bd34a099b2 100644 --- a/x-pack/plugins/observability_solution/infra/public/components/ml/anomaly_detection/flyout_home.tsx +++ b/x-pack/plugins/observability_solution/infra/public/components/ml/anomaly_detection/flyout_home.tsx @@ -99,8 +99,9 @@ export const FlyoutHome = (props: Props) => { }); // Used for prefilling the feedback form (if both types are enabled do not prefill) + // In case the host type is the only option (if props.hideJobType is true) - prefill 'host' const mlJobTypeByNode = - hostJobSummaries.length > 0 && k8sJobSummaries.length === 0 + props.hideJobType || (hostJobSummaries.length > 0 && k8sJobSummaries.length === 0) ? 'host' : hostJobSummaries.length === 0 && k8sJobSummaries.length > 0 ? 'pod' diff --git a/x-pack/plugins/observability_solution/infra/server/lib/alerting/common/get_values.test.ts b/x-pack/plugins/observability_solution/infra/server/lib/alerting/common/get_values.test.ts new file mode 100644 index 0000000000000..e240d112e32fa --- /dev/null +++ b/x-pack/plugins/observability_solution/infra/server/lib/alerting/common/get_values.test.ts @@ -0,0 +1,72 @@ +/* + * 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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { getEvaluationValues, getThresholds } from './get_values'; + +describe('getValue helpers', () => { + describe('getThresholds', () => { + test('should return undefined when there is at least one multiple thresholds comparator (such as in between)', () => { + const criteriaMultipleConditions = [ + { + aggType: 'avg', + comparator: 'between', + threshold: [4, 5], + timeSize: 1, + timeUnit: 'm', + metric: 'system.cpu.system.pct', + }, + { + aggType: 'count', + comparator: '>', + threshold: [4], + timeSize: 1, + timeUnit: 'm', + }, + ]; + expect(getThresholds(criteriaMultipleConditions)).toEqual(undefined); + }); + + test('should return threshold for multiple conditions', () => { + const criteriaMultipleConditions = [ + { + aggType: 'avg', + comparator: '>', + threshold: [1], + timeSize: 1, + timeUnit: 'm', + metric: 'system.cpu.system.pct', + }, + { + aggType: 'count', + comparator: '>', + threshold: [4], + timeSize: 1, + timeUnit: 'm', + }, + ]; + expect(getThresholds(criteriaMultipleConditions)).toEqual([1, 4]); + }); + }); + + describe('getEvaluationValues', () => { + test('should return evaluation values ', () => { + const alertResultsMultipleConditions = [ + { + 'host-0': { + metric: 'cpu', + comparator: '>', + threshold: [1.0], + timeSize: 1, + timeUnit: 'm', + currentValue: 0.85, + }, + }, + ]; + expect(getEvaluationValues(alertResultsMultipleConditions, 'host-0')).toEqual([0.85]); + }); + }); +}); diff --git a/x-pack/plugins/observability_solution/infra/server/lib/alerting/common/get_values.ts b/x-pack/plugins/observability_solution/infra/server/lib/alerting/common/get_values.ts new file mode 100644 index 0000000000000..3bcfbcf21fcc8 --- /dev/null +++ b/x-pack/plugins/observability_solution/infra/server/lib/alerting/common/get_values.ts @@ -0,0 +1,38 @@ +/* + * 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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const getEvaluationValues = ( + alertResults: Array>, + group: string +): Array => { + return alertResults.reduce((acc: Array, result) => { + if (result[group]) { + acc.push(result[group].currentValue); + } + return acc; + }, []); +}; + +export const getThresholds = ( + criteria: T[] +): number[] | undefined => { + let hasMultipleThresholdComparator = false; + const thresholds = criteria + .map((c) => c.threshold) + .reduce((acc: number[], t) => { + if (t.length !== 1) { + hasMultipleThresholdComparator = true; + return acc; + } + return acc.concat(t[0]); + }, []); + + // We don't save threshold if at least one of the comparators is a multiple threshold one such as 'in between' + if (hasMultipleThresholdComparator) return undefined; + + return thresholds; +}; diff --git a/x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts b/x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts index 8de485b60fd7e..7f4159f39c525 100644 --- a/x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts +++ b/x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts @@ -6,7 +6,12 @@ */ import { i18n } from '@kbn/i18n'; -import { ALERT_REASON, ALERT_ACTION_GROUP, ALERT_EVALUATION_VALUES } from '@kbn/rule-data-utils'; +import { + ALERT_REASON, + ALERT_ACTION_GROUP, + ALERT_EVALUATION_VALUES, + ALERT_EVALUATION_THRESHOLD, +} from '@kbn/rule-data-utils'; import { first, get } from 'lodash'; import { ActionGroup, @@ -18,7 +23,11 @@ import { Alert, RuleTypeState } from '@kbn/alerting-plugin/server'; import { getAlertUrl } from '@kbn/observability-plugin/common'; import { SnapshotMetricType } from '@kbn/metrics-data-access-plugin/common'; import { getOriginalActionGroup } from '../../../utils/get_original_action_group'; -import { AlertStates, InventoryMetricThresholdParams } from '../../../../common/alerting/metrics'; +import { + AlertStates, + InventoryMetricConditions, + InventoryMetricThresholdParams, +} from '../../../../common/alerting/metrics'; import { createFormatter } from '../../../../common/formatters'; import { getCustomMetricLabel } from '../../../../common/formatters/get_custom_metric_label'; import { METRIC_FORMATTERS } from '../../../../common/formatters/snapshot_metric_formats'; @@ -40,6 +49,7 @@ import { getInventoryViewInAppUrlWithSpaceId, UNGROUPED_FACTORY_KEY, } from '../common/utils'; +import { getEvaluationValues, getThresholds } from '../common/get_values'; import { evaluateCondition, ConditionResult } from './evaluate_condition'; type InventoryMetricThresholdAllowedActionGroups = ActionGroupIdsOf< @@ -65,7 +75,8 @@ type InventoryMetricThresholdAlertFactory = ( reason: string, actionGroup: InventoryThrehsoldActionGroup, additionalContext?: AdditionalContext | null, - evaluationValues?: Array + evaluationValues?: Array, + thresholds?: Array ) => InventoryMetricThresholdAlert; export const createInventoryMetricThresholdExecutor = (libs: InfraBackendLibs) => @@ -104,13 +115,15 @@ export const createInventoryMetricThresholdExecutor = (libs: InfraBackendLibs) = getAlertStartedDate, getAlertUuid, getAlertByAlertUuid, + alertFactory: baseAlertFactory, } = services; const alertFactory: InventoryMetricThresholdAlertFactory = ( id, reason, actionGroup, additionalContext, - evaluationValues + evaluationValues, + thresholds ) => alertWithLifecycle({ id, @@ -118,6 +131,7 @@ export const createInventoryMetricThresholdExecutor = (libs: InfraBackendLibs) = [ALERT_REASON]: reason, [ALERT_ACTION_GROUP]: actionGroup, [ALERT_EVALUATION_VALUES]: evaluationValues, + [ALERT_EVALUATION_THRESHOLD]: thresholds, ...flattenAdditionalContext(additionalContext), }, }); @@ -194,8 +208,15 @@ export const createInventoryMetricThresholdExecutor = (libs: InfraBackendLibs) = ); let scheduledActionsCount = 0; + const alertLimit = baseAlertFactory.alertLimit.getValue(); + let hasReachedLimit = false; const inventoryItems = Object.keys(first(results)!); for (const group of inventoryItems) { + if (scheduledActionsCount >= alertLimit) { + // need to set this so that warning is displayed in the UI and in the logs + hasReachedLimit = true; + break; // once limit is reached, we break out of the loop and don't schedule any more alerts + } // AND logic; all criteria must be across the threshold const shouldAlertFire = results.every((result) => result[group]?.shouldFire); const shouldAlertWarn = results.every((result) => result[group]?.shouldWarn); @@ -252,17 +273,16 @@ export const createInventoryMetricThresholdExecutor = (libs: InfraBackendLibs) = new Set([...(additionalContext.tags ?? []), ...ruleTags]) ); - const evaluationValues = results.reduce((acc: Array, result) => { - acc.push(result[group].currentValue); - return acc; - }, []); + const evaluationValues = getEvaluationValues(results, group); + const thresholds = getThresholds(criteria); const alert = alertFactory( group, reason, actionGroupId, additionalContext, - evaluationValues + evaluationValues, + thresholds ); const indexedStartedAt = getAlertStartedDate(group) ?? startedAt.toISOString(); const alertUuid = getAlertUuid(group); @@ -300,6 +320,7 @@ export const createInventoryMetricThresholdExecutor = (libs: InfraBackendLibs) = } } + baseAlertFactory.alertLimit.setLimitReached(hasReachedLimit); const { getRecoveredAlerts } = services.alertFactory.done(); const recoveredAlerts = getRecoveredAlerts(); diff --git a/x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/lib/convert_metric_value.ts b/x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/lib/convert_metric_value.ts index 01377ce2c5335..d2301072d4854 100644 --- a/x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/lib/convert_metric_value.ts +++ b/x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/lib/convert_metric_value.ts @@ -18,4 +18,6 @@ export const convertMetricValue = (metric: SnapshotMetricType, value: number) => const converters: Record number> = { cpu: (n) => Number(n) / 100, memory: (n) => Number(n) / 100, + tx: (n) => Number(n) / 8, + rx: (n) => Number(n) / 8, }; diff --git a/x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/lib/create_bucket_selector.test.ts b/x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/lib/create_bucket_selector.test.ts new file mode 100644 index 0000000000000..279793a4a4102 --- /dev/null +++ b/x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/lib/create_bucket_selector.test.ts @@ -0,0 +1,63 @@ +/* + * 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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { Comparator, InventoryMetricConditions } from '../../../../../common/alerting/metrics'; +import { createBucketSelector } from './create_bucket_selector'; + +describe('createBucketSelector', () => { + it('should convert tx threshold from bits to byte', () => { + const inventoryMetricConditions: InventoryMetricConditions = { + metric: 'tx', + timeSize: 5, + timeUnit: 'm', + threshold: [8], + comparator: Comparator.GT_OR_EQ, + warningThreshold: [16], + warningComparator: Comparator.LT_OR_EQ, + }; + expect(createBucketSelector('tx', inventoryMetricConditions)).toEqual({ + selectedBucket: { + bucket_selector: { + buckets_path: { + shouldTrigger: 'shouldTrigger', + shouldWarn: 'shouldWarn', + }, + script: + '(params.shouldWarn != null && params.shouldWarn > 0) || (params.shouldTrigger != null && params.shouldTrigger > 0)', + }, + }, + shouldTrigger: { + bucket_script: { + buckets_path: { + value: 'tx', + }, + script: { + params: { + // Threshold has been converted from 8 bits to 1 byte + threshold: 1, + }, + source: 'params.value >= params.threshold ? 1 : 0', + }, + }, + }, + shouldWarn: { + bucket_script: { + buckets_path: { + value: 'tx', + }, + script: { + params: { + // Threshold has been converted from 16 bits to 2 byte + threshold: 2, + }, + source: 'params.value <= params.threshold ? 1 : 0', + }, + }, + }, + }); + }); +}); diff --git a/x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/lib/create_condition_script.test.ts b/x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/lib/create_condition_script.test.ts new file mode 100644 index 0000000000000..f93989f2d4b9d --- /dev/null +++ b/x-pack/plugins/observability_solution/infra/server/lib/alerting/inventory_metric_threshold/lib/create_condition_script.test.ts @@ -0,0 +1,21 @@ +/* + * 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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { Comparator } from '../../../../../common/alerting/metrics'; +import { createConditionScript } from './create_condition_script'; + +describe('createConditionScript', () => { + it('should convert tx threshold from bits to byte', () => { + expect(createConditionScript([8], Comparator.GT_OR_EQ, 'tx')).toEqual({ + params: { + // Threshold has been converted from 8 bits to 1 byte + threshold: 1, + }, + source: 'params.value >= params.threshold ? 1 : 0', + }); + }); +}); diff --git a/x-pack/plugins/observability_solution/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.test.ts b/x-pack/plugins/observability_solution/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.test.ts index 2c88148bc2fa4..a6baca28ace1f 100644 --- a/x-pack/plugins/observability_solution/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.test.ts +++ b/x-pack/plugins/observability_solution/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.test.ts @@ -6,6 +6,7 @@ */ import { alertsMock } from '@kbn/alerting-plugin/server/mocks'; +import { getThresholds } from '../common/get_values'; import { set } from '@kbn/safer-lodash-set'; import { Aggregators, @@ -23,7 +24,11 @@ import { Evaluation } from './lib/evaluate_rule'; import type { LogMeta, Logger } from '@kbn/logging'; import { DEFAULT_FLAPPING_SETTINGS } from '@kbn/alerting-plugin/common'; import { InfraConfig } from '../../../../common/plugin_config_types'; -import { ALERT_EVALUATION_VALUES, ALERT_REASON } from '@kbn/rule-data-utils'; +import { + ALERT_EVALUATION_THRESHOLD, + ALERT_EVALUATION_VALUES, + ALERT_REASON, +} from '@kbn/rule-data-utils'; jest.mock('./lib/evaluate_rule', () => ({ evaluateRule: jest.fn() })); @@ -147,7 +152,7 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: '*', conditions: [ - { metric: 'test.metric.1', threshold: ['0.75'], value: '1', evaluation_value: 1 }, + { metric: 'test.metric.1', threshold: [0.75], value: '1', evaluation_value: 1 }, ], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', @@ -169,7 +174,7 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: '*', conditions: [ - { metric: 'test.metric.1', threshold: ['1.5'], value: '1', evaluation_value: 1 }, + { metric: 'test.metric.1', threshold: [1.5], value: '1', evaluation_value: 1 }, ], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', @@ -191,7 +196,7 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: '*', conditions: [ - { metric: 'test.metric.1', threshold: ['0.75'], value: '1', evaluation_value: 1 }, + { metric: 'test.metric.1', threshold: [0.75], value: '1', evaluation_value: 1 }, ], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', @@ -213,7 +218,7 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: '*', conditions: [ - { metric: 'test.metric.1', threshold: ['1.5'], value: '1', evaluation_value: 1 }, + { metric: 'test.metric.1', threshold: [1.5], value: '1', evaluation_value: 1 }, ], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', @@ -235,7 +240,7 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: '*', conditions: [ - { metric: 'test.metric.1', threshold: ['0', '1.5'], value: '1', evaluation_value: 1 }, + { metric: 'test.metric.1', threshold: [0, 1.5], value: '1', evaluation_value: 1 }, ], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', @@ -257,7 +262,7 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: '*', conditions: [ - { metric: 'test.metric.1', threshold: ['0', '0.75'], value: '1', evaluation_value: 1 }, + { metric: 'test.metric.1', threshold: [0, 0.75], value: '1', evaluation_value: 1 }, ], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', @@ -334,7 +339,7 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: alertIdA, conditions: [ - { metric: 'test.metric.1', threshold: ['0.75'], value: '1', evaluation_value: 1 }, + { metric: 'test.metric.1', threshold: [0.75], value: '1', evaluation_value: 1 }, ], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', @@ -345,7 +350,7 @@ describe('The metric threshold rule type', () => { testAlertReported(2, { id: alertIdB, conditions: [ - { metric: 'test.metric.1', threshold: ['0.75'], value: '1', evaluation_value: 1 }, + { metric: 'test.metric.1', threshold: [0.75], value: '1', evaluation_value: 1 }, ], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', @@ -389,7 +394,7 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: alertIdA, conditions: [ - { metric: 'test.metric.1', threshold: ['1.5'], value: '1', evaluation_value: 1 }, + { metric: 'test.metric.1', threshold: [1.5], value: '1', evaluation_value: 1 }, ], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', @@ -801,7 +806,7 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: alertIdA, conditions: [ - { metric: 'test.metric.1', threshold: ['0.75'], value: '1', evaluation_value: 1 }, + { metric: 'test.metric.1', threshold: [0.75], value: '1', evaluation_value: 1 }, ], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', @@ -812,7 +817,7 @@ describe('The metric threshold rule type', () => { testAlertReported(2, { id: alertIdB, conditions: [ - { metric: 'test.metric.1', threshold: ['0.75'], value: '3', evaluation_value: 3 }, + { metric: 'test.metric.1', threshold: [0.75], value: '3', evaluation_value: 3 }, ], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', @@ -876,7 +881,7 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: alertID, conditions: [ - { metric: 'test.metric.1', threshold: ['0.75'], value: '1', evaluation_value: 1 }, + { metric: 'test.metric.1', threshold: [0.75], value: '1', evaluation_value: 1 }, ], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', @@ -953,8 +958,8 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: alertID, conditions: [ - { metric: 'test.metric.1', threshold: ['1'], value: '1', evaluation_value: 1 }, - { metric: 'test.metric.2', threshold: ['3'], value: '3', evaluation_value: 3 }, + { metric: 'test.metric.1', threshold: [1], value: '1', evaluation_value: 1 }, + { metric: 'test.metric.2', threshold: [3], value: '3', evaluation_value: 3 }, ], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', @@ -1047,8 +1052,8 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: alertIdA, conditions: [ - { metric: 'test.metric.1', threshold: ['1'], value: '1', evaluation_value: 1 }, - { metric: 'test.metric.2', threshold: ['3'], value: '3', evaluation_value: 3 }, + { metric: 'test.metric.1', threshold: [1], value: '1', evaluation_value: 1 }, + { metric: 'test.metric.2', threshold: [3], value: '3', evaluation_value: 3 }, ], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', @@ -1099,7 +1104,7 @@ describe('The metric threshold rule type', () => { testNAlertsReported(1); testAlertReported(1, { id: alertID, - conditions: [{ metric: 'count', threshold: ['0.9'], value: '1', evaluation_value: 1 }], + conditions: [{ metric: 'count', threshold: [0.9], value: '1', evaluation_value: 1 }], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', reason: 'count is 1 in the last 1 min. Alert when > 0.9.', @@ -1216,7 +1221,7 @@ describe('The metric threshold rule type', () => { testNAlertsReported(2); testAlertReported(1, { id: alertIdA, - conditions: [{ metric: 'count', threshold: ['0'], value: '0', evaluation_value: 0 }], + conditions: [{ metric: 'count', threshold: [0], value: '0', evaluation_value: 0 }], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', reason: 'count is 0 in the last 1 min for a. Alert when <= 0.', @@ -1225,7 +1230,7 @@ describe('The metric threshold rule type', () => { }); testAlertReported(2, { id: alertIdB, - conditions: [{ metric: 'count', threshold: ['0'], value: '0', evaluation_value: 0 }], + conditions: [{ metric: 'count', threshold: [0], value: '0', evaluation_value: 0 }], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', reason: 'count is 0 in the last 1 min for b. Alert when <= 0.', @@ -1275,9 +1280,7 @@ describe('The metric threshold rule type', () => { testNAlertsReported(1); testAlertReported(1, { id: alertID, - conditions: [ - { metric: 'test.metric.2', threshold: ['1'], value: '3', evaluation_value: 3 }, - ], + conditions: [{ metric: 'test.metric.2', threshold: [1], value: '3', evaluation_value: 3 }], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', reason: 'test.metric.2 is 3 in the last 1 min. Alert when > 1.', @@ -1347,7 +1350,7 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: alertID, conditions: [ - { metric: 'test.metric.1', threshold: ['0.25'], value: '1', evaluation_value: 1 }, + { metric: 'test.metric.1', threshold: [0.25], value: '1', evaluation_value: 1 }, ], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', @@ -1419,7 +1422,7 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: alertID, conditions: [ - { metric: 'test.metric.3', threshold: ['1'], value: '[NO DATA]', evaluation_value: null }, + { metric: 'test.metric.3', threshold: [1], value: '[NO DATA]', evaluation_value: null }, ], actionGroup: NO_DATA_ACTIONS.id, alertState: 'NO DATA', @@ -1498,8 +1501,15 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: alertID, conditions: [ - { metric: 'test.metric.3', threshold: ['1'], value: '[NO DATA]', evaluation_value: null }, - { metric: 'count', threshold: [30], value: 0 }, + { + metric: 'test.metric.3', + threshold: [1], + formattedThreshold: ['1'], + value: '[NO DATA]', + evaluation_value: null, + }, + // Threshold will not be formatted because there is no result for the second condition + { metric: 'count', threshold: [30], formattedThreshold: [30], value: 0 }, ], actionGroup: NO_DATA_ACTIONS.id, alertState: 'NO DATA', @@ -1566,7 +1576,7 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: alertID, conditions: [ - { metric: 'test.metric.3', threshold: ['0'], value: '[NO DATA]', evaluation_value: null }, + { metric: 'test.metric.3', threshold: [0], value: '[NO DATA]', evaluation_value: null }, ], actionGroup: NO_DATA_ACTIONS.id, alertState: 'NO DATA', @@ -1596,7 +1606,7 @@ describe('The metric threshold rule type', () => { testAlertReported(2, { id: alertID, conditions: [ - { metric: 'test.metric.3', threshold: ['0'], value: '[NO DATA]', evaluation_value: null }, + { metric: 'test.metric.3', threshold: [0], value: '[NO DATA]', evaluation_value: null }, ], actionGroup: NO_DATA_ACTIONS.id, alertState: 'NO DATA', @@ -1637,9 +1647,7 @@ describe('The metric threshold rule type', () => { testNAlertsReported(4); testAlertReported(3, { id: alertIdA, - conditions: [ - { metric: 'test.metric.1', threshold: ['0'], value: '1', evaluation_value: 1 }, - ], + conditions: [{ metric: 'test.metric.1', threshold: [0], value: '1', evaluation_value: 1 }], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', reason: 'test.metric.1 is 1 in the last 1 min for a. Alert when > 0.', @@ -1648,9 +1656,7 @@ describe('The metric threshold rule type', () => { }); testAlertReported(4, { id: alertIdB, - conditions: [ - { metric: 'test.metric.1', threshold: ['0'], value: '3', evaluation_value: 3 }, - ], + conditions: [{ metric: 'test.metric.1', threshold: [0], value: '3', evaluation_value: 3 }], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', reason: 'test.metric.1 is 3 in the last 1 min for b. Alert when > 0.', @@ -1698,7 +1704,7 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: alertIdA, conditions: [ - { metric: 'test.metric.3', threshold: ['0'], value: '[NO DATA]', evaluation_value: null }, + { metric: 'test.metric.3', threshold: [0], value: '[NO DATA]', evaluation_value: null }, ], actionGroup: NO_DATA_ACTIONS.id, alertState: 'NO DATA', @@ -1709,7 +1715,7 @@ describe('The metric threshold rule type', () => { testAlertReported(2, { id: alertIdB, conditions: [ - { metric: 'test.metric.3', threshold: ['0'], value: '[NO DATA]', evaluation_value: null }, + { metric: 'test.metric.3', threshold: [0], value: '[NO DATA]', evaluation_value: null }, ], actionGroup: NO_DATA_ACTIONS.id, alertState: 'NO DATA', @@ -1764,9 +1770,7 @@ describe('The metric threshold rule type', () => { testNAlertsReported(3); testAlertReported(1, { id: alertIdA, - conditions: [ - { metric: 'test.metric.2', threshold: ['0'], value: '3', evaluation_value: 3 }, - ], + conditions: [{ metric: 'test.metric.2', threshold: [0], value: '3', evaluation_value: 3 }], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', reason: 'test.metric.2 is 3 in the last 1 min for a. Alert when > 0.', @@ -1775,9 +1779,7 @@ describe('The metric threshold rule type', () => { }); testAlertReported(2, { id: alertIdB, - conditions: [ - { metric: 'test.metric.2', threshold: ['0'], value: '1', evaluation_value: 1 }, - ], + conditions: [{ metric: 'test.metric.2', threshold: [0], value: '1', evaluation_value: 1 }], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', reason: 'test.metric.2 is 1 in the last 1 min for b. Alert when > 0.', @@ -1786,9 +1788,7 @@ describe('The metric threshold rule type', () => { }); testAlertReported(3, { id: alertIdC, - conditions: [ - { metric: 'test.metric.2', threshold: ['0'], value: '3', evaluation_value: 3 }, - ], + conditions: [{ metric: 'test.metric.2', threshold: [0], value: '3', evaluation_value: 3 }], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', reason: 'test.metric.2 is 3 in the last 1 min for c. Alert when > 0.', @@ -1828,9 +1828,7 @@ describe('The metric threshold rule type', () => { testNAlertsReported(5); testAlertReported(4, { id: alertIdA, - conditions: [ - { metric: 'test.metric.1', threshold: ['0'], value: '1', evaluation_value: 1 }, - ], + conditions: [{ metric: 'test.metric.1', threshold: [0], value: '1', evaluation_value: 1 }], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', reason: 'test.metric.1 is 1 in the last 1 min for a. Alert when > 0.', @@ -1839,9 +1837,7 @@ describe('The metric threshold rule type', () => { }); testAlertReported(5, { id: alertIdB, - conditions: [ - { metric: 'test.metric.1', threshold: ['0'], value: '3', evaluation_value: 3 }, - ], + conditions: [{ metric: 'test.metric.1', threshold: [0], value: '3', evaluation_value: 3 }], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', reason: 'test.metric.1 is 3 in the last 1 min for b. Alert when > 0.', @@ -1947,7 +1943,7 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: alertIdA, conditions: [ - { metric: 'test.metric.1', threshold: ['0'], value: '1', evaluation_value: 1 }, + { metric: 'test.metric.1', threshold: [0], value: '1', evaluation_value: 1 }, ], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', @@ -1958,7 +1954,7 @@ describe('The metric threshold rule type', () => { testAlertReported(2, { id: alertIdB, conditions: [ - { metric: 'test.metric.1', threshold: ['0'], value: '3', evaluation_value: 3 }, + { metric: 'test.metric.1', threshold: [0], value: '3', evaluation_value: 3 }, ], actionGroup: FIRED_ACTIONS.id, alertState: 'ALERT', @@ -2007,7 +2003,7 @@ describe('The metric threshold rule type', () => { conditions: [ { metric: 'test.metric.3', - threshold: ['0'], + threshold: [0], value: '[NO DATA]', evaluation_value: null, }, @@ -2023,7 +2019,7 @@ describe('The metric threshold rule type', () => { conditions: [ { metric: 'test.metric.3', - threshold: ['0'], + threshold: [0], value: '[NO DATA]', evaluation_value: null, }, @@ -2062,9 +2058,7 @@ describe('The metric threshold rule type', () => { testNAlertsReported(1); testAlertReported(1, { id: alertID, - conditions: [ - { metric: 'test.metric.1', threshold: ['0'], value: '3', evaluation_value: 3 }, - ], + conditions: [{ metric: 'test.metric.1', threshold: [0], value: '3', evaluation_value: 3 }], actionGroup: FIRED_ACTIONS.id, alertState: 'ERROR', reason: @@ -2086,7 +2080,7 @@ describe('The metric threshold rule type', () => { { ...baseNonCountCriterion, comparator: Comparator.GT, - threshold: [9999], + threshold: [9.999], }, ], }, @@ -2127,7 +2121,13 @@ describe('The metric threshold rule type', () => { testAlertReported(1, { id: alertID, conditions: [ - { metric: 'test.metric.1', threshold: ['9,999'], value: '2.5', evaluation_value: 2.5 }, + { + metric: 'test.metric.1', + threshold: [9.999], + formattedThreshold: ['9,999'], + value: '2.5', + evaluation_value: 2.5, + }, ], actionGroup: WARNING_ACTIONS.id, alertState: 'WARNING', @@ -2156,7 +2156,8 @@ describe('The metric threshold rule type', () => { conditions: [ { metric: 'test.metric.1', - threshold: ['999,900%'], + threshold: [9.999], + formattedThreshold: ['999,900%'], value: '82%', evaluation_value: 0.82, }, @@ -2191,7 +2192,8 @@ describe('The metric threshold rule type', () => { groupByKeys?: any; conditions: Array<{ metric: string; - threshold: Array; + threshold: number[]; + formattedThreshold?: Array; value: string | number; evaluation_value?: number | null; }>; @@ -2231,7 +2233,13 @@ describe('The metric threshold rule type', () => { ...(alertState !== 'ERROR' ? { threshold: conditions.reduce((acc, curr, ndx) => { - set(acc, `condition${ndx}`, curr.threshold); + set( + acc, + `condition${ndx}`, + curr.formattedThreshold + ? curr.formattedThreshold + : curr.threshold.map((t) => String(t)) + ); return acc; }, {}), } @@ -2242,6 +2250,7 @@ describe('The metric threshold rule type', () => { ...(alertState !== 'ERROR' ? { [ALERT_EVALUATION_VALUES]: conditions.map((c) => c.evaluation_value), + [ALERT_EVALUATION_THRESHOLD]: getThresholds(conditions), } : {}), [ALERT_REASON]: reason, diff --git a/x-pack/plugins/observability_solution/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.ts b/x-pack/plugins/observability_solution/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.ts index a4601bdbfd742..a59e216748c33 100644 --- a/x-pack/plugins/observability_solution/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.ts +++ b/x-pack/plugins/observability_solution/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.ts @@ -6,7 +6,11 @@ */ import { i18n } from '@kbn/i18n'; -import { ALERT_EVALUATION_VALUES, ALERT_REASON } from '@kbn/rule-data-utils'; +import { + ALERT_EVALUATION_THRESHOLD, + ALERT_EVALUATION_VALUES, + ALERT_REASON, +} from '@kbn/rule-data-utils'; import { isEqual } from 'lodash'; import { ActionGroupIdsOf, @@ -40,8 +44,9 @@ import { flattenAdditionalContext, getGroupByObject, } from '../common/utils'; +import { getEvaluationValues, getThresholds } from '../common/get_values'; -import { EvaluatedRuleParams, evaluateRule } from './lib/evaluate_rule'; +import { EvaluatedRuleParams, evaluateRule, Evaluation } from './lib/evaluate_rule'; import { MissingGroupsRecord } from './lib/check_missing_group'; import { convertStringsToMissingGroupsRecord } from './lib/convert_strings_to_missing_groups_record'; @@ -50,7 +55,8 @@ export type MetricThresholdAlert = Omit< 'kibana.alert.evaluation.values' > & { // Defining a custom type for this because the schema generation script doesn't allow explicit null values - 'kibana.alert.evaluation.values'?: Array; + [ALERT_EVALUATION_VALUES]?: Array; + [ALERT_EVALUATION_THRESHOLD]?: Array; }; export type MetricThresholdRuleParams = Record; @@ -83,7 +89,8 @@ type MetricThresholdAlertReporter = ( actionGroup: MetricThresholdActionGroup, context: MetricThresholdAlertContext, additionalContext?: AdditionalContext | null, - evaluationValues?: Array + evaluationValues?: Array, + thresholds?: Array ) => void; export const createMetricThresholdExecutor = @@ -129,7 +136,8 @@ export const createMetricThresholdExecutor = actionGroup, contextWithoutAlertDetailsUrl, additionalContext, - evaluationValues + evaluationValues, + thresholds ) => { const { uuid, start } = alertsClient.report({ id, @@ -141,6 +149,7 @@ export const createMetricThresholdExecutor = payload: { [ALERT_REASON]: reason, [ALERT_EVALUATION_VALUES]: evaluationValues, + [ALERT_EVALUATION_THRESHOLD]: thresholds, ...flattenAdditionalContext(additionalContext), }, context: { @@ -324,12 +333,8 @@ export const createMetricThresholdExecutor = new Set([...(additionalContext.tags ?? []), ...options.rule.tags]) ); - const evaluationValues = alertResults.reduce((acc: Array, result) => { - if (result[group]) { - acc.push(result[group].currentValue); - } - return acc; - }, []); + const evaluationValues = getEvaluationValues(alertResults, group); + const thresholds = getThresholds(criteria); const alertContext = { alertState: stateToAlertMessage[nextState], @@ -374,7 +379,8 @@ export const createMetricThresholdExecutor = actionGroupId, alertContext, additionalContext, - evaluationValues + evaluationValues, + thresholds ); scheduledActionsCount++; } diff --git a/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/lib/get_values.test.ts b/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/lib/get_values.test.ts index ddf2b7b1b1a45..aa4c5aa495f4f 100644 --- a/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/lib/get_values.test.ts +++ b/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/lib/get_values.test.ts @@ -6,17 +6,24 @@ */ import { alertResultsMultipleConditions } from '../mocks/custom_threshold_alert_result'; -import { criteriaMultipleConditions } from '../mocks/custom_threshold_metric_params'; +import { + criteriaMultipleConditions, + criteriaMultipleConditionsWithIsBetween, +} from '../mocks/custom_threshold_metric_params'; import { getEvaluationValues, getThreshold } from './get_values'; describe('getValue helpers', () => { describe('getThreshold', () => { test('should return threshold for one condition', () => { - expect(getThreshold([criteriaMultipleConditions[1]])).toEqual([4, 5]); + expect(getThreshold([criteriaMultipleConditions[1]])).toEqual([4]); }); test('should return threshold for multiple conditions', () => { - expect(getThreshold(criteriaMultipleConditions)).toEqual([1, 2, 4, 5]); + expect(getThreshold(criteriaMultipleConditions)).toEqual([1, 4]); + }); + + test('should return undefined there is at least one multiple threshold comparator such as is between', () => { + expect(getThreshold(criteriaMultipleConditionsWithIsBetween)).toBeUndefined(); }); }); diff --git a/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/lib/get_values.ts b/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/lib/get_values.ts index 13c0cabb9b590..8bf51682798a7 100644 --- a/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/lib/get_values.ts +++ b/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/lib/get_values.ts @@ -20,10 +20,20 @@ export const getEvaluationValues = ( }, []); }; -export const getThreshold = (criteria: CustomMetricExpressionParams[]): number[] => { - const threshold = criteria.map((c) => c.threshold); +export const getThreshold = (criteria: CustomMetricExpressionParams[]): number[] | undefined => { + let hasMultipleThresholdComparator = false; + const thresholds = criteria + .map((c) => c.threshold) + .reduce((acc: number[], t) => { + if (t.length !== 1) { + hasMultipleThresholdComparator = true; + return acc; + } + return acc.concat(t[0]); + }, []); - return threshold.reduce((acc: number[], t) => { - return acc.concat(...t); - }, []); + // We don't save threshold if at least one of the comparators is a multiple threshold one such as 'in between' + if (hasMultipleThresholdComparator) return undefined; + + return thresholds; }; diff --git a/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/mocks/custom_threshold_metric_params.ts b/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/mocks/custom_threshold_metric_params.ts index 9d09c90859659..6c3eb7557302c 100644 --- a/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/mocks/custom_threshold_metric_params.ts +++ b/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/mocks/custom_threshold_metric_params.ts @@ -27,7 +27,7 @@ export const criteriaMultipleConditions: CustomMetricExpressionParams[] = [ ], timeUnit: 'm', timeSize: 1, - threshold: [1, 2], + threshold: [1], comparator: Comparator.GT, }, { @@ -45,7 +45,46 @@ export const criteriaMultipleConditions: CustomMetricExpressionParams[] = [ ], timeUnit: 'm', timeSize: 1, - threshold: [4, 5], + threshold: [4], + comparator: Comparator.GT, + }, +]; + +export const criteriaMultipleConditionsWithIsBetween: CustomMetricExpressionParams[] = [ + { + metrics: [ + { + name: 'A', + aggType: Aggregators.AVERAGE, + field: 'system.is.a.good.puppy.dog', + }, + { + name: 'B', + aggType: Aggregators.AVERAGE, + field: 'system.is.a.bad.kitty', + }, + ], + timeUnit: 'm', + timeSize: 1, + threshold: [1, 2], + comparator: Comparator.BETWEEN, + }, + { + metrics: [ + { + name: 'A', + aggType: Aggregators.AVERAGE, + field: 'system.is.a.good.puppy.dog', + }, + { + name: 'B', + aggType: Aggregators.AVERAGE, + field: 'system.is.a.bad.kitty', + }, + ], + timeUnit: 'm', + timeSize: 1, + threshold: [4], comparator: Comparator.GT, }, ]; diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/common/functions/visualize_esql.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/common/functions/visualize_esql.ts index eccb5a4bb7748..2973552bf8cf3 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/common/functions/visualize_esql.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/common/functions/visualize_esql.ts @@ -15,6 +15,7 @@ export enum VisualizeESQLUserIntention { visualizeBar = 'visualizeBar', visualizeLine = 'visualizeLine', visualizeArea = 'visualizeArea', + visualizeTable = 'visualizeTable', visualizeDonut = 'visualizeDonut', visualizeTreemap = 'visualizeTreemap', visualizeHeatmap = 'visualizeHeatmap', diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/functions/visualize_esql.tsx b/x-pack/plugins/observability_solution/observability_ai_assistant/public/functions/visualize_esql.tsx index 99909f5015039..9544459a3519b 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/functions/visualize_esql.tsx +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/public/functions/visualize_esql.tsx @@ -49,6 +49,7 @@ enum ChartType { Treemap = 'Treemap', Tagcloud = 'Tag cloud', Waffle = 'Waffle', + Table = 'Table', } interface VisualizeQueryResponsev0 { @@ -351,6 +352,10 @@ export function registerVisualizeQueryRenderFunction({ preferredChartType = ChartType.Area; break; + case VisualizeESQLUserIntention.visualizeTable: + preferredChartType = ChartType.Table; + break; + case VisualizeESQLUserIntention.visualizeTagcloud: preferredChartType = ChartType.Tagcloud; break; diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/query/index.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/query/index.ts index 2ef3cca4e3e4d..3245a15ff36ca 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/query/index.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/query/index.ts @@ -167,6 +167,7 @@ export function registerQueryFunction({ ${VisualizeESQLUserIntention.visualizeHeatmap} ${VisualizeESQLUserIntention.visualizeLine} ${VisualizeESQLUserIntention.visualizeArea} + ${VisualizeESQLUserIntention.visualizeTable} ${VisualizeESQLUserIntention.visualizeTagcloud} ${VisualizeESQLUserIntention.visualizeTreemap} ${VisualizeESQLUserIntention.visualizeWaffle} diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/contexts/synthetics_settings_context.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/contexts/synthetics_settings_context.tsx index 3ff9765a05cd6..52b455dbc17c5 100644 --- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/contexts/synthetics_settings_context.tsx +++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/contexts/synthetics_settings_context.tsx @@ -41,6 +41,7 @@ export interface SyntheticsAppProps { setBreadcrumbs: (crumbs: ChromeBreadcrumb[]) => void; appMountParameters: AppMountParameters; isDev: boolean; + isServerless: boolean; } export interface SyntheticsSettingsContextValues { @@ -53,6 +54,8 @@ export interface SyntheticsSettingsContextValues { isLogsAvailable: boolean; commonlyUsedRanges?: CommonlyUsedDateRange[]; isDev?: boolean; + isServerless?: boolean; + setBreadcrumbs?: (crumbs: ChromeBreadcrumb[]) => void; } const { BASE_PATH } = CONTEXT_DEFAULTS; @@ -79,8 +82,16 @@ export const SyntheticsSettingsContextProvider: React.FC = ( children, ...props }) => { - const { basePath, isApmAvailable, isInfraAvailable, isLogsAvailable, commonlyUsedRanges, isDev } = - props; + const { + basePath, + isApmAvailable, + isInfraAvailable, + isLogsAvailable, + commonlyUsedRanges, + isDev, + setBreadcrumbs, + isServerless, + } = props; const { dateRangeStart, dateRangeEnd } = useGetUrlParams(); @@ -99,6 +110,8 @@ export const SyntheticsSettingsContextProvider: React.FC = ( commonlyUsedRanges, dateRangeStart: dateRangeStart ?? DATE_RANGE_START, dateRangeEnd: dateRangeEnd ?? DATE_RANGE_END, + setBreadcrumbs, + isServerless, }; }, [ canSave, @@ -110,6 +123,8 @@ export const SyntheticsSettingsContextProvider: React.FC = ( dateRangeStart, dateRangeEnd, commonlyUsedRanges, + setBreadcrumbs, + isServerless, ]); return ; diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/hooks/use_breadcrumbs.test.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/hooks/use_breadcrumbs.test.tsx index e5cb27e620061..6a07150070362 100644 --- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/hooks/use_breadcrumbs.test.tsx +++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/hooks/use_breadcrumbs.test.tsx @@ -17,6 +17,7 @@ import { getSupportedUrlParams, } from '../utils/url_params/get_supported_url_params'; import { makeBaseBreadcrumb, useBreadcrumbs } from './use_breadcrumbs'; +import { SyntheticsSettingsContext } from '../contexts'; describe('useBreadcrumbs', () => { it('sets the given breadcrumbs', () => { @@ -49,7 +50,20 @@ describe('useBreadcrumbs', () => { render( - + + + ); @@ -57,7 +71,7 @@ describe('useBreadcrumbs', () => { const urlParams: SyntheticsUrlParams = getSupportedUrlParams({}); expect(JSON.stringify(getBreadcrumbs())).toEqual( JSON.stringify( - makeBaseBreadcrumb('/app/synthetics', '/app/observability', urlParams).concat( + makeBaseBreadcrumb('/app/synthetics', '/app/observability', urlParams, false).concat( expectedCrumbs ) ) diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/hooks/use_breadcrumbs.ts b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/hooks/use_breadcrumbs.ts index 394b1f23634a0..6d174f773e5a1 100644 --- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/hooks/use_breadcrumbs.ts +++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/hooks/use_breadcrumbs.ts @@ -7,12 +7,13 @@ import { ChromeBreadcrumb } from '@kbn/core/public'; import { i18n } from '@kbn/i18n'; -import { MouseEvent, useEffect } from 'react'; +import { MouseEvent, useContext, useEffect } from 'react'; import { EuiBreadcrumb } from '@elastic/eui'; import { useKibana } from '@kbn/kibana-react-plugin/public'; import { SyntheticsUrlParams, stringifyUrlParams } from '../utils/url_params'; import { useUrlParams } from './use_url_params'; import { PLUGIN } from '../../../../common/constants/plugin'; +import { SyntheticsSettingsContext } from '../contexts'; const EMPTY_QUERY = '?'; @@ -45,8 +46,9 @@ function handleBreadcrumbClick( export const makeBaseBreadcrumb = ( uptimePath: string, observabilityPath: string, - params?: SyntheticsUrlParams -): [EuiBreadcrumb, EuiBreadcrumb] => { + params?: SyntheticsUrlParams, + isServerless?: boolean +): EuiBreadcrumb[] => { if (params) { const crumbParams: Partial = { ...params }; @@ -55,28 +57,35 @@ export const makeBaseBreadcrumb = ( uptimePath += query === EMPTY_QUERY ? '' : query; } - return [ - { + const baseBreadcrumbs: EuiBreadcrumb[] = []; + + // serverless Kibana has a curated UX flow, and "Observability" is already a given, + // thus we don't need to include it explicitly in the breadcrumb trail + if (!isServerless) { + baseBreadcrumbs.push({ text: i18n.translate('xpack.synthetics.breadcrumbs.observabilityText', { defaultMessage: 'Observability', }), href: observabilityPath, 'data-test-subj': 'observabilityPathBreadcrumb', - }, - { - text: i18n.translate('xpack.synthetics.breadcrumbs.overviewBreadcrumbText', { - defaultMessage: 'Synthetics', - }), - href: uptimePath, - 'data-test-subj': 'syntheticsPathBreadcrumb', - }, - ]; + }); + } + + baseBreadcrumbs.push({ + text: i18n.translate('xpack.synthetics.breadcrumbs.overviewBreadcrumbText', { + defaultMessage: 'Synthetics', + }), + href: uptimePath, + 'data-test-subj': 'syntheticsPathBreadcrumb', + }); + + return baseBreadcrumbs; }; export const useBreadcrumbs = (extraCrumbs: ChromeBreadcrumb[]) => { const params = useUrlParams()[0](); const kibana = useKibana(); - const setBreadcrumbs = kibana.services.chrome?.setBreadcrumbs; + const { setBreadcrumbs, isServerless } = useContext(SyntheticsSettingsContext); const syntheticsPath = kibana.services.application?.getUrlForApp(PLUGIN.SYNTHETICS_PLUGIN_ID) ?? ''; const observabilityPath = @@ -87,10 +96,20 @@ export const useBreadcrumbs = (extraCrumbs: ChromeBreadcrumb[]) => { if (setBreadcrumbs) { setBreadcrumbs( handleBreadcrumbClick( - makeBaseBreadcrumb(syntheticsPath, observabilityPath, params).concat(extraCrumbs), + makeBaseBreadcrumb(syntheticsPath, observabilityPath, params, isServerless).concat( + extraCrumbs + ), navigate ) ); } - }, [syntheticsPath, observabilityPath, extraCrumbs, navigate, params, setBreadcrumbs]); + }, [ + syntheticsPath, + observabilityPath, + extraCrumbs, + navigate, + params, + setBreadcrumbs, + isServerless, + ]); }; diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/render_app.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/render_app.tsx index d7f3b79ef53cb..17a51a5f6a381 100644 --- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/render_app.tsx +++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/render_app.tsx @@ -20,7 +20,8 @@ export function renderApp( plugins: ClientPluginsSetup, startPlugins: ClientPluginsStart, appMountParameters: AppMountParameters, - isDev: boolean + isDev: boolean, + isServerless: boolean ) { const { application: { capabilities }, @@ -70,7 +71,8 @@ export function renderApp( }), setBadge, appMountParameters, - setBreadcrumbs: core.chrome.setBreadcrumbs, + isServerless, + setBreadcrumbs: startPlugins.serverless?.setBreadcrumbs ?? core.chrome.setBreadcrumbs, }; ReactDOM.render(, appMountParameters.element); diff --git a/x-pack/plugins/observability_solution/synthetics/public/plugin.ts b/x-pack/plugins/observability_solution/synthetics/public/plugin.ts index 11ea23ca6da37..74029366ffd07 100644 --- a/x-pack/plugins/observability_solution/synthetics/public/plugin.ts +++ b/x-pack/plugins/observability_solution/synthetics/public/plugin.ts @@ -54,7 +54,7 @@ import { ObservabilityAIAssistantPluginStart, ObservabilityAIAssistantPluginSetup, } from '@kbn/observability-ai-assistant-plugin/public'; -import { ServerlessPluginSetup } from '@kbn/serverless/public'; +import { ServerlessPluginSetup, ServerlessPluginStart } from '@kbn/serverless/public'; import { PLUGIN } from '../common/constants/plugin'; import { OVERVIEW_ROUTE } from '../common/constants/ui'; import { locators } from './apps/locators'; @@ -99,6 +99,7 @@ export interface ClientPluginsStart { docLinks: DocLinksStart; uiSettings: CoreStart['uiSettings']; usageCollection: UsageCollectionStart; + serverless: ServerlessPluginStart; } export interface UptimePluginServices extends Partial { @@ -157,17 +158,17 @@ export class UptimePlugin { id: 'overview', title: i18n.translate('xpack.synthetics.overviewPage.linkText', { - defaultMessage: 'Overview', + defaultMessage: 'Monitors', }), path: '/', visibleIn: this._isServerless ? ['globalSearch', 'sideNav'] : [], }, { - id: 'management', - title: i18n.translate('xpack.synthetics.managementPage.linkText', { - defaultMessage: 'Management', + id: 'certificates', + title: i18n.translate('xpack.synthetics.deepLink.certificatesPage.linkText', { + defaultMessage: 'TLS Certificates', }), - path: '/monitors', + path: '/certificates', visibleIn: this._isServerless ? ['globalSearch', 'sideNav'] : [], }, ], @@ -175,7 +176,14 @@ export class UptimePlugin const [coreStart, corePlugins] = await core.getStartServices(); const { renderApp } = await import('./apps/synthetics/render_app'); - return renderApp(coreStart, plugins, corePlugins, params, this.initContext.env.mode.dev); + return renderApp( + coreStart, + plugins, + corePlugins, + params, + this.initContext.env.mode.dev, + this._isServerless + ); }, }); } diff --git a/x-pack/plugins/rollup/server/collectors/helpers.ts b/x-pack/plugins/rollup/server/collectors/helpers.ts index e1158133c77e2..595ee685efe6c 100644 --- a/x-pack/plugins/rollup/server/collectors/helpers.ts +++ b/x-pack/plugins/rollup/server/collectors/helpers.ts @@ -7,6 +7,7 @@ import { get } from 'lodash'; import { ElasticsearchClient } from '@kbn/core/server'; import { estypes } from '@elastic/elasticsearch'; +import { DataViewType } from '@kbn/data-views-plugin/common'; // elasticsearch index.max_result_window default value const ES_MAX_RESULT_WINDOW_DEFAULT_VALUE = 1000; @@ -40,7 +41,7 @@ export async function fetchRollupIndexPatterns(kibanaIndex: string, esClient: El bool: { filter: { term: { - 'index-pattern.type': 'rollup', + 'index-pattern.type': DataViewType.ROLLUP, }, }, }, diff --git a/x-pack/plugins/security_solution/public/common/components/charts/donutchart.tsx b/x-pack/plugins/security_solution/public/common/components/charts/donutchart.tsx index b5befa16d3e2b..ebfe06476620a 100644 --- a/x-pack/plugins/security_solution/public/common/components/charts/donutchart.tsx +++ b/x-pack/plugins/security_solution/public/common/components/charts/donutchart.tsx @@ -106,9 +106,9 @@ const DonutChartWrapperComponent: React.FC = ({ const { euiTheme } = useEuiTheme(); const emptyLabelStyle = useMemo( () => ({ - color: euiTheme.colors.disabled, + color: euiTheme.colors.darkShade, }), - [euiTheme.colors.disabled] + [euiTheme.colors.darkShade] ); const className = isChartEmbeddablesEnabled ? undefined : 'eui-textTruncate'; diff --git a/x-pack/plugins/security_solution/public/common/components/empty_value/empty_value.test.tsx b/x-pack/plugins/security_solution/public/common/components/empty_value/empty_value.test.tsx index c869bb5e6810c..b053016010594 100644 --- a/x-pack/plugins/security_solution/public/common/components/empty_value/empty_value.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/empty_value/empty_value.test.tsx @@ -21,7 +21,7 @@ import { import { getMockTheme } from '../../lib/kibana/kibana_react.mock'; describe('EmptyValue', () => { - const mockTheme = getMockTheme({ eui: { euiColorMediumShade: '#ece' } }); + const mockTheme = getMockTheme({ eui: { euiColorDarkShade: '#69707D' } }); test('it renders against snapshot', () => { const wrapper = shallow(

{getEmptyString()}

); diff --git a/x-pack/plugins/security_solution/public/common/components/empty_value/index.tsx b/x-pack/plugins/security_solution/public/common/components/empty_value/index.tsx index 86efb4a78277a..db0f51e2f0e8a 100644 --- a/x-pack/plugins/security_solution/public/common/components/empty_value/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/empty_value/index.tsx @@ -12,7 +12,7 @@ import styled from 'styled-components'; import * as i18n from './translations'; const EmptyWrapper = styled.span` - color: ${(props) => props.theme.eui.euiColorMediumShade}; + color: ${(props) => props.theme.eui.euiColorDarkShade}; `; EmptyWrapper.displayName = 'EmptyWrapper'; diff --git a/x-pack/plugins/security_solution/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap index 4525644c5cf06..6a01cf77373bc 100644 --- a/x-pack/plugins/security_solution/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap @@ -48,7 +48,9 @@ Object {
-

+

description

@@ -64,6 +66,7 @@ Object { -

+

description

@@ -271,6 +276,7 @@ Object { -

+

description

@@ -557,6 +565,7 @@ Object { ( [] ); + const descriptionElementId = useMemo(() => htmlIdGenerator()(), []); + const [importedActionConnectorsCount, setImportedActionConnectorsCount] = useState< number | undefined >(0); @@ -168,6 +172,14 @@ export const ImportDataModalComponent = ({ const handleActionConnectorsCheckboxClick = useCallback(() => { setOverwriteActionConnectors((shouldOverwrite) => !shouldOverwrite); }, []); + + const handleFilePickerChange: EuiFilePickerProps['onChange'] = useCallback( + (files: FileList | null) => { + setSelectedFiles(files && files.length > 0 ? files : null); + }, + [] + ); + return ( <> {showModal && ( @@ -178,7 +190,7 @@ export const ImportDataModalComponent = ({ -

{description}

+

{description}

@@ -187,12 +199,11 @@ export const ImportDataModalComponent = ({ accept=".ndjson" id="rule-file-picker" initialPromptText={subtitle} - onChange={(files: FileList | null) => { - setSelectedFiles(files && files.length > 0 ? files : null); - }} + onChange={handleFilePickerChange} display={'large'} fullWidth={true} isLoading={isImporting} + aria-labelledby={descriptionElementId} /> diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_creation/components/pick_timeline/index.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_creation/components/pick_timeline/index.tsx index 89ab7298bac8a..6097b3eb76a72 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_creation/components/pick_timeline/index.tsx +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_creation/components/pick_timeline/index.tsx @@ -73,6 +73,7 @@ export const PickTimeline = ({ timelineTitle={timelineTitle} onTimelineChange={handleOnTimelineChange} placeholder={placeholder} + aria-label={field.label} /> ); diff --git a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/lists/use_lists_config.test.tsx b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/lists/use_lists_config.test.tsx index b8439e2f9a861..db1cd501bc3fc 100644 --- a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/lists/use_lists_config.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/lists/use_lists_config.test.tsx @@ -88,6 +88,17 @@ describe('useListsConfig', () => { renderHook(() => useListsConfig()); expect(listsIndexMock.createIndex).not.toHaveBeenCalled(); }); + + it('does not call create index if the user can manage indexes and have cluster privilege, but index loading', () => { + useUserPrivilegesMock.mockReturnValue({ + detectionEnginePrivileges: { result: { cluster: { manage: true } } }, + }); + listsPrivilegesMock.canManageIndex = true; + (useListsIndex as jest.Mock).mockReturnValue({ ...listsIndexMock, loading: true }); + + renderHook(() => useListsConfig()); + expect(listsIndexMock.createIndex).not.toHaveBeenCalled(); + }); }); describe('when lists are enabled and indexes exist', () => { diff --git a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/lists/use_lists_config.tsx b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/lists/use_lists_config.tsx index f8db3528ba615..3615d37923627 100644 --- a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/lists/use_lists_config.tsx +++ b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/lists/use_lists_config.tsx @@ -42,10 +42,10 @@ export const useListsConfig = (): UseListsConfigReturn => { const canCreateIndex = canManageIndex && canManageCluster; useEffect(() => { - if (needsIndex && canCreateIndex) { + if (needsIndex && canCreateIndex && !indexLoading) { createIndex(); } - }, [createIndex, needsIndex, canCreateIndex]); + }, [createIndex, needsIndex, canCreateIndex, indexLoading]); return { canManageIndex, diff --git a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/lists/use_lists_index.tsx b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/lists/use_lists_index.tsx index 3ab5fd8484293..17dafb5e04169 100644 --- a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/lists/use_lists_index.tsx +++ b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/lists/use_lists_index.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import { useEffect, useState, useCallback } from 'react'; +import { useCallback, useMemo } from 'react'; import { isSecurityAppError } from '@kbn/securitysolution-t-grid'; import { useReadListIndex, useCreateListIndex } from '@kbn/securitysolution-list-hooks'; import { useHttp, useKibana } from '../../../../common/lib/kibana'; @@ -13,6 +13,14 @@ import * as i18n from './translations'; import { useAppToasts } from '../../../../common/hooks/use_app_toasts'; import { useListsPrivileges } from './use_lists_privileges'; +/** + * Determines whether an error response from the `readListIndex` + * API call indicates that the index is not yet created. + */ +const isIndexNotCreatedError = (err: unknown) => { + return isSecurityAppError(err) && err.body.status_code === 404; +}; + export interface UseListsIndexReturn { createIndex: () => void; indexExists: boolean | null; @@ -21,82 +29,58 @@ export interface UseListsIndexReturn { } export const useListsIndex = (): UseListsIndexReturn => { - const [indexExists, setIndexExists] = useState(null); - const [error, setError] = useState(null); const { lists } = useKibana().services; const http = useHttp(); const { addError } = useAppToasts(); const { canReadIndex, canManageIndex, canWriteIndex } = useListsPrivileges(); - const { loading: readLoading, start: readListIndex, ...readListIndexState } = useReadListIndex(); const { loading: createLoading, start: createListIndex, - ...createListIndexState - } = useCreateListIndex(); - const loading = readLoading || createLoading; - - // read route utilizes `esClient.indices.getAlias` which requires - // management privileges - const readIndex = useCallback(() => { - if (lists && canReadIndex && canManageIndex) { - readListIndex({ http }); - } - }, [http, lists, readListIndex, canReadIndex, canManageIndex]); + error: createListError, + } = useCreateListIndex({ + http, + onError: (err) => { + if (err != null) { + addError(err, { title: i18n.LISTS_INDEX_CREATE_FAILURE }); + } + }, + }); - const createIndex = useCallback(() => { - if (lists && canManageIndex && canWriteIndex) { - createListIndex({ http }); - } - }, [createListIndex, http, lists, canManageIndex, canWriteIndex]); + const { + loading: readLoading, + result: readResult, + error: readError, + } = useReadListIndex({ + http, + isEnabled: Boolean(lists && canReadIndex && canManageIndex && !createLoading), + onError: (err) => { + if (isIndexNotCreatedError(err)) { + return; + } - // initial read list - useEffect(() => { - if (!readLoading && !error && indexExists === null) { - readIndex(); - } - }, [error, indexExists, readIndex, readLoading]); + addError(err, { title: i18n.LISTS_INDEX_FETCH_FAILURE }); + }, + }); - // handle read result - useEffect(() => { - if (readListIndexState.result != null) { - setIndexExists( - readListIndexState.result.list_index && readListIndexState.result.list_item_index - ); - } - }, [readListIndexState.result]); + const loading = readLoading || createLoading; - // refetch index after creation - useEffect(() => { - if (createListIndexState.result != null) { - readIndex(); + const createIndex = useCallback(() => { + if (lists && canManageIndex && canWriteIndex) { + createListIndex(); } - }, [createListIndexState.result, readIndex]); + }, [createListIndex, lists, canManageIndex, canWriteIndex]); - // handle read error - useEffect(() => { - const err = readListIndexState.error; - if (err != null) { - if (isSecurityAppError(err) && err.body.status_code === 404) { - setIndexExists(false); - } else { - setError(err); - addError(err, { title: i18n.LISTS_INDEX_FETCH_FAILURE }); - } + const indexExists = useMemo(() => { + if (isIndexNotCreatedError(readError)) { + return false; } - }, [addError, readListIndexState.error]); - // handle create error - useEffect(() => { - const err = createListIndexState.error; - if (err != null) { - setError(err); - addError(err, { title: i18n.LISTS_INDEX_CREATE_FAILURE }); - } - }, [addError, createListIndexState.error]); + return readResult != null ? readResult.list_index && readResult.list_item_index : null; + }, [readError, readResult]); return { createIndex, - error, + error: createListError || isIndexNotCreatedError(readError) ? undefined : readError, indexExists, loading, }; diff --git a/x-pack/plugins/security_solution/public/flyout/entity_details/host_right/header.tsx b/x-pack/plugins/security_solution/public/flyout/entity_details/host_right/header.tsx index e8785a92acb6d..b5df2f81d1b0a 100644 --- a/x-pack/plugins/security_solution/public/flyout/entity_details/host_right/header.tsx +++ b/x-pack/plugins/security_solution/public/flyout/entity_details/host_right/header.tsx @@ -22,6 +22,8 @@ interface HostPanelHeaderProps { observedHost: ObservedEntityData; } +const linkTitleCSS = { width: 'fit-content' }; + export const HostPanelHeader = ({ hostName, observedHost }: HostPanelHeaderProps) => { const lastSeenDate = useMemo( () => observedHost.lastSeen.date && new Date(observedHost.lastSeen.date), @@ -43,6 +45,7 @@ export const HostPanelHeader = ({ hostName, observedHost }: HostPanelHeaderProps path={getHostDetailsUrl(hostName)} target={'_blank'} external={false} + css={linkTitleCSS} > diff --git a/x-pack/plugins/security_solution/public/flyout/entity_details/user_right/header.tsx b/x-pack/plugins/security_solution/public/flyout/entity_details/user_right/header.tsx index 6390b5a7e49ee..f8ff1070d9cbc 100644 --- a/x-pack/plugins/security_solution/public/flyout/entity_details/user_right/header.tsx +++ b/x-pack/plugins/security_solution/public/flyout/entity_details/user_right/header.tsx @@ -27,6 +27,8 @@ interface UserPanelHeaderProps { managedUser: ManagedUserData; } +const linkTitleCSS = { width: 'fit-content' }; + export const UserPanelHeader = ({ userName, observedUser, managedUser }: UserPanelHeaderProps) => { const oktaTimestamp = managedUser.data?.[ManagedUserDatasetKey.OKTA]?.fields?.[ '@timestamp' @@ -59,6 +61,7 @@ export const UserPanelHeader = ({ userName, observedUser, managedUser }: UserPan path={getUsersDetailsUrl(userName)} target={'_blank'} external={false} + css={linkTitleCSS} > diff --git a/x-pack/plugins/security_solution/public/management/components/endpoint_responder/command_render_components/integration_tests/release_action.test.tsx b/x-pack/plugins/security_solution/public/management/components/endpoint_responder/command_render_components/integration_tests/release_action.test.tsx index a2a42d4325f04..2a4c7838e0219 100644 --- a/x-pack/plugins/security_solution/public/management/components/endpoint_responder/command_render_components/integration_tests/release_action.test.tsx +++ b/x-pack/plugins/security_solution/public/management/components/endpoint_responder/command_render_components/integration_tests/release_action.test.tsx @@ -24,8 +24,7 @@ import { UPGRADE_AGENT_FOR_RESPONDER } from '../../../../../common/translations' jest.mock('../../../../../common/experimental_features_service'); -// FLAKY: https://github.com/elastic/kibana/issues/162530 -describe.skip('When using the release action from response actions console', () => { +describe('When using the release action from response actions console', () => { let render: ( capabilities?: EndpointCapabilities[] ) => Promise>; @@ -219,12 +218,14 @@ describe.skip('When using the release action from response actions console', () it('should display completion output if done (no additional API calls)', async () => { await render(); - - expect(apiMocks.responseProvider.actionDetails).toHaveBeenCalledTimes(1); + await waitFor(() => { + expect(apiMocks.responseProvider.actionDetails).toHaveBeenCalledTimes(1); + }); await consoleManagerMockAccess.openRunningConsole(); - - expect(apiMocks.responseProvider.actionDetails).toHaveBeenCalledTimes(1); + await waitFor(() => { + expect(apiMocks.responseProvider.actionDetails).toHaveBeenCalledTimes(1); + }); }); }); }); diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/timelines/components/side_panel/__snapshots__/index.test.tsx.snap index 463e4a1e2f57a..097305ababd43 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/__snapshots__/index.test.tsx.snap @@ -287,7 +287,7 @@ exports[`Details Panel Component DetailsPanel:EventDetails: rendering it should exports[`Details Panel Component DetailsPanel:HostDetails: rendering it should render the Host Details view in the Details Panel when the panelView is hostDetail and the hostName is set 1`] = ` .c3 { - color: #535966; + color: #98a2b3; } .c2 { @@ -631,7 +631,7 @@ exports[`Details Panel Component DetailsPanel:HostDetails: rendering it should r exports[`Details Panel Component DetailsPanel:NetworkDetails: rendering it should render the Network Details view in the Details Panel when the panelView is networkDetail and the ip is set 1`] = ` .c3 { - color: #535966; + color: #98a2b3; } .c2 { diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/search_super_select/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/search_super_select/index.tsx index d7e8ae909c75f..7289f32fca36e 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/search_super_select/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/search_super_select/index.tsx @@ -6,7 +6,7 @@ */ import type { EuiSelectableOption } from '@elastic/eui'; -import { EuiInputPopover, EuiFieldText } from '@elastic/eui'; +import { EuiInputPopover, EuiFieldText, htmlIdGenerator } from '@elastic/eui'; import React, { memo, useCallback, useMemo, useState } from 'react'; import styled from 'styled-components'; @@ -56,6 +56,7 @@ interface SearchTimelineSuperSelectProps { timelineType?: TimelineTypeLiteral; placeholder?: string; onTimelineChange: (timelineTitle: string, timelineId: string | null) => void; + 'aria-label'?: string; } const getBasicSelectableOptions = (timelineId: string) => [ @@ -77,6 +78,7 @@ const SearchTimelineSuperSelectComponent: React.FC { const [isPopoverOpen, setIsPopoverOpen] = useState(false); @@ -88,6 +90,8 @@ const SearchTimelineSuperSelectComponent: React.FC htmlIdGenerator('searchTimelinePopover')(), []); + const superSelect = useMemo( () => ( ), - [handleOpenPopover, isDisabled, timelineTitle] + [ariaLabel, handleOpenPopover, isDisabled, isPopoverOpen, popoverId, timelineTitle] ); const handleGetSelectableOptions = useCallback( @@ -129,7 +137,7 @@ const SearchTimelineSuperSelectComponent: React.FC { - return pathNameSerialized.startsWith(prepend('/app/synthetics')); - }, + breadcrumbStatus: 'hidden', }, { - link: 'synthetics:management', - getIsActive: ({ pathNameSerialized, prepend }) => { - return pathNameSerialized.startsWith(prepend('/app/synthetics/monitors')); - }, + link: 'synthetics:certificates', + title: i18n.translate( + 'xpack.serverlessObservability.nav.synthetics.certificatesItem', + { + defaultMessage: 'TLS Certificates', + } + ), + id: 'synthetics-certificates', + breadcrumbStatus: 'hidden', }, ], }, diff --git a/x-pack/plugins/serverless_search/common/types/connector_stats.ts b/x-pack/plugins/serverless_search/common/types/connector_stats.ts new file mode 100644 index 0000000000000..b48d75120634d --- /dev/null +++ b/x-pack/plugins/serverless_search/common/types/connector_stats.ts @@ -0,0 +1,121 @@ +/* + * 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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export interface ConnectorStats { + id: string; + serviceType?: string | null; + isNative?: boolean; + isDeleted: boolean; + status?: string; + indexName?: string | null; + dlsEnabled?: boolean; + sslEnabled?: boolean; + fetchSelectively?: boolean; + textExtractionServiceEnabled?: boolean; + documents?: DocumentsStats; + dataSourceSpecific?: DataSourceSpecificStats; + scheduling?: { + accessControl: Scheduling; + full: Scheduling; + incremental: Scheduling; + }; + syncRules?: { + active: { + withBasicRules: boolean; + withAdvancedRules: boolean; + }; + draft: { + withBasicRules: boolean; + withAdvancedRules: boolean; + }; + }; + ingestPipeline?: { + name: string; + extractBinaryContent: boolean; + reduceWhitespace: boolean; + runMLInference: boolean; + }; + syncJobs?: SyncJobStats; +} + +export interface DataSourceSpecificStats { + confluence?: { + dataSourceType: string; + }; + github?: { + isCloud: boolean; + }; + jira?: { + dataSourceType: string; + }; + mongodb?: { + directConnect: boolean; + }; + mssql?: { + validateHost: boolean; + tables: number; + }; + mysql?: { + tables: number; + }; + oracle?: { + tables: number; + }; + postgresql?: { + tables: number; + }; + slack?: { + autoJoinChannelsEnabled: boolean; + syncUsersEnabled: boolean; + fetchLastNDays: number; + }; + zoom?: { + recordingAge: number; + }; +} + +export interface DocumentsStats { + total: number; + volume: number; + inLastSync: number; +} + +interface Scheduling { + enabled: boolean; + interval: string; +} + +export interface SyncJobStats { + overall: SyncJobStatsDetails; + withTextExtractionServiceEnabled?: SyncJobStatsDetails; +} + +export interface SyncJobStatsDetails { + total: number; + last30Days?: SyncJobStatsByType; + last7Days?: SyncJobStatsByType; +} + +export interface SyncJobStatsByType { + overall: SyncJobStatsByState; + accessControl?: SyncJobStatsByState; + full?: SyncJobStatsByState; + incremental?: SyncJobStatsByState; +} + +export interface SyncJobStatsByState { + total: number; + manual: number; + scheduled: number; + completed: number; + errored: number; + canceled: number; + suspended: number; + idle: number; + running: number; + totalDurationSeconds: number; +} diff --git a/x-pack/plugins/serverless_search/common/types/index.ts b/x-pack/plugins/serverless_search/common/types/index.ts index 6b43747b19afd..c2ea72f13c8e9 100644 --- a/x-pack/plugins/serverless_search/common/types/index.ts +++ b/x-pack/plugins/serverless_search/common/types/index.ts @@ -31,3 +31,5 @@ export interface FetchIndexResult { stats?: IndicesStatsIndicesStats; }; } + +export type { ConnectorStats } from './connector_stats'; diff --git a/x-pack/plugins/serverless_search/server/collectors/connectors/telemetry.test.ts b/x-pack/plugins/serverless_search/server/collectors/connectors/telemetry.test.ts index 33c7815c3be52..c9f8b6a6394d1 100644 --- a/x-pack/plugins/serverless_search/server/collectors/connectors/telemetry.test.ts +++ b/x-pack/plugins/serverless_search/server/collectors/connectors/telemetry.test.ts @@ -7,16 +7,15 @@ import { registerTelemetryUsageCollector } from './telemetry'; import { createCollectorFetchContextMock } from '@kbn/usage-collection-plugin/server/mocks'; +import { loggingSystemMock } from '@kbn/core-logging-server-mocks'; +import { collectConnectorStats } from '@kbn/search-connectors'; +import { ConnectorStats } from '../../../common/types'; -const indexNotFoundError = { - meta: { - body: { - error: { - type: 'index_not_found_exception', - }, - }, - }, -}; +jest.mock('@kbn/search-connectors', () => ({ + collectConnectorStats: jest.fn(), +})); + +const mockLogger = loggingSystemMock.createLogger().get(); describe('Connectors Serverless Telemetry Usage Collector', () => { const makeUsageCollectorStub = jest.fn(); @@ -32,7 +31,7 @@ describe('Connectors Serverless Telemetry Usage Collector', () => { describe('registerTelemetryUsageCollector', () => { it('should make and register the usage collector', () => { - registerTelemetryUsageCollector(usageCollectionMock); + registerTelemetryUsageCollector(usageCollectionMock, mockLogger); expect(registerStub).toHaveBeenCalledTimes(1); expect(makeUsageCollectorStub).toHaveBeenCalledTimes(1); @@ -43,42 +42,30 @@ describe('Connectors Serverless Telemetry Usage Collector', () => { describe('fetchTelemetryMetrics', () => { it('should return telemetry data', async () => { - const fetchContextMock = createCollectorFetchContextMock(); - fetchContextMock.esClient.count = jest.fn().mockImplementation((query: any) => - Promise.resolve({ - count: query.query.bool.filter[0].term.is_native ? 5 : 2, - }) - ); - registerTelemetryUsageCollector(usageCollectionMock); + const connectorStats: ConnectorStats = { + id: '1', + isDeleted: false, + }; + (collectConnectorStats as jest.Mock).mockImplementation(() => [connectorStats]); + registerTelemetryUsageCollector(usageCollectionMock, mockLogger); const telemetryMetrics = await makeUsageCollectorStub.mock.calls[0][0].fetch( - fetchContextMock + createCollectorFetchContextMock() ); expect(telemetryMetrics).toEqual({ - native: { - total: 5, - }, - clients: { - total: 2, - }, + connectors: [connectorStats], }); }); - it('should return default telemetry on index not found error', async () => { - const fetchContextMock = createCollectorFetchContextMock(); - fetchContextMock.esClient.count = jest - .fn() - .mockImplementation(() => Promise.reject(indexNotFoundError)); - registerTelemetryUsageCollector(usageCollectionMock); + it('should return default telemetry when collectConnectorStats raises error', async () => { + (collectConnectorStats as jest.Mock).mockImplementation(() => { + throw new Error(); + }); + registerTelemetryUsageCollector(usageCollectionMock, mockLogger); const telemetryMetrics = await makeUsageCollectorStub.mock.calls[0][0].fetch( - fetchContextMock + createCollectorFetchContextMock() ); expect(telemetryMetrics).toEqual({ - native: { - total: 0, - }, - clients: { - total: 0, - }, + connectors: [], }); }); }); diff --git a/x-pack/plugins/serverless_search/server/collectors/connectors/telemetry.ts b/x-pack/plugins/serverless_search/server/collectors/connectors/telemetry.ts index 3c226b1150c7e..7900265a4187c 100644 --- a/x-pack/plugins/serverless_search/server/collectors/connectors/telemetry.ts +++ b/x-pack/plugins/serverless_search/server/collectors/connectors/telemetry.ts @@ -5,48 +5,329 @@ * 2.0. */ -import { ElasticsearchClient } from '@kbn/core/server'; +import { ElasticsearchClient, Logger } from '@kbn/core/server'; -import { CONNECTORS_INDEX } from '@kbn/search-connectors'; +import { collectConnectorStats } from '@kbn/search-connectors'; import { UsageCollectionSetup } from '@kbn/usage-collection-plugin/server'; -import { isIndexNotFoundException } from '@kbn/search-connectors/utils/identify_exceptions'; + +import { ConnectorStats } from '../../../common/types'; interface Telemetry { - native: { - total: number; - }; - clients: { - total: number; - }; + connectors: ConnectorStats[]; } const defaultTelemetryMetrics: Telemetry = { - native: { - total: 0, - }, - clients: { - total: 0, - }, + connectors: [], }; /** * Register the telemetry collector */ -export const registerTelemetryUsageCollector = (usageCollection: UsageCollectionSetup) => { +export const registerTelemetryUsageCollector = ( + usageCollection: UsageCollectionSetup, + log: Logger +) => { const telemetryUsageCollector = usageCollection.makeUsageCollector({ type: 'connectors_serverless', isReady: () => true, schema: { - native: { - total: { type: 'long' }, - }, - clients: { - total: { type: 'long' }, + connectors: { + type: 'array', + items: { + id: { type: 'keyword' }, + serviceType: { type: 'keyword' }, + isNative: { type: 'boolean' }, + isDeleted: { type: 'boolean' }, + status: { type: 'keyword' }, + indexName: { type: 'keyword' }, + dlsEnabled: { type: 'boolean' }, + sslEnabled: { type: 'boolean' }, + fetchSelectively: { type: 'boolean' }, + textExtractionServiceEnabled: { type: 'boolean' }, + documents: { + total: { type: 'long' }, + volume: { type: 'long' }, + inLastSync: { type: 'long' }, + }, + dataSourceSpecific: { + confluence: { + dataSourceType: { type: 'keyword' }, + }, + github: { + isCloud: { type: 'boolean' }, + }, + jira: { + dataSourceType: { type: 'keyword' }, + }, + mongodb: { + directConnect: { type: 'boolean' }, + }, + mssql: { + validateHost: { type: 'boolean' }, + tables: { type: 'long' }, + }, + mysql: { + tables: { type: 'long' }, + }, + oracle: { + tables: { type: 'long' }, + }, + postgresql: { + tables: { type: 'long' }, + }, + slack: { + autoJoinChannelsEnabled: { type: 'boolean' }, + syncUsersEnabled: { type: 'boolean' }, + fetchLastNDays: { type: 'long' }, + }, + zoom: { + recordingAge: { type: 'long' }, + }, + }, + scheduling: { + accessControl: { + enabled: { type: 'boolean' }, + interval: { type: 'text' }, + }, + full: { + enabled: { type: 'boolean' }, + interval: { type: 'text' }, + }, + incremental: { + enabled: { type: 'boolean' }, + interval: { type: 'text' }, + }, + }, + syncRules: { + active: { + withBasicRules: { type: 'boolean' }, + withAdvancedRules: { type: 'boolean' }, + }, + draft: { + withBasicRules: { type: 'boolean' }, + withAdvancedRules: { type: 'boolean' }, + }, + }, + ingestPipeline: { + name: { type: 'keyword' }, + extractBinaryContent: { type: 'boolean' }, + reduceWhitespace: { type: 'boolean' }, + runMLInference: { type: 'boolean' }, + }, + syncJobs: { + overall: { + total: { type: 'long' }, + last30Days: { + overall: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + accessControl: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + full: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + incremental: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + }, + last7Days: { + overall: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + accessControl: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + full: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + incremental: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + }, + }, + withTextExtractionServiceEnabled: { + total: { type: 'long' }, + last30Days: { + overall: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + accessControl: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + full: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + incremental: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + }, + last7Days: { + overall: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + accessControl: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + full: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + incremental: { + total: { type: 'long' }, + manual: { type: 'long' }, + scheduled: { type: 'long' }, + completed: { type: 'long' }, + errored: { type: 'long' }, + canceled: { type: 'long' }, + suspended: { type: 'long' }, + idle: { type: 'long' }, + running: { type: 'long' }, + totalDurationSeconds: { type: 'long' }, + }, + }, + }, + }, + }, }, }, async fetch({ esClient }) { - return await fetchTelemetryMetrics(esClient); + return await fetchTelemetryMetrics(esClient, log); }, }); usageCollection.registerCollector(telemetryUsageCollector); @@ -56,60 +337,17 @@ export const registerTelemetryUsageCollector = (usageCollection: UsageCollection * Fetch the aggregated telemetry metrics */ -// @ts-ignore -export const fetchTelemetryMetrics = async (client: ElasticsearchClient): Promise => { +export const fetchTelemetryMetrics = async ( + client: ElasticsearchClient, + log: Logger +): Promise => { try { - const [nativeCountResponse, clientsCountResponse] = await Promise.all([ - client.count({ - index: CONNECTORS_INDEX, - query: { - bool: { - filter: [ - { - term: { - is_native: true, - }, - }, - ], - must_not: [ - { - term: { - service_type: { - value: 'elastic-crawler', - }, - }, - }, - ], - }, - }, - }), - client.count({ - index: CONNECTORS_INDEX, - query: { - bool: { - filter: [ - { - term: { - is_native: false, - }, - }, - ], - }, - }, - }), - ]); - + const connectors = await collectConnectorStats(client); return { - native: { - total: nativeCountResponse.count, - }, - clients: { - total: clientsCountResponse.count, - }, + connectors, } as Telemetry; } catch (error) { - if (isIndexNotFoundException(error)) { - return defaultTelemetryMetrics; - } + log.error(`Couldn't fetch telemetry due to error: ${error}`); + return defaultTelemetryMetrics; } }; diff --git a/x-pack/plugins/serverless_search/server/plugin.ts b/x-pack/plugins/serverless_search/server/plugin.ts index 710191c13ce13..a7b779a1239c7 100644 --- a/x-pack/plugins/serverless_search/server/plugin.ts +++ b/x-pack/plugins/serverless_search/server/plugin.ts @@ -99,7 +99,7 @@ export class ServerlessSearchPlugin if (usageCollection) { getStartServices().then(() => { - registerTelemetryUsageCollector(usageCollection); + registerTelemetryUsageCollector(usageCollection, this.logger); }); } diff --git a/x-pack/plugins/serverless_search/tsconfig.json b/x-pack/plugins/serverless_search/tsconfig.json index 7705a8c797fb1..fcc68f548b4b5 100644 --- a/x-pack/plugins/serverless_search/tsconfig.json +++ b/x-pack/plugins/serverless_search/tsconfig.json @@ -43,5 +43,6 @@ "@kbn/code-editor", "@kbn/console-plugin", "@kbn/core-chrome-browser", + "@kbn/core-logging-server-mocks", ] } diff --git a/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/azure_openai_utils.test.ts b/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/azure_openai_utils.test.ts index 43a9aa83a3f02..e9ad87a35ab7c 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/azure_openai_utils.test.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/azure_openai_utils.test.ts @@ -171,26 +171,47 @@ describe('Azure Open AI Utils', () => { it('should not match invalid chat url', () => { const regex = transformApiUrlToRegex(AZURE_OPENAI_CHAT_URL); - const match = - 'https://openai.azure.com/openai/deployments/NEW-DEPLOYMENT-321/chat/completions?api-version=2023-05-15'.match( - regex - ); - expect(match).toBeNull(); + [ + 'https://openai.azure.com/openai/deployments/NEW-DEPLOYMENT-321/chat/completions?api-version=2023-05-15', + 'https://My-test-resource-123.openaiazure.com/openai/deployments/NEW-DEPLOYMENT-321/chat/completions?api-version=2023-05-15', + 'https://My-test-resource-123.openaiaazure.com/openai/deployments/NEW-DEPLOYMENT-321/chat/completions?api-version=2023-05-15', + 'https://My-test-resource-123openai.azure.com/openai/deployments/NEW-DEPLOYMENT-321/chat/completions?api-version=2023-05-15', + 'https://My-test-resource-123.openai.azure.com//openai/deployments/NEW-DEPLOYMENT-321/chat/completions?api-version=2023-05-15', + 'https:///My-test-resource-123.openai.azure.com/openai/deployments/NEW-DEPLOYMENT-321/chat/completions?api-version=2023-05-15', + ].forEach((url) => { + const match = url.match(regex); + expect(match).toBeNull(); + }); }); it('should not match invalid completion url', () => { const regex = transformApiUrlToRegex(AZURE_OPENAI_COMPLETIONS_URL); - const match = 'https://fooai.com/completions?api-version=2023-05-15'.match(regex); - expect(match).toBeNull(); + [ + 'https://fooai.com/completions?api-version=2023-05-15', + 'https://My-test-resource-123.openaiazure.com/openai/deployments/NEW-DEPLOYMENT-321/completions?api-version=2023-05-15', + 'https://My-test-resource-123.openaiaazure.com/openai/deployments/NEW-DEPLOYMENT-321/completions?api-version=2023-05-15', + 'https://My-test-resource-123openai.azure.com/openai/deployments/NEW-DEPLOYMENT-321/completions?api-version=2023-05-15', + 'https://My-test-resource-123.openai.azure.com//openai/deployments/NEW-DEPLOYMENT-321/completions?api-version=2023-05-15', + 'https:///My-test-resource-123.openai.azure.com/openai/deployments/NEW-DEPLOYMENT-321/completions?api-version=2023-05-15', + ].forEach((url) => { + const match = url.match(regex); + expect(match).toBeNull(); + }); }); it('should not match invalid completion extensions url', () => { const regex = transformApiUrlToRegex(AZURE_OPENAI_COMPLETIONS_EXTENSIONS_URL); - const match = - 'https://My-test-resource-123.openai.azure.com/openai/deployments/extensions/chat/completions?api-version=2023-05-15'.match( - regex - ); - expect(match).toBeNull(); + [ + 'https://My-test-resource-123.openai.azure.com/openai/deployments/extensions/chat/completions?api-version=2023-05-15', + 'https://My-test-resource-123.openaiazure.com/openai/deployments/NEW-DEPLOYMENT-321/extensions/chat/completions?api-version=2023-05-15', + 'https://My-test-resource-123.openaiaazure.com/openai/deployments/NEW-DEPLOYMENT-321/extensions/chat/completions?api-version=2023-05-15', + 'https://My-test-resource-123openai.azure.com/openai/deployments/NEW-DEPLOYMENT-321/extensions/chat/completions?api-version=2023-05-15', + 'https:///My-test-resource-123.openai.azure.com/openai/deployments/NEW-DEPLOYMENT-321/extensions/chat/completions?api-version=2023-05-15', + 'https://My-test-resource-123.openai.azure.com/openai//deployments/NEW-DEPLOYMENT-321/extensions/chat/completions?api-version=2023-05-15', + ].forEach((url) => { + const match = url.match(regex); + expect(match).toBeNull(); + }); }); }); }); diff --git a/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/azure_openai_utils.ts b/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/azure_openai_utils.ts index f39a574554a57..02bff6ea2f63a 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/azure_openai_utils.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/azure_openai_utils.ts @@ -61,10 +61,10 @@ export const getRequestWithStreamOption = (url: string, body: string, stream: bo export const transformApiUrlToRegex = (apiUrl: string): RegExp => { return new RegExp( apiUrl - .replaceAll(`/`, `\/`) - .replaceAll(`.`, `\.`) - .replace(`{your-resource-name}`, `[^.]+`) - .replace(`{deployment-id}`, `[^\/]+`) + .replaceAll(`/`, `\\/`) + .replaceAll(`.`, `\\.`) + .replace(`{your-resource-name}`, `[^\\.\\/]+`) + .replace(`{deployment-id}`, `[^\\/]+`) .replace(`?api-version={api-version}`, ``), 'g' ); diff --git a/x-pack/plugins/task_manager/server/lib/calculate_health_status.test.ts b/x-pack/plugins/task_manager/server/lib/calculate_health_status.test.ts index df3ffdcc75cfe..6570347dc5761 100644 --- a/x-pack/plugins/task_manager/server/lib/calculate_health_status.test.ts +++ b/x-pack/plugins/task_manager/server/lib/calculate_health_status.test.ts @@ -260,7 +260,7 @@ describe('calculateHealthStatus', () => { }); }); - test('should return OK status when stats are not yet populated', () => { + test('should return Uninitialized status when stats are not yet populated and shouldRunTasks = true', () => { expect( calculateHealthStatus( { @@ -274,6 +274,20 @@ describe('calculateHealthStatus', () => { ).toEqual({ status: HealthStatus.Uninitialized, reason: `no health stats available` }); }); + test('should return OK status when stats are not yet populated and shouldRunTasks = false', () => { + expect( + calculateHealthStatus( + { + last_update: '2023-05-09T12:59:57.000Z', + stats: {}, + }, + config, + false, + logger + ) + ).toEqual({ status: HealthStatus.OK }); + }); + test('should return error status if any stat has status error', () => { const errorReason = `setting HealthStatus.Error because assumedRequiredThroughputPerMinutePerKibana (222.85972222222222) >= capacityPerMinutePerKibana (200) AND assumedAverageRecurringRequiredThroughputPerMinutePerKibana (222.85972222222222) >= capacityPerMinutePerKibana (200)`; const stats = getStatsWithTimestamp(); diff --git a/x-pack/plugins/task_manager/server/lib/calculate_health_status.ts b/x-pack/plugins/task_manager/server/lib/calculate_health_status.ts index 15a206625efa8..5f3a9f77bb3d0 100644 --- a/x-pack/plugins/task_manager/server/lib/calculate_health_status.ts +++ b/x-pack/plugins/task_manager/server/lib/calculate_health_status.ts @@ -21,7 +21,11 @@ export function calculateHealthStatus( // if stats are empty, return a warning if (isEmpty(summarizedStats.stats)) { - return { status: HealthStatus.Uninitialized, reason: `no health stats available` }; + if (!shouldRunTasks) { + return { status: HealthStatus.OK }; + } else { + return { status: HealthStatus.Uninitialized, reason: `no health stats available` }; + } } // if "hot" health stats are any more stale than monitored_stats_required_freshness diff --git a/x-pack/plugins/task_manager/server/routes/health.test.ts b/x-pack/plugins/task_manager/server/routes/health.test.ts index 6e0e387740d5d..de84a2bd4aa1c 100644 --- a/x-pack/plugins/task_manager/server/routes/health.test.ts +++ b/x-pack/plugins/task_manager/server/routes/health.test.ts @@ -5,8 +5,7 @@ * 2.0. */ -import { Observable, of, Subject } from 'rxjs'; -import { take } from 'rxjs/operators'; +import { firstValueFrom, of, Subject } from 'rxjs'; import { merge } from 'lodash'; import { v4 as uuidv4 } from 'uuid'; import { httpServiceMock, docLinksServiceMock } from '@kbn/core/server/mocks'; @@ -277,7 +276,7 @@ describe('healthRoute', () => { docLinks, }); - const serviceStatus = getLatest(serviceStatus$); + const serviceStatus = firstValueFrom(serviceStatus$); stats$.next(warnRuntimeStat); await sleep(1001); @@ -362,7 +361,7 @@ describe('healthRoute', () => { docLinks, }); - const serviceStatus = getLatest(serviceStatus$); + const serviceStatus = firstValueFrom(serviceStatus$); stats$.next(errorRuntimeStat); await sleep(1001); @@ -435,7 +434,7 @@ describe('healthRoute', () => { docLinks, }); - const serviceStatus = getLatest(serviceStatus$); + const serviceStatus = firstValueFrom(serviceStatus$); const [, handler] = router.get.mock.calls[0]; @@ -519,7 +518,7 @@ describe('healthRoute', () => { docLinks, }); - const serviceStatus = getLatest(serviceStatus$); + const serviceStatus = firstValueFrom(serviceStatus$); await sleep(0); @@ -600,7 +599,7 @@ describe('healthRoute', () => { shouldRunTasks: true, docLinks, }); - const serviceStatus = getLatest(serviceStatus$); + const serviceStatus = firstValueFrom(serviceStatus$); await sleep(0); // eslint-disable-next-line @typescript-eslint/naming-convention @@ -662,6 +661,54 @@ describe('healthRoute', () => { }, }); }); + + it('returns a OK status for empty if shouldRunTasks is false', async () => { + const router = httpServiceMock.createRouter(); + + const stats$ = new Subject(); + const { serviceStatus$ } = healthRoute({ + router, + monitoringStats$: stats$, + logger, + taskManagerId: uuidv4(), + config: getTaskManagerConfig({ + monitored_stats_required_freshness: 1000, + monitored_aggregated_stats_refresh_rate: 60000, + }), + kibanaVersion: '8.0', + kibanaIndexName: '.kibana', + getClusterClient: () => Promise.resolve(elasticsearchServiceMock.createClusterClient()), + usageCounter: mockUsageCounter, + shouldRunTasks: false, + docLinks, + }); + const serviceStatus = firstValueFrom(serviceStatus$); + await sleep(0); + + const lastUpdate = new Date().toISOString(); + stats$.next({ + last_update: lastUpdate, + stats: {}, + }); + + const [, handler] = router.get.mock.calls[0]; + + const [context, req, res] = mockHandlerArguments({}, {}, ['ok']); + + expect(await serviceStatus).toMatchObject({ + level: ServiceStatusLevels.available, + summary: 'Task Manager is healthy', + }); + expect(await handler(context, req, res)).toMatchObject({ + body: { + id: expect.any(String), + timestamp: expect.any(String), + status: 'OK', + last_update: lastUpdate, + stats: {}, + }, + }); + }); }); function ignoreCapacityEstimation(stats: RawMonitoringStats) { @@ -754,10 +801,6 @@ function mockHealthStats(overrides = {}) { return merge(stub, overrides) as unknown as MonitoringStats; } -async function getLatest(stream$: Observable) { - return new Promise((resolve) => stream$.pipe(take(1)).subscribe((stats) => resolve(stats))); -} - const getTaskManagerConfig = (overrides: Partial = {}) => configSchema.validate( overrides.monitored_stats_required_freshness diff --git a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json index 34a18f8349b20..9ff55d4bd5ebe 100644 --- a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json +++ b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json @@ -7857,17 +7857,788 @@ }, "connectors": { "properties": { - "native": { - "properties": { - "total": { - "type": "long" - } - } - }, - "clients": { - "properties": { - "total": { - "type": "long" + "connectors": { + "type": "array", + "items": { + "properties": { + "id": { + "type": "keyword" + }, + "serviceType": { + "type": "keyword" + }, + "isNative": { + "type": "boolean" + }, + "isDeleted": { + "type": "boolean" + }, + "status": { + "type": "keyword" + }, + "indexName": { + "type": "keyword" + }, + "dlsEnabled": { + "type": "boolean" + }, + "sslEnabled": { + "type": "boolean" + }, + "fetchSelectively": { + "type": "boolean" + }, + "textExtractionServiceEnabled": { + "type": "boolean" + }, + "documents": { + "properties": { + "total": { + "type": "long" + }, + "volume": { + "type": "long" + }, + "inLastSync": { + "type": "long" + } + } + }, + "dataSourceSpecific": { + "properties": { + "confluence": { + "properties": { + "dataSourceType": { + "type": "keyword" + } + } + }, + "github": { + "properties": { + "isCloud": { + "type": "boolean" + } + } + }, + "jira": { + "properties": { + "dataSourceType": { + "type": "keyword" + } + } + }, + "mongodb": { + "properties": { + "directConnect": { + "type": "boolean" + } + } + }, + "mssql": { + "properties": { + "validateHost": { + "type": "boolean" + }, + "tables": { + "type": "long" + } + } + }, + "mysql": { + "properties": { + "tables": { + "type": "long" + } + } + }, + "oracle": { + "properties": { + "tables": { + "type": "long" + } + } + }, + "postgresql": { + "properties": { + "tables": { + "type": "long" + } + } + }, + "slack": { + "properties": { + "autoJoinChannelsEnabled": { + "type": "boolean" + }, + "syncUsersEnabled": { + "type": "boolean" + }, + "fetchLastNDays": { + "type": "long" + } + } + }, + "zoom": { + "properties": { + "recordingAge": { + "type": "long" + } + } + } + } + }, + "scheduling": { + "properties": { + "accessControl": { + "properties": { + "enabled": { + "type": "boolean" + }, + "interval": { + "type": "text" + } + } + }, + "full": { + "properties": { + "enabled": { + "type": "boolean" + }, + "interval": { + "type": "text" + } + } + }, + "incremental": { + "properties": { + "enabled": { + "type": "boolean" + }, + "interval": { + "type": "text" + } + } + } + } + }, + "syncRules": { + "properties": { + "active": { + "properties": { + "withBasicRules": { + "type": "boolean" + }, + "withAdvancedRules": { + "type": "boolean" + } + } + }, + "draft": { + "properties": { + "withBasicRules": { + "type": "boolean" + }, + "withAdvancedRules": { + "type": "boolean" + } + } + } + } + }, + "ingestPipeline": { + "properties": { + "name": { + "type": "keyword" + }, + "extractBinaryContent": { + "type": "boolean" + }, + "reduceWhitespace": { + "type": "boolean" + }, + "runMLInference": { + "type": "boolean" + } + } + }, + "syncJobs": { + "properties": { + "overall": { + "properties": { + "total": { + "type": "long" + }, + "last30Days": { + "properties": { + "overall": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "accessControl": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "full": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "incremental": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + } + } + }, + "last7Days": { + "properties": { + "overall": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "accessControl": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "full": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "incremental": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + } + } + } + } + }, + "withTextExtractionServiceEnabled": { + "properties": { + "total": { + "type": "long" + }, + "last30Days": { + "properties": { + "overall": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "accessControl": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "full": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "incremental": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + } + } + }, + "last7Days": { + "properties": { + "overall": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "accessControl": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "full": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "incremental": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + } + } + } + } + } + } + } } } } @@ -7875,17 +8646,788 @@ }, "connectors_serverless": { "properties": { - "native": { - "properties": { - "total": { - "type": "long" - } - } - }, - "clients": { - "properties": { - "total": { - "type": "long" + "connectors": { + "type": "array", + "items": { + "properties": { + "id": { + "type": "keyword" + }, + "serviceType": { + "type": "keyword" + }, + "isNative": { + "type": "boolean" + }, + "isDeleted": { + "type": "boolean" + }, + "status": { + "type": "keyword" + }, + "indexName": { + "type": "keyword" + }, + "dlsEnabled": { + "type": "boolean" + }, + "sslEnabled": { + "type": "boolean" + }, + "fetchSelectively": { + "type": "boolean" + }, + "textExtractionServiceEnabled": { + "type": "boolean" + }, + "documents": { + "properties": { + "total": { + "type": "long" + }, + "volume": { + "type": "long" + }, + "inLastSync": { + "type": "long" + } + } + }, + "dataSourceSpecific": { + "properties": { + "confluence": { + "properties": { + "dataSourceType": { + "type": "keyword" + } + } + }, + "github": { + "properties": { + "isCloud": { + "type": "boolean" + } + } + }, + "jira": { + "properties": { + "dataSourceType": { + "type": "keyword" + } + } + }, + "mongodb": { + "properties": { + "directConnect": { + "type": "boolean" + } + } + }, + "mssql": { + "properties": { + "validateHost": { + "type": "boolean" + }, + "tables": { + "type": "long" + } + } + }, + "mysql": { + "properties": { + "tables": { + "type": "long" + } + } + }, + "oracle": { + "properties": { + "tables": { + "type": "long" + } + } + }, + "postgresql": { + "properties": { + "tables": { + "type": "long" + } + } + }, + "slack": { + "properties": { + "autoJoinChannelsEnabled": { + "type": "boolean" + }, + "syncUsersEnabled": { + "type": "boolean" + }, + "fetchLastNDays": { + "type": "long" + } + } + }, + "zoom": { + "properties": { + "recordingAge": { + "type": "long" + } + } + } + } + }, + "scheduling": { + "properties": { + "accessControl": { + "properties": { + "enabled": { + "type": "boolean" + }, + "interval": { + "type": "text" + } + } + }, + "full": { + "properties": { + "enabled": { + "type": "boolean" + }, + "interval": { + "type": "text" + } + } + }, + "incremental": { + "properties": { + "enabled": { + "type": "boolean" + }, + "interval": { + "type": "text" + } + } + } + } + }, + "syncRules": { + "properties": { + "active": { + "properties": { + "withBasicRules": { + "type": "boolean" + }, + "withAdvancedRules": { + "type": "boolean" + } + } + }, + "draft": { + "properties": { + "withBasicRules": { + "type": "boolean" + }, + "withAdvancedRules": { + "type": "boolean" + } + } + } + } + }, + "ingestPipeline": { + "properties": { + "name": { + "type": "keyword" + }, + "extractBinaryContent": { + "type": "boolean" + }, + "reduceWhitespace": { + "type": "boolean" + }, + "runMLInference": { + "type": "boolean" + } + } + }, + "syncJobs": { + "properties": { + "overall": { + "properties": { + "total": { + "type": "long" + }, + "last30Days": { + "properties": { + "overall": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "accessControl": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "full": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "incremental": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + } + } + }, + "last7Days": { + "properties": { + "overall": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "accessControl": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "full": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "incremental": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + } + } + } + } + }, + "withTextExtractionServiceEnabled": { + "properties": { + "total": { + "type": "long" + }, + "last30Days": { + "properties": { + "overall": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "accessControl": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "full": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "incremental": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + } + } + }, + "last7Days": { + "properties": { + "overall": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "accessControl": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "full": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + }, + "incremental": { + "properties": { + "total": { + "type": "long" + }, + "manual": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "completed": { + "type": "long" + }, + "errored": { + "type": "long" + }, + "canceled": { + "type": "long" + }, + "suspended": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "running": { + "type": "long" + }, + "totalDurationSeconds": { + "type": "long" + } + } + } + } + } + } + } + } + } } } } diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index d5dd6ff600992..c5316a0d1dbb7 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -12701,7 +12701,6 @@ "xpack.enterpriseSearch.content.searchIndices.deleteModal.syncsWarning.indexNameDescription": "Cette action ne peut pas être annulée. Veuillez saisir {indexName} pour confirmer.", "xpack.enterpriseSearch.content.searchIndices.deleteModal.title": "Voulez-vous vraiment supprimer {indexName} ?", "xpack.enterpriseSearch.content.searchIndices.searchIndices.onlySearchOptimized.tooltipContent": "Les index optimisés pour la recherche sont précédés du préfixe {code}. Ils sont gérés par des mécanismes d'ingestion tels que des robots d'indexation, des connecteurs ou des API d'ingestion.", - "xpack.enterpriseSearch.content.settings.description": "Ces paramètres s'appliquent à tous les nouveaux index Elasticsearch créés par des mécanismes d'ingestion Search. Pour les index basés sur l'ingestion d'API, n'oubliez pas d'inclure le pipeline lorsque vous ingérez des documents. Ces fonctionnalités sont alimentées par {link}.", "xpack.enterpriseSearch.crawler.action.deleteDomain.confirmationPopupMessage": "Voulez-vous vraiment supprimer le domaine \"{domainUrl}\" et tous ses paramètres ?", "xpack.enterpriseSearch.crawler.addDomainForm.entryPointLabel": "Le point d'entrée du robot d'indexation a été défini sur {entryPointValue}", "xpack.enterpriseSearch.crawler.authenticationPanel.emptyPrompt.description": "Cliquer sur {addAuthenticationButtonLabel} afin de fournir les informations d'identification nécessaires pour indexer le contenu protégé", @@ -14206,18 +14205,6 @@ "xpack.enterpriseSearch.content.indices.transforms.addInferencePipelineModal.steps.fields.title": "Champs", "xpack.enterpriseSearch.content.indices.transforms.addInferencePipelineModal.steps.review.title": "Révision", "xpack.enterpriseSearch.content.indices.transforms.addInferencePipelineModal.steps.test.title": "Test (facultatif)", - "xpack.enterpriseSearch.content.integrations.dropbox": "Dropbox", - "xpack.enterpriseSearch.content.integrations.dropboxDescription": "Effectuez des recherches dans vos fichiers et dossiers stockés sur Dropbox.", - "xpack.enterpriseSearch.content.integrations.dropboxPaper": "Dropbox Paper", - "xpack.enterpriseSearch.content.integrations.dropboxPaperDescription": "Effectuez des recherches dans vos fichiers et dossiers stockés sur Dropbox Paper.", - "xpack.enterpriseSearch.content.integrations.github": "GitHub", - "xpack.enterpriseSearch.content.integrations.githubDescription": "Effectuez des recherches sur vos projets et référentiels sur GitHub.", - "xpack.enterpriseSearch.content.integrations.githubServer": "GitHub Enterprise Server", - "xpack.enterpriseSearch.content.integrations.githubServerDescription": "Effectuez des recherches sur vos projets et référentiels sur GitHub.", - "xpack.enterpriseSearch.content.integrations.gmail": "Gmail", - "xpack.enterpriseSearch.content.integrations.gmailDescription": "Effectuez des recherches sur votre contenu dans Gmail.", - "xpack.enterpriseSearch.content.integrations.slack": "Slack", - "xpack.enterpriseSearch.content.integrations.slackDescription": "Effectuez des recherches sur votre contenu dans Slack.", "xpack.enterpriseSearch.content.licensingCallout.analytics.contentOne": "Les fonctionnalités Behavioral Analytics requièrent une licence Platinum ou supérieure ; elles ne sont pas disponibles pour les déploiements autogérés de la licence Standard. Vous devez effectuer une mise à niveau pour utiliser cette fonctionnalité.", "xpack.enterpriseSearch.content.licensingCallout.analytics.contentTwo": "Saviez-vous que les fonctionnalités Behavioral Analytics étaient disponibles avec une licence Standard Elastic Cloud ? Avec Elastic Cloud, exécutez vos services où bon vous semble. Il vous suffit de déployer notre service géré sur Google Cloud, Microsoft Azure ou Amazon Web Services, et nous nous chargeons de l'entretien et de la maintenance pour vous.", "xpack.enterpriseSearch.content.licensingCallout.contentCloudTrial": "Explorer Enterprise Search sur Elastic Cloud ", @@ -14391,13 +14378,9 @@ "xpack.enterpriseSearch.content.searchIndices.searchIndices.searchBar.ariaLabel": "Filtrer les index Elasticsearch", "xpack.enterpriseSearch.content.searchIndices.searchIndices.searchBar.placeHolder": "Filtrer les index Elasticsearch", "xpack.enterpriseSearch.content.searchIndices.searchIndices.tableTitle": "Index disponibles", - "xpack.enterpriseSearch.content.settings.breadcrumb": "Paramètres", "xpack.enterpriseSearch.content.settings.contactExtraction.label": "Extraction du contenu", "xpack.enterpriseSearch.content.settings.contentExtraction.description": "Extrayez du contenu interrogeable de fichiers binaires, tels que des PDF et des documents Word.", - "xpack.enterpriseSearch.content.settings.contentExtraction.descriptionTwo": "Vous pouvez également activer ou désactiver cette fonctionnalité pour un index spécifique sur la page de configuration de l'index.", "xpack.enterpriseSearch.content.settings.contentExtraction.title": "Extraction de contenu de l'ensemble du déploiement", - "xpack.enterpriseSearch.content.settings.headerTitle": "Paramètres de contenu", - "xpack.enterpriseSearch.content.settings.ingestLink": "pipelines d'ingestion", "xpack.enterpriseSearch.content.settings.mlInference.deploymentHeaderTitle": "Extraction de pipelines d'inférence de ML de l'ensemble du déploiement", "xpack.enterpriseSearch.content.settings.mlInference.description": "Les pipelines d'inférence de ML seront exécutés avec vos pipelines. Vous devrez configurer les processeurs individuellement pour chaque index sur la page de ses pipelines.", "xpack.enterpriseSearch.content.settings.mlInference.label": "Inférence de ML", @@ -14700,28 +14683,6 @@ "xpack.enterpriseSearch.inlineEditableTable.newRowButtonLabel": "Nouvelle ligne", "xpack.enterpriseSearch.integrations.apiDescription": "Ajouter la recherche à votre application avec les API robustes d'Elasticsearch.", "xpack.enterpriseSearch.integrations.apiName": "API", - "xpack.enterpriseSearch.integrations.buildAConnectorDescription": "Effectuez des recherches sur des données stockées dans des sources de données personnalisées.", - "xpack.enterpriseSearch.integrations.buildAConnectorName": "Connecteur personnalisé", - "xpack.enterpriseSearch.integrations.connectors.boxDescription": "Effectuez des recherches sur votre contenu dans Box.", - "xpack.enterpriseSearch.integrations.connectors.boxTitle": "Box", - "xpack.enterpriseSearch.integrations.connectors.confluenceDescription": "Effectuez des recherches sur votre contenu dans Confluence Cloud.", - "xpack.enterpriseSearch.integrations.connectors.confluenceServerDescription": "Effectuez des recherches sur votre contenu dans le serveur Confluence.", - "xpack.enterpriseSearch.integrations.connectors.confluenceServerTitle": "Serveur Confluence", - "xpack.enterpriseSearch.integrations.connectors.confluenceTitle": "Cloud Confluence", - "xpack.enterpriseSearch.integrations.connectors.jiraCloudTitle": "Jira Cloud", - "xpack.enterpriseSearch.integrations.connectors.jiraDescription": "Effectuez des recherches sur votre contenu dans Jira Cloud.", - "xpack.enterpriseSearch.integrations.connectors.jiraServerDescription": "Effectuez des recherches sur votre contenu dans le serveur Jira.", - "xpack.enterpriseSearch.integrations.connectors.jiraServerTitle": "Serveur Jira", - "xpack.enterpriseSearch.integrations.connectors.outlookDescription": "Effectuez des recherches sur votre contenu dans Outlook.", - "xpack.enterpriseSearch.integrations.connectors.outlookTitle": "Outlook", - "xpack.enterpriseSearch.integrations.connectors.teamsDescription": "Effectuez des recherches sur votre contenu dans Teams.", - "xpack.enterpriseSearch.integrations.connectors.teamsTitle": "Équipes", - "xpack.enterpriseSearch.integrations.connectors.zoomDescription": "Effectuez des recherches sur votre contenu dans Zoom.", - "xpack.enterpriseSearch.integrations.connectors.zoomTitle": "Effectuer un zoom", - "xpack.enterpriseSearch.integrations.oneDriveTitle": "OneDrive", - "xpack.enterpriseSearch.integrations.salesforceDescription": "Effectuez des recherches sur votre contenu dans Salesforce.", - "xpack.enterpriseSearch.integrations.salesforceName": "Salesforce", - "xpack.enterpriseSearch.integrations.salesforceSandboxTitle": "Sandbox Salesforce", "xpack.enterpriseSearch.integrations.webCrawlerDescription": "Ajoutez la recherche à votre site web avec le robot d'indexation.", "xpack.enterpriseSearch.integrations.webCrawlerName": "Robot d'indexation", "xpack.enterpriseSearch.languages.cURL": "cURL", @@ -14750,7 +14711,6 @@ "xpack.enterpriseSearch.nav.applications.searchApplications.connectTitle": "Connecter", "xpack.enterpriseSearch.nav.applicationsTitle": "Applications", "xpack.enterpriseSearch.nav.appSearchTitle": "App Search", - "xpack.enterpriseSearch.nav.contentSettingsTitle": "Paramètres", "xpack.enterpriseSearch.nav.contentTitle": "Contenu", "xpack.enterpriseSearch.nav.elasticsearchTitle": "Elasticsearch", "xpack.enterpriseSearch.nav.enterpriseSearchOverviewTitle": "Premiers pas", @@ -15468,34 +15428,6 @@ "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.zeroStateButtonText": "Ajouter des sources de contenu organisationnelles", "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.zeroStateTitle": "Aucune source n'est partagée avec ce groupe", "xpack.enterpriseSearch.workplaceSearch.groups.sourcesModalLabel": "sources de contenu organisationnelles", - "xpack.enterpriseSearch.workplaceSearch.integrations.azureBlob": "Stockage Blob Azure", - "xpack.enterpriseSearch.workplaceSearch.integrations.azureBlobDescription": "Effectuez des recherches sur votre contenu sur Stockage Blob Azure.", - "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloud": "Google Cloud Storage", - "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloudDescription": "Effectuez des recherches sur votre contenu sur Google Cloud Storage.", - "xpack.enterpriseSearch.workplaceSearch.integrations.googleDrive": "Google Drive", - "xpack.enterpriseSearch.workplaceSearch.integrations.googleDriveDescription": "Effectuez des recherches sur votre contenu sur Google Drive.", - "xpack.enterpriseSearch.workplaceSearch.integrations.mongoDBDescription": "Effectuez des recherches sur votre contenu dans MongoDB.", - "xpack.enterpriseSearch.workplaceSearch.integrations.mongoDBName": "MongoDB", - "xpack.enterpriseSearch.workplaceSearch.integrations.msSqlDescription": "Effectuez des recherches sur votre contenu sur Microsoft SQL Server.", - "xpack.enterpriseSearch.workplaceSearch.integrations.msSqlName": "Microsoft SQL", - "xpack.enterpriseSearch.workplaceSearch.integrations.mysqlDescription": "Effectuez des recherches sur votre contenu dans MySQL.", - "xpack.enterpriseSearch.workplaceSearch.integrations.mysqlName": "MySQL", - "xpack.enterpriseSearch.workplaceSearch.integrations.netowkrDriveDescription": "Effectuez des recherches sur le contenu de votre lecteur réseau.", - "xpack.enterpriseSearch.workplaceSearch.integrations.networkDriveName": "Lecteur réseau", - "xpack.enterpriseSearch.workplaceSearch.integrations.oneDriveDescription": "Effectuez des recherches sur votre contenu dans OneDrive.", - "xpack.enterpriseSearch.workplaceSearch.integrations.oracleDescription": "Effectuez des recherches sur votre contenu dans Oracle.", - "xpack.enterpriseSearch.workplaceSearch.integrations.oracleName": "Oracle", - "xpack.enterpriseSearch.workplaceSearch.integrations.postgreSQLDescription": "Effectuez des recherches sur votre contenu dans PostgreSQL.", - "xpack.enterpriseSearch.workplaceSearch.integrations.postgresqlName": "PostgreSQL", - "xpack.enterpriseSearch.workplaceSearch.integrations.s3": "Amazon S3", - "xpack.enterpriseSearch.workplaceSearch.integrations.s3Description": "Effectuez des recherches sur votre contenu dans Amazon S3.", - "xpack.enterpriseSearch.workplaceSearch.integrations.salesforceSandboxDescription": "Effectuez des recherches sur votre contenu dans Salesforce Sandbox.", - "xpack.enterpriseSearch.workplaceSearch.integrations.serviceNowDescription": "Effectuez des recherches sur votre contenu dans ServiceNow.", - "xpack.enterpriseSearch.workplaceSearch.integrations.serviceNowName": "ServiceNow", - "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineDescription": "Effectuez des recherches sur votre contenu dans SharePoint Online.", - "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineName": "SharePoint Online", - "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerDescription": "Effectuez des recherches sur votre contenu dans Serveur SharePoint.", - "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerName": "Serveur SharePoint", "xpack.enterpriseSearch.workplaceSearch.keepEditing.button": "Continuer la modification", "xpack.enterpriseSearch.workplaceSearch.label.label": "Étiquette", "xpack.enterpriseSearch.workplaceSearch.name.label": "Nom", @@ -18100,10 +18032,6 @@ "xpack.idxMgmt.breadcrumb.enrichPolicyLabel": "Politiques d'enrichissement", "xpack.idxMgmt.breadcrumb.homeLabel": "Gestion des index", "xpack.idxMgmt.breadcrumb.indexDetailsLabel": "Détails de l'index", - "xpack.idxMgmt.breadcrumb.indexDetailsMappingsLabel": "Mappings", - "xpack.idxMgmt.breadcrumb.indexDetailsOverviewLabel": "Aperçu", - "xpack.idxMgmt.breadcrumb.indexDetailsSettingsLabel": "Paramètres", - "xpack.idxMgmt.breadcrumb.indexDetailsStatsLabel": "Statistiques", "xpack.idxMgmt.breadcrumb.indicesLabel": "Index", "xpack.idxMgmt.breadcrumb.templatesLabel": "Modèles", "xpack.idxMgmt.cloneComponentTemplate.pageTitle": "Cloner le modèle de composant", @@ -42281,7 +42209,6 @@ "searchConnectors.content.nativeConnectors.s3.name": "S3", "searchConnectors.content.nativeConnectors.salesforce.name": "Salesforce", "searchConnectors.content.nativeConnectors.serviceNow.name": "ServiceNow", - "searchConnectors.content.nativeConnectors.sharepoint_online.name": "SharePoint en ligne", "searchConnectors.content.nativeConnectors.sharepointServer.name": "Serveur SharePoint", "searchConnectors.content.nativeConnectors.slack.name": "Slack", "searchConnectors.content.nativeConnectors.teams.name": "Équipes", @@ -42694,4 +42621,4 @@ "xpack.serverlessObservability.nav.projectSettings": "Paramètres de projet", "xpack.serverlessObservability.nav.visualizations": "Visualisations" } -} \ No newline at end of file +} diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index e5dd63df75a30..b0625c4d1439c 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -12714,7 +12714,6 @@ "xpack.enterpriseSearch.content.searchIndices.deleteModal.syncsWarning.indexNameDescription": "この操作は元に戻すことができません。確認するには{indexName}を入力してください。", "xpack.enterpriseSearch.content.searchIndices.deleteModal.title": "{indexName}を削除しますか?", "xpack.enterpriseSearch.content.searchIndices.searchIndices.onlySearchOptimized.tooltipContent": "検索用に最適化されたインデックスには、{code}がプレフィックスとして付けられます。これらは、クローラー、コネクター、インジェストAPIなどのインジェストメカニズムによって管理されます。", - "xpack.enterpriseSearch.content.settings.description": "これらの設定は、Searchインジェストメカニズムで作成されたすべての新しいElasticsearchインデックスに適用されます。APIインジェストベースのインデックスの場合は、ドキュメントをインジェストするときに、必ずパイプラインを含めてください。これらの機能は{link}によって実現されます。", "xpack.enterpriseSearch.crawler.action.deleteDomain.confirmationPopupMessage": "ドメイン\"{domainUrl}\"とすべての設定を削除しますか?", "xpack.enterpriseSearch.crawler.addDomainForm.entryPointLabel": "Webクローラーエントリポイントが{entryPointValue}として設定されました", "xpack.enterpriseSearch.crawler.authenticationPanel.emptyPrompt.description": "{addAuthenticationButtonLabel}をクリックすると、保護されたコンテンツのクローリングに必要な資格情報を提供します", @@ -14219,18 +14218,6 @@ "xpack.enterpriseSearch.content.indices.transforms.addInferencePipelineModal.steps.fields.title": "フィールド", "xpack.enterpriseSearch.content.indices.transforms.addInferencePipelineModal.steps.review.title": "見直し", "xpack.enterpriseSearch.content.indices.transforms.addInferencePipelineModal.steps.test.title": "テスト(任意)", - "xpack.enterpriseSearch.content.integrations.dropbox": "Dropbox", - "xpack.enterpriseSearch.content.integrations.dropboxDescription": "Dropboxに保存されたファイルとフォルダーを検索します。", - "xpack.enterpriseSearch.content.integrations.dropboxPaper": "Dropbox Paper", - "xpack.enterpriseSearch.content.integrations.dropboxPaperDescription": "Workplace Searchを使用して、Dropbox Paperに保存されたファイルとフォルダーを検索します。", - "xpack.enterpriseSearch.content.integrations.github": "GitHub", - "xpack.enterpriseSearch.content.integrations.githubDescription": "GitHubのプロジェクトとリポジトリを検索します。", - "xpack.enterpriseSearch.content.integrations.githubServer": "GitHub Enterprise Server", - "xpack.enterpriseSearch.content.integrations.githubServerDescription": "GitHubのプロジェクトとリポジトリを検索します。", - "xpack.enterpriseSearch.content.integrations.gmail": "Gmail", - "xpack.enterpriseSearch.content.integrations.gmailDescription": "Gmailでコンテンツを検索します。", - "xpack.enterpriseSearch.content.integrations.slack": "Slack", - "xpack.enterpriseSearch.content.integrations.slackDescription": "Slackでコンテンツを検索します。", "xpack.enterpriseSearch.content.licensingCallout.analytics.contentOne": "行動分析はプラチナライセンス以上が必要で、標準ライセンスのセルフマネージドデプロイでは使用できません。この機能を使用するには、アップグレードが必要です。", "xpack.enterpriseSearch.content.licensingCallout.analytics.contentTwo": "行動分析が標準Elastic Cloudライセンスで使用できることをご存知でしたか。Elastic Cloudなら、お好みのプラットフォームでフレキシブルに実行できます。Google Cloud、Microsoft Azure、Amazon Web Servicesから選んでマネージドサービスをデプロイしましょう。保守や更新はElasticに任せることができます。", "xpack.enterpriseSearch.content.licensingCallout.contentCloudTrial": "Elastic Cloudのエンタープライズ サーチを見る ", @@ -14404,13 +14391,9 @@ "xpack.enterpriseSearch.content.searchIndices.searchIndices.searchBar.ariaLabel": "Elasticsearchインデックスをフィルター", "xpack.enterpriseSearch.content.searchIndices.searchIndices.searchBar.placeHolder": "Elasticsearchインデックスをフィルター", "xpack.enterpriseSearch.content.searchIndices.searchIndices.tableTitle": "利用可能なインデックス", - "xpack.enterpriseSearch.content.settings.breadcrumb": "設定", "xpack.enterpriseSearch.content.settings.contactExtraction.label": "コンテンツ抽出", "xpack.enterpriseSearch.content.settings.contentExtraction.description": "PDFやWordドキュメントなどの検索可能なコンテンツのみをバイナリファイルから抽出します。", - "xpack.enterpriseSearch.content.settings.contentExtraction.descriptionTwo": "インデックスの構成ページで、特定のインデックスに対して、この機能を有効化または無効化することもできます。", "xpack.enterpriseSearch.content.settings.contentExtraction.title": "デプロイレベルのコンテンツ抽出", - "xpack.enterpriseSearch.content.settings.headerTitle": "コンテンツ設定", - "xpack.enterpriseSearch.content.settings.ingestLink": "インジェストパイプライン", "xpack.enterpriseSearch.content.settings.mlInference.deploymentHeaderTitle": "デプロイレベルのML推論パイプライン抽出", "xpack.enterpriseSearch.content.settings.mlInference.description": "ML推論パイプラインは、パイプラインの一部として実行されます。パイプラインページで各インデックスのプロセッサーを個別に構成する必要はありません。", "xpack.enterpriseSearch.content.settings.mlInference.label": "ML推論", @@ -14713,28 +14696,6 @@ "xpack.enterpriseSearch.inlineEditableTable.newRowButtonLabel": "新しい行", "xpack.enterpriseSearch.integrations.apiDescription": "Elasticsearchの堅牢なAPIを使用して、検索をアプリケーションに追加します。", "xpack.enterpriseSearch.integrations.apiName": "API", - "xpack.enterpriseSearch.integrations.buildAConnectorDescription": "カスタムデータソースに格納されているデータを検索します。", - "xpack.enterpriseSearch.integrations.buildAConnectorName": "カスタマイズされたコネクター", - "xpack.enterpriseSearch.integrations.connectors.boxDescription": "Boxでコンテンツを検索します。", - "xpack.enterpriseSearch.integrations.connectors.boxTitle": "Box", - "xpack.enterpriseSearch.integrations.connectors.confluenceDescription": "Confluence Cloudでコンテンツを検索します。", - "xpack.enterpriseSearch.integrations.connectors.confluenceServerDescription": "Confluence Serverでコンテンツを検索します。", - "xpack.enterpriseSearch.integrations.connectors.confluenceServerTitle": "Confluence Server", - "xpack.enterpriseSearch.integrations.connectors.confluenceTitle": "Confluence Cloud", - "xpack.enterpriseSearch.integrations.connectors.jiraCloudTitle": "Jira Cloud", - "xpack.enterpriseSearch.integrations.connectors.jiraDescription": "Jira Cloudでコンテンツを検索します。", - "xpack.enterpriseSearch.integrations.connectors.jiraServerDescription": "Jira Serverでコンテンツを検索します。", - "xpack.enterpriseSearch.integrations.connectors.jiraServerTitle": "Jira Server", - "xpack.enterpriseSearch.integrations.connectors.outlookDescription": "Outlookでコンテンツを検索します。", - "xpack.enterpriseSearch.integrations.connectors.outlookTitle": "Outlook", - "xpack.enterpriseSearch.integrations.connectors.teamsDescription": "Teamsでコンテンツを検索します。", - "xpack.enterpriseSearch.integrations.connectors.teamsTitle": "Teams", - "xpack.enterpriseSearch.integrations.connectors.zoomDescription": "Zoomでコンテンツを検索します。", - "xpack.enterpriseSearch.integrations.connectors.zoomTitle": "ズーム", - "xpack.enterpriseSearch.integrations.oneDriveTitle": "OneDrive", - "xpack.enterpriseSearch.integrations.salesforceDescription": "Salesforceでコンテンツを検索します。", - "xpack.enterpriseSearch.integrations.salesforceName": "Salesforce", - "xpack.enterpriseSearch.integrations.salesforceSandboxTitle": "Salesforce Sandbox", "xpack.enterpriseSearch.integrations.webCrawlerDescription": "Webクローラーを使用して、検索をWebサイトに追加します。", "xpack.enterpriseSearch.integrations.webCrawlerName": "Webクローラー", "xpack.enterpriseSearch.languages.cURL": "cURL", @@ -14763,7 +14724,6 @@ "xpack.enterpriseSearch.nav.applications.searchApplications.connectTitle": "接続", "xpack.enterpriseSearch.nav.applicationsTitle": "アプリケーション", "xpack.enterpriseSearch.nav.appSearchTitle": "App Search", - "xpack.enterpriseSearch.nav.contentSettingsTitle": "設定", "xpack.enterpriseSearch.nav.contentTitle": "コンテンツ", "xpack.enterpriseSearch.nav.elasticsearchTitle": "Elasticsearch", "xpack.enterpriseSearch.nav.enterpriseSearchOverviewTitle": "はじめて使う", @@ -15481,34 +15441,6 @@ "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.zeroStateButtonText": "組織コンテンツソースの追加", "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.zeroStateTitle": "ソースはこのグループと共有されていません", "xpack.enterpriseSearch.workplaceSearch.groups.sourcesModalLabel": "組織コンテンツソース", - "xpack.enterpriseSearch.workplaceSearch.integrations.azureBlob": "Azure Blob Storage", - "xpack.enterpriseSearch.workplaceSearch.integrations.azureBlobDescription": "Azure Blob Storageのコンテンツを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloud": "Google Cloud Storage", - "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloudDescription": "Google Cloud Storageのコンテンツを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.googleDrive": "Google Drive", - "xpack.enterpriseSearch.workplaceSearch.integrations.googleDriveDescription": "Google Driveのコンテンツを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.mongoDBDescription": "MongoDBコンテンツを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.mongoDBName": "MongoDB", - "xpack.enterpriseSearch.workplaceSearch.integrations.msSqlDescription": "Microsoft SQL Serverでコンテンツを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.msSqlName": "Microsoft SQL", - "xpack.enterpriseSearch.workplaceSearch.integrations.mysqlDescription": "MySQLコンテンツを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.mysqlName": "MySQL", - "xpack.enterpriseSearch.workplaceSearch.integrations.netowkrDriveDescription": "ネットワークドライブコンテンツを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.networkDriveName": "ネットワークドライブ", - "xpack.enterpriseSearch.workplaceSearch.integrations.oneDriveDescription": "OneDriveでコンテンツを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.oracleDescription": "Oracleでコンテンツを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.oracleName": "Oracle", - "xpack.enterpriseSearch.workplaceSearch.integrations.postgreSQLDescription": "PostgreSQLでコンテンツを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.postgresqlName": "PostgreSQL", - "xpack.enterpriseSearch.workplaceSearch.integrations.s3": "Amazon S3", - "xpack.enterpriseSearch.workplaceSearch.integrations.s3Description": "Amazon S3でコンテンツを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.salesforceSandboxDescription": "Salesforce Sandboxでコンテンツを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.serviceNowDescription": "ServiceNowでコンテンツを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.serviceNowName": "ServiceNow", - "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineDescription": "SharePoint Onlineでコンテンツを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineName": "SharePoint Online", - "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerDescription": "SharePoint Serverでコンテンツを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerName": "SharePoint Server", "xpack.enterpriseSearch.workplaceSearch.keepEditing.button": "編集を続行", "xpack.enterpriseSearch.workplaceSearch.label.label": "ラベル", "xpack.enterpriseSearch.workplaceSearch.name.label": "名前", @@ -18113,10 +18045,6 @@ "xpack.idxMgmt.breadcrumb.enrichPolicyLabel": "エンリッチポリシー", "xpack.idxMgmt.breadcrumb.homeLabel": "インデックス管理", "xpack.idxMgmt.breadcrumb.indexDetailsLabel": "インデックス詳細", - "xpack.idxMgmt.breadcrumb.indexDetailsMappingsLabel": "マッピング", - "xpack.idxMgmt.breadcrumb.indexDetailsOverviewLabel": "概要", - "xpack.idxMgmt.breadcrumb.indexDetailsSettingsLabel": "設定", - "xpack.idxMgmt.breadcrumb.indexDetailsStatsLabel": "統計", "xpack.idxMgmt.breadcrumb.indicesLabel": "インデックス", "xpack.idxMgmt.breadcrumb.templatesLabel": "テンプレート", "xpack.idxMgmt.cloneComponentTemplate.pageTitle": "コンポーネントテンプレートの複製", @@ -42273,7 +42201,6 @@ "searchConnectors.content.nativeConnectors.s3.name": "S3", "searchConnectors.content.nativeConnectors.salesforce.name": "Salesforce", "searchConnectors.content.nativeConnectors.serviceNow.name": "ServiceNow", - "searchConnectors.content.nativeConnectors.sharepoint_online.name": "Sharepoint Online", "searchConnectors.content.nativeConnectors.sharepointServer.name": "Sharepoint Server", "searchConnectors.content.nativeConnectors.slack.name": "Slack", "searchConnectors.content.nativeConnectors.teams.name": "Teams", @@ -42686,4 +42613,4 @@ "xpack.serverlessObservability.nav.projectSettings": "プロジェクト設定", "xpack.serverlessObservability.nav.visualizations": "ビジュアライゼーション" } -} \ No newline at end of file +} diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 836d3a777d72d..33527a38cc49f 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -12808,7 +12808,6 @@ "xpack.enterpriseSearch.content.searchIndices.deleteModal.syncsWarning.indexNameDescription": "此操作无法撤消。请键入 {indexName} 以确认。", "xpack.enterpriseSearch.content.searchIndices.deleteModal.title": "是否确定要删除 {indexName}", "xpack.enterpriseSearch.content.searchIndices.searchIndices.onlySearchOptimized.tooltipContent": "搜索优化索引以 {code} 为前缀。它们由网络爬虫、连接器或采集 API 等采集机制进行管理。", - "xpack.enterpriseSearch.content.settings.description": "这些设置适用于由 Search 采集机制创建的所有新 Elasticsearch 索引。对于基于 API 采集的索引,在采集文档时请记得包括管道。这些功能由 {link} 提供支持。", "xpack.enterpriseSearch.crawler.action.deleteDomain.confirmationPopupMessage": "确定要移除域“{domainUrl}”及其所有设置?", "xpack.enterpriseSearch.crawler.addDomainForm.entryPointLabel": "网络爬虫入口点已设置为 {entryPointValue}", "xpack.enterpriseSearch.crawler.authenticationPanel.emptyPrompt.description": "单击 {addAuthenticationButtonLabel} 以提供爬网受保护内容所需的凭据", @@ -14313,18 +14312,6 @@ "xpack.enterpriseSearch.content.indices.transforms.addInferencePipelineModal.steps.fields.title": "字段", "xpack.enterpriseSearch.content.indices.transforms.addInferencePipelineModal.steps.review.title": "复查", "xpack.enterpriseSearch.content.indices.transforms.addInferencePipelineModal.steps.test.title": "测试(可选)", - "xpack.enterpriseSearch.content.integrations.dropbox": "Dropbox", - "xpack.enterpriseSearch.content.integrations.dropboxDescription": "搜索存储在 Dropbox 上的文件和文件夹。", - "xpack.enterpriseSearch.content.integrations.dropboxPaper": "Dropbox Paper", - "xpack.enterpriseSearch.content.integrations.dropboxPaperDescription": "搜索存储在 Dropbox Paper 上的文件和文件夹。", - "xpack.enterpriseSearch.content.integrations.github": "GitHub", - "xpack.enterpriseSearch.content.integrations.githubDescription": "搜索 GitHub 上的项目和存储库。", - "xpack.enterpriseSearch.content.integrations.githubServer": "GitHub Enterprise Server", - "xpack.enterpriseSearch.content.integrations.githubServerDescription": "搜索 GitHub 上的项目和存储库。", - "xpack.enterpriseSearch.content.integrations.gmail": "Gmail", - "xpack.enterpriseSearch.content.integrations.gmailDescription": "在 Gmail 上搜索您的内容。", - "xpack.enterpriseSearch.content.integrations.slack": "Slack", - "xpack.enterpriseSearch.content.integrations.slackDescription": "在 Slack 上搜索您的内容。", "xpack.enterpriseSearch.content.licensingCallout.analytics.contentOne": "行为分析需要白金级许可证或更高级许可证,并且不可用于标准许可证自我管理部署。您需要升级才能使用此功能。", "xpack.enterpriseSearch.content.licensingCallout.analytics.contentTwo": "您是否知道,通过标准 Elastic Cloud 许可证可以使用行为分析?Elastic Cloud 允许您在任何地方进行灵活部署。在 Google Cloud、Microsoft Azure 或 Amazon Web Services 上部署我们的托管型服务,由我们替您处理各项维护事宜。", "xpack.enterpriseSearch.content.licensingCallout.contentCloudTrial": "浏览 Elastic Cloud 上的 Enterprise Search ", @@ -14498,13 +14485,9 @@ "xpack.enterpriseSearch.content.searchIndices.searchIndices.searchBar.ariaLabel": "筛选 Elasticsearch 索引", "xpack.enterpriseSearch.content.searchIndices.searchIndices.searchBar.placeHolder": "筛选 Elasticsearch 索引", "xpack.enterpriseSearch.content.searchIndices.searchIndices.tableTitle": "可用索引", - "xpack.enterpriseSearch.content.settings.breadcrumb": "设置", "xpack.enterpriseSearch.content.settings.contactExtraction.label": "内容提取", "xpack.enterpriseSearch.content.settings.contentExtraction.description": "从二进制文件(如 PDF 和 Word 文档)提取可搜索内容。", - "xpack.enterpriseSearch.content.settings.contentExtraction.descriptionTwo": "您还可以在索引的配置页面针对特定索引启用或禁用此功能。", "xpack.enterpriseSearch.content.settings.contentExtraction.title": "部署广泛内容提取", - "xpack.enterpriseSearch.content.settings.headerTitle": "内容设置", - "xpack.enterpriseSearch.content.settings.ingestLink": "采集管道", "xpack.enterpriseSearch.content.settings.mlInference.deploymentHeaderTitle": "部署广泛 ML 推理管道提取", "xpack.enterpriseSearch.content.settings.mlInference.description": "ML 推理管道将作为您管道的一部分运行。您需要在其管道页面上单独为每个索引配置处理器。", "xpack.enterpriseSearch.content.settings.mlInference.label": "ML 推理", @@ -14807,28 +14790,6 @@ "xpack.enterpriseSearch.inlineEditableTable.newRowButtonLabel": "新行", "xpack.enterpriseSearch.integrations.apiDescription": "通过 Elasticsearch 稳健的 API 将搜索功能添加到您的应用程序。", "xpack.enterpriseSearch.integrations.apiName": "API", - "xpack.enterpriseSearch.integrations.buildAConnectorDescription": "搜索存储在定制数据源上的数据。", - "xpack.enterpriseSearch.integrations.buildAConnectorName": "定制连接器", - "xpack.enterpriseSearch.integrations.connectors.boxDescription": "在 Box 上搜索您的内容。", - "xpack.enterpriseSearch.integrations.connectors.boxTitle": "Box", - "xpack.enterpriseSearch.integrations.connectors.confluenceDescription": "在 Confluence Cloud 上搜索您的内容。", - "xpack.enterpriseSearch.integrations.connectors.confluenceServerDescription": "在 Confluence Server 上搜索您的内容。", - "xpack.enterpriseSearch.integrations.connectors.confluenceServerTitle": "Confluence Server", - "xpack.enterpriseSearch.integrations.connectors.confluenceTitle": "Confluence Cloud", - "xpack.enterpriseSearch.integrations.connectors.jiraCloudTitle": "Jira Cloud", - "xpack.enterpriseSearch.integrations.connectors.jiraDescription": "在 Jira Cloud 上搜索您的内容。", - "xpack.enterpriseSearch.integrations.connectors.jiraServerDescription": "在 Jira Server 上搜索您的内容。", - "xpack.enterpriseSearch.integrations.connectors.jiraServerTitle": "Jira Server", - "xpack.enterpriseSearch.integrations.connectors.outlookDescription": "在 Outlook 上搜索您的内容。", - "xpack.enterpriseSearch.integrations.connectors.outlookTitle": "Outlook", - "xpack.enterpriseSearch.integrations.connectors.teamsDescription": "在 Teams 上搜索您的内容。", - "xpack.enterpriseSearch.integrations.connectors.teamsTitle": "Teams", - "xpack.enterpriseSearch.integrations.connectors.zoomDescription": "在 Zoom 上搜索您的内容。", - "xpack.enterpriseSearch.integrations.connectors.zoomTitle": "缩放", - "xpack.enterpriseSearch.integrations.oneDriveTitle": "OneDrive", - "xpack.enterpriseSearch.integrations.salesforceDescription": "在 Salesforce 上搜索您的内容。", - "xpack.enterpriseSearch.integrations.salesforceName": "Salesforce", - "xpack.enterpriseSearch.integrations.salesforceSandboxTitle": "Salesforce Sandbox", "xpack.enterpriseSearch.integrations.webCrawlerDescription": "通过网络爬虫将搜索功能添加到您的网站。", "xpack.enterpriseSearch.integrations.webCrawlerName": "网络爬虫", "xpack.enterpriseSearch.languages.cURL": "cURL", @@ -14857,7 +14818,6 @@ "xpack.enterpriseSearch.nav.applications.searchApplications.connectTitle": "连接", "xpack.enterpriseSearch.nav.applicationsTitle": "应用程序", "xpack.enterpriseSearch.nav.appSearchTitle": "App Search", - "xpack.enterpriseSearch.nav.contentSettingsTitle": "设置", "xpack.enterpriseSearch.nav.contentTitle": "内容", "xpack.enterpriseSearch.nav.elasticsearchTitle": "Elasticsearch", "xpack.enterpriseSearch.nav.enterpriseSearchOverviewTitle": "入门", @@ -15575,34 +15535,6 @@ "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.zeroStateButtonText": "添加组织内容源", "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.zeroStateTitle": "未与此组共享任何源", "xpack.enterpriseSearch.workplaceSearch.groups.sourcesModalLabel": "组织内容源", - "xpack.enterpriseSearch.workplaceSearch.integrations.azureBlob": "Azure Blob 存储", - "xpack.enterpriseSearch.workplaceSearch.integrations.azureBlobDescription": "在 Azure Blob 存储上搜索您的内容。", - "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloud": "Google Cloud Storage", - "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloudDescription": "在 Google Cloud Storage 上搜索您的内容。", - "xpack.enterpriseSearch.workplaceSearch.integrations.googleDrive": "Google 云端硬盘", - "xpack.enterpriseSearch.workplaceSearch.integrations.googleDriveDescription": "在 Google 云端硬盘上搜索您的内容。", - "xpack.enterpriseSearch.workplaceSearch.integrations.mongoDBDescription": "搜索您的 MongoDB 内容。", - "xpack.enterpriseSearch.workplaceSearch.integrations.mongoDBName": "MongoDB", - "xpack.enterpriseSearch.workplaceSearch.integrations.msSqlDescription": "在 Microsoft SQL Server 上搜索您的内容。", - "xpack.enterpriseSearch.workplaceSearch.integrations.msSqlName": "Microsoft SQL", - "xpack.enterpriseSearch.workplaceSearch.integrations.mysqlDescription": "搜索您的 MySQL 内容。", - "xpack.enterpriseSearch.workplaceSearch.integrations.mysqlName": "MySQL", - "xpack.enterpriseSearch.workplaceSearch.integrations.netowkrDriveDescription": "搜索您的网络驱动器内容。", - "xpack.enterpriseSearch.workplaceSearch.integrations.networkDriveName": "网络驱动器", - "xpack.enterpriseSearch.workplaceSearch.integrations.oneDriveDescription": "在 OneDrive 上搜索您的内容。", - "xpack.enterpriseSearch.workplaceSearch.integrations.oracleDescription": "在 Oracle 上搜索您的内容。", - "xpack.enterpriseSearch.workplaceSearch.integrations.oracleName": "Oracle", - "xpack.enterpriseSearch.workplaceSearch.integrations.postgreSQLDescription": "在 PostgreSQL 上搜索您的内容。", - "xpack.enterpriseSearch.workplaceSearch.integrations.postgresqlName": "PostgreSQL", - "xpack.enterpriseSearch.workplaceSearch.integrations.s3": "Amazon S3", - "xpack.enterpriseSearch.workplaceSearch.integrations.s3Description": "在 Amazon S3 上搜索您的内容。", - "xpack.enterpriseSearch.workplaceSearch.integrations.salesforceSandboxDescription": "在 Salesforce Sandbox 上搜索您的内容。", - "xpack.enterpriseSearch.workplaceSearch.integrations.serviceNowDescription": "在 ServiceNow 上搜索您的内容。", - "xpack.enterpriseSearch.workplaceSearch.integrations.serviceNowName": "ServiceNow", - "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineDescription": "在 SharePoint Online 上搜索您的内容。", - "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineName": "Sharepoint", - "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerDescription": "在 SharePoint Server 上搜索您的内容。", - "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerName": "SharePoint Server", "xpack.enterpriseSearch.workplaceSearch.keepEditing.button": "继续编辑", "xpack.enterpriseSearch.workplaceSearch.label.label": "标签", "xpack.enterpriseSearch.workplaceSearch.name.label": "名称", @@ -18207,10 +18139,6 @@ "xpack.idxMgmt.breadcrumb.enrichPolicyLabel": "扩充策略", "xpack.idxMgmt.breadcrumb.homeLabel": "索引管理", "xpack.idxMgmt.breadcrumb.indexDetailsLabel": "索引详情", - "xpack.idxMgmt.breadcrumb.indexDetailsMappingsLabel": "映射", - "xpack.idxMgmt.breadcrumb.indexDetailsOverviewLabel": "概览", - "xpack.idxMgmt.breadcrumb.indexDetailsSettingsLabel": "设置", - "xpack.idxMgmt.breadcrumb.indexDetailsStatsLabel": "统计信息", "xpack.idxMgmt.breadcrumb.indicesLabel": "索引", "xpack.idxMgmt.breadcrumb.templatesLabel": "模板", "xpack.idxMgmt.cloneComponentTemplate.pageTitle": "克隆组件模板", @@ -42253,7 +42181,6 @@ "searchConnectors.content.nativeConnectors.s3.name": "S3", "searchConnectors.content.nativeConnectors.salesforce.name": "Salesforce", "searchConnectors.content.nativeConnectors.serviceNow.name": "ServiceNow", - "searchConnectors.content.nativeConnectors.sharepoint_online.name": "Sharepoint", "searchConnectors.content.nativeConnectors.sharepointServer.name": "SharePoint Server", "searchConnectors.content.nativeConnectors.slack.name": "Slack", "searchConnectors.content.nativeConnectors.teams.name": "Teams", @@ -42666,4 +42593,4 @@ "xpack.serverlessObservability.nav.projectSettings": "项目设置", "xpack.serverlessObservability.nav.visualizations": "可视化" } -} \ No newline at end of file +} diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.test.tsx index cefa84938ba03..e050e7746008f 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.test.tsx @@ -985,6 +985,9 @@ describe('rule_form', () => { }; await setup(); + // expect the accordion to be closed by default + expect(wrapper.find('.euiAccordion-isOpen').exists()).toBeFalsy(); + expect(getAlertDelayInput().props().value).toEqual(1); getAlertDelayInput().simulate('change', { target: { value: '2' } }); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.tsx index 69a50c7f7b221..0f200410f7d54 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.tsx @@ -42,6 +42,7 @@ import { EuiErrorBoundary, EuiToolTip, EuiCallOut, + EuiAccordion, } from '@elastic/eui'; import { capitalize } from 'lodash'; import { KibanaFeature } from '@kbn/features-plugin/public'; @@ -835,44 +836,58 @@ export const RuleForm = ({ )} - - + + + + } + > + + + + } + />, + ]} + append={i18n.translate( + 'xpack.triggersActionsUI.sections.ruleForm.alertDelayFieldAppendLabel', + { + defaultMessage: 'consecutive matches', } - />, - ]} - append={i18n.translate( - 'xpack.triggersActionsUI.sections.ruleForm.alertDelayFieldAppendLabel', - { - defaultMessage: 'consecutive matches', - } - )} - onChange={(e) => { - const value = e.target.value; - if (value === '' || INTEGER_REGEX.test(value)) { - const parsedValue = value === '' ? '' : parseInt(value, 10); - setAlertDelayProperty('active', parsedValue || 1); - setAlertDelay(parsedValue || undefined); - } - }} - /> - + )} + onChange={(e) => { + const value = e.target.value; + if (value === '' || INTEGER_REGEX.test(value)) { + const parsedValue = value === '' ? '' : parseInt(value, 10); + setAlertDelayProperty('active', parsedValue || 1); + setAlertDelay(parsedValue || undefined); + } + }} + /> + + {shouldShowConsumerSelect && ( <> diff --git a/x-pack/test/alerting_api_integration/observability/custom_threshold_rule/documents_count_fired.ts b/x-pack/test/alerting_api_integration/observability/custom_threshold_rule/documents_count_fired.ts index c09fbf27a2956..6438af0af51a6 100644 --- a/x-pack/test/alerting_api_integration/observability/custom_threshold_rule/documents_count_fired.ts +++ b/x-pack/test/alerting_api_integration/observability/custom_threshold_rule/documents_count_fired.ts @@ -205,7 +205,7 @@ export default function ({ getService }: FtrProviderContext) { expect(resp.hits.hits[0]._source).property('event.action', 'open'); expect(resp.hits.hits[0]._source).not.have.property('kibana.alert.group'); - expect(resp.hits.hits[0]._source).property('kibana.alert.evaluation.threshold').eql([1, 2]); + expect(resp.hits.hits[0]._source).not.have.property('kibana.alert.evaluation.threshold'); expect(resp.hits.hits[0]._source) .property('kibana.alert.rule.parameters') .eql({ diff --git a/x-pack/test/api_integration/apis/management/rollup/index_patterns_extensions.js b/x-pack/test/api_integration/apis/management/rollup/index_patterns_extensions.js index 77b2beac86ec4..1caf5078afd4b 100644 --- a/x-pack/test/api_integration/apis/management/rollup/index_patterns_extensions.js +++ b/x-pack/test/api_integration/apis/management/rollup/index_patterns_extensions.js @@ -12,6 +12,7 @@ import expect from '@kbn/expect'; import { stringify } from 'query-string'; import { registerHelpers } from './rollup.test_helpers'; import { getRandomString } from './lib'; +import { DataViewType } from '@kbn/data-views-plugin/common'; export default function ({ getService }) { const supertest = getService('supertest'); @@ -40,7 +41,7 @@ export default function ({ getService }) { uri = `${BASE_URI}?${stringify( { pattern: 'foo', - type: 'rollup', + type: DataViewType.ROLLUP, rollup_index: 'bar', }, { sort: false } @@ -63,7 +64,7 @@ export default function ({ getService }) { // Query for wildcard const params = { pattern: indexName, - type: 'rollup', + type: DataViewType.ROLLUP, rollup_index: rollupIndex, }; const uri = `${BASE_URI}?${stringify(params, { sort: false })}`; diff --git a/x-pack/test/api_integration/apis/search/search.ts b/x-pack/test/api_integration/apis/search/search.ts index a413e3f9958ab..d7bbbcac2bf64 100644 --- a/x-pack/test/api_integration/apis/search/search.ts +++ b/x-pack/test/api_integration/apis/search/search.ts @@ -8,6 +8,7 @@ import expect from '@kbn/expect'; import { parse as parseCookie } from 'tough-cookie'; import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; +import { DataViewType } from '@kbn/data-views-plugin/common'; import { FtrProviderContext } from '../../ftr_provider_context'; import { verifyErrorResponse } from '../../../../../test/api_integration/apis/search/verify_error'; @@ -384,7 +385,7 @@ export default function ({ getService }: FtrProviderContext) { .set(ELASTIC_HTTP_VERSION_HEADER, '1') .set('kbn-xsrf', 'foo') .send({ - indexType: 'rollup', + indexType: DataViewType.ROLLUP, params: { body: { query: { @@ -403,7 +404,7 @@ export default function ({ getService }: FtrProviderContext) { .set(ELASTIC_HTTP_VERSION_HEADER, '1') .set('kbn-xsrf', 'foo') .send({ - indexType: 'rollup', + indexType: DataViewType.ROLLUP, params: { index: 'banana', body: { @@ -424,7 +425,7 @@ export default function ({ getService }: FtrProviderContext) { .set(ELASTIC_HTTP_VERSION_HEADER, '1') .set('kbn-xsrf', 'foo') .send({ - indexType: 'rollup', + indexType: DataViewType.ROLLUP, params: { index: 'rollup_logstash', size: 0, diff --git a/x-pack/test/cloud_security_posture_api/routes/csp_benchmark_rules_bulk_update.ts b/x-pack/test/cloud_security_posture_api/routes/csp_benchmark_rules_bulk_update.ts index de77b33a66df7..17ce5675e1319 100644 --- a/x-pack/test/cloud_security_posture_api/routes/csp_benchmark_rules_bulk_update.ts +++ b/x-pack/test/cloud_security_posture_api/routes/csp_benchmark_rules_bulk_update.ts @@ -93,8 +93,7 @@ export default function ({ getService }: FtrProviderContext) { log.debug('CSP plugin is initialized'); }); - // Failing: See https://github.com/elastic/kibana/issues/174204 - describe.skip('Verify update csp rules states API', async () => { + describe('Verify update csp rules states API', async () => { before(async () => { await waitForPluginInitialized(); }); diff --git a/x-pack/test/functional/apps/saved_objects_management/feature_controls/saved_objects_management_security.ts b/x-pack/test/functional/apps/saved_objects_management/feature_controls/saved_objects_management_security.ts index 8e1dae82ab2aa..9a94d03ce6d6d 100644 --- a/x-pack/test/functional/apps/saved_objects_management/feature_controls/saved_objects_management_security.ts +++ b/x-pack/test/functional/apps/saved_objects_management/feature_controls/saved_objects_management_security.ts @@ -76,39 +76,43 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { it('shows all saved objects', async () => { const objects = await PageObjects.savedObjects.getRowTitles(); - expect(objects).to.eql([ - 'logstash-*', - 'A Pie', - 'A Dashboard', - `Global Settings [${version}]`, - `Advanced Settings [${version}]`, - ]); + expect(objects.sort()).to.eql( + [ + 'logstash-*', + 'A Pie', + 'A Dashboard', + `Global Settings [${version}]`, + `Advanced Settings [${version}]`, + ].sort() + ); }); it('can view all saved objects in applications', async () => { const bools = await PageObjects.savedObjects.getTableSummary(); - expect(bools).to.eql([ - { - title: 'logstash-*', - canViewInApp: true, - }, - { - title: 'A Pie', - canViewInApp: true, - }, - { - title: 'A Dashboard', - canViewInApp: true, - }, - { - title: `Global Settings [${version}]`, - canViewInApp: false, - }, - { - title: `Advanced Settings [${version}]`, - canViewInApp: false, - }, - ]); + expect(bools.sort((a, b) => a.title.localeCompare(b.title))).to.eql( + [ + { + title: 'logstash-*', + canViewInApp: true, + }, + { + title: 'A Pie', + canViewInApp: true, + }, + { + title: 'A Dashboard', + canViewInApp: true, + }, + { + title: `Global Settings [${version}]`, + canViewInApp: false, + }, + { + title: `Advanced Settings [${version}]`, + canViewInApp: false, + }, + ].sort((a, b) => a.title.localeCompare(b.title)) + ); }); it('can delete all saved objects', async () => { @@ -200,39 +204,43 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { it('shows all saved objects', async () => { const objects = await PageObjects.savedObjects.getRowTitles(); - expect(objects).to.eql([ - 'logstash-*', - 'A Pie', - 'A Dashboard', - `Global Settings [${version}]`, - `Advanced Settings [${version}]`, - ]); + expect(objects.sort()).to.eql( + [ + 'logstash-*', + 'A Pie', + 'A Dashboard', + `Global Settings [${version}]`, + `Advanced Settings [${version}]`, + ].sort() + ); }); it('cannot view any saved objects in applications', async () => { const bools = await PageObjects.savedObjects.getTableSummary(); - expect(bools).to.eql([ - { - title: 'logstash-*', - canViewInApp: false, - }, - { - title: 'A Pie', - canViewInApp: false, - }, - { - title: 'A Dashboard', - canViewInApp: false, - }, - { - title: `Global Settings [${version}]`, - canViewInApp: false, - }, - { - title: `Advanced Settings [${version}]`, - canViewInApp: false, - }, - ]); + expect(bools.sort((a, b) => a.title.localeCompare(b.title))).to.eql( + [ + { + title: 'logstash-*', + canViewInApp: false, + }, + { + title: 'A Pie', + canViewInApp: false, + }, + { + title: 'A Dashboard', + canViewInApp: false, + }, + { + title: `Global Settings [${version}]`, + canViewInApp: false, + }, + { + title: `Advanced Settings [${version}]`, + canViewInApp: false, + }, + ].sort((a, b) => a.title.localeCompare(b.title)) + ); }); it(`can't delete all saved objects`, async () => { diff --git a/x-pack/test/functional_with_es_ssl/apps/cases/group2/list_view.ts b/x-pack/test/functional_with_es_ssl/apps/cases/group2/list_view.ts index f1b4e4ea8485a..7047dcd3b5e50 100644 --- a/x-pack/test/functional_with_es_ssl/apps/cases/group2/list_view.ts +++ b/x-pack/test/functional_with_es_ssl/apps/cases/group2/list_view.ts @@ -752,7 +752,8 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { expect(await testSubjects.exists('all-cases-clear-filters-link-icon')).to.be(false); }); - describe('assignees filtering', () => { + // FLAKY: https://github.com/elastic/kibana/issues/176716 + describe.skip('assignees filtering', () => { it('filters cases by the first cases all user assignee', async () => { await cases.casesTable.filterByAssignee('all'); await cases.casesTable.validateCasesTableHasNthRows(1); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/host_details/risk_tab.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/host_details/risk_tab.cy.ts index 6b4f12a7619aa..86303a84455a9 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/host_details/risk_tab.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/host_details/risk_tab.cy.ts @@ -57,7 +57,8 @@ describe('risk tab', { tags: ['@ess', '@serverless'] }, () => { }); }); - describe('with new risk score', () => { + // FLAKY: https://github.com/elastic/kibana/issues/177964 + describe.skip('with new risk score', () => { before(() => { cy.task('esArchiverLoad', { archiveName: 'risk_scores_new_complete_data' }); cy.task('esArchiverLoad', { archiveName: 'query_alert', useCreate: true, docsOnly: true }); diff --git a/x-pack/test_serverless/api_integration/test_suites/common/management/rollups.ts b/x-pack/test_serverless/api_integration/test_suites/common/management/rollups.ts index 4492539224f9b..ce413ce5a7f3a 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/management/rollups.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/management/rollups.ts @@ -10,6 +10,7 @@ import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; import { INITIAL_REST_VERSION_INTERNAL } from '@kbn/data-views-plugin/server/constants'; import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common/src/constants'; import { FIELDS_FOR_WILDCARD_PATH as BASE_URI } from '@kbn/data-views-plugin/common/constants'; +import { DataViewType } from '@kbn/data-views-plugin/common'; import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -31,7 +32,7 @@ export default function ({ getService }: FtrProviderContext) { .get(BASE_URI) .query({ pattern: 'basic_index', - type: 'rollup', + type: DataViewType.ROLLUP, rollup_index: 'bar', }) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/documents_count_fired.ts b/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/documents_count_fired.ts index 2353fe0c82bf0..3aeb225196232 100644 --- a/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/documents_count_fired.ts +++ b/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/documents_count_fired.ts @@ -191,7 +191,7 @@ export default function ({ getService }: FtrProviderContext) { expect(resp.hits.hits[0]._source).property('kibana.alert.workflow_status', 'open'); expect(resp.hits.hits[0]._source).property('event.kind', 'signal'); expect(resp.hits.hits[0]._source).property('event.action', 'open'); - expect(resp.hits.hits[0]._source).property('kibana.alert.evaluation.threshold').eql([1, 2]); + expect(resp.hits.hits[0]._source).not.have.property('kibana.alert.evaluation.threshold'); expect(resp.hits.hits[0]._source) .property('kibana.alert.rule.parameters') .eql({ diff --git a/x-pack/test_serverless/functional/test_suites/common/management/data_views/serverless.ts b/x-pack/test_serverless/functional/test_suites/common/management/data_views/serverless.ts index 6e5831ee30beb..bf7b6b4115d6c 100644 --- a/x-pack/test_serverless/functional/test_suites/common/management/data_views/serverless.ts +++ b/x-pack/test_serverless/functional/test_suites/common/management/data_views/serverless.ts @@ -9,6 +9,7 @@ import expect from 'expect'; import { DATA_VIEW_PATH } from '@kbn/data-views-plugin/server'; import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; import { INITIAL_REST_VERSION } from '@kbn/data-views-plugin/server/constants'; +import { DataViewType } from '@kbn/data-views-plugin/common'; import { FtrProviderContext } from '../../../../ftr_provider_context'; const archivePath = 'test/api_integration/fixtures/es_archiver/index_patterns/basic_index'; @@ -70,7 +71,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { .send({ data_view: { title: 'basic_index', - type: 'rollup', + type: DataViewType.ROLLUP, }, override: true, }) diff --git a/yarn.lock b/yarn.lock index 6635d37906d6a..e49707731a0c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11422,15 +11422,10 @@ ansi-wrap@0.1.0, ansi-wrap@^0.1.0: resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= -antlr4ts-cli@^0.5.0-alpha.3: - version "0.5.0-alpha.3" - resolved "https://registry.yarnpkg.com/antlr4ts-cli/-/antlr4ts-cli-0.5.0-alpha.3.tgz#1f581b2a3c840d3921a2f3b1e739e48c7e7c18cd" - integrity sha512-i6oyxfaXU6qnw4HgyeSIsOLlsvT7zU3vmenoJKFNVFP1QNodtJMZYpnyxc8TmOFpJs7fEoWanLavSSDEmcCZBQ== - -antlr4ts@^0.5.0-alpha.3: - version "0.5.0-alpha.3" - resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.3.tgz#fa6d39d88d6b96341a8afef45867af9abcb38766" - integrity sha512-La89tKkGcHFIVuruv4Bm1esc3zLmES2NOTEwwNS1pudz+zx/0FNqQeUu9p48i9/QHKPVqjN87LB+q3buTg7oDQ== +antlr4@^4.13.1-patch-1: + version "4.13.1-patch-1" + resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.13.1-patch-1.tgz#946176f863f890964a050c4f18c47fd6f7e57602" + integrity sha512-OjFLWWLzDMV9rdFhpvroCWR4ooktNg9/nvVYSA5z28wuVpU36QUNuioR1XLnQtcjVlf8npjyz593PxnU/f/Cow== any-observable@^0.3.0: version "0.3.0" @@ -14704,12 +14699,13 @@ d3@3.5.17: resolved "https://registry.yarnpkg.com/d3/-/d3-3.5.17.tgz#bc46748004378b21a360c9fc7cf5231790762fb8" integrity sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g= -d@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" - integrity sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8= +d@1, d@^1.0.1, d@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de" + integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== dependencies: - es5-ext "^0.10.9" + es5-ext "^0.10.64" + type "^2.7.2" dagre@^0.8.2: version "0.8.5" @@ -16095,14 +16091,15 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.9, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: - version "0.10.46" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.46.tgz#efd99f67c5a7ec789baa3daa7f79870388f7f572" - integrity sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw== +es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.64" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714" + integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.1" - next-tick "1" + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + esniff "^2.0.1" + next-tick "^1.1.0" es5-shim@^4.5.13: version "4.5.14" @@ -16114,7 +16111,7 @@ es6-error@^4.0.1: resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== -es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: +es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= @@ -16161,7 +16158,7 @@ es6-shim@^0.35.5: resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.5.tgz#46f59dc0a84a1c5029e8ff1166ca0a902077a9ab" integrity sha512-E9kK/bjtCQRpN1K28Xh4BlmP8egvZBGJJ+9GtnzOwt7mdqtrjHFuVGr7QJfdjBIKqrlU5duPf3pCBoDrkjVYFg== -es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: +es6-symbol@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= @@ -16169,6 +16166,14 @@ es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: d "1" es5-ext "~0.10.14" +es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1: + version "3.1.4" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.4.tgz#f4e7d28013770b4208ecbf3e0bf14d3bcb557b8c" + integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== + dependencies: + d "^1.0.2" + ext "^1.7.0" + es6-weak-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" @@ -16563,6 +16568,16 @@ eslint@^8.46.0: strip-ansi "^6.0.1" text-table "^0.2.0" +esniff@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308" + integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== + dependencies: + d "^1.0.1" + es5-ext "^0.10.62" + event-emitter "^0.3.5" + type "^2.7.2" + espree@^9.6.0, espree@^9.6.1: version "9.6.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" @@ -16857,6 +16872,13 @@ express@^4.17.1, express@^4.17.3: utils-merge "1.0.1" vary "~1.1.2" +ext@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -23169,10 +23191,10 @@ next-line@^1.1.0: resolved "https://registry.yarnpkg.com/next-line/-/next-line-1.1.0.tgz#fcae57853052b6a9bae8208e40dd7d3c2d304603" integrity sha1-/K5XhTBStqm66CCOQN19PC0wRgM= -next-tick@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= +next-tick@1, next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== nice-napi@^1.0.2: version "1.0.2" @@ -30000,6 +30022,11 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + typed-array-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60"