diff --git a/.i18nrc.json b/.i18nrc.json index 5c8e13579c792..5b3fc93207ef5 100644 --- a/.i18nrc.json +++ b/.i18nrc.json @@ -2,6 +2,7 @@ "paths": { "common.ui": "src/legacy/ui", "data": "src/legacy/core_plugins/data", + "expressions": "src/legacy/core_plugins/expressions", "kibana_react": "src/legacy/core_plugins/kibana_react", "server": "src/legacy/server", "console": "src/legacy/core_plugins/console", diff --git a/src/legacy/core_plugins/data/public/index.ts b/src/legacy/core_plugins/data/public/index.ts index 8bf13a24f1775..8837c125e2ab2 100644 --- a/src/legacy/core_plugins/data/public/index.ts +++ b/src/legacy/core_plugins/data/public/index.ts @@ -18,7 +18,7 @@ */ // /// Define plugin function -import { DataPlugin as Plugin, DataSetup, DataStart } from './plugin'; +import { DataPlugin as Plugin, DataSetup } from './plugin'; export function plugin() { return new Plugin(); @@ -28,9 +28,7 @@ export function plugin() { /** @public types */ export type DataSetup = DataSetup; -export type DataStart = DataStart; -export { ExpressionRenderer, ExpressionRendererProps } from './expressions'; export { FilterBar, ApplyFiltersPopover } from './filter'; export { Field, diff --git a/src/legacy/core_plugins/data/public/legacy.ts b/src/legacy/core_plugins/data/public/legacy.ts index 3d86a200eab9b..c3618d412f425 100644 --- a/src/legacy/core_plugins/data/public/legacy.ts +++ b/src/legacy/core_plugins/data/public/legacy.ts @@ -35,8 +35,6 @@ */ import { npSetup, npStart } from 'ui/new_platform'; -// @ts-ignore -import { getInterpreter } from 'plugins/interpreter/interpreter'; import { LegacyDependenciesPlugin } from './shim/legacy_dependencies_plugin'; import { plugin } from '.'; @@ -45,9 +43,6 @@ const legacyPlugin = new LegacyDependenciesPlugin(); export const setup = dataPlugin.setup(npSetup.core, { __LEGACY: legacyPlugin.setup(), - inspector: npSetup.plugins.inspector, }); -export const start = dataPlugin.start(npStart.core, { - inspector: npStart.plugins.inspector, -}); +export const start = dataPlugin.start(npStart.core); diff --git a/src/legacy/core_plugins/data/public/plugin.ts b/src/legacy/core_plugins/data/public/plugin.ts index 76a746045491a..f63f569534d86 100644 --- a/src/legacy/core_plugins/data/public/plugin.ts +++ b/src/legacy/core_plugins/data/public/plugin.ts @@ -18,16 +18,11 @@ */ import { CoreSetup, CoreStart, Plugin } from '../../../../core/public'; -import { ExpressionsService, ExpressionsSetup, ExpressionsStart } from './expressions'; import { SearchService, SearchSetup } from './search'; import { QueryService, QuerySetup } from './query'; import { FilterService, FilterSetup } from './filter'; import { IndexPatternsService, IndexPatternsSetup } from './index_patterns'; import { LegacyDependenciesPluginSetup } from './shim/legacy_dependencies_plugin'; -import { - Start as InspectorStart, - Setup as InspectorSetup, -} from '../../../../plugins/inspector/public'; /** * Interface for any dependencies on other plugins' `setup` contracts. @@ -36,11 +31,6 @@ import { */ export interface DataPluginSetupDependencies { __LEGACY: LegacyDependenciesPluginSetup; - inspector: InspectorSetup; -} - -export interface DataPluginStartDependencies { - inspector: InspectorStart; } /** @@ -49,17 +39,12 @@ export interface DataPluginStartDependencies { * @public */ export interface DataSetup { - expressions: ExpressionsSetup; indexPatterns: IndexPatternsSetup; filter: FilterSetup; query: QuerySetup; search: SearchSetup; } -export interface DataStart { - expressions: ExpressionsStart; -} - /** * Data Plugin - public * @@ -71,9 +56,8 @@ export interface DataStart { * in the setup/start interfaces. The remaining items exported here are either types, * or static code. */ -export class DataPlugin implements Plugin { +export class DataPlugin implements Plugin { // Exposed services, sorted alphabetically - private readonly expressions: ExpressionsService = new ExpressionsService(); private readonly filter: FilterService = new FilterService(); private readonly indexPatterns: IndexPatternsService = new IndexPatternsService(); private readonly query: QueryService = new QueryService(); @@ -91,7 +75,6 @@ export class DataPlugin implements Plugin { + return Joi.object({ + enabled: Joi.boolean().default(true), + }).default(); + }, + init: (server: Legacy.Server) => ({}), + uiExports: { + injectDefaultVars: () => ({}), + }, + }; + + return new kibana.Plugin(config); +} diff --git a/src/legacy/core_plugins/expressions/package.json b/src/legacy/core_plugins/expressions/package.json new file mode 100644 index 0000000000000..1b2b2fd50097c --- /dev/null +++ b/src/legacy/core_plugins/expressions/package.json @@ -0,0 +1,4 @@ +{ + "name": "expressions", + "version": "kibana" +} diff --git a/src/legacy/core_plugins/data/public/expressions/expression_renderer.tsx b/src/legacy/core_plugins/expressions/public/expressions/expression_renderer.tsx similarity index 100% rename from src/legacy/core_plugins/data/public/expressions/expression_renderer.tsx rename to src/legacy/core_plugins/expressions/public/expressions/expression_renderer.tsx diff --git a/src/legacy/core_plugins/data/public/expressions/expressions_service.ts b/src/legacy/core_plugins/expressions/public/expressions/expressions_service.ts similarity index 90% rename from src/legacy/core_plugins/data/public/expressions/expressions_service.ts rename to src/legacy/core_plugins/expressions/public/expressions/expressions_service.ts index a00512f04c1ac..4b8124132a11f 100644 --- a/src/legacy/core_plugins/data/public/expressions/expressions_service.ts +++ b/src/legacy/core_plugins/expressions/public/expressions/expressions_service.ts @@ -46,9 +46,9 @@ export class ExpressionsService { }); return { - registerType: npSetup.plugins.data.expressions.registerType, - registerFunction: npSetup.plugins.data.expressions.registerFunction, - registerRenderer: npSetup.plugins.data.expressions.registerRenderer, + registerType: npSetup.plugins.expressions.registerType, + registerFunction: npSetup.plugins.expressions.registerFunction, + registerRenderer: npSetup.plugins.expressions.registerRenderer, }; } diff --git a/src/legacy/core_plugins/data/public/expressions/index.ts b/src/legacy/core_plugins/expressions/public/expressions/index.ts similarity index 100% rename from src/legacy/core_plugins/data/public/expressions/index.ts rename to src/legacy/core_plugins/expressions/public/expressions/index.ts diff --git a/src/legacy/core_plugins/data/public/expressions/lib/_types.ts b/src/legacy/core_plugins/expressions/public/expressions/lib/_types.ts similarity index 91% rename from src/legacy/core_plugins/data/public/expressions/lib/_types.ts rename to src/legacy/core_plugins/expressions/public/expressions/lib/_types.ts index b3185fda2c178..6345789a3b50b 100644 --- a/src/legacy/core_plugins/data/public/expressions/lib/_types.ts +++ b/src/legacy/core_plugins/expressions/public/expressions/lib/_types.ts @@ -19,9 +19,9 @@ import { TimeRange } from 'src/plugins/data/public'; import { Filter } from '@kbn/es-query'; -import { Adapters } from '../../../../../ui/public/inspector'; -import { Query } from '../../query'; -import { ExpressionAST } from '../../../../../../plugins/data/common/expressions/types'; +import { Adapters } from '../../../../../../plugins/inspector/public'; +import { Query } from '../../../../../../plugins/data/public'; +import { ExpressionAST } from '../../../../../../plugins/expressions/common'; export { ExpressionAST, TimeRange, Adapters, Filter, Query }; diff --git a/src/legacy/core_plugins/data/public/expressions/lib/execute.test.ts b/src/legacy/core_plugins/expressions/public/expressions/lib/execute.test.ts similarity index 97% rename from src/legacy/core_plugins/data/public/expressions/lib/execute.test.ts rename to src/legacy/core_plugins/expressions/public/expressions/lib/execute.test.ts index b99896e17c0e1..d71ba2b266843 100644 --- a/src/legacy/core_plugins/data/public/expressions/lib/execute.test.ts +++ b/src/legacy/core_plugins/expressions/public/expressions/lib/execute.test.ts @@ -19,7 +19,7 @@ import { execute, ExpressionDataHandler } from './execute'; import { fromExpression } from '@kbn/interpreter/common'; -import { ExpressionAST } from '../../../../../../plugins/data/common/expressions/types'; +import { ExpressionAST } from './_types'; jest.mock('../services', () => ({ getInterpreter: () => { diff --git a/src/legacy/core_plugins/data/public/expressions/lib/execute.ts b/src/legacy/core_plugins/expressions/public/expressions/lib/execute.ts similarity index 100% rename from src/legacy/core_plugins/data/public/expressions/lib/execute.ts rename to src/legacy/core_plugins/expressions/public/expressions/lib/execute.ts diff --git a/src/legacy/core_plugins/data/public/expressions/lib/loader.test.ts b/src/legacy/core_plugins/expressions/public/expressions/lib/loader.test.ts similarity index 98% rename from src/legacy/core_plugins/data/public/expressions/lib/loader.test.ts rename to src/legacy/core_plugins/expressions/public/expressions/lib/loader.test.ts index c1ae05b0bb915..9d1b90f035a91 100644 --- a/src/legacy/core_plugins/data/public/expressions/lib/loader.test.ts +++ b/src/legacy/core_plugins/expressions/public/expressions/lib/loader.test.ts @@ -22,7 +22,7 @@ import { loader, ExpressionLoader } from './loader'; import { fromExpression } from '@kbn/interpreter/common'; import { IInterpreterRenderHandlers } from './_types'; import { Observable } from 'rxjs'; -import { ExpressionAST } from '../../../../../../plugins/data/common/expressions/types'; +import { ExpressionAST } from '../../../../../../plugins/expressions/common'; const element: HTMLElement = null as any; diff --git a/src/legacy/core_plugins/data/public/expressions/lib/loader.ts b/src/legacy/core_plugins/expressions/public/expressions/lib/loader.ts similarity index 100% rename from src/legacy/core_plugins/data/public/expressions/lib/loader.ts rename to src/legacy/core_plugins/expressions/public/expressions/lib/loader.ts diff --git a/src/legacy/core_plugins/data/public/expressions/lib/render.test.ts b/src/legacy/core_plugins/expressions/public/expressions/lib/render.test.ts similarity index 100% rename from src/legacy/core_plugins/data/public/expressions/lib/render.test.ts rename to src/legacy/core_plugins/expressions/public/expressions/lib/render.test.ts diff --git a/src/legacy/core_plugins/data/public/expressions/lib/render.ts b/src/legacy/core_plugins/expressions/public/expressions/lib/render.ts similarity index 100% rename from src/legacy/core_plugins/data/public/expressions/lib/render.ts rename to src/legacy/core_plugins/expressions/public/expressions/lib/render.ts diff --git a/src/legacy/core_plugins/data/public/expressions/services.ts b/src/legacy/core_plugins/expressions/public/expressions/services.ts similarity index 100% rename from src/legacy/core_plugins/data/public/expressions/services.ts rename to src/legacy/core_plugins/expressions/public/expressions/services.ts diff --git a/src/legacy/core_plugins/expressions/public/index.ts b/src/legacy/core_plugins/expressions/public/index.ts new file mode 100644 index 0000000000000..c567b082d03fb --- /dev/null +++ b/src/legacy/core_plugins/expressions/public/index.ts @@ -0,0 +1,37 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +// /// Define plugin function +import { + DataExpressionsPlugin as Plugin, + DataExpressionsSetup, + DataExpressionsStart, +} from './plugin'; + +export function plugin() { + return new Plugin(); +} + +// /// Export types & static code + +/** @public types */ +export type DataExpressionsSetup = DataExpressionsSetup; +export type DataExpressionsStart = DataExpressionsStart; + +export { ExpressionRenderer, ExpressionRendererProps } from './expressions'; diff --git a/src/legacy/core_plugins/expressions/public/legacy.ts b/src/legacy/core_plugins/expressions/public/legacy.ts new file mode 100644 index 0000000000000..77617fa61001f --- /dev/null +++ b/src/legacy/core_plugins/expressions/public/legacy.ts @@ -0,0 +1,29 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { npSetup, npStart } from 'ui/new_platform'; +import { plugin } from '.'; + +const expressionsPlugin = plugin(); + +export const setup = expressionsPlugin.setup(npSetup.core); + +export const start = expressionsPlugin.start(npStart.core, { + inspector: npStart.plugins.inspector, +}); diff --git a/src/legacy/core_plugins/expressions/public/mocks.ts b/src/legacy/core_plugins/expressions/public/mocks.ts new file mode 100644 index 0000000000000..c6c0c9d63d058 --- /dev/null +++ b/src/legacy/core_plugins/expressions/public/mocks.ts @@ -0,0 +1,35 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { DataExpressionsSetup } from '.'; + +function createExpressionsSetupMock() { + const mock: MockedKeys> = {}; + + return mock; +} + +function createExpressionsStartMock() { + return {}; +} + +export const dataPluginMock = { + createSetup: createExpressionsSetupMock, + createStart: createExpressionsStartMock, +}; diff --git a/src/legacy/core_plugins/expressions/public/plugin.ts b/src/legacy/core_plugins/expressions/public/plugin.ts new file mode 100644 index 0000000000000..ea40928daf09d --- /dev/null +++ b/src/legacy/core_plugins/expressions/public/plugin.ts @@ -0,0 +1,77 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { CoreSetup, CoreStart, Plugin } from '../../../../core/public'; +import { ExpressionsService, ExpressionsSetup, ExpressionsStart } from './expressions'; +import { + Start as InspectorStart, + Setup as InspectorSetup, +} from '../../../../plugins/inspector/public'; + +/** + * Interface for any dependencies on other plugins' `setup` contracts. + * + * @internal + */ +export interface DataExpressionsPluginSetupDependencies { + inspector: InspectorSetup; +} + +export interface DataExpressionsPluginStartDependencies { + inspector: InspectorStart; +} + +/** + * Interface for this plugin's returned `setup` contract. + * + * @public + */ +export interface DataExpressionsSetup { + expressions: ExpressionsSetup; +} + +export interface DataExpressionsStart { + expressions: ExpressionsStart; +} + +export class DataExpressionsPlugin + implements + Plugin { + // Exposed services, sorted alphabetically + private readonly expressions: ExpressionsService = new ExpressionsService(); + + public setup(core: CoreSetup): DataExpressionsSetup { + return { + expressions: this.expressions.setup(), + }; + } + + public start( + core: CoreStart, + plugins: DataExpressionsPluginStartDependencies + ): DataExpressionsStart { + return { + expressions: this.expressions.start({ inspector: plugins.inspector }), + }; + } + + public stop() { + this.expressions.stop(); + } +} diff --git a/src/plugins/data/common/expressions/index.ts b/src/legacy/core_plugins/expressions/server/index.ts similarity index 96% rename from src/plugins/data/common/expressions/index.ts rename to src/legacy/core_plugins/expressions/server/index.ts index d8f7b5091eb8f..9880b336e76e5 100644 --- a/src/plugins/data/common/expressions/index.ts +++ b/src/legacy/core_plugins/expressions/server/index.ts @@ -16,5 +16,3 @@ * specific language governing permissions and limitations * under the License. */ - -export * from './types'; diff --git a/src/legacy/core_plugins/input_control_vis/public/input_control_fn.test.js b/src/legacy/core_plugins/input_control_vis/public/input_control_fn.test.js index 68bf926960903..1d012f155ed73 100644 --- a/src/legacy/core_plugins/input_control_vis/public/input_control_fn.test.js +++ b/src/legacy/core_plugins/input_control_vis/public/input_control_fn.test.js @@ -21,8 +21,6 @@ jest.mock('ui/new_platform'); import { functionWrapper } from '../../interpreter/test_helpers'; import { inputControlVis } from './input_control_fn'; -jest.mock('ui/new_platform', () => require('../../../ui/public/new_platform/index.test.mocks').mockNewPlatformBackdoor()); - describe('interpreter/functions#input_control_vis', () => { const fn = functionWrapper(inputControlVis); const visConfig = { diff --git a/src/legacy/core_plugins/interpreter/common/index.ts b/src/legacy/core_plugins/interpreter/common/index.ts index 740f75ddd7798..0251faa69fccf 100644 --- a/src/legacy/core_plugins/interpreter/common/index.ts +++ b/src/legacy/core_plugins/interpreter/common/index.ts @@ -18,6 +18,9 @@ */ export { + getType, + interpreterProvider, + serializeProvider, Datatable, DatatableColumn, DatatableRow, @@ -34,10 +37,6 @@ export { PointSeriesColumnName, Render, Style, -} from '../../../../plugins/data/common/expressions/expression_types'; + Type, +} from '../../../../plugins/expressions/common'; export const API_ROUTE = '/api/interpreter'; -export * from '../../../../plugins/data/common/expressions/serialize_provider'; -export { Type } from '../../../../plugins/data/common/expressions/interpreter'; -export { - interpreterProvider, -} from '../../../../plugins/data/common/expressions/interpreter_provider'; diff --git a/src/legacy/core_plugins/interpreter/init.ts b/src/legacy/core_plugins/interpreter/init.ts index 37eecd3b10db4..fc93346f28024 100644 --- a/src/legacy/core_plugins/interpreter/init.ts +++ b/src/legacy/core_plugins/interpreter/init.ts @@ -25,8 +25,7 @@ import { register, registryFactory, Registry, Fn } from '@kbn/interpreter/common // @ts-ignore import { routes } from './server/routes'; -// @ts-ignore -import { typeSpecs as types } from '../../../plugins/data/common/expressions/expression_types'; +import { typeSpecs as types } from '../../../plugins/expressions/common'; import { Type } from './common'; import { Legacy } from '../../../../kibana'; diff --git a/src/legacy/core_plugins/interpreter/public/interpreter.js b/src/legacy/core_plugins/interpreter/public/interpreter.js index 4e3b3a3ea827d..ae632c99741a7 100644 --- a/src/legacy/core_plugins/interpreter/public/interpreter.js +++ b/src/legacy/core_plugins/interpreter/public/interpreter.js @@ -26,7 +26,7 @@ import { registries } from './registries'; import { ajaxStream } from './lib/ajax_stream'; import { functions } from './functions'; import { visualization } from './renderers/visualization'; -import { typeSpecs } from '../../../../plugins/data/common/expressions/expression_types'; +import { typeSpecs } from '../../../../plugins/expressions/common'; const { http } = npSetup.core; const KIBANA_VERSION = npSetup.core.injectedMetadata.getKibanaVersion(); diff --git a/src/legacy/core_plugins/interpreter/public/registries.ts b/src/legacy/core_plugins/interpreter/public/registries.ts index 492b154fd9a50..63fd9089acf4a 100644 --- a/src/legacy/core_plugins/interpreter/public/registries.ts +++ b/src/legacy/core_plugins/interpreter/public/registries.ts @@ -19,12 +19,9 @@ import { npSetup } from 'ui/new_platform'; -export const functionsRegistry = - npSetup.plugins.data.expressions.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.functions; -export const renderersRegistry = - npSetup.plugins.data.expressions.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.renderers; -export const typesRegistry = - npSetup.plugins.data.expressions.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.types; +export const functionsRegistry = npSetup.plugins.expressions.__LEGACY.functions; +export const renderersRegistry = npSetup.plugins.expressions.__LEGACY.renderers; +export const typesRegistry = npSetup.plugins.expressions.__LEGACY.types; export const registries = { browserFunctions: functionsRegistry, renderers: renderersRegistry, diff --git a/src/legacy/core_plugins/interpreter/types/arguments.ts b/src/legacy/core_plugins/interpreter/types/arguments.ts index a750d1d036427..3e17166a7c434 100644 --- a/src/legacy/core_plugins/interpreter/types/arguments.ts +++ b/src/legacy/core_plugins/interpreter/types/arguments.ts @@ -17,4 +17,4 @@ * under the License. */ -export * from '../../../../plugins/data/common/expressions/types/arguments'; +export * from '../../../../plugins/expressions/common/expressions/types/arguments'; diff --git a/src/legacy/core_plugins/interpreter/types/common.ts b/src/legacy/core_plugins/interpreter/types/common.ts index 02093c80f8f56..dce984a0bd556 100644 --- a/src/legacy/core_plugins/interpreter/types/common.ts +++ b/src/legacy/core_plugins/interpreter/types/common.ts @@ -17,4 +17,4 @@ * under the License. */ -export * from '../../../../plugins/data/common/expressions/types/common'; +export * from '../../../../plugins/expressions/common/expressions/types/common'; diff --git a/src/legacy/core_plugins/interpreter/types/functions.ts b/src/legacy/core_plugins/interpreter/types/functions.ts index 5d7f67292d89e..789bb29990cb4 100644 --- a/src/legacy/core_plugins/interpreter/types/functions.ts +++ b/src/legacy/core_plugins/interpreter/types/functions.ts @@ -17,4 +17,4 @@ * under the License. */ -export * from '../../../../plugins/data/common/expressions/types/functions'; +export * from '../../../../plugins/expressions/common/expressions/types/functions'; diff --git a/src/legacy/core_plugins/interpreter/types/index.ts b/src/legacy/core_plugins/interpreter/types/index.ts index 19b66c8407ba1..c178bee26a7cd 100644 --- a/src/legacy/core_plugins/interpreter/types/index.ts +++ b/src/legacy/core_plugins/interpreter/types/index.ts @@ -17,4 +17,4 @@ * under the License. */ -export * from '../../../../plugins/data/common'; +export * from '../../../../plugins/expressions/common'; diff --git a/src/legacy/core_plugins/interpreter/types/types.ts b/src/legacy/core_plugins/interpreter/types/types.ts index 294453f966ad9..d3f1cb3987b00 100644 --- a/src/legacy/core_plugins/interpreter/types/types.ts +++ b/src/legacy/core_plugins/interpreter/types/types.ts @@ -17,4 +17,4 @@ * under the License. */ -export * from '../../../../plugins/data/common/expressions/types'; +export * from '../../../../plugins/expressions/common/expressions/types'; diff --git a/src/legacy/core_plugins/region_map/index.ts b/src/legacy/core_plugins/region_map/index.ts index 4e7c23a01da2d..258dc25f6a1e1 100644 --- a/src/legacy/core_plugins/region_map/index.ts +++ b/src/legacy/core_plugins/region_map/index.ts @@ -25,7 +25,7 @@ import { LegacyPluginApi, LegacyPluginInitializer } from '../../../../src/legacy const regionMapPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPluginApi) => new Plugin({ id: 'region_map', - require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'data'], + require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'expressions'], publicDir: resolve(__dirname, 'public'), uiExports: { hacks: [resolve(__dirname, 'public/legacy')], diff --git a/src/legacy/core_plugins/region_map/public/legacy.ts b/src/legacy/core_plugins/region_map/public/legacy.ts index b669a45e3240a..e16a21cb78cc5 100644 --- a/src/legacy/core_plugins/region_map/public/legacy.ts +++ b/src/legacy/core_plugins/region_map/public/legacy.ts @@ -30,8 +30,8 @@ const regionmapsConfig = npSetup.core.injectedMetadata.getInjectedVar( ) as RegionMapsConfig; const plugins: Readonly = { + expressions: npSetup.plugins.expressions, visualizations: visualizationsSetup, - data: npSetup.plugins.data, // Temporary solution // It will be removed when all dependent services are migrated to the new platform. diff --git a/src/legacy/core_plugins/region_map/public/plugin.ts b/src/legacy/core_plugins/region_map/public/plugin.ts index 158f548b935df..aaaf4c866c521 100644 --- a/src/legacy/core_plugins/region_map/public/plugin.ts +++ b/src/legacy/core_plugins/region_map/public/plugin.ts @@ -23,7 +23,7 @@ import { PluginInitializerContext, UiSettingsClientContract, } from '../../../../core/public'; -import { Plugin as DataPublicPlugin } from '../../../../plugins/data/public'; +import { Plugin as ExpressionsPublicPlugin } from '../../../../plugins/expressions/public'; import { VisualizationsSetup } from '../../visualizations/public'; import { LegacyDependenciesPlugin, LegacyDependenciesPluginSetup } from './shim'; @@ -40,7 +40,7 @@ interface RegionMapVisualizationDependencies extends LegacyDependenciesPluginSet /** @internal */ export interface RegionMapPluginSetupDependencies { - data: ReturnType; + expressions: ReturnType; visualizations: VisualizationsSetup; __LEGACY: LegacyDependenciesPlugin; } @@ -61,14 +61,14 @@ export class RegionMapPlugin implements Plugin, void> { public async setup( core: CoreSetup, - { data, visualizations, __LEGACY }: RegionMapPluginSetupDependencies + { expressions, visualizations, __LEGACY }: RegionMapPluginSetupDependencies ) { const visualizationDependencies: Readonly = { uiSettings: core.uiSettings, ...(await __LEGACY.setup()), }; - data.expressions.registerFunction(createRegionMapFn); + expressions.registerFunction(createRegionMapFn); visualizations.types.registerVisualization(() => createRegionMapTypeDefinition(visualizationDependencies) diff --git a/src/legacy/core_plugins/tile_map/index.ts b/src/legacy/core_plugins/tile_map/index.ts index 6e12ea62ea4a0..15ce3bdb8e28b 100644 --- a/src/legacy/core_plugins/tile_map/index.ts +++ b/src/legacy/core_plugins/tile_map/index.ts @@ -28,7 +28,7 @@ import { LegacyPluginApi, LegacyPluginInitializer } from '../../../../src/legacy const tileMapPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPluginApi) => new Plugin({ id: 'tile_map', - require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'data'], + require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'expressions'], publicDir: resolve(__dirname, 'public'), uiExports: { styleSheetPaths: resolve(__dirname, 'public/index.scss'), diff --git a/src/legacy/core_plugins/tile_map/public/legacy.ts b/src/legacy/core_plugins/tile_map/public/legacy.ts index 185dac90bf8a0..c367a5b5376ca 100644 --- a/src/legacy/core_plugins/tile_map/public/legacy.ts +++ b/src/legacy/core_plugins/tile_map/public/legacy.ts @@ -26,8 +26,8 @@ import { LegacyDependenciesPlugin } from './shim'; import { plugin } from '.'; const plugins: Readonly = { + expressions: npSetup.plugins.expressions, visualizations: visualizationsSetup, - data: npSetup.plugins.data, // Temporary solution // It will be removed when all dependent services are migrated to the new platform. diff --git a/src/legacy/core_plugins/tile_map/public/plugin.ts b/src/legacy/core_plugins/tile_map/public/plugin.ts index ba087d5ca5959..602f6c266b5f6 100644 --- a/src/legacy/core_plugins/tile_map/public/plugin.ts +++ b/src/legacy/core_plugins/tile_map/public/plugin.ts @@ -23,7 +23,7 @@ import { PluginInitializerContext, UiSettingsClientContract, } from '../../../../core/public'; -import { Plugin as DataPublicPlugin } from '../../../../plugins/data/public'; +import { Plugin as ExpressionsPublicPlugin } from '../../../../plugins/expressions/public'; import { VisualizationsSetup } from '../../visualizations/public'; import { LegacyDependenciesPlugin, LegacyDependenciesPluginSetup } from './shim'; @@ -40,7 +40,7 @@ interface TileMapVisualizationDependencies extends LegacyDependenciesPluginSetup /** @internal */ export interface TileMapPluginSetupDependencies { - data: ReturnType; + expressions: ReturnType; visualizations: VisualizationsSetup; __LEGACY: LegacyDependenciesPlugin; } @@ -55,14 +55,14 @@ export class TileMapPlugin implements Plugin, void> { public async setup( core: CoreSetup, - { data, visualizations, __LEGACY }: TileMapPluginSetupDependencies + { expressions, visualizations, __LEGACY }: TileMapPluginSetupDependencies ) { const visualizationDependencies: Readonly = { uiSettings: core.uiSettings, ...(await __LEGACY.setup()), }; - data.expressions.registerFunction(() => createTileMapFn(visualizationDependencies)); + expressions.registerFunction(() => createTileMapFn(visualizationDependencies)); visualizations.types.registerVisualization(() => createTileMapTypeDefinition(visualizationDependencies) diff --git a/src/legacy/core_plugins/vis_type_markdown/index.ts b/src/legacy/core_plugins/vis_type_markdown/index.ts index 5bfea17be5824..8106e5d30ddd0 100644 --- a/src/legacy/core_plugins/vis_type_markdown/index.ts +++ b/src/legacy/core_plugins/vis_type_markdown/index.ts @@ -25,7 +25,7 @@ import { LegacyPluginApi, LegacyPluginInitializer } from '../../../../src/legacy const markdownPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPluginApi) => new Plugin({ id: 'markdown_vis', - require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'data'], + require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'expressions'], publicDir: resolve(__dirname, 'public'), uiExports: { styleSheetPaths: resolve(__dirname, 'public/index.scss'), diff --git a/src/legacy/core_plugins/vis_type_markdown/public/legacy.ts b/src/legacy/core_plugins/vis_type_markdown/public/legacy.ts index 2552e04fbc9f2..6074137532ae9 100644 --- a/src/legacy/core_plugins/vis_type_markdown/public/legacy.ts +++ b/src/legacy/core_plugins/vis_type_markdown/public/legacy.ts @@ -25,8 +25,8 @@ import { MarkdownPluginSetupDependencies } from './plugin'; import { plugin } from '.'; const plugins: Readonly = { + expressions: npSetup.plugins.expressions, visualizations: visualizationsSetup, - data: npSetup.plugins.data, }; const pluginInstance = plugin({} as PluginInitializerContext); diff --git a/src/legacy/core_plugins/vis_type_markdown/public/plugin.ts b/src/legacy/core_plugins/vis_type_markdown/public/plugin.ts index b013c755168d7..85d8c27ed970d 100644 --- a/src/legacy/core_plugins/vis_type_markdown/public/plugin.ts +++ b/src/legacy/core_plugins/vis_type_markdown/public/plugin.ts @@ -18,7 +18,7 @@ */ import { PluginInitializerContext, CoreSetup, CoreStart, Plugin } from '../../../../core/public'; -import { Plugin as DataPublicPlugin } from '../../../../plugins/data/public'; +import { Plugin as ExpressionsPublicPlugin } from '../../../../plugins/expressions/public'; import { VisualizationsSetup } from '../../visualizations/public'; import { markdownVis } from './markdown_vis'; @@ -26,7 +26,7 @@ import { createMarkdownVisFn } from './markdown_fn'; /** @internal */ export interface MarkdownPluginSetupDependencies { - data: ReturnType; + expressions: ReturnType; visualizations: VisualizationsSetup; } @@ -38,9 +38,9 @@ export class MarkdownPlugin implements Plugin { this.initializerContext = initializerContext; } - public setup(core: CoreSetup, { data, visualizations }: MarkdownPluginSetupDependencies) { + public setup(core: CoreSetup, { expressions, visualizations }: MarkdownPluginSetupDependencies) { visualizations.types.registerVisualization(() => markdownVis); - data.expressions.registerFunction(createMarkdownVisFn); + expressions.registerFunction(createMarkdownVisFn); } public start(core: CoreStart) { diff --git a/src/legacy/core_plugins/vis_type_metric/index.ts b/src/legacy/core_plugins/vis_type_metric/index.ts index f77234a26ce48..f71fc4a75461e 100644 --- a/src/legacy/core_plugins/vis_type_metric/index.ts +++ b/src/legacy/core_plugins/vis_type_metric/index.ts @@ -25,7 +25,7 @@ import { LegacyPluginApi, LegacyPluginInitializer } from '../../../../src/legacy const metricPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPluginApi) => new Plugin({ id: 'metric_vis', - require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'data'], + require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'expressions'], publicDir: resolve(__dirname, 'public'), uiExports: { styleSheetPaths: resolve(__dirname, 'public/index.scss'), diff --git a/src/legacy/core_plugins/vis_type_metric/public/legacy.ts b/src/legacy/core_plugins/vis_type_metric/public/legacy.ts index 2ded1a05a8ec4..c5fc86c7e35f5 100644 --- a/src/legacy/core_plugins/vis_type_metric/public/legacy.ts +++ b/src/legacy/core_plugins/vis_type_metric/public/legacy.ts @@ -26,8 +26,8 @@ import { LegacyDependenciesPlugin } from './shim'; import { plugin } from '.'; const plugins: Readonly = { + expressions: npSetup.plugins.expressions, visualizations: visualizationsSetup, - data: npSetup.plugins.data, // Temporary solution // It will be removed when all dependent services are migrated to the new platform. diff --git a/src/legacy/core_plugins/vis_type_metric/public/plugin.ts b/src/legacy/core_plugins/vis_type_metric/public/plugin.ts index b8c6001d1f02e..1c5dbbd03a18d 100644 --- a/src/legacy/core_plugins/vis_type_metric/public/plugin.ts +++ b/src/legacy/core_plugins/vis_type_metric/public/plugin.ts @@ -19,7 +19,7 @@ import { PluginInitializerContext, CoreSetup, CoreStart, Plugin } from '../../../../core/public'; import { LegacyDependenciesPlugin } from './shim'; -import { Plugin as DataPublicPlugin } from '../../../../plugins/data/public'; +import { Plugin as ExpressionsPublicPlugin } from '../../../../plugins/expressions/public'; import { VisualizationsSetup } from '../../visualizations/public'; import { createMetricVisFn } from './metric_vis_fn'; @@ -28,7 +28,7 @@ import { createMetricVisTypeDefinition } from './metric_vis_type'; /** @internal */ export interface MetricVisPluginSetupDependencies { - data: ReturnType; + expressions: ReturnType; visualizations: VisualizationsSetup; __LEGACY: LegacyDependenciesPlugin; } @@ -43,11 +43,11 @@ export class MetricVisPlugin implements Plugin { public setup( core: CoreSetup, - { data, visualizations, __LEGACY }: MetricVisPluginSetupDependencies + { expressions, visualizations, __LEGACY }: MetricVisPluginSetupDependencies ) { __LEGACY.setup(); - data.expressions.registerFunction(createMetricVisFn); + expressions.registerFunction(createMetricVisFn); visualizations.types.registerVisualization(createMetricVisTypeDefinition); } diff --git a/src/legacy/core_plugins/vis_type_table/index.ts b/src/legacy/core_plugins/vis_type_table/index.ts index 2580932f03132..3847dd6b58268 100644 --- a/src/legacy/core_plugins/vis_type_table/index.ts +++ b/src/legacy/core_plugins/vis_type_table/index.ts @@ -25,7 +25,7 @@ import { LegacyPluginApi, LegacyPluginInitializer } from '../../../../src/legacy const tableVisPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPluginApi) => new Plugin({ id: 'table_vis', - require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'data'], + require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'expressions'], publicDir: resolve(__dirname, 'public'), uiExports: { styleSheetPaths: resolve(__dirname, 'public/index.scss'), diff --git a/src/legacy/core_plugins/vis_type_table/public/legacy.ts b/src/legacy/core_plugins/vis_type_table/public/legacy.ts index b6d2a4a152926..5ec181f0e6974 100644 --- a/src/legacy/core_plugins/vis_type_table/public/legacy.ts +++ b/src/legacy/core_plugins/vis_type_table/public/legacy.ts @@ -26,8 +26,8 @@ import { setup as visualizationsSetup } from '../../visualizations/public/legacy import { LegacyDependenciesPlugin } from './shim'; const plugins: Readonly = { + expressions: npSetup.plugins.expressions, visualizations: visualizationsSetup, - data: npSetup.plugins.data, // Temporary solution // It will be removed when all dependent services are migrated to the new platform. diff --git a/src/legacy/core_plugins/vis_type_table/public/plugin.ts b/src/legacy/core_plugins/vis_type_table/public/plugin.ts index 23f6061ad8f93..cc272275fe740 100644 --- a/src/legacy/core_plugins/vis_type_table/public/plugin.ts +++ b/src/legacy/core_plugins/vis_type_table/public/plugin.ts @@ -16,8 +16,8 @@ * specific language governing permissions and limitations * under the License. */ +import { Plugin as ExpressionsPublicPlugin } from '../../../../plugins/expressions/public'; import { VisualizationsSetup } from '../../visualizations/public'; -import { Plugin as DataPublicPlugin } from '../../../../plugins/data/public'; import { PluginInitializerContext, @@ -39,7 +39,7 @@ export interface TableVisualizationDependencies extends LegacyDependenciesPlugin /** @internal */ export interface TablePluginSetupDependencies { - data: ReturnType; + expressions: ReturnType; visualizations: VisualizationsSetup; __LEGACY: LegacyDependenciesPlugin; } @@ -54,14 +54,14 @@ export class TableVisPlugin implements Plugin, void> { public async setup( core: CoreSetup, - { data, visualizations, __LEGACY }: TablePluginSetupDependencies + { expressions, visualizations, __LEGACY }: TablePluginSetupDependencies ) { const visualizationDependencies: Readonly = { uiSettings: core.uiSettings, ...(await __LEGACY.setup()), }; - data.expressions.registerFunction(createTableVisFn); + expressions.registerFunction(createTableVisFn); visualizations.types.registerVisualization(() => createTableVisTypeDefinition(visualizationDependencies) diff --git a/src/legacy/core_plugins/vis_type_tagcloud/index.ts b/src/legacy/core_plugins/vis_type_tagcloud/index.ts index 57641b9014261..a086a5af0261d 100644 --- a/src/legacy/core_plugins/vis_type_tagcloud/index.ts +++ b/src/legacy/core_plugins/vis_type_tagcloud/index.ts @@ -25,7 +25,7 @@ import { LegacyPluginApi, LegacyPluginInitializer } from '../../../../src/legacy const tagCloudPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPluginApi) => new Plugin({ id: 'tagcloud', - require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'data'], + require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'expressions'], publicDir: resolve(__dirname, 'public'), uiExports: { styleSheetPaths: resolve(__dirname, 'public/index.scss'), diff --git a/src/legacy/core_plugins/vis_type_tagcloud/public/legacy.ts b/src/legacy/core_plugins/vis_type_tagcloud/public/legacy.ts index dd2c21fe6477a..f173eff0aef88 100644 --- a/src/legacy/core_plugins/vis_type_tagcloud/public/legacy.ts +++ b/src/legacy/core_plugins/vis_type_tagcloud/public/legacy.ts @@ -25,8 +25,8 @@ import { TagCloudPluginSetupDependencies } from './plugin'; import { plugin } from '.'; const plugins: Readonly = { + expressions: npSetup.plugins.expressions, visualizations: visualizationsSetup, - data: npSetup.plugins.data, }; const pluginInstance = plugin({} as PluginInitializerContext); diff --git a/src/legacy/core_plugins/vis_type_tagcloud/public/plugin.ts b/src/legacy/core_plugins/vis_type_tagcloud/public/plugin.ts index 3947521a9868e..bcb210e9ed081 100644 --- a/src/legacy/core_plugins/vis_type_tagcloud/public/plugin.ts +++ b/src/legacy/core_plugins/vis_type_tagcloud/public/plugin.ts @@ -18,7 +18,7 @@ */ import { PluginInitializerContext, CoreSetup, CoreStart, Plugin } from '../../../../core/public'; -import { Plugin as DataPublicPlugin } from '../../../../plugins/data/public'; +import { Plugin as ExpressionsPublicPlugin } from '../../../../plugins/expressions/public'; import { VisualizationsSetup } from '../../visualizations/public'; import { createTagCloudFn } from './tag_cloud_fn'; @@ -26,7 +26,7 @@ import { createTagCloudTypeDefinition } from './tag_cloud_type'; /** @internal */ export interface TagCloudPluginSetupDependencies { - data: ReturnType; + expressions: ReturnType; visualizations: VisualizationsSetup; } @@ -38,8 +38,8 @@ export class TagCloudPlugin implements Plugin { this.initializerContext = initializerContext; } - public setup(core: CoreSetup, { data, visualizations }: TagCloudPluginSetupDependencies) { - data.expressions.registerFunction(createTagCloudFn); + public setup(core: CoreSetup, { expressions, visualizations }: TagCloudPluginSetupDependencies) { + expressions.registerFunction(createTagCloudFn); visualizations.types.registerVisualization(createTagCloudTypeDefinition); } diff --git a/src/legacy/core_plugins/vis_type_timeseries/index.ts b/src/legacy/core_plugins/vis_type_timeseries/index.ts index 128f8d6a72944..f302e36c046c4 100644 --- a/src/legacy/core_plugins/vis_type_timeseries/index.ts +++ b/src/legacy/core_plugins/vis_type_timeseries/index.ts @@ -30,7 +30,7 @@ import { LegacyPluginApi, LegacyPluginInitializer } from '../../../../src/legacy const metricsPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPluginApi) => new Plugin({ id: 'metrics', - require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'data'], + require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'expressions'], publicDir: resolve(__dirname, 'public'), uiExports: { styleSheetPaths: resolve(__dirname, 'public/index.scss'), diff --git a/src/legacy/core_plugins/vis_type_timeseries/public/legacy.ts b/src/legacy/core_plugins/vis_type_timeseries/public/legacy.ts index 79cfb1b164f0d..17bfc3232c2ad 100644 --- a/src/legacy/core_plugins/vis_type_timeseries/public/legacy.ts +++ b/src/legacy/core_plugins/vis_type_timeseries/public/legacy.ts @@ -25,8 +25,8 @@ import { MetricsPluginSetupDependencies } from './plugin'; import { plugin } from '.'; const plugins: Readonly = { + expressions: npSetup.plugins.expressions, visualizations: visualizationsSetup, - data: npSetup.plugins.data, }; const pluginInstance = plugin({} as PluginInitializerContext); diff --git a/src/legacy/core_plugins/vis_type_timeseries/public/plugin.ts b/src/legacy/core_plugins/vis_type_timeseries/public/plugin.ts index 673bd202b70f2..42ff653e9bfe9 100644 --- a/src/legacy/core_plugins/vis_type_timeseries/public/plugin.ts +++ b/src/legacy/core_plugins/vis_type_timeseries/public/plugin.ts @@ -17,7 +17,7 @@ * under the License. */ import { PluginInitializerContext, CoreSetup, CoreStart, Plugin } from '../../../../core/public'; -import { Plugin as DataPublicPlugin } from '../../../../plugins/data/public'; +import { Plugin as ExpressionsPublicPlugin } from '../../../../plugins/expressions/public'; import { VisualizationsSetup } from '../../visualizations/public'; import { createMetricsFn } from './metrics_fn'; @@ -25,7 +25,7 @@ import { createMetricsTypeDefinition } from './metrics_type'; /** @internal */ export interface MetricsPluginSetupDependencies { - data: ReturnType; + expressions: ReturnType; visualizations: VisualizationsSetup; } @@ -37,8 +37,11 @@ export class MetricsPlugin implements Plugin, void> { this.initializerContext = initializerContext; } - public async setup(core: CoreSetup, { data, visualizations }: MetricsPluginSetupDependencies) { - data.expressions.registerFunction(createMetricsFn); + public async setup( + core: CoreSetup, + { expressions, visualizations }: MetricsPluginSetupDependencies + ) { + expressions.registerFunction(createMetricsFn); visualizations.types.registerVisualization(createMetricsTypeDefinition); } diff --git a/src/legacy/core_plugins/vis_type_vega/index.ts b/src/legacy/core_plugins/vis_type_vega/index.ts index 669ffde8121d5..3c18b548413f4 100644 --- a/src/legacy/core_plugins/vis_type_vega/index.ts +++ b/src/legacy/core_plugins/vis_type_vega/index.ts @@ -28,7 +28,7 @@ const vegaPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPlugin // It is required to change the configuration property // vega.enableExternalUrls -> vis_type_vega.enableExternalUrls id: 'vega', - require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'data'], + require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'expressions'], publicDir: resolve(__dirname, 'public'), uiExports: { styleSheetPaths: resolve(__dirname, 'public/index.scss'), diff --git a/src/legacy/core_plugins/vis_type_vega/public/legacy.ts b/src/legacy/core_plugins/vis_type_vega/public/legacy.ts index ded1e773ac07a..73e03f6d323c2 100644 --- a/src/legacy/core_plugins/vis_type_vega/public/legacy.ts +++ b/src/legacy/core_plugins/vis_type_vega/public/legacy.ts @@ -26,8 +26,8 @@ import { LegacyDependenciesPlugin } from './shim'; import { plugin } from '.'; const plugins: Readonly = { + expressions: npSetup.plugins.expressions, visualizations: visualizationsSetup, - data: npSetup.plugins.data, // Temporary solution // It will be removed when all dependent services are migrated to the new platform. diff --git a/src/legacy/core_plugins/vis_type_vega/public/plugin.ts b/src/legacy/core_plugins/vis_type_vega/public/plugin.ts index 4d90b360bdb69..67fbba7f161d3 100644 --- a/src/legacy/core_plugins/vis_type_vega/public/plugin.ts +++ b/src/legacy/core_plugins/vis_type_vega/public/plugin.ts @@ -24,7 +24,7 @@ import { UiSettingsClientContract, } from '../../../../core/public'; import { LegacyDependenciesPlugin, LegacyDependenciesPluginSetup } from './shim'; -import { Plugin as DataPublicPlugin } from '../../../../plugins/data/public'; +import { Plugin as ExpressionsPublicPlugin } from '../../../../plugins/expressions/public'; import { VisualizationsSetup } from '../../visualizations/public'; import { createVegaFn } from './vega_fn'; @@ -37,7 +37,7 @@ export interface VegaVisualizationDependencies extends LegacyDependenciesPluginS /** @internal */ export interface VegaPluginSetupDependencies { - data: ReturnType; + expressions: ReturnType; visualizations: VisualizationsSetup; __LEGACY: LegacyDependenciesPlugin; } @@ -52,14 +52,14 @@ export class VegaPlugin implements Plugin, void> { public async setup( core: CoreSetup, - { data, visualizations, __LEGACY }: VegaPluginSetupDependencies + { expressions, visualizations, __LEGACY }: VegaPluginSetupDependencies ) { const visualizationDependencies: Readonly = { uiSettings: core.uiSettings, ...(await __LEGACY.setup()), }; - data.expressions.registerFunction(() => createVegaFn(visualizationDependencies)); + expressions.registerFunction(() => createVegaFn(visualizationDependencies)); visualizations.types.registerVisualization(() => createVegaTypeDefinition(visualizationDependencies) diff --git a/src/legacy/ui/public/agg_types/index.ts b/src/legacy/ui/public/agg_types/index.ts index 9b6f4e4143955..8f2b5d6f1f8c9 100644 --- a/src/legacy/ui/public/agg_types/index.ts +++ b/src/legacy/ui/public/agg_types/index.ts @@ -17,6 +17,8 @@ * under the License. */ +// @ts-ignore +import { AggType } from './agg_type'; // @ts-ignore import { countMetricAgg } from './metrics/count'; // @ts-ignore @@ -52,7 +54,7 @@ import { movingAvgMetricAgg } from './metrics/moving_avg'; // @ts-ignore import { serialDiffMetricAgg } from './metrics/serial_diff'; // @ts-ignore -import { dateHistogramBucketAgg } from './buckets/date_histogram'; +import { dateHistogramBucketAgg, setBounds } from './buckets/date_histogram'; // @ts-ignore import { histogramBucketAgg } from './buckets/histogram'; // @ts-ignore @@ -127,3 +129,5 @@ aggTypes.buckets.forEach(aggType => (aggType.type = 'buckets')); export { AggParam } from './agg_params'; export { AggType } from './agg_type'; export { FieldParamType } from './param_types'; +export { BucketAggType } from './buckets/_bucket_agg_type'; +export { setBounds }; diff --git a/src/legacy/ui/public/inspector/view_registry.ts b/src/legacy/ui/public/inspector/view_registry.ts index 199087960ba89..5958be66ca184 100644 --- a/src/legacy/ui/public/inspector/view_registry.ts +++ b/src/legacy/ui/public/inspector/view_registry.ts @@ -31,5 +31,4 @@ export { InspectorViewDescription } from './types'; * * @deprecated */ -export const viewRegistry = - npSetup.plugins.inspector.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.views; +export const viewRegistry = npSetup.plugins.inspector.__LEGACY.views; diff --git a/src/legacy/ui/public/new_platform/__mocks__/helpers.ts b/src/legacy/ui/public/new_platform/__mocks__/helpers.ts index 838d94264848d..0838a3db592a8 100644 --- a/src/legacy/ui/public/new_platform/__mocks__/helpers.ts +++ b/src/legacy/ui/public/new_platform/__mocks__/helpers.ts @@ -20,6 +20,7 @@ /* eslint-disable @kbn/eslint/no-restricted-paths */ import { coreMock } from '../../../../../core/public/mocks'; import { dataPluginMock } from '../../../../../plugins/data/public/mocks'; +import { expressionsPluginMock } from '../../../../../plugins/expressions/public/mocks'; import { inspectorPluginMock } from '../../../../../plugins/inspector/public/mocks'; /* eslint-enable @kbn/eslint/no-restricted-paths */ @@ -27,10 +28,12 @@ export const pluginsMock = { createSetup: () => ({ data: dataPluginMock.createSetupContract(), inspector: inspectorPluginMock.createSetupContract(), + expressions: expressionsPluginMock.createSetupContract(), }), createStart: () => ({ data: dataPluginMock.createStartContract(), inspector: inspectorPluginMock.createStartContract(), + expressions: expressionsPluginMock.createStartContract(), }), }; diff --git a/src/legacy/ui/public/new_platform/new_platform.karma_mock.js b/src/legacy/ui/public/new_platform/new_platform.karma_mock.js index 41a8f4b20e66e..4c8ee74de6d9d 100644 --- a/src/legacy/ui/public/new_platform/new_platform.karma_mock.js +++ b/src/legacy/ui/public/new_platform/new_platform.karma_mock.js @@ -24,16 +24,16 @@ export const npSetup = { chrome: {} }, plugins: { + expressions: { + registerFunction: sinon.fake(), + registerRenderer: sinon.fake(), + registerType: sinon.fake(), + }, data: { - expressions: { - registerFunction: sinon.fake(), - registerRenderer: sinon.fake(), - registerType: sinon.fake(), - }, }, inspector: { registerView: () => undefined, - __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: { + __LEGACY: { views: { register: () => undefined, }, @@ -47,6 +47,11 @@ export const npStart = { chrome: {} }, plugins: { + expressions: { + registerFunction: sinon.fake(), + registerRenderer: sinon.fake(), + registerType: sinon.fake(), + }, data: {}, inspector: { isAvailable: () => false, diff --git a/src/legacy/ui/public/new_platform/new_platform.ts b/src/legacy/ui/public/new_platform/new_platform.ts index 4f55349e3efe2..080c648d77720 100644 --- a/src/legacy/ui/public/new_platform/new_platform.ts +++ b/src/legacy/ui/public/new_platform/new_platform.ts @@ -18,6 +18,7 @@ */ import { LegacyCoreSetup, LegacyCoreStart } from '../../../../core/public'; import { Plugin as DataPlugin } from '../../../../plugins/data/public'; +import { Plugin as ExpressionsPlugin } from '../../../../plugins/expressions/public'; import { Setup as InspectorSetup, Start as InspectorStart, @@ -25,11 +26,13 @@ import { export interface PluginsSetup { data: ReturnType; + expressions: ReturnType; inspector: InspectorSetup; } export interface PluginsStart { data: ReturnType; + expressions: ReturnType; inspector: InspectorStart; } diff --git a/src/legacy/ui/public/vis/agg_config.ts b/src/legacy/ui/public/vis/agg_config.ts index dd3489e93243d..67a4a94d30688 100644 --- a/src/legacy/ui/public/vis/agg_config.ts +++ b/src/legacy/ui/public/vis/agg_config.ts @@ -26,7 +26,7 @@ import _ from 'lodash'; import { i18n } from '@kbn/i18n'; -import { BucketAggType } from 'ui/agg_types/buckets/_bucket_agg_type'; +import { BucketAggType } from 'ui/agg_types'; import { AggGroupNames } from './editors/default/agg_groups'; import { AggType, FieldParamType } from '../agg_types'; // @ts-ignore diff --git a/src/legacy/ui/public/visualize/loader/embedded_visualize_handler.ts b/src/legacy/ui/public/visualize/loader/embedded_visualize_handler.ts index f579310c244cd..a88e5c76fd02f 100644 --- a/src/legacy/ui/public/visualize/loader/embedded_visualize_handler.ts +++ b/src/legacy/ui/public/visualize/loader/embedded_visualize_handler.ts @@ -22,6 +22,7 @@ import { debounce, forEach, get, isEqual } from 'lodash'; import * as Rx from 'rxjs'; import { share } from 'rxjs/operators'; import { i18n } from '@kbn/i18n'; +import { Filter } from '@kbn/es-query'; import { toastNotifications } from 'ui/notify'; // @ts-ignore untyped dependency import { AggConfigs } from 'ui/vis/agg_configs'; @@ -53,7 +54,6 @@ import { VisualizeUpdateParams, } from './types'; import { queryGeohashBounds } from './utils'; -import { Filter } from '../../../../core_plugins/data/public/expressions/lib/_types'; interface EmbeddedVisualizeHandlerParams extends VisualizeLoaderParams { Private: IPrivate; diff --git a/src/legacy/ui/public/visualize/loader/pipeline_helpers/build_pipeline.test.ts b/src/legacy/ui/public/visualize/loader/pipeline_helpers/build_pipeline.test.ts index f88cf5be94d12..a12eeef122313 100644 --- a/src/legacy/ui/public/visualize/loader/pipeline_helpers/build_pipeline.test.ts +++ b/src/legacy/ui/public/visualize/loader/pipeline_helpers/build_pipeline.test.ts @@ -30,7 +30,11 @@ import { Vis, VisState } from 'ui/vis'; import { AggConfig } from 'ui/vis/agg_config'; import { SearchSource } from 'ui/courier'; -jest.mock('ui/agg_types/buckets/date_histogram', () => ({})); +jest.mock('ui/new_platform'); +jest.mock('ui/agg_types/buckets/date_histogram', () => ({ + setBounds: () => {}, + dateHistogramBucketAgg: () => {}, +})); describe('visualize loader pipeline helpers: build pipeline', () => { describe('prepareJson', () => { diff --git a/src/legacy/ui/public/visualize/loader/pipeline_helpers/build_pipeline.ts b/src/legacy/ui/public/visualize/loader/pipeline_helpers/build_pipeline.ts index 6dcd326af00cb..7ac90f7c6a604 100644 --- a/src/legacy/ui/public/visualize/loader/pipeline_helpers/build_pipeline.ts +++ b/src/legacy/ui/public/visualize/loader/pipeline_helpers/build_pipeline.ts @@ -19,11 +19,11 @@ import { cloneDeep, get } from 'lodash'; // @ts-ignore -import { setBounds } from 'ui/agg_types/buckets/date_histogram'; +import { setBounds } from 'ui/agg_types'; import { SearchSource } from 'ui/courier'; import { AggConfig, Vis, VisParams, VisState } from 'ui/vis'; import moment from 'moment'; -import { SerializedFieldFormat } from 'src/plugins/data/common/expressions/types/common'; +import { SerializedFieldFormat } from 'src/plugins/expressions/common/expressions/types/common'; import { createFormat } from './utilities'; interface SchemaConfigParams { diff --git a/src/legacy/ui/public/visualize/loader/pipeline_helpers/utilities.ts b/src/legacy/ui/public/visualize/loader/pipeline_helpers/utilities.ts index 9b9e5c4e5f07e..597f760eb7556 100644 --- a/src/legacy/ui/public/visualize/loader/pipeline_helpers/utilities.ts +++ b/src/legacy/ui/public/visualize/loader/pipeline_helpers/utilities.ts @@ -20,7 +20,7 @@ import { i18n } from '@kbn/i18n'; import { identity } from 'lodash'; import { AggConfig, Vis } from 'ui/vis'; -import { SerializedFieldFormat } from 'src/plugins/data/common/expressions/types/common'; +import { SerializedFieldFormat } from 'src/plugins/expressions/common/expressions/types/common'; // @ts-ignore import { FieldFormat } from '../../../../field_formats/field_format'; // @ts-ignore diff --git a/src/plugins/data/common/index.ts b/src/plugins/data/common/index.ts index af870208f4865..e779be1a1ce99 100644 --- a/src/plugins/data/common/index.ts +++ b/src/plugins/data/common/index.ts @@ -17,4 +17,5 @@ * under the License. */ -export * from './expressions'; +export * from './timefilter/types'; +export * from './query/types'; diff --git a/src/plugins/data/common/types.ts b/src/plugins/data/common/types.ts index 6325943c94e0a..47b437629d7cf 100644 --- a/src/plugins/data/common/types.ts +++ b/src/plugins/data/common/types.ts @@ -17,4 +17,4 @@ * under the License. */ -export * from './timefilter/types'; +export * from '.'; diff --git a/src/plugins/data/public/index.ts b/src/plugins/data/public/index.ts index 13b9ea71b80f2..7b71fb4ebc533 100644 --- a/src/plugins/data/public/index.ts +++ b/src/plugins/data/public/index.ts @@ -20,10 +20,12 @@ import { PluginInitializerContext } from '../../../core/public'; import { DataPublicPlugin } from './plugin'; -export { RefreshInterval, TimeRange } from './types'; +export { RefreshInterval, TimeRange, Query } from './types'; export function plugin(initializerContext: PluginInitializerContext) { return new DataPublicPlugin(initializerContext); } export { DataPublicPlugin as Plugin }; + +export * from '../common'; diff --git a/src/plugins/data/public/mocks.ts b/src/plugins/data/public/mocks.ts index a98a32b3962ad..f33c065d60673 100644 --- a/src/plugins/data/public/mocks.ts +++ b/src/plugins/data/public/mocks.ts @@ -22,24 +22,7 @@ export type Setup = jest.Mocked>; export type Start = jest.Mocked>; const createSetupContract = (): Setup => { - const setupContract: Setup = { - expressions: { - registerFunction: jest.fn(), - registerRenderer: jest.fn(), - registerType: jest.fn(), - __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: { - functions: { - register: () => {}, - } as any, - renderers: { - register: () => {}, - } as any, - types: { - register: () => {}, - } as any, - }, - }, - }; + const setupContract: Setup = {}; return setupContract; }; diff --git a/src/plugins/data/public/plugin.ts b/src/plugins/data/public/plugin.ts index 96dcb7ca27fad..bf5e37a972de7 100644 --- a/src/plugins/data/public/plugin.ts +++ b/src/plugins/data/public/plugin.ts @@ -18,18 +18,12 @@ */ import { PluginInitializerContext, CoreSetup, CoreStart, Plugin } from '../../../core/public'; -import { ExpressionsService } from './expressions/expressions_service'; export class DataPublicPlugin implements Plugin<{}> { - expressions = new ExpressionsService(); - constructor(initializerContext: PluginInitializerContext) {} public setup(core: CoreSetup) { - const expressions = this.expressions.setup(); - return { - expressions, - }; + return {}; } public start(core: CoreStart) {} diff --git a/src/plugins/data/common/expressions/create_error.ts b/src/plugins/expressions/common/expressions/create_error.ts similarity index 100% rename from src/plugins/data/common/expressions/create_error.ts rename to src/plugins/expressions/common/expressions/create_error.ts diff --git a/src/plugins/data/common/expressions/expression_types/boolean.ts b/src/plugins/expressions/common/expressions/expression_types/boolean.ts similarity index 100% rename from src/plugins/data/common/expressions/expression_types/boolean.ts rename to src/plugins/expressions/common/expressions/expression_types/boolean.ts diff --git a/src/plugins/data/common/expressions/expression_types/datatable.ts b/src/plugins/expressions/common/expressions/expression_types/datatable.ts similarity index 100% rename from src/plugins/data/common/expressions/expression_types/datatable.ts rename to src/plugins/expressions/common/expressions/expression_types/datatable.ts diff --git a/src/plugins/data/common/expressions/expression_types/error.ts b/src/plugins/expressions/common/expressions/expression_types/error.ts similarity index 100% rename from src/plugins/data/common/expressions/expression_types/error.ts rename to src/plugins/expressions/common/expressions/expression_types/error.ts diff --git a/src/plugins/data/common/expressions/expression_types/filter.ts b/src/plugins/expressions/common/expressions/expression_types/filter.ts similarity index 100% rename from src/plugins/data/common/expressions/expression_types/filter.ts rename to src/plugins/expressions/common/expressions/expression_types/filter.ts diff --git a/src/plugins/data/common/expressions/expression_types/image.ts b/src/plugins/expressions/common/expressions/expression_types/image.ts similarity index 100% rename from src/plugins/data/common/expressions/expression_types/image.ts rename to src/plugins/expressions/common/expressions/expression_types/image.ts diff --git a/src/plugins/data/common/expressions/expression_types/index.ts b/src/plugins/expressions/common/expressions/expression_types/index.ts similarity index 100% rename from src/plugins/data/common/expressions/expression_types/index.ts rename to src/plugins/expressions/common/expressions/expression_types/index.ts diff --git a/src/plugins/data/common/expressions/expression_types/kibana_context.ts b/src/plugins/expressions/common/expressions/expression_types/kibana_context.ts similarity index 92% rename from src/plugins/data/common/expressions/expression_types/kibana_context.ts rename to src/plugins/expressions/common/expressions/expression_types/kibana_context.ts index 0a3e8a4db87f6..92debafded76e 100644 --- a/src/plugins/data/common/expressions/expression_types/kibana_context.ts +++ b/src/plugins/expressions/common/expressions/expression_types/kibana_context.ts @@ -18,8 +18,7 @@ */ import { Filter } from '@kbn/es-query'; -import { TimeRange } from 'src/plugins/data/public'; -import { Query } from '../../query/types'; +import { TimeRange, Query } from 'src/plugins/data/public'; const name = 'kibana_context'; diff --git a/src/plugins/data/common/expressions/expression_types/kibana_datatable.ts b/src/plugins/expressions/common/expressions/expression_types/kibana_datatable.ts similarity index 100% rename from src/plugins/data/common/expressions/expression_types/kibana_datatable.ts rename to src/plugins/expressions/common/expressions/expression_types/kibana_datatable.ts diff --git a/src/plugins/data/common/expressions/expression_types/null.ts b/src/plugins/expressions/common/expressions/expression_types/null.ts similarity index 100% rename from src/plugins/data/common/expressions/expression_types/null.ts rename to src/plugins/expressions/common/expressions/expression_types/null.ts diff --git a/src/plugins/data/common/expressions/expression_types/number.ts b/src/plugins/expressions/common/expressions/expression_types/number.ts similarity index 100% rename from src/plugins/data/common/expressions/expression_types/number.ts rename to src/plugins/expressions/common/expressions/expression_types/number.ts diff --git a/src/plugins/data/common/expressions/expression_types/pointseries.ts b/src/plugins/expressions/common/expressions/expression_types/pointseries.ts similarity index 100% rename from src/plugins/data/common/expressions/expression_types/pointseries.ts rename to src/plugins/expressions/common/expressions/expression_types/pointseries.ts diff --git a/src/plugins/data/common/expressions/expression_types/range.ts b/src/plugins/expressions/common/expressions/expression_types/range.ts similarity index 100% rename from src/plugins/data/common/expressions/expression_types/range.ts rename to src/plugins/expressions/common/expressions/expression_types/range.ts diff --git a/src/plugins/data/common/expressions/expression_types/render.ts b/src/plugins/expressions/common/expressions/expression_types/render.ts similarity index 100% rename from src/plugins/data/common/expressions/expression_types/render.ts rename to src/plugins/expressions/common/expressions/expression_types/render.ts diff --git a/src/plugins/data/common/expressions/expression_types/shape.ts b/src/plugins/expressions/common/expressions/expression_types/shape.ts similarity index 100% rename from src/plugins/data/common/expressions/expression_types/shape.ts rename to src/plugins/expressions/common/expressions/expression_types/shape.ts diff --git a/src/plugins/data/common/expressions/expression_types/string.ts b/src/plugins/expressions/common/expressions/expression_types/string.ts similarity index 100% rename from src/plugins/data/common/expressions/expression_types/string.ts rename to src/plugins/expressions/common/expressions/expression_types/string.ts diff --git a/src/plugins/data/common/expressions/expression_types/style.ts b/src/plugins/expressions/common/expressions/expression_types/style.ts similarity index 100% rename from src/plugins/data/common/expressions/expression_types/style.ts rename to src/plugins/expressions/common/expressions/expression_types/style.ts diff --git a/src/plugins/expressions/common/expressions/index.ts b/src/plugins/expressions/common/expressions/index.ts new file mode 100644 index 0000000000000..8c8dd7eb26ca5 --- /dev/null +++ b/src/plugins/expressions/common/expressions/index.ts @@ -0,0 +1,23 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export * from './types'; +export { Type } from './interpreter'; +export { interpreterProvider } from './interpreter_provider'; +export { serializeProvider, getType } from './serialize_provider'; diff --git a/src/plugins/data/common/expressions/interpreter.ts b/src/plugins/expressions/common/expressions/interpreter.ts similarity index 100% rename from src/plugins/data/common/expressions/interpreter.ts rename to src/plugins/expressions/common/expressions/interpreter.ts diff --git a/src/plugins/data/common/expressions/interpreter_provider.ts b/src/plugins/expressions/common/expressions/interpreter_provider.ts similarity index 100% rename from src/plugins/data/common/expressions/interpreter_provider.ts rename to src/plugins/expressions/common/expressions/interpreter_provider.ts diff --git a/src/plugins/data/common/expressions/serialize_provider.ts b/src/plugins/expressions/common/expressions/serialize_provider.ts similarity index 100% rename from src/plugins/data/common/expressions/serialize_provider.ts rename to src/plugins/expressions/common/expressions/serialize_provider.ts diff --git a/src/plugins/data/common/expressions/types/arguments.ts b/src/plugins/expressions/common/expressions/types/arguments.ts similarity index 100% rename from src/plugins/data/common/expressions/types/arguments.ts rename to src/plugins/expressions/common/expressions/types/arguments.ts diff --git a/src/plugins/data/common/expressions/types/common.ts b/src/plugins/expressions/common/expressions/types/common.ts similarity index 100% rename from src/plugins/data/common/expressions/types/common.ts rename to src/plugins/expressions/common/expressions/types/common.ts diff --git a/src/plugins/data/common/expressions/types/functions.ts b/src/plugins/expressions/common/expressions/types/functions.ts similarity index 100% rename from src/plugins/data/common/expressions/types/functions.ts rename to src/plugins/expressions/common/expressions/types/functions.ts diff --git a/src/plugins/data/common/expressions/types/index.ts b/src/plugins/expressions/common/expressions/types/index.ts similarity index 100% rename from src/plugins/data/common/expressions/types/index.ts rename to src/plugins/expressions/common/expressions/types/index.ts diff --git a/src/plugins/data/common/expressions/types/types.ts b/src/plugins/expressions/common/expressions/types/types.ts similarity index 100% rename from src/plugins/data/common/expressions/types/types.ts rename to src/plugins/expressions/common/expressions/types/types.ts diff --git a/src/plugins/expressions/common/index.ts b/src/plugins/expressions/common/index.ts new file mode 100644 index 0000000000000..af870208f4865 --- /dev/null +++ b/src/plugins/expressions/common/index.ts @@ -0,0 +1,20 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export * from './expressions'; diff --git a/src/plugins/expressions/kibana.json b/src/plugins/expressions/kibana.json new file mode 100644 index 0000000000000..ce2b1854cf415 --- /dev/null +++ b/src/plugins/expressions/kibana.json @@ -0,0 +1,6 @@ +{ + "id": "expressions", + "version": "kibana", + "server": false, + "ui": true +} diff --git a/src/plugins/data/public/expressions/expressions_service.ts b/src/plugins/expressions/public/expressions/expressions_service.ts similarity index 72% rename from src/plugins/data/public/expressions/expressions_service.ts rename to src/plugins/expressions/public/expressions/expressions_service.ts index 329dadc81df28..77c3d43f61900 100644 --- a/src/plugins/data/public/expressions/expressions_service.ts +++ b/src/plugins/expressions/public/expressions/expressions_service.ts @@ -20,15 +20,30 @@ import { FunctionsRegistry, RenderFunctionsRegistry, TypesRegistry } from './interpreter'; import { ExpressionType } from '../../common/expressions/types'; +export interface ExpressionsSetupContract { + registerFunction: (fn: any) => void; + registerRenderer: (renderer: any) => void; + registerType: (type: () => ExpressionType) => void; + __LEGACY: { + functions: FunctionsRegistry; + renderers: RenderFunctionsRegistry; + types: TypesRegistry; + }; +} + +export type ExpressionsStartContract = ExpressionsSetupContract; + export class ExpressionsService { private readonly functions = new FunctionsRegistry(); private readonly renderers = new RenderFunctionsRegistry(); private readonly types = new TypesRegistry(); + private setupApi!: ExpressionsSetupContract; + public setup() { const { functions, renderers, types } = this; - return { + this.setupApi = { registerFunction: (fn: any) => { this.functions.register(fn); }, @@ -38,11 +53,17 @@ export class ExpressionsService { registerType: (type: () => ExpressionType) => { this.types.register(type); }, - __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: { + __LEGACY: { functions, renderers, types, }, }; + + return this.setupApi; + } + + public start(): ExpressionsStartContract { + return this.setupApi as ExpressionsStartContract; } } diff --git a/src/plugins/data/public/expressions/interpreter.ts b/src/plugins/expressions/public/expressions/interpreter.ts similarity index 100% rename from src/plugins/data/public/expressions/interpreter.ts rename to src/plugins/expressions/public/expressions/interpreter.ts diff --git a/src/plugins/expressions/public/index.ts b/src/plugins/expressions/public/index.ts new file mode 100644 index 0000000000000..21f89db140e5a --- /dev/null +++ b/src/plugins/expressions/public/index.ts @@ -0,0 +1,29 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { PluginInitializerContext } from '../../../core/public'; +import { ExpressionsPublicPlugin } from './plugin'; + +export function plugin(initializerContext: PluginInitializerContext) { + return new ExpressionsPublicPlugin(initializerContext); +} + +export { ExpressionsPublicPlugin as Plugin }; + +export * from '../common'; diff --git a/src/plugins/expressions/public/mocks.ts b/src/plugins/expressions/public/mocks.ts new file mode 100644 index 0000000000000..56ff343e70ac4 --- /dev/null +++ b/src/plugins/expressions/public/mocks.ts @@ -0,0 +1,67 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { Plugin } from '.'; + +export type Setup = jest.Mocked>; +export type Start = jest.Mocked>; + +const createSetupContract = (): Setup => { + const setupContract: Setup = { + registerFunction: jest.fn(), + registerRenderer: jest.fn(), + registerType: jest.fn(), + __LEGACY: { + functions: { + register: () => {}, + } as any, + renderers: { + register: () => {}, + } as any, + types: { + register: () => {}, + } as any, + }, + }; + return setupContract; +}; + +const createStartContract = (): Start => { + const startContract: Start = { + registerFunction: jest.fn(), + registerRenderer: jest.fn(), + registerType: jest.fn(), + __LEGACY: { + functions: { + register: () => {}, + } as any, + renderers: { + register: () => {}, + } as any, + types: { + register: () => {}, + } as any, + }, + }; + return startContract; +}; + +export const expressionsPluginMock = { + createSetupContract, + createStartContract, +}; diff --git a/src/plugins/expressions/public/plugin.ts b/src/plugins/expressions/public/plugin.ts new file mode 100644 index 0000000000000..b301981f58801 --- /dev/null +++ b/src/plugins/expressions/public/plugin.ts @@ -0,0 +1,47 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { PluginInitializerContext, CoreSetup, CoreStart, Plugin } from '../../../core/public'; +import { + ExpressionsService, + ExpressionsSetupContract, + ExpressionsStartContract, +} from './expressions/expressions_service'; + +export class ExpressionsPublicPlugin + implements Plugin<{}, {}, ExpressionsSetupContract, ExpressionsStartContract> { + private readonly expressions = new ExpressionsService(); + + constructor(initializerContext: PluginInitializerContext) {} + + public setup(core: CoreSetup): ExpressionsSetupContract { + const expressions = this.expressions.setup(); + return { + ...expressions, + }; + } + + public start(core: CoreStart): ExpressionsStartContract { + const expressions = this.expressions.start(); + return { + ...expressions, + }; + } + public stop() {} +} diff --git a/src/plugins/inspector/public/mocks.ts b/src/plugins/inspector/public/mocks.ts index 0e605b1dd3069..451daf4b8dc1a 100644 --- a/src/plugins/inspector/public/mocks.ts +++ b/src/plugins/inspector/public/mocks.ts @@ -32,7 +32,7 @@ const createSetupContract = (): Setup => { const setupContract: Setup = { registerView: jest.fn(views.register.bind(views)), - __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: { + __LEGACY: { views, }, }; diff --git a/src/plugins/inspector/public/plugin.tsx b/src/plugins/inspector/public/plugin.tsx index ca147efc5b41e..00714c5a8205c 100644 --- a/src/plugins/inspector/public/plugin.tsx +++ b/src/plugins/inspector/public/plugin.tsx @@ -29,7 +29,7 @@ import { getRequestsViewDescription, getDataViewDescription } from './views'; export interface Setup { registerView: InspectorViewRegistry['register']; - __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: { + __LEGACY: { views: InspectorViewRegistry; }; } @@ -74,7 +74,7 @@ export class InspectorPublicPlugin implements Plugin { return { registerView: this.views!.register.bind(this.views), - __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: { + __LEGACY: { views: this.views, }, }; diff --git a/x-pack/legacy/plugins/canvas/canvas_plugin_src/expression_types/embeddable.ts b/x-pack/legacy/plugins/canvas/canvas_plugin_src/expression_types/embeddable.ts index 1a0774619fce4..cad46e81ffc0c 100644 --- a/x-pack/legacy/plugins/canvas/canvas_plugin_src/expression_types/embeddable.ts +++ b/x-pack/legacy/plugins/canvas/canvas_plugin_src/expression_types/embeddable.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { ExpressionType } from 'src/plugins/data/common/expressions'; +import { ExpressionType } from 'src/plugins/expressions/common'; import { EmbeddableInput } from 'src/legacy/core_plugins/embeddable_api/public/np_ready/public'; import { EmbeddableTypes } from './embeddable_types'; diff --git a/x-pack/legacy/plugins/canvas/types/elements.ts b/x-pack/legacy/plugins/canvas/types/elements.ts index 52473e47793db..b3af9e5eee70d 100644 --- a/x-pack/legacy/plugins/canvas/types/elements.ts +++ b/x-pack/legacy/plugins/canvas/types/elements.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { ExpressionAST } from 'src/plugins/data/common/expressions'; +import { ExpressionAST } from 'src/plugins/expressions/common/expressions'; import { CanvasElement } from '.'; export interface ElementSpec { diff --git a/x-pack/legacy/plugins/canvas/types/index.ts b/x-pack/legacy/plugins/canvas/types/index.ts index 99d3ea9b85b42..8c857d8d5f3a9 100644 --- a/x-pack/legacy/plugins/canvas/types/index.ts +++ b/x-pack/legacy/plugins/canvas/types/index.ts @@ -10,7 +10,7 @@ export { BackgroundRepeat, BackgroundSize, } from '../../../../../src/legacy/core_plugins/interpreter/public/types/style'; -export * from '../../../../../src/plugins/data/common/expressions/types'; +export * from '../../../../../src/plugins/expressions/common'; export * from './assets'; export * from './canvas'; export * from './elements'; diff --git a/x-pack/legacy/plugins/canvas/types/state.ts b/x-pack/legacy/plugins/canvas/types/state.ts index dff4b77120c5d..7dcc44c59119f 100644 --- a/x-pack/legacy/plugins/canvas/types/state.ts +++ b/x-pack/legacy/plugins/canvas/types/state.ts @@ -13,7 +13,7 @@ import { Render, Style, Range, -} from 'src/plugins/data/common/expressions/expression_types'; +} from 'src/plugins/expressions/common/expressions/expression_types'; import { CanvasFunction } from './functions'; import { AssetType } from './assets'; import { CanvasWorkpad } from './canvas';