diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchsourcefields.fieldsfromsource.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchsourcefields.fieldsfromsource.md index d343d8ce180da4..bd5fe56df98b6d 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchsourcefields.fieldsfromsource.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchsourcefields.fieldsfromsource.md @@ -14,5 +14,5 @@ Retreive fields directly from \_source (legacy behavior) Signature: ```typescript -fieldsFromSource?: NameList; +fieldsFromSource?: estypes.Fields; ``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchsourcefields.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchsourcefields.md index 22dc6fa9f627ba..e83e2261dc2a00 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchsourcefields.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchsourcefields.md @@ -18,7 +18,7 @@ export interface SearchSourceFields | --- | --- | --- | | [aggs](./kibana-plugin-plugins-data-public.searchsourcefields.aggs.md) | object | IAggConfigs | (() => object) | [AggConfigs](./kibana-plugin-plugins-data-public.aggconfigs.md) | | [fields](./kibana-plugin-plugins-data-public.searchsourcefields.fields.md) | SearchFieldValue[] | Retrieve fields via the search Fields API | -| [fieldsFromSource](./kibana-plugin-plugins-data-public.searchsourcefields.fieldsfromsource.md) | NameList | Retreive fields directly from \_source (legacy behavior) | +| [fieldsFromSource](./kibana-plugin-plugins-data-public.searchsourcefields.fieldsfromsource.md) | estypes.Fields | Retreive fields directly from \_source (legacy behavior) | | [filter](./kibana-plugin-plugins-data-public.searchsourcefields.filter.md) | Filter[] | Filter | (() => Filter[] | Filter | undefined) | [Filter](./kibana-plugin-plugins-data-public.filter.md) | | [from](./kibana-plugin-plugins-data-public.searchsourcefields.from.md) | number | | | [highlight](./kibana-plugin-plugins-data-public.searchsourcefields.highlight.md) | any | | @@ -29,7 +29,7 @@ export interface SearchSourceFields | [searchAfter](./kibana-plugin-plugins-data-public.searchsourcefields.searchafter.md) | EsQuerySearchAfter | | | [size](./kibana-plugin-plugins-data-public.searchsourcefields.size.md) | number | | | [sort](./kibana-plugin-plugins-data-public.searchsourcefields.sort.md) | EsQuerySortValue | EsQuerySortValue[] | [EsQuerySortValue](./kibana-plugin-plugins-data-public.esquerysortvalue.md) | -| [source](./kibana-plugin-plugins-data-public.searchsourcefields.source.md) | NameList | | +| [source](./kibana-plugin-plugins-data-public.searchsourcefields.source.md) | boolean | estypes.Fields | | | [terminate\_after](./kibana-plugin-plugins-data-public.searchsourcefields.terminate_after.md) | number | | | [timeout](./kibana-plugin-plugins-data-public.searchsourcefields.timeout.md) | string | | | [trackTotalHits](./kibana-plugin-plugins-data-public.searchsourcefields.tracktotalhits.md) | boolean | number | | diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchsourcefields.source.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchsourcefields.source.md index 0066e96d0dfc1a..09b347223418f3 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchsourcefields.source.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchsourcefields.source.md @@ -7,5 +7,5 @@ Signature: ```typescript -source?: NameList; +source?: boolean | estypes.Fields; ``` diff --git a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.asyncsearchstatusresponse._shards.md b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.asyncsearchstatusresponse._shards.md index 5cb7e7135aecfe..3235bb08cfbf72 100644 --- a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.asyncsearchstatusresponse._shards.md +++ b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.asyncsearchstatusresponse._shards.md @@ -7,5 +7,5 @@ Signature: ```typescript -_shards: ShardsResponse; +_shards: estypes.ShardStatistics; ``` diff --git a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.asyncsearchstatusresponse.md b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.asyncsearchstatusresponse.md index 5d7ea579392693..2d1d6fbce4e277 100644 --- a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.asyncsearchstatusresponse.md +++ b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.asyncsearchstatusresponse.md @@ -14,6 +14,6 @@ export interface AsyncSearchStatusResponse extends OmitShardsResponse | | +| [\_shards](./kibana-plugin-plugins-data-server.asyncsearchstatusresponse._shards.md) | estypes.ShardStatistics | | | [completion\_status](./kibana-plugin-plugins-data-server.asyncsearchstatusresponse.completion_status.md) | number | | diff --git a/src/plugins/data/common/search/search_source/types.ts b/src/plugins/data/common/search/search_source/types.ts index 40e92f45af1436..f9dbd83295b14f 100644 --- a/src/plugins/data/common/search/search_source/types.ts +++ b/src/plugins/data/common/search/search_source/types.ts @@ -6,7 +6,6 @@ * Side Public License, v 1. */ import type { estypes } from '@elastic/elasticsearch'; -import { NameList } from 'elasticsearch'; import { IAggConfigs } from 'src/plugins/data/public'; import { Query } from '../..'; import { Filter } from '../../es_query'; @@ -90,7 +89,7 @@ export interface SearchSourceFields { aggs?: object | IAggConfigs | (() => object); from?: number; size?: number; - source?: NameList; + source?: boolean | estypes.Fields; version?: boolean; /** * Retrieve fields via the search Fields API @@ -101,7 +100,7 @@ export interface SearchSourceFields { * * @deprecated It is recommended to use `fields` wherever possible. */ - fieldsFromSource?: NameList; + fieldsFromSource?: estypes.Fields; /** * {@link IndexPatternService} */ diff --git a/src/plugins/data/common/search/tabify/tabify_docs.test.ts b/src/plugins/data/common/search/tabify/tabify_docs.test.ts index 52e12aeee1ae64..113086795b3e25 100644 --- a/src/plugins/data/common/search/tabify/tabify_docs.test.ts +++ b/src/plugins/data/common/search/tabify/tabify_docs.test.ts @@ -8,7 +8,7 @@ import { tabifyDocs } from './tabify_docs'; import { IndexPattern } from '../../index_patterns/index_patterns'; -import { SearchResponse } from 'elasticsearch'; +import type { estypes } from '@elastic/elasticsearch'; describe('tabifyDocs', () => { const fieldFormats = { @@ -33,6 +33,7 @@ describe('tabifyDocs', () => { fieldFormats: fieldFormats as any, }); + // @ts-expect-error not full inteface const response = { hits: { hits: [ @@ -46,7 +47,7 @@ describe('tabifyDocs', () => { }, ], }, - } as SearchResponse; + } as estypes.SearchResponse; it('converts fields by default', () => { const table = tabifyDocs(response, index); diff --git a/src/plugins/data/common/search/tabify/tabify_docs.ts b/src/plugins/data/common/search/tabify/tabify_docs.ts index b4806283e63f2d..cfc1d21129df1f 100644 --- a/src/plugins/data/common/search/tabify/tabify_docs.ts +++ b/src/plugins/data/common/search/tabify/tabify_docs.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { SearchResponse } from 'elasticsearch'; +import type { estypes } from '@elastic/elasticsearch'; import { isPlainObject } from 'lodash'; import { IndexPattern } from '../../index_patterns/index_patterns'; import { Datatable, DatatableColumn, DatatableColumnType } from '../../../../expressions/common'; @@ -18,7 +18,7 @@ export interface TabifyDocsOptions { } export function flattenHit( - hit: SearchResponse['hits']['hits'][0], + hit: estypes.SearchHit, indexPattern?: IndexPattern, params?: TabifyDocsOptions ) { @@ -58,7 +58,7 @@ export function flattenHit( } } - flatten(hit.fields); + flatten(hit.fields || {}); if (params?.source !== false && hit._source) { flatten(hit._source as Record); } @@ -72,7 +72,7 @@ export function flattenHit( } export const tabifyDocs = ( - esResponse: SearchResponse, + esResponse: estypes.SearchResponse, index?: IndexPattern, params: TabifyDocsOptions = {} ): Datatable => { diff --git a/src/plugins/data/public/public.api.md b/src/plugins/data/public/public.api.md index 781d073b34978a..40225bafa52959 100644 --- a/src/plugins/data/public/public.api.md +++ b/src/plugins/data/public/public.api.md @@ -71,7 +71,6 @@ import { MatchAllFilter as MatchAllFilter_2 } from '@kbn/es-query'; import { MaybePromise } from '@kbn/utility-types'; import { Moment } from 'moment'; import moment from 'moment'; -import { NameList } from 'elasticsearch'; import { ObjectType } from '@kbn/config-schema'; import { Observable } from 'rxjs'; import { PackageInfo } from '@kbn/config'; @@ -2478,7 +2477,7 @@ export interface SearchSourceFields { // Warning: (ae-forgotten-export) The symbol "SearchFieldValue" needs to be exported by the entry point index.d.ts fields?: SearchFieldValue[]; // @deprecated - fieldsFromSource?: NameList; + fieldsFromSource?: estypes.Fields; // (undocumented) filter?: Filter[] | Filter | (() => Filter[] | Filter | undefined); // (undocumented) @@ -2506,7 +2505,7 @@ export interface SearchSourceFields { // (undocumented) sort?: EsQuerySortValue | EsQuerySortValue[]; // (undocumented) - source?: NameList; + source?: boolean | estypes.Fields; // (undocumented) terminate_after?: number; // (undocumented) diff --git a/src/plugins/data/public/ui/shard_failure_modal/__mocks__/shard_failure_response.ts b/src/plugins/data/public/ui/shard_failure_modal/__mocks__/shard_failure_response.ts index 968592ab963ee3..e4a31995e47b64 100644 --- a/src/plugins/data/public/ui/shard_failure_modal/__mocks__/shard_failure_response.ts +++ b/src/plugins/data/public/ui/shard_failure_modal/__mocks__/shard_failure_response.ts @@ -6,9 +6,9 @@ * Side Public License, v 1. */ -import { SearchResponse } from 'elasticsearch'; +import type { estypes } from '@elastic/elasticsearch'; -export const shardFailureResponse: SearchResponse = { +export const shardFailureResponse: estypes.SearchResponse = { _shards: { total: 2, successful: 1, diff --git a/src/plugins/data/server/autocomplete/terms_agg.test.ts b/src/plugins/data/server/autocomplete/terms_agg.test.ts index ae991e289a7159..820ec445a22ca9 100644 --- a/src/plugins/data/server/autocomplete/terms_agg.test.ts +++ b/src/plugins/data/server/autocomplete/terms_agg.test.ts @@ -12,7 +12,7 @@ import { ConfigSchema } from '../../config'; import type { DeeplyMockedKeys } from '@kbn/utility-types/jest'; import type { ApiResponse } from '@elastic/elasticsearch'; import { termsAggSuggestions } from './terms_agg'; -import { SearchResponse } from 'elasticsearch'; +import type { estypes } from '@elastic/elasticsearch'; import { duration } from 'moment'; let savedObjectsClientMock: jest.Mocked; @@ -22,6 +22,8 @@ const configMock = ({ valueSuggestions: { timeout: duration(4513), terminateAfter: duration(98430) }, }, } as unknown) as ConfigSchema; + +// @ts-expect-error not full interface const mockResponse = { body: { aggregations: { @@ -30,7 +32,7 @@ const mockResponse = { }, }, }, -} as ApiResponse>; +} as ApiResponse>; jest.mock('../index_patterns'); diff --git a/src/plugins/data/server/search/strategies/es_search/response_utils.test.ts b/src/plugins/data/server/search/strategies/es_search/response_utils.test.ts index f15cce062cb5d5..bd9babd61a7c48 100644 --- a/src/plugins/data/server/search/strategies/es_search/response_utils.test.ts +++ b/src/plugins/data/server/search/strategies/es_search/response_utils.test.ts @@ -7,7 +7,7 @@ */ import { getTotalLoaded, toKibanaSearchResponse, shimHitsTotal } from './response_utils'; -import { SearchResponse } from 'elasticsearch'; +import type { estypes } from '@elastic/elasticsearch'; describe('response utils', () => { describe('getTotalLoaded', () => { @@ -19,7 +19,7 @@ describe('response utils', () => { skipped: 5, total: 100, }, - } as unknown) as SearchResponse); + } as unknown) as estypes.SearchResponse); expect(result).toEqual({ total: 100, @@ -37,7 +37,7 @@ describe('response utils', () => { skipped: 5, total: 100, }, - } as unknown) as SearchResponse); + } as unknown) as estypes.SearchResponse); expect(result).toEqual({ rawResponse: { 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 271032a9e1e270..eb39417ac535f7 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 @@ -9,7 +9,7 @@ import type { Observable } from 'rxjs'; import type { IScopedClusterClient, Logger, SharedGlobalConfig } from 'kibana/server'; import { catchError, first, tap } from 'rxjs/operators'; -import { SearchResponse } from 'elasticsearch'; +import type { estypes } from '@elastic/elasticsearch'; import { from } from 'rxjs'; import type { ISearchStrategy, SearchStrategyDependencies } from '../../types'; import type { @@ -121,7 +121,7 @@ export const enhancedEsSearchStrategyProvider = ( }); const esResponse = await shimAbortSignal(promise, options?.abortSignal); - const response = esResponse.body as SearchResponse; + const response = esResponse.body as estypes.SearchResponse; return { rawResponse: shimHitsTotal(response, options), ...getTotalLoaded(response), diff --git a/src/plugins/data/server/search/strategies/ese_search/types.ts b/src/plugins/data/server/search/strategies/ese_search/types.ts index 069004b0287cda..7f21aa3616e4ef 100644 --- a/src/plugins/data/server/search/strategies/ese_search/types.ts +++ b/src/plugins/data/server/search/strategies/ese_search/types.ts @@ -7,7 +7,6 @@ */ import type { estypes } from '@elastic/elasticsearch'; -import { ShardsResponse } from 'elasticsearch'; export interface AsyncSearchResponse { id?: string; @@ -19,5 +18,5 @@ export interface AsyncSearchResponse { } export interface AsyncSearchStatusResponse extends Omit { completion_status: number; - _shards: ShardsResponse; + _shards: estypes.ShardStatistics; } diff --git a/src/plugins/data/server/server.api.md b/src/plugins/data/server/server.api.md index 7303557449956e..bb8bb2b12ab714 100644 --- a/src/plugins/data/server/server.api.md +++ b/src/plugins/data/server/server.api.md @@ -52,7 +52,6 @@ import { Logger as Logger_2 } from 'kibana/server'; import { LoggerFactory } from '@kbn/logging'; import { Moment } from 'moment'; import moment from 'moment'; -import { NameList } from 'elasticsearch'; import { Observable } from 'rxjs'; import { PackageInfo } from '@kbn/config'; import { PathConfigType } from '@kbn/utils'; @@ -73,7 +72,6 @@ import { SavedObjectsFindResponse } from 'kibana/server'; import { SavedObjectsUpdateResponse } from 'kibana/server'; import { Search } from '@elastic/elasticsearch/api/requestParams'; import { SerializedFieldFormat as SerializedFieldFormat_2 } from 'src/plugins/expressions/common'; -import { ShardsResponse } from 'elasticsearch'; import { SharedGlobalConfig as SharedGlobalConfig_2 } from 'kibana/server'; import { ToastInputFields } from 'src/core/public/notifications'; import { TransportRequestPromise } from '@elastic/elasticsearch/lib/Transport'; @@ -312,7 +310,7 @@ export interface AsyncSearchStatusResponse extends Omit, logger: L return async ({ esClient }: CollectorFetchContext): Promise => { try { const config = await config$.pipe(first()).toPromise(); - const { body: esResponse } = await esClient.search>({ + const { body: esResponse } = await esClient.search({ index: config.kibana.index, body: { size: 0,