From 21b9b36c94d73afb0469ac5f7ee608b20695d213 Mon Sep 17 00:00:00 2001 From: Alexey Antonov Date: Wed, 12 Aug 2020 14:05:23 +0300 Subject: [PATCH 01/27] [Vega] add functional tests for Vega visualization (#74097) * [Vega] [Inspector] add functional tests for Request tab * add some tests for Vega Debug tab * add clipboard permissions for webdriver * add smoke tests for data grid * fix CI * add some tests for vega expression funcitons * change order * Update _vega_chart.ts * Rename dagta_grid.ts to data_grid.ts * Update index.ts * Update data_grid.ts * stabilize tests Co-authored-by: Elastic Machine --- .../public/components/vega_actions_menu.tsx | 2 +- .../vega_inspector/components/spec_viewer.tsx | 8 +- .../vega_inspector/vega_data_inspector.tsx | 3 + test/functional/apps/visualize/_vega_chart.ts | 193 +++++++++++++++++- .../page_objects/vega_chart_page.ts | 65 +++++- test/functional/services/common/browser.ts | 12 ++ test/functional/services/data_grid.ts | 55 +++++ test/functional/services/index.ts | 9 +- test/functional/services/inspector.ts | 12 ++ test/functional/services/remote/webdriver.ts | 12 +- .../services/visualizations/index.ts | 1 + .../visualizations/vega_debug_inspector.ts | 68 ++++++ 12 files changed, 422 insertions(+), 18 deletions(-) create mode 100644 test/functional/services/data_grid.ts create mode 100644 test/functional/services/visualizations/vega_debug_inspector.ts diff --git a/src/plugins/vis_type_vega/public/components/vega_actions_menu.tsx b/src/plugins/vis_type_vega/public/components/vega_actions_menu.tsx index f10954df432c2..33fa1ceefd3d5 100644 --- a/src/plugins/vis_type_vega/public/components/vega_actions_menu.tsx +++ b/src/plugins/vis_type_vega/public/components/vega_actions_menu.tsx @@ -70,7 +70,7 @@ function VegaActionsMenu({ formatHJson, formatJson }: VegaActionsMenuProps) { return ( {
{(copy) => ( - + {copyToClipboardLabel} )} diff --git a/src/plugins/vis_type_vega/public/vega_inspector/vega_data_inspector.tsx b/src/plugins/vis_type_vega/public/vega_inspector/vega_data_inspector.tsx index 3b9427c96e62a..6dfa7a23c4fe8 100644 --- a/src/plugins/vis_type_vega/public/vega_inspector/vega_data_inspector.tsx +++ b/src/plugins/vis_type_vega/public/vega_inspector/vega_data_inspector.tsx @@ -47,11 +47,13 @@ export const VegaDataInspector = ({ adapters }: VegaDataInspectorProps) => { id: 'data-viewer--id', name: dataSetsLabel, content: , + 'data-test-subj': 'vegaDataInspectorDataViewerButton', }, { id: 'signal-viewer--id', name: signalValuesLabel, content: , + 'data-test-subj': 'vegaDataInspectorSignalViewerButton', }, { id: 'spec-viewer--id', @@ -59,6 +61,7 @@ export const VegaDataInspector = ({ adapters }: VegaDataInspectorProps) => { content: ( ), + 'data-test-subj': 'vegaDataInspectorSpecViewerButton', }, ]; diff --git a/test/functional/apps/visualize/_vega_chart.ts b/test/functional/apps/visualize/_vega_chart.ts index a1ed8460f1b22..b59d9590bb62a 100644 --- a/test/functional/apps/visualize/_vega_chart.ts +++ b/test/functional/apps/visualize/_vega_chart.ts @@ -16,10 +16,25 @@ * specific language governing permissions and limitations * under the License. */ - +import { unzip } from 'lodash'; import expect from '@kbn/expect'; import { FtrProviderContext } from '../../ftr_provider_context'; +const getTestSpec = (expression: string) => ` +{ +config: { "kibana": {"renderer": "svg"} } +$schema: https://vega.github.io/schema/vega/v5.json +marks: [{ + type: text + encode: { update: { text: { value: "Test" } } } +}] +signals: [ { + on: [{ + events: click + update: ${expression} + }] +}]}`; + export default function ({ getPageObjects, getService }: FtrProviderContext) { const PageObjects = getPageObjects([ 'timePicker', @@ -29,7 +44,11 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { 'vegaChart', ]); const filterBar = getService('filterBar'); + const inspector = getService('inspector'); + const vegaDebugInspectorView = getService('vegaDebugInspector'); const log = getService('log'); + const retry = getService('retry'); + const browser = getService('browser'); describe('vega chart in visualize app', () => { before(async () => { @@ -88,5 +107,177 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { }); }); }); + + describe('Inspector Panel', () => { + it('should have inspector enabled', async () => { + await inspector.expectIsEnabled(); + }); + + describe('Request Tab', () => { + beforeEach(async () => { + await inspector.open(); + }); + + afterEach(async () => { + await inspector.close(); + }); + + it('should contain "Statistics", "Request", "Response" tabs', async () => { + await inspector.openInspectorRequestsView(); + + for (const getFn of [ + inspector.getOpenRequestDetailRequestButton, + inspector.getOpenRequestDetailResponseButton, + inspector.getOpenRequestStatisticButton, + ]) { + await retry.try(async () => { + const requestStatisticTab = await getFn(); + + expect(await requestStatisticTab.isEnabled()).to.be(true); + }); + } + }); + + it('should set the default query name if not given in the schema', async () => { + const requests = await inspector.getRequestNames(); + + expect(requests).to.be('Unnamed request #0'); + }); + + it('should log the request statistic', async () => { + await inspector.openInspectorRequestsView(); + const rawTableData = await inspector.getTableData(); + + expect(unzip(rawTableData)[0].join(', ')).to.be( + 'Hits, Hits (total), Query time, Request timestamp' + ); + }); + }); + + describe('Debug Tab', () => { + beforeEach(async () => { + await inspector.open(); + }); + + afterEach(async () => { + await inspector.close(); + }); + + it('should contain "Data Sets", "Signal Values", "Spec" tabs', async () => { + await vegaDebugInspectorView.openVegaDebugInspectorView(); + + for (const getFn of [ + vegaDebugInspectorView.getOpenDataViewerButton, + vegaDebugInspectorView.getOpenSignalViewerButton, + vegaDebugInspectorView.getOpenSpecViewerButton, + ]) { + await retry.try(async () => { + const requestStatisticTab = await getFn(); + + expect(await requestStatisticTab.isEnabled()).to.be(true); + }); + } + }); + + it('should contain data on "Signal Values" tab', async () => { + await vegaDebugInspectorView.openVegaDebugInspectorView(); + await vegaDebugInspectorView.navigateToSignalViewerTab(); + + const { rows, columns } = await vegaDebugInspectorView.getGridTableData(); + + expect(columns.join(', ')).to.be('Signal, Value'); + expect(rows.length).to.be.greaterThan(0); + expect(rows[0].length).to.be(2); + }); + + it('should contain data on "Signal Values" tab', async () => { + await vegaDebugInspectorView.openVegaDebugInspectorView(); + await vegaDebugInspectorView.navigateToDataViewerTab(); + + const { rows, columns } = await vegaDebugInspectorView.getGridTableData(); + + expect(columns.length).to.be.greaterThan(0); + expect(rows.length).to.be.greaterThan(0); + }); + + it('should be able to copy vega spec to clipboard', async () => { + await vegaDebugInspectorView.openVegaDebugInspectorView(); + await vegaDebugInspectorView.navigateToSpecViewerTab(); + + const copyCopyToClipboardButton = await vegaDebugInspectorView.getCopyClipboardButton(); + + expect(await copyCopyToClipboardButton.isEnabled()).to.be(true); + + // The "clipboard-read" permission of the Permissions API must be granted + if (!(await browser.checkBrowserPermission('clipboard-read'))) { + return; + } + + await copyCopyToClipboardButton.click(); + + expect( + (await browser.getClipboardValue()).includes( + '"$schema": "https://vega.github.io/schema/vega-lite/' + ) + ).to.be(true); + }); + }); + }); + + describe('Vega extension functions', () => { + beforeEach(async () => { + await filterBar.removeAllFilters(); + }); + + const fillSpecAndGo = async (newSpec: string) => { + await PageObjects.vegaChart.fillSpec(newSpec); + await PageObjects.visEditor.clickGo(); + + const viewContainer = await PageObjects.vegaChart.getViewContainer(); + const textElement = await viewContainer.findByTagName('text'); + + await textElement.click(); + }; + + it('should update global time range by calling "kibanaSetTimeFilter" expression', async () => { + await fillSpecAndGo(getTestSpec('kibanaSetTimeFilter("2019", "2020")')); + + const currentTimeRange = await PageObjects.timePicker.getTimeConfig(); + + expect(currentTimeRange.start).to.be('Jan 1, 2019 @ 00:00:00.000'); + expect(currentTimeRange.end).to.be('Jan 1, 2020 @ 00:00:00.000'); + }); + + it('should set filter by calling "kibanaAddFilter" expression', async () => { + await fillSpecAndGo( + getTestSpec('kibanaAddFilter({ query_string: { query: "response:200" }})') + ); + + expect(await filterBar.getFilterCount()).to.be(1); + }); + + it('should remove filter by calling "kibanaRemoveFilter" expression', async () => { + await filterBar.addFilter('response', 'is', '200'); + + expect(await filterBar.getFilterCount()).to.be(1); + + await fillSpecAndGo( + getTestSpec('kibanaRemoveFilter({ match_phrase: { response: "200" }})') + ); + + expect(await filterBar.getFilterCount()).to.be(0); + }); + + it('should remove all filters by calling "kibanaRemoveAllFilters" expression', async () => { + await filterBar.addFilter('response', 'is', '200'); + await filterBar.addFilter('response', 'is', '500'); + + expect(await filterBar.getFilterCount()).to.be(2); + + await fillSpecAndGo(getTestSpec('kibanaRemoveAllFilters()')); + + expect(await filterBar.getFilterCount()).to.be(0); + }); + }); }); } diff --git a/test/functional/page_objects/vega_chart_page.ts b/test/functional/page_objects/vega_chart_page.ts index b9906911b00f1..1173c35af3384 100644 --- a/test/functional/page_objects/vega_chart_page.ts +++ b/test/functional/page_objects/vega_chart_page.ts @@ -18,8 +18,14 @@ */ import { Key } from 'selenium-webdriver'; +import expect from '@kbn/expect'; import { FtrProviderContext } from '../ftr_provider_context'; +const compareSpecs = (first: string, second: string) => { + const normalizeSpec = (spec: string) => spec.replace(/[\n ]/g, ''); + return normalizeSpec(first) === normalizeSpec(second); +}; + export function VegaChartPageProvider({ getService, getPageObjects, @@ -28,24 +34,57 @@ export function VegaChartPageProvider({ const testSubjects = getService('testSubjects'); const browser = getService('browser'); const { common } = getPageObjects(['common']); + const retry = getService('retry'); class VegaChartPage { - public async getSpec() { + public getEditor() { + return testSubjects.find('vega-editor'); + } + + public getViewContainer() { + return find.byCssSelector('div.vgaVis__view'); + } + + public getControlContainer() { + return find.byCssSelector('div.vgaVis__controls'); + } + + public async getRawSpec() { // Adapted from console_page.js:getVisibleTextFromAceEditor(). Is there a common utilities file? - const editor = await testSubjects.find('vega-editor'); + const editor = await this.getEditor(); const lines = await editor.findAllByClassName('ace_line_group'); - const linesText = await Promise.all( + + return await Promise.all( lines.map(async (line) => { return await line.getVisibleText(); }) ); - return linesText.join('\n'); } - public async typeInSpec(text: string) { - const editor = await testSubjects.find('vega-editor'); + public async getSpec() { + return (await this.getRawSpec()).join('\n'); + } + + public async focusEditor() { + const editor = await this.getEditor(); const textarea = await editor.findByClassName('ace_content'); + await textarea.click(); + } + + public async fillSpec(newSpec: string) { + await retry.try(async () => { + await this.cleanSpec(); + await this.focusEditor(); + await browser.pressKeys(newSpec); + + expect(compareSpecs(await this.getSpec(), newSpec)).to.be(true); + }); + } + + public async typeInSpec(text: string) { + await this.focusEditor(); + let repeats = 20; while (--repeats > 0) { await browser.pressKeys(Key.ARROW_UP); @@ -55,12 +94,16 @@ export function VegaChartPageProvider({ await browser.pressKeys(text); } - public async getViewContainer() { - return await find.byCssSelector('div.vgaVis__view'); - } + public async cleanSpec() { + const editor = await this.getEditor(); + const aceGutter = await editor.findByClassName('ace_gutter'); + + await retry.try(async () => { + await aceGutter.doubleClick(); + await browser.pressKeys(Key.BACK_SPACE); - public async getControlContainer() { - return await find.byCssSelector('div.vgaVis__controls'); + expect(await this.getSpec()).to.be(''); + }); } public async getYAxisLabels() { diff --git a/test/functional/services/common/browser.ts b/test/functional/services/common/browser.ts index b0eec5e24f635..e81845023a8fa 100644 --- a/test/functional/services/common/browser.ts +++ b/test/functional/services/common/browser.ts @@ -489,5 +489,17 @@ export async function BrowserProvider({ getService }: FtrProviderContext) { const _id = idOrElement instanceof WebElementWrapper ? idOrElement._webElement : idOrElement; await driver.switchTo().frame(_id); } + + public async checkBrowserPermission(permission: string): Promise { + const result: any = await driver.executeAsyncScript( + `navigator.permissions.query({name:'${permission}'}).then(arguments[0])` + ); + + return Boolean(result?.state === 'granted'); + } + + public getClipboardValue(): Promise { + return driver.executeAsyncScript('navigator.clipboard.readText().then(arguments[0])'); + } })(); } diff --git a/test/functional/services/data_grid.ts b/test/functional/services/data_grid.ts new file mode 100644 index 0000000000000..40157caab5756 --- /dev/null +++ b/test/functional/services/data_grid.ts @@ -0,0 +1,55 @@ +/* + * 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 { FtrProviderContext } from '../ftr_provider_context'; + +interface TabbedGridData { + columns: string[]; + rows: string[][]; +} + +export function DataGridProvider({ getService }: FtrProviderContext) { + const find = getService('find'); + + class DataGrid { + async getDataGridTableData(): Promise { + const table = await find.byCssSelector('.euiDataGrid'); + const $ = await table.parseDomContent(); + + const columns = $('.euiDataGridHeaderCell__content') + .toArray() + .map((cell) => $(cell).text()); + const rows = $.findTestSubjects('dataGridRow') + .toArray() + .map((row) => + $(row) + .find('.euiDataGridRowCell__truncate') + .toArray() + .map((cell) => $(cell).text()) + ); + + return { + columns, + rows, + }; + } + } + + return new DataGrid(); +} diff --git a/test/functional/services/index.ts b/test/functional/services/index.ts index 7891a6b00f729..4c97d672bae2e 100644 --- a/test/functional/services/index.ts +++ b/test/functional/services/index.ts @@ -47,7 +47,12 @@ import { RemoteProvider } from './remote'; import { RenderableProvider } from './renderable'; import { TableProvider } from './table'; import { ToastsProvider } from './toasts'; -import { PieChartProvider, ElasticChartProvider } from './visualizations'; +import { DataGridProvider } from './data_grid'; +import { + PieChartProvider, + ElasticChartProvider, + VegaDebugInspectorViewProvider, +} from './visualizations'; import { ListingTableProvider } from './listing_table'; import { SavedQueryManagementComponentProvider } from './saved_query_management_component'; import { KibanaSupertestProvider } from './supertest'; @@ -72,12 +77,14 @@ export const services = { dashboardPanelActions: DashboardPanelActionsProvider, flyout: FlyoutProvider, comboBox: ComboBoxProvider, + dataGrid: DataGridProvider, embedding: EmbeddingProvider, renderable: RenderableProvider, table: TableProvider, browser: BrowserProvider, pieChart: PieChartProvider, inspector: InspectorProvider, + vegaDebugInspector: VegaDebugInspectorViewProvider, appsMenu: AppsMenuProvider, globalNav: GlobalNavProvider, toasts: ToastsProvider, diff --git a/test/functional/services/inspector.ts b/test/functional/services/inspector.ts index d8ac224ddd9bc..1c0bf7ad46df1 100644 --- a/test/functional/services/inspector.ts +++ b/test/functional/services/inspector.ts @@ -233,6 +233,18 @@ export function InspectorProvider({ getService }: FtrProviderContext) { const singleRequest = await testSubjects.find('inspectorRequestName'); return await singleRequest.getVisibleText(); } + + public getOpenRequestStatisticButton() { + return testSubjects.find('inspectorRequestDetailStatistics'); + } + + public getOpenRequestDetailRequestButton() { + return testSubjects.find('inspectorRequestDetailRequest'); + } + + public getOpenRequestDetailResponseButton() { + return testSubjects.find('inspectorRequestDetailResponse'); + } } return new Inspector(); diff --git a/test/functional/services/remote/webdriver.ts b/test/functional/services/remote/webdriver.ts index 09fede7fe2546..d51b32f3cc497 100644 --- a/test/functional/services/remote/webdriver.ts +++ b/test/functional/services/remote/webdriver.ts @@ -53,9 +53,15 @@ const SECOND = 1000; const MINUTE = 60 * SECOND; const NO_QUEUE_COMMANDS = ['getLog', 'getStatus', 'newSession', 'quit']; const downloadDir = resolve(REPO_ROOT, 'target/functional-tests/downloads'); -const chromiumDownloadPrefs = { +const chromiumUserPrefs = { 'download.default_directory': downloadDir, 'download.prompt_for_download': false, + 'profile.content_settings.exceptions.clipboard': { + '[*.],*': { + last_modified: Date.now(), + setting: 1, + }, + }, }; /** @@ -135,7 +141,7 @@ async function attemptToCreateCommand( const prefs = new logging.Preferences(); prefs.setLevel(logging.Type.BROWSER, logging.Level.ALL); - chromeOptions.setUserPreferences(chromiumDownloadPrefs); + chromeOptions.setUserPreferences(chromiumUserPrefs); chromeOptions.setLoggingPrefs(prefs); chromeOptions.set('unexpectedAlertBehaviour', 'accept'); chromeOptions.setAcceptInsecureCerts(config.acceptInsecureCerts); @@ -185,7 +191,7 @@ async function attemptToCreateCommand( edgeOptions.setBinaryPath(edgePaths.browserPath); const options = edgeOptions.get('ms:edgeOptions'); // overriding options to include preferences - Object.assign(options, { prefs: chromiumDownloadPrefs }); + Object.assign(options, { prefs: chromiumUserPrefs }); edgeOptions.set('ms:edgeOptions', options); const session = await new Builder() .forBrowser('MicrosoftEdge') diff --git a/test/functional/services/visualizations/index.ts b/test/functional/services/visualizations/index.ts index 1da1691b07c2a..10019e63d684e 100644 --- a/test/functional/services/visualizations/index.ts +++ b/test/functional/services/visualizations/index.ts @@ -19,3 +19,4 @@ export { PieChartProvider } from './pie_chart'; export { ElasticChartProvider } from './elastic_chart'; +export { VegaDebugInspectorViewProvider } from './vega_debug_inspector'; diff --git a/test/functional/services/visualizations/vega_debug_inspector.ts b/test/functional/services/visualizations/vega_debug_inspector.ts new file mode 100644 index 0000000000000..3847ebbbf1279 --- /dev/null +++ b/test/functional/services/visualizations/vega_debug_inspector.ts @@ -0,0 +1,68 @@ +/* + * 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 { FtrProviderContext } from '../../ftr_provider_context'; + +export function VegaDebugInspectorViewProvider({ getService }: FtrProviderContext) { + const testSubjects = getService('testSubjects'); + const inspector = getService('inspector'); + const dataGrid = getService('dataGrid'); + + class VegaDebugInspectorView { + async openVegaDebugInspectorView() { + await inspector.openInspectorView('inspectorViewChooserVega debug'); + } + + public getOpenDataViewerButton() { + return testSubjects.find('vegaDataInspectorDataViewerButton'); + } + + public getOpenSignalViewerButton() { + return testSubjects.find('vegaDataInspectorSignalViewerButton'); + } + + public getOpenSpecViewerButton() { + return testSubjects.find('vegaDataInspectorSpecViewerButton'); + } + + public getCopyClipboardButton() { + return testSubjects.find('vegaDataInspectorCopyClipboardButton'); + } + + public getGridTableData() { + return dataGrid.getDataGridTableData(); + } + + public async navigateToDataViewerTab() { + const dataViewerButton = await this.getOpenDataViewerButton(); + await dataViewerButton.click(); + } + + public async navigateToSignalViewerTab() { + const signalViewerButton = await this.getOpenSignalViewerButton(); + await signalViewerButton.click(); + } + + public async navigateToSpecViewerTab() { + const specViewerButton = await this.getOpenSpecViewerButton(); + await specViewerButton.click(); + } + } + + return new VegaDebugInspectorView(); +} From 178afd71fc825fc700e7bb5de39c1b34c72f2f7b Mon Sep 17 00:00:00 2001 From: Robert Oskamp Date: Wed, 12 Aug 2020 13:42:43 +0200 Subject: [PATCH 02/27] [ML] Functional tests - stabilize DFA dependent variable input (#74829) This PR stabilizes the dependent variable input during tests by explicitly waiting for the options to load. --- .../configuration_step_form.tsx | 4 +++- .../ml/data_frame_analytics_creation.ts | 19 +++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx index 571c7731822c0..2ae1996647463 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx @@ -397,7 +397,9 @@ export const ConfigurationStepForm: FC = ({ } isClearable={false} isInvalid={dependentVariable === ''} - data-test-subj="mlAnalyticsCreateJobWizardDependentVariableSelect" + data-test-subj={`mlAnalyticsCreateJobWizardDependentVariableSelect${ + loadingDepVarOptions ? ' loading' : ' loaded' + }`} /> diff --git a/x-pack/test/functional/services/ml/data_frame_analytics_creation.ts b/x-pack/test/functional/services/ml/data_frame_analytics_creation.ts index d8df2fb869ed7..474d6845ef3ec 100644 --- a/x-pack/test/functional/services/ml/data_frame_analytics_creation.ts +++ b/x-pack/test/functional/services/ml/data_frame_analytics_creation.ts @@ -228,23 +228,33 @@ export function MachineLearningDataFrameAnalyticsCreationProvider( await this.assertDestIndexValue(destIndex); }, + async waitForDependentVariableInputLoaded() { + await testSubjects.existOrFail('~mlAnalyticsCreateJobWizardDependentVariableSelect', { + timeout: 5 * 1000, + }); + await testSubjects.existOrFail('mlAnalyticsCreateJobWizardDependentVariableSelect loaded', { + timeout: 30 * 1000, + }); + }, + async assertDependentVariableInputExists() { await retry.tryForTime(8000, async () => { await testSubjects.existOrFail( - 'mlAnalyticsCreateJobWizardDependentVariableSelect > comboBoxInput' + '~mlAnalyticsCreateJobWizardDependentVariableSelect > comboBoxInput' ); }); }, async assertDependentVariableInputMissing() { await testSubjects.missingOrFail( - 'mlAnalyticsCreateJobWizardDependentVariableSelect > comboBoxInput' + '~mlAnalyticsCreateJobWizardDependentVariableSelect > comboBoxInput' ); }, async assertDependentVariableSelection(expectedSelection: string[]) { + await this.waitForDependentVariableInputLoaded(); const actualSelection = await comboBox.getComboBoxSelectedOptions( - 'mlAnalyticsCreateJobWizardDependentVariableSelect > comboBoxInput' + '~mlAnalyticsCreateJobWizardDependentVariableSelect > comboBoxInput' ); expect(actualSelection).to.eql( expectedSelection, @@ -253,8 +263,9 @@ export function MachineLearningDataFrameAnalyticsCreationProvider( }, async selectDependentVariable(dependentVariable: string) { + await this.waitForDependentVariableInputLoaded(); await comboBox.set( - 'mlAnalyticsCreateJobWizardDependentVariableSelect > comboBoxInput', + '~mlAnalyticsCreateJobWizardDependentVariableSelect > comboBoxInput', dependentVariable ); await this.assertDependentVariableSelection([dependentVariable]); From ed69f9b85aad2a245e0960890bc36131b488d9be Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Wed, 12 Aug 2020 07:09:49 -0600 Subject: [PATCH 03/27] [maps] implement save and return from dashboard (#74303) * pass originatingApp into App * save and return top nav option * clean up * navigate to originating app * functional test * tslint * cutOriginatingAppConnection * add functional test for cutting originating app flow * one more fix for cutting originator app and another functional test to verify * typo * review feedback Co-authored-by: Elastic Machine --- .../services/dashboard/panel_actions.ts | 11 + .../plugins/maps/public/kibana_services.d.ts | 11 + x-pack/plugins/maps/public/kibana_services.js | 13 + x-pack/plugins/maps/public/plugin.ts | 4 + .../bootstrap/services/saved_gis_map.ts | 1 + .../maps/public/routing/maps_router.js | 17 +- .../public/routing/routes/maps_app/index.js | 6 - .../routes/maps_app/load_map_and_render.js | 9 +- .../routing/routes/maps_app/maps_app_view.js | 8 +- .../routes/maps_app/top_nav_config.tsx | 304 ++++++++++-------- .../translations/translations/ja-JP.json | 11 - .../translations/translations/zh-CN.json | 11 - .../functional/apps/maps/embeddable/index.js | 1 + .../apps/maps/embeddable/save_and_return.js | 88 +++++ .../test/functional/page_objects/gis_page.js | 15 +- 15 files changed, 349 insertions(+), 161 deletions(-) create mode 100644 x-pack/test/functional/apps/maps/embeddable/save_and_return.js diff --git a/test/functional/services/dashboard/panel_actions.ts b/test/functional/services/dashboard/panel_actions.ts index 0f5d6ea74a6b6..bc21a62b9df79 100644 --- a/test/functional/services/dashboard/panel_actions.ts +++ b/test/functional/services/dashboard/panel_actions.ts @@ -70,6 +70,17 @@ export function DashboardPanelActionsProvider({ getService, getPageObjects }: Ft await PageObjects.common.waitForTopNavToBeVisible(); } + async editPanelByTitle(title?: string) { + log.debug(`editPanelByTitle(${title})`); + if (title) { + const panelOptions = await this.getPanelHeading(title); + await this.openContextMenu(panelOptions); + } else { + await this.openContextMenu(); + } + await testSubjects.clickWhenNotDisabled(EDIT_PANEL_DATA_TEST_SUBJ); + } + async clickExpandPanelToggle() { await testSubjects.click(TOGGLE_EXPAND_PANEL_DATA_TEST_SUBJ); } diff --git a/x-pack/plugins/maps/public/kibana_services.d.ts b/x-pack/plugins/maps/public/kibana_services.d.ts index 2e6911e89fa0a..2b28e1a8c7dbb 100644 --- a/x-pack/plugins/maps/public/kibana_services.d.ts +++ b/x-pack/plugins/maps/public/kibana_services.d.ts @@ -6,8 +6,10 @@ import { DataPublicPluginStart } from 'src/plugins/data/public'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { IndexPatternsService } from 'src/plugins/data/public/index_patterns'; +import { NavigateToAppOptions } from 'kibana/public'; import { MapsConfigType } from '../config'; import { MapsLegacyConfigType } from '../../../../src/plugins/maps_legacy/public'; +import { EmbeddableStart } from '../../../../src/plugins/embeddable/public'; export function getLicenseId(): any; export function getInspector(): any; @@ -77,3 +79,12 @@ export function setKibanaCommonConfig(config: MapsLegacyConfigType): void; export function setMapAppConfig(config: MapsConfigType): void; export function setKibanaVersion(version: string): void; export function setIsGoldPlus(isGoldPlus: boolean): void; +export function setEmbeddableService(embeddableService: EmbeddableStart): void; +export function getEmbeddableService(): EmbeddableStart; +export function setNavigateToApp( + navigateToApp: (appId: string, options?: NavigateToAppOptions | undefined) => Promise +): void; +export const navigateToApp: ( + appId: string, + options?: NavigateToAppOptions | undefined +) => Promise; diff --git a/x-pack/plugins/maps/public/kibana_services.js b/x-pack/plugins/maps/public/kibana_services.js index 89d578f27b118..9b035a87a3b37 100644 --- a/x-pack/plugins/maps/public/kibana_services.js +++ b/x-pack/plugins/maps/public/kibana_services.js @@ -177,3 +177,16 @@ export const setIsGoldPlus = (igp) => { export const getIsGoldPlus = () => { return isGoldPlus; }; + +let embeddableService; +export const setEmbeddableService = (_embeddableService) => { + embeddableService = _embeddableService; +}; +export const getEmbeddableService = () => { + return embeddableService; +}; + +export let navigateToApp; +export function setNavigateToApp(_navigateToApp) { + navigateToApp = _navigateToApp; +} diff --git a/x-pack/plugins/maps/public/plugin.ts b/x-pack/plugins/maps/public/plugin.ts index 8428a31d8b408..c374d3cb59b34 100644 --- a/x-pack/plugins/maps/public/plugin.ts +++ b/x-pack/plugins/maps/public/plugin.ts @@ -41,6 +41,8 @@ import { setUiActions, setUiSettings, setVisualizations, + setEmbeddableService, + setNavigateToApp, } from './kibana_services'; import { featureCatalogueEntry } from './feature_catalogue_entry'; // @ts-ignore @@ -113,6 +115,8 @@ export const bindStartCoreAndPlugins = (core: CoreStart, plugins: any) => { setUiActions(plugins.uiActions); setNavigation(plugins.navigation); setCoreI18n(core.i18n); + setEmbeddableService(plugins.embeddable); + setNavigateToApp(core.application.navigateToApp); }; /** diff --git a/x-pack/plugins/maps/public/routing/bootstrap/services/saved_gis_map.ts b/x-pack/plugins/maps/public/routing/bootstrap/services/saved_gis_map.ts index 4b474424bcdab..6f8e7777f671b 100644 --- a/x-pack/plugins/maps/public/routing/bootstrap/services/saved_gis_map.ts +++ b/x-pack/plugins/maps/public/routing/bootstrap/services/saved_gis_map.ts @@ -36,6 +36,7 @@ export interface ISavedGisMap extends SavedObject { layerListJSON?: string; mapStateJSON?: string; uiStateJSON?: string; + description?: string; getLayerList(): LayerDescriptor[]; syncWithStore(): void; } diff --git a/x-pack/plugins/maps/public/routing/maps_router.js b/x-pack/plugins/maps/public/routing/maps_router.js index 9992bd7a92ab1..9b7900d032f5a 100644 --- a/x-pack/plugins/maps/public/routing/maps_router.js +++ b/x-pack/plugins/maps/public/routing/maps_router.js @@ -7,7 +7,7 @@ import React from 'react'; import { render, unmountComponentAtNode } from 'react-dom'; import { Router, Switch, Route, Redirect } from 'react-router-dom'; -import { getCoreI18n, getToasts } from '../kibana_services'; +import { getCoreI18n, getToasts, getEmbeddableService } from '../kibana_services'; import { createKbnUrlStateStorage, withNotifyOnErrors, @@ -39,6 +39,11 @@ const App = ({ history, appBasePath, onAppLeave }) => { const store = getStore(); const I18nContext = getCoreI18n().Context; + const stateTransfer = getEmbeddableService()?.getStateTransfer(history); + + const { originatingApp } = + stateTransfer?.getIncomingEditorState({ keysToRemoveAfterFetch: ['originatingApp'] }) || {}; + return ( @@ -50,13 +55,21 @@ const App = ({ history, appBasePath, onAppLeave }) => { )} /> } + render={() => ( + + )} /> // Redirect other routes to list, or if hash-containing, their non-hash equivalents { - dispatch(setSelectedLayer(null)); - dispatch(updateFlyout(FLYOUT_STATE.NONE)); - dispatch(removePreviewLayers()); - }, enableFullScreen: () => dispatch(enableFullScreen()), openMapSettings: () => dispatch(openMapSettings()), }; diff --git a/x-pack/plugins/maps/public/routing/routes/maps_app/load_map_and_render.js b/x-pack/plugins/maps/public/routing/routes/maps_app/load_map_and_render.js index 3eea5b00d324e..eebbb17582821 100644 --- a/x-pack/plugins/maps/public/routing/routes/maps_app/load_map_and_render.js +++ b/x-pack/plugins/maps/public/routing/routes/maps_app/load_map_and_render.js @@ -56,6 +56,13 @@ export const LoadMapAndRender = class extends React.Component { return ; } - return savedMap ? : null; + return savedMap ? ( + + ) : null; } }; diff --git a/x-pack/plugins/maps/public/routing/routes/maps_app/maps_app_view.js b/x-pack/plugins/maps/public/routing/routes/maps_app/maps_app_view.js index 91d00990772f4..23625b4591db7 100644 --- a/x-pack/plugins/maps/public/routing/routes/maps_app/maps_app_view.js +++ b/x-pack/plugins/maps/public/routing/routes/maps_app/maps_app_view.js @@ -51,6 +51,8 @@ export class MapsAppView extends React.Component { initialized: false, savedQuery: '', initialLayerListConfig: null, + // tracking originatingApp in state so the connection can be broken by users + originatingApp: props.originatingApp, }; } @@ -311,11 +313,15 @@ export class MapsAppView extends React.Component { savedMap: this.props.savedMap, isOpenSettingsDisabled: this.props.isOpenSettingsDisabled, isSaveDisabled: this.props.isSaveDisabled, - closeFlyout: this.props.closeFlyout, enableFullScreen: this.props.enableFullScreen, openMapSettings: this.props.openMapSettings, inspectorAdapters: this.props.inspectorAdapters, setBreadcrumbs: this._setBreadcrumbs, + stateTransfer: this.props.stateTransfer, + originatingApp: this.state.originatingApp, + cutOriginatingAppConnection: () => { + this.setState({ originatingApp: undefined }); + }, }); const { TopNavMenu } = getNavigation().ui; diff --git a/x-pack/plugins/maps/public/routing/routes/maps_app/top_nav_config.tsx b/x-pack/plugins/maps/public/routing/routes/maps_app/top_nav_config.tsx index 46d662b28a82f..8a4d8ae555895 100644 --- a/x-pack/plugins/maps/public/routing/routes/maps_app/top_nav_config.tsx +++ b/x-pack/plugins/maps/public/routing/routes/maps_app/top_nav_config.tsx @@ -7,16 +7,16 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; import { Adapters } from 'src/plugins/inspector/public'; -import { SavedObjectSaveOpts } from 'src/plugins/saved_objects/public'; import { getCoreChrome, getMapsCapabilities, getInspector, getToasts, getCoreI18n, + navigateToApp, } from '../../../kibana_services'; import { - SavedObjectSaveModal, + SavedObjectSaveModalOrigin, OnSaveProps, showSaveModal, } from '../../../../../../../src/plugins/saved_objects/public'; @@ -24,47 +24,197 @@ import { MAP_SAVED_OBJECT_TYPE } from '../../../../common/constants'; // @ts-expect-error import { goToSpecifiedPath } from '../../maps_router'; import { ISavedGisMap } from '../../bootstrap/services/saved_gis_map'; +import { EmbeddableStateTransfer } from '../../../../../../../src/plugins/embeddable/public'; export function getTopNavConfig({ savedMap, isOpenSettingsDisabled, isSaveDisabled, - closeFlyout, enableFullScreen, openMapSettings, inspectorAdapters, setBreadcrumbs, + stateTransfer, + originatingApp, + cutOriginatingAppConnection, }: { savedMap: ISavedGisMap; isOpenSettingsDisabled: boolean; isSaveDisabled: boolean; - closeFlyout: () => void; enableFullScreen: () => void; openMapSettings: () => void; inspectorAdapters: Adapters; setBreadcrumbs: () => void; + stateTransfer?: EmbeddableStateTransfer; + originatingApp?: string; + cutOriginatingAppConnection: () => void; }) { - return [ + const topNavConfigs = []; + const isNewMap = !savedMap.id; + const hasWritePermissions = getMapsCapabilities().save; + const hasSaveAndReturnConfig = hasWritePermissions && !isNewMap && originatingApp; + + async function onSave({ + newDescription, + newTitle, + newCopyOnSave, + isTitleDuplicateConfirmed, + onTitleDuplicate, + returnToOrigin, + }: OnSaveProps & { returnToOrigin: boolean }) { + const prevTitle = savedMap.title; + const prevDescription = savedMap.description; + savedMap.title = newTitle; + savedMap.description = newDescription; + savedMap.copyOnSave = newCopyOnSave; + + let id; + try { + savedMap.syncWithStore(); + id = await savedMap.save({ + confirmOverwrite: false, + isTitleDuplicateConfirmed, + onTitleDuplicate, + }); + // id not returned when save fails because of duplicate title check. + // return and let user confirm duplicate title. + if (!id) { + return {}; + } + } catch (err) { + getToasts().addDanger({ + title: i18n.translate('xpack.maps.topNav.saveErrorMessage', { + defaultMessage: `Error saving '{title}'`, + values: { title: savedMap.title }, + }), + text: err.message, + 'data-test-subj': 'saveMapError', + }); + // If the save wasn't successful, put the original values back. + savedMap.title = prevTitle; + savedMap.description = prevDescription; + return { error: err }; + } + + getToasts().addSuccess({ + title: i18n.translate('xpack.maps.topNav.saveSuccessMessage', { + defaultMessage: `Saved '{title}'`, + values: { title: savedMap.title }, + }), + 'data-test-subj': 'saveMapSuccess', + }); + + getCoreChrome().docTitle.change(savedMap.title); + setBreadcrumbs(); + goToSpecifiedPath(`/map/${id}${window.location.hash}`); + + const newlyCreated = newCopyOnSave || isNewMap; + if (newlyCreated && !returnToOrigin) { + cutOriginatingAppConnection(); + } else if (!!originatingApp && returnToOrigin) { + if (newlyCreated && stateTransfer) { + stateTransfer.navigateToWithEmbeddablePackage(originatingApp, { + state: { id, type: MAP_SAVED_OBJECT_TYPE }, + }); + } else { + navigateToApp(originatingApp); + } + } + + return { id }; + } + + if (hasSaveAndReturnConfig) { + topNavConfigs.push({ + id: 'saveAndReturn', + label: i18n.translate('xpack.maps.topNav.saveAndReturnButtonLabel', { + defaultMessage: 'Save and return', + }), + emphasize: true, + iconType: 'check', + run: () => { + onSave({ + newTitle: savedMap.title ? savedMap.title : '', + newDescription: savedMap.description ? savedMap.description : '', + newCopyOnSave: false, + isTitleDuplicateConfirmed: false, + returnToOrigin: true, + onTitleDuplicate: () => {}, + }); + }, + testId: 'mapSaveAndReturnButton', + }); + } + + if (hasWritePermissions) { + topNavConfigs.push({ + id: 'save', + label: hasSaveAndReturnConfig + ? i18n.translate('xpack.maps.topNav.saveAsButtonLabel', { + defaultMessage: 'Save as', + }) + : i18n.translate('xpack.maps.topNav.saveMapButtonLabel', { + defaultMessage: `save`, + }), + description: i18n.translate('xpack.maps.topNav.saveMapDescription', { + defaultMessage: `Save map`, + }), + emphasize: !hasSaveAndReturnConfig, + testId: 'mapSaveButton', + disableButton() { + return isSaveDisabled; + }, + tooltip() { + if (isSaveDisabled) { + return i18n.translate('xpack.maps.topNav.saveMapDisabledButtonTooltip', { + defaultMessage: 'Confirm or Cancel your layer changes before saving', + }); + } + }, + run: () => { + const saveModal = ( + {}} + documentInfo={{ + description: savedMap.description, + id: savedMap.id, + title: savedMap.title, + }} + objectType={i18n.translate('xpack.maps.topNav.saveModalType', { + defaultMessage: 'map', + })} + /> + ); + showSaveModal(saveModal, getCoreI18n().Context); + }, + }); + } + + topNavConfigs.push( { - id: 'full-screen', - label: i18n.translate('xpack.maps.mapController.fullScreenButtonLabel', { - defaultMessage: `full screen`, + id: 'mapSettings', + label: i18n.translate('xpack.maps.topNav.openSettingsButtonLabel', { + defaultMessage: `Map settings`, }), - description: i18n.translate('xpack.maps.mapController.fullScreenDescription', { - defaultMessage: `full screen`, + description: i18n.translate('xpack.maps.topNav.openSettingsDescription', { + defaultMessage: `Open map settings`, }), - testId: 'mapsFullScreenMode', + testId: 'openSettingsButton', + disableButton() { + return isOpenSettingsDisabled; + }, run() { - getCoreChrome().setIsVisible(false); - enableFullScreen(); + openMapSettings(); }, }, { id: 'inspect', - label: i18n.translate('xpack.maps.mapController.openInspectorButtonLabel', { + label: i18n.translate('xpack.maps.topNav.openInspectorButtonLabel', { defaultMessage: `inspect`, }), - description: i18n.translate('xpack.maps.mapController.openInspectorDescription', { + description: i18n.translate('xpack.maps.topNav.openInspectorDescription', { defaultMessage: `Open Inspector`, }), testId: 'openInspectorButton', @@ -73,122 +223,20 @@ export function getTopNavConfig({ }, }, { - id: 'mapSettings', - label: i18n.translate('xpack.maps.mapController.openSettingsButtonLabel', { - defaultMessage: `Map settings`, + id: 'full-screen', + label: i18n.translate('xpack.maps.topNav.fullScreenButtonLabel', { + defaultMessage: `full screen`, }), - description: i18n.translate('xpack.maps.mapController.openSettingsDescription', { - defaultMessage: `Open map settings`, + description: i18n.translate('xpack.maps.topNav.fullScreenDescription', { + defaultMessage: `full screen`, }), - testId: 'openSettingsButton', - disableButton() { - return isOpenSettingsDisabled; - }, + testId: 'mapsFullScreenMode', run() { - openMapSettings(); + getCoreChrome().setIsVisible(false); + enableFullScreen(); }, - }, - ...(getMapsCapabilities().save - ? [ - { - id: 'save', - label: i18n.translate('xpack.maps.mapController.saveMapButtonLabel', { - defaultMessage: `save`, - }), - description: i18n.translate('xpack.maps.mapController.saveMapDescription', { - defaultMessage: `Save map`, - }), - testId: 'mapSaveButton', - disableButton() { - return isSaveDisabled; - }, - tooltip() { - if (isSaveDisabled) { - return i18n.translate('xpack.maps.mapController.saveMapDisabledButtonTooltip', { - defaultMessage: 'Save or Cancel your layer changes before saving', - }); - } - }, - run: async () => { - const onSave = ({ - newTitle, - newCopyOnSave, - isTitleDuplicateConfirmed, - onTitleDuplicate, - }: OnSaveProps) => { - const currentTitle = savedMap.title; - savedMap.title = newTitle; - savedMap.copyOnSave = newCopyOnSave; - const saveOptions: SavedObjectSaveOpts = { - confirmOverwrite: false, - isTitleDuplicateConfirmed, - onTitleDuplicate, - }; - return doSave(savedMap, saveOptions, closeFlyout, setBreadcrumbs).then( - (response) => { - // If the save wasn't successful, put the original values back. - if (!response.id || response.error) { - savedMap.title = currentTitle; - } - return response; - } - ); - }; + } + ); - const saveModal = ( - {}} - title={savedMap.title} - showCopyOnSave={!!savedMap.id} - objectType={MAP_SAVED_OBJECT_TYPE} - showDescription={false} - /> - ); - showSaveModal(saveModal, getCoreI18n().Context); - }, - }, - ] - : []), - ]; -} - -async function doSave( - savedMap: ISavedGisMap, - saveOptions: SavedObjectSaveOpts, - closeFlyout: () => void, - setBreadcrumbs: () => void -) { - closeFlyout(); - savedMap.syncWithStore(); - let id; - - try { - id = await savedMap.save(saveOptions); - getCoreChrome().docTitle.change(savedMap.title); - } catch (err) { - getToasts().addDanger({ - title: i18n.translate('xpack.maps.mapController.saveErrorMessage', { - defaultMessage: `Error on saving '{title}'`, - values: { title: savedMap.title }, - }), - text: err.message, - 'data-test-subj': 'saveMapError', - }); - return { error: err }; - } - - if (id) { - goToSpecifiedPath(`/map/${id}${window.location.hash}`); - setBreadcrumbs(); - - getToasts().addSuccess({ - title: i18n.translate('xpack.maps.mapController.saveSuccessMessage', { - defaultMessage: `Saved '{title}'`, - values: { title: savedMap.title }, - }), - 'data-test-subj': 'saveMapSuccess', - }); - } - return { id }; + return topNavConfigs; } diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index f2aeed63d6eea..e5cd46b330ca8 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -10409,18 +10409,7 @@ "xpack.maps.layerWizardSelect.solutionsCategoryLabel": "ソリューション", "xpack.maps.loadMap.errorAttemptingToLoadSavedMap": "マップを読み込めません", "xpack.maps.map.initializeErrorTitle": "マップを初期化できません", - "xpack.maps.mapController.fullScreenButtonLabel": "全画面", - "xpack.maps.mapController.fullScreenDescription": "全画面", "xpack.maps.mapController.mapsBreadcrumbLabel": "マップ", - "xpack.maps.mapController.openInspectorButtonLabel": "検査", - "xpack.maps.mapController.openInspectorDescription": "インスペクターを開きます", - "xpack.maps.mapController.openSettingsButtonLabel": "マップ設定", - "xpack.maps.mapController.openSettingsDescription": "マップ設定を開く", - "xpack.maps.mapController.saveErrorMessage": "「{title}」の保存中にエラーが発生しました", - "xpack.maps.mapController.saveMapButtonLabel": "保存", - "xpack.maps.mapController.saveMapDescription": "マップを保存", - "xpack.maps.mapController.saveMapDisabledButtonTooltip": "保存する前に、レイヤーの変更を保存するか、キャンセルしてください", - "xpack.maps.mapController.saveSuccessMessage": "「{title}」が保存されました", "xpack.maps.mapEmbeddableFactory.invalidLayerList": "不正な形式のレイヤーリストによりマップを読み込めません", "xpack.maps.mapEmbeddableFactory.invalidSavedObject": "不正な形式の保存済みオブジェクトによりマップを読み込めません", "xpack.maps.mapListing.advancedSettingsLinkText": "高度な設定", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 82a6b128ad619..b273f6cc81baf 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -10411,18 +10411,7 @@ "xpack.maps.layerWizardSelect.solutionsCategoryLabel": "解决方案", "xpack.maps.loadMap.errorAttemptingToLoadSavedMap": "无法加载地图", "xpack.maps.map.initializeErrorTitle": "无法初始化地图", - "xpack.maps.mapController.fullScreenButtonLabel": "全屏", - "xpack.maps.mapController.fullScreenDescription": "全屏", "xpack.maps.mapController.mapsBreadcrumbLabel": "Maps", - "xpack.maps.mapController.openInspectorButtonLabel": "检查", - "xpack.maps.mapController.openInspectorDescription": "打开检查器", - "xpack.maps.mapController.openSettingsButtonLabel": "地图设置", - "xpack.maps.mapController.openSettingsDescription": "打开地图设置", - "xpack.maps.mapController.saveErrorMessage": "保存 “{title}” 时出错", - "xpack.maps.mapController.saveMapButtonLabel": "保存", - "xpack.maps.mapController.saveMapDescription": "保存地图", - "xpack.maps.mapController.saveMapDisabledButtonTooltip": "保存或在保存之前取消您的图层更改", - "xpack.maps.mapController.saveSuccessMessage": "已保存“{title}”", "xpack.maps.mapEmbeddableFactory.invalidLayerList": "无法加载地图,图层列表格式不正确", "xpack.maps.mapEmbeddableFactory.invalidSavedObject": "无法加载地图,已保存对象格式错误", "xpack.maps.mapListing.advancedSettingsLinkText": "高级设置", diff --git a/x-pack/test/functional/apps/maps/embeddable/index.js b/x-pack/test/functional/apps/maps/embeddable/index.js index bb3dbb0ea1ef2..81d24f73838e7 100644 --- a/x-pack/test/functional/apps/maps/embeddable/index.js +++ b/x-pack/test/functional/apps/maps/embeddable/index.js @@ -6,6 +6,7 @@ export default function ({ loadTestFile }) { describe('embeddable', function () { + loadTestFile(require.resolve('./save_and_return')); loadTestFile(require.resolve('./dashboard')); loadTestFile(require.resolve('./embeddable_state')); loadTestFile(require.resolve('./tooltip_filter_actions')); diff --git a/x-pack/test/functional/apps/maps/embeddable/save_and_return.js b/x-pack/test/functional/apps/maps/embeddable/save_and_return.js new file mode 100644 index 0000000000000..4aa44799db1f4 --- /dev/null +++ b/x-pack/test/functional/apps/maps/embeddable/save_and_return.js @@ -0,0 +1,88 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +export default function ({ getPageObjects, getService }) { + const PageObjects = getPageObjects(['common', 'dashboard', 'header', 'maps', 'visualize']); + const dashboardAddPanel = getService('dashboardAddPanel'); + const dashboardPanelActions = getService('dashboardPanelActions'); + const dashboardVisualizations = getService('dashboardVisualizations'); + const testSubjects = getService('testSubjects'); + + describe('save and return work flow', () => { + describe('new map', () => { + beforeEach(async () => { + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.clickNewDashboard(); + await dashboardAddPanel.clickCreateNewLink(); + await await dashboardVisualizations.ensureNewVisualizationDialogIsShowing(); + await PageObjects.visualize.clickMapsApp(); + await PageObjects.header.waitUntilLoadingHasFinished(); + await PageObjects.maps.waitForLayersToLoad(); + }); + + describe('save', () => { + it('should return to dashboard and add new panel', async () => { + await PageObjects.maps.saveMap('map created from dashboard save and return'); + await PageObjects.dashboard.waitForRenderComplete(); + const panelCount = await PageObjects.dashboard.getPanelCount(); + expect(panelCount).to.equal(1); + }); + }); + + describe('save and uncheck return to origin switch', () => { + it('should cut the originator and stay in maps application', async () => { + await PageObjects.maps.saveMap( + 'map created from dashboard save and return with originator app cut', + true + ); + await PageObjects.maps.waitForLayersToLoad(); + await testSubjects.missingOrFail('mapSaveAndReturnButton'); + await testSubjects.existOrFail('mapSaveButton'); + }); + }); + }); + + describe('edit existing map', () => { + beforeEach(async () => { + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.loadSavedDashboard('map embeddable example'); + await PageObjects.dashboard.switchToEditMode(); + await dashboardPanelActions.editPanelByTitle('join example'); + await PageObjects.header.waitUntilLoadingHasFinished(); + await PageObjects.maps.waitForLayersToLoad(); + }); + + describe('save and return', () => { + it('should return to dashboard', async () => { + await PageObjects.maps.clickSaveAndReturnButton(); + await PageObjects.dashboard.waitForRenderComplete(); + const panelCount = await PageObjects.dashboard.getPanelCount(); + expect(panelCount).to.equal(2); + }); + }); + + describe('save as', () => { + it('should return to dashboard and add new panel', async () => { + await PageObjects.maps.saveMap('Clone of map embeddable example'); + await PageObjects.dashboard.waitForRenderComplete(); + const panelCount = await PageObjects.dashboard.getPanelCount(); + expect(panelCount).to.equal(3); + }); + }); + + describe('save as and uncheck return to origin switch', () => { + it('should cut the originator and stay in maps application', async () => { + await PageObjects.maps.saveMap('Clone 2 of map embeddable example', true); + await PageObjects.maps.waitForLayersToLoad(); + await testSubjects.missingOrFail('mapSaveAndReturnButton'); + await testSubjects.existOrFail('mapSaveButton'); + }); + }); + }); + }); +} diff --git a/x-pack/test/functional/page_objects/gis_page.js b/x-pack/test/functional/page_objects/gis_page.js index b8f4faf3ebfd8..4998635096c39 100644 --- a/x-pack/test/functional/page_objects/gis_page.js +++ b/x-pack/test/functional/page_objects/gis_page.js @@ -139,12 +139,25 @@ export function GisPageProvider({ getService, getPageObjects }) { await renderable.waitForRender(); } - async saveMap(name) { + async saveMap(name, uncheckReturnToOriginModeSwitch = false) { await testSubjects.click('mapSaveButton'); await testSubjects.setValue('savedObjectTitle', name); + if (uncheckReturnToOriginModeSwitch) { + const redirectToOriginCheckboxExists = await testSubjects.exists( + 'returnToOriginModeSwitch' + ); + if (!redirectToOriginCheckboxExists) { + throw new Error('Unable to uncheck "returnToOriginModeSwitch", it does not exist.'); + } + await testSubjects.setEuiSwitch('returnToOriginModeSwitch', 'uncheck'); + } await testSubjects.clickWhenNotDisabled('confirmSaveSavedObjectButton'); } + async clickSaveAndReturnButton() { + await testSubjects.click('mapSaveAndReturnButton'); + } + async expectMissingSaveButton() { await testSubjects.missingOrFail('mapSaveButton'); } From 7f33e72ba7c103dbca1f8fffeeba8dc46b9906dc Mon Sep 17 00:00:00 2001 From: Kevin Logan <56395104+kevinlog@users.noreply.github.com> Date: Wed, 12 Aug 2020 09:20:55 -0400 Subject: [PATCH 04/27] [SECURITY_SOLUTION] fix unenrolled query (#74798) --- .../server/endpoint/routes/metadata/support/unenroll.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/unenroll.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/unenroll.ts index 136f314aa415f..ca2ced177ab33 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/unenroll.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/unenroll.ts @@ -19,7 +19,7 @@ export async function findAllUnenrolledAgentIds( perPage: pageSize, showInactive: true, kuery: - '(fleet-agents.packages : "endpoint" AND fleet-agents.active : false) OR (NOT fleet-agents.packages : "endpoint" AND fleet-agents.active : true)', + '(fleet-agents.active : false) OR (NOT fleet-agents.packages : "endpoint" AND fleet-agents.active : true)', }; }; From 2e38f5a7059eb9ac13e3bf89eb726cab5bda5349 Mon Sep 17 00:00:00 2001 From: Kerry Gallagher Date: Wed, 12 Aug 2020 15:22:00 +0100 Subject: [PATCH 05/27] [Logs UI] Return 403s rather than 500s for ML privilege errors (#74506) * Add ML privileges error checks to all routes --- .../infra/server/lib/log_analysis/errors.ts | 14 ++++++++++++++ .../server/lib/log_analysis/log_entry_anomalies.ts | 11 +++++++++-- .../log_analysis/results/log_entry_anomalies.ts | 10 ++++++++++ .../results/log_entry_anomalies_datasets.ts | 10 ++++++++++ .../log_analysis/results/log_entry_categories.ts | 10 ++++++++++ .../results/log_entry_category_datasets.ts | 10 ++++++++++ .../results/log_entry_category_examples.ts | 10 ++++++++++ .../log_analysis/results/log_entry_examples.ts | 10 ++++++++++ .../routes/log_analysis/results/log_entry_rate.ts | 10 ++++++++++ 9 files changed, 93 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/infra/server/lib/log_analysis/errors.ts b/x-pack/plugins/infra/server/lib/log_analysis/errors.ts index a6d0db25084e8..ad46ebf710266 100644 --- a/x-pack/plugins/infra/server/lib/log_analysis/errors.ts +++ b/x-pack/plugins/infra/server/lib/log_analysis/errors.ts @@ -6,6 +6,12 @@ /* eslint-disable max-classes-per-file */ +import { + UnknownMLCapabilitiesError, + InsufficientMLCapabilities, + MLPrivilegesUninitialized, +} from '../../../../ml/server'; + export class NoLogAnalysisMlJobError extends Error { constructor(message?: string) { super(message); @@ -33,3 +39,11 @@ export class InsufficientAnomalyMlJobsConfigured extends Error { Object.setPrototypeOf(this, new.target.prototype); } } + +export const isMlPrivilegesError = (error: any) => { + return ( + error instanceof UnknownMLCapabilitiesError || + error instanceof InsufficientMLCapabilities || + error instanceof MLPrivilegesUninitialized + ); +}; diff --git a/x-pack/plugins/infra/server/lib/log_analysis/log_entry_anomalies.ts b/x-pack/plugins/infra/server/lib/log_analysis/log_entry_anomalies.ts index a55958aee1285..f6d8a4a807e95 100644 --- a/x-pack/plugins/infra/server/lib/log_analysis/log_entry_anomalies.ts +++ b/x-pack/plugins/infra/server/lib/log_analysis/log_entry_anomalies.ts @@ -25,6 +25,7 @@ import { InsufficientAnomalyMlJobsConfigured, InsufficientLogAnalysisMlJobConfigurationError, UnknownCategoryError, + isMlPrivilegesError, } from './errors'; import { decodeOrThrow } from '../../../common/runtime_types'; import { @@ -65,7 +66,10 @@ async function getCompatibleAnomaliesJobIds( jobIds.push(logRateJobId); jobSpans = [...jobSpans, ...spans]; } catch (e) { - // Job wasn't found + if (isMlPrivilegesError(e)) { + throw e; + } + // An error is also thrown when no jobs are found } try { @@ -75,7 +79,10 @@ async function getCompatibleAnomaliesJobIds( jobIds.push(logCategoriesJobId); jobSpans = [...jobSpans, ...spans]; } catch (e) { - // Job wasn't found + if (isMlPrivilegesError(e)) { + throw e; + } + // An error is also thrown when no jobs are found } return { diff --git a/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_anomalies.ts b/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_anomalies.ts index d79c9b9dd2c78..559609ebc7fbd 100644 --- a/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_anomalies.ts +++ b/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_anomalies.ts @@ -17,6 +17,7 @@ import { import { createValidationFunction } from '../../../../common/runtime_types'; import { assertHasInfraMlPlugins } from '../../../utils/request_context'; import { getLogEntryAnomalies } from '../../../lib/log_analysis'; +import { isMlPrivilegesError } from '../../../lib/log_analysis/errors'; export const initGetLogEntryAnomaliesRoute = ({ framework }: InfraBackendLibs) => { framework.registerRoute( @@ -73,6 +74,15 @@ export const initGetLogEntryAnomaliesRoute = ({ framework }: InfraBackendLibs) = throw error; } + if (isMlPrivilegesError(error)) { + return response.customError({ + statusCode: 403, + body: { + message: error.message, + }, + }); + } + return response.customError({ statusCode: error.statusCode ?? 500, body: { diff --git a/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_anomalies_datasets.ts b/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_anomalies_datasets.ts index f1f1a1681a901..8b36f32f318a1 100644 --- a/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_anomalies_datasets.ts +++ b/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_anomalies_datasets.ts @@ -14,6 +14,7 @@ import { createValidationFunction } from '../../../../common/runtime_types'; import type { InfraBackendLibs } from '../../../lib/infra_types'; import { getLogEntryAnomaliesDatasets } from '../../../lib/log_analysis'; import { assertHasInfraMlPlugins } from '../../../utils/request_context'; +import { isMlPrivilegesError } from '../../../lib/log_analysis/errors'; export const initGetLogEntryAnomaliesDatasetsRoute = ({ framework }: InfraBackendLibs) => { framework.registerRoute( @@ -55,6 +56,15 @@ export const initGetLogEntryAnomaliesDatasetsRoute = ({ framework }: InfraBacken throw error; } + if (isMlPrivilegesError(error)) { + return response.customError({ + statusCode: 403, + body: { + message: error.message, + }, + }); + } + return response.customError({ statusCode: error.statusCode ?? 500, body: { diff --git a/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_categories.ts b/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_categories.ts index f57132ef1b505..2e2f2642b4a45 100644 --- a/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_categories.ts +++ b/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_categories.ts @@ -14,6 +14,7 @@ import { createValidationFunction } from '../../../../common/runtime_types'; import type { InfraBackendLibs } from '../../../lib/infra_types'; import { getTopLogEntryCategories } from '../../../lib/log_analysis'; import { assertHasInfraMlPlugins } from '../../../utils/request_context'; +import { isMlPrivilegesError } from '../../../lib/log_analysis/errors'; export const initGetLogEntryCategoriesRoute = ({ framework }: InfraBackendLibs) => { framework.registerRoute( @@ -66,6 +67,15 @@ export const initGetLogEntryCategoriesRoute = ({ framework }: InfraBackendLibs) throw error; } + if (isMlPrivilegesError(error)) { + return response.customError({ + statusCode: 403, + body: { + message: error.message, + }, + }); + } + return response.customError({ statusCode: error.statusCode ?? 500, body: { diff --git a/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_category_datasets.ts b/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_category_datasets.ts index b99ff920f81e4..20d1d919b5006 100644 --- a/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_category_datasets.ts +++ b/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_category_datasets.ts @@ -14,6 +14,7 @@ import { createValidationFunction } from '../../../../common/runtime_types'; import type { InfraBackendLibs } from '../../../lib/infra_types'; import { getLogEntryCategoryDatasets } from '../../../lib/log_analysis'; import { assertHasInfraMlPlugins } from '../../../utils/request_context'; +import { isMlPrivilegesError } from '../../../lib/log_analysis/errors'; export const initGetLogEntryCategoryDatasetsRoute = ({ framework }: InfraBackendLibs) => { framework.registerRoute( @@ -55,6 +56,15 @@ export const initGetLogEntryCategoryDatasetsRoute = ({ framework }: InfraBackend throw error; } + if (isMlPrivilegesError(error)) { + return response.customError({ + statusCode: 403, + body: { + message: error.message, + }, + }); + } + return response.customError({ statusCode: error.statusCode ?? 500, body: { diff --git a/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_category_examples.ts b/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_category_examples.ts index 11098ebe5c65b..0c408b7fc93f7 100644 --- a/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_category_examples.ts +++ b/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_category_examples.ts @@ -14,6 +14,7 @@ import { createValidationFunction } from '../../../../common/runtime_types'; import type { InfraBackendLibs } from '../../../lib/infra_types'; import { getLogEntryCategoryExamples } from '../../../lib/log_analysis'; import { assertHasInfraMlPlugins } from '../../../utils/request_context'; +import { isMlPrivilegesError } from '../../../lib/log_analysis/errors'; export const initGetLogEntryCategoryExamplesRoute = ({ framework, sources }: InfraBackendLibs) => { framework.registerRoute( @@ -65,6 +66,15 @@ export const initGetLogEntryCategoryExamplesRoute = ({ framework, sources }: Inf throw error; } + if (isMlPrivilegesError(error)) { + return response.customError({ + statusCode: 403, + body: { + message: error.message, + }, + }); + } + return response.customError({ statusCode: error.statusCode ?? 500, body: { diff --git a/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_examples.ts b/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_examples.ts index 7838a64a6045e..678c9f5666fc8 100644 --- a/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_examples.ts +++ b/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_examples.ts @@ -14,6 +14,7 @@ import { getLogEntryExamplesSuccessReponsePayloadRT, LOG_ANALYSIS_GET_LOG_ENTRY_RATE_EXAMPLES_PATH, } from '../../../../common/http_api/log_analysis'; +import { isMlPrivilegesError } from '../../../lib/log_analysis/errors'; export const initGetLogEntryExamplesRoute = ({ framework, sources }: InfraBackendLibs) => { framework.registerRoute( @@ -68,6 +69,15 @@ export const initGetLogEntryExamplesRoute = ({ framework, sources }: InfraBacken throw error; } + if (isMlPrivilegesError(error)) { + return response.customError({ + statusCode: 403, + body: { + message: error.message, + }, + }); + } + return response.customError({ statusCode: error.statusCode ?? 500, body: { diff --git a/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_rate.ts b/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_rate.ts index cd23c0193e291..23d8bd30c659b 100644 --- a/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_rate.ts +++ b/x-pack/plugins/infra/server/routes/log_analysis/results/log_entry_rate.ts @@ -15,6 +15,7 @@ import { import { createValidationFunction } from '../../../../common/runtime_types'; import { getLogEntryRateBuckets } from '../../../lib/log_analysis'; import { assertHasInfraMlPlugins } from '../../../utils/request_context'; +import { isMlPrivilegesError } from '../../../lib/log_analysis/errors'; export const initGetLogEntryRateRoute = ({ framework }: InfraBackendLibs) => { framework.registerRoute( @@ -56,6 +57,15 @@ export const initGetLogEntryRateRoute = ({ framework }: InfraBackendLibs) => { throw error; } + if (isMlPrivilegesError(error)) { + return response.customError({ + statusCode: 403, + body: { + message: error.message, + }, + }); + } + return response.customError({ statusCode: error.statusCode ?? 500, body: { From 64b609b0810a84c984edbb246e44232f17c1e6d6 Mon Sep 17 00:00:00 2001 From: MadameSheema Date: Wed, 12 Aug 2020 17:09:16 +0200 Subject: [PATCH 06/27] [SIEM] Adds pin event to timeline cypress test (#74256) * adds 'pin event' cypress test * refactors code Co-authored-by: Elastic Machine --- .../integration/timeline_events.spec.ts | 39 +++++++++++++++++++ .../cypress/screens/timeline.ts | 2 + .../cypress/tasks/timeline.ts | 9 +++++ 3 files changed, 50 insertions(+) create mode 100644 x-pack/plugins/security_solution/cypress/integration/timeline_events.spec.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timeline_events.spec.ts b/x-pack/plugins/security_solution/cypress/integration/timeline_events.spec.ts new file mode 100644 index 0000000000000..549cd134a04a4 --- /dev/null +++ b/x-pack/plugins/security_solution/cypress/integration/timeline_events.spec.ts @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { PIN_EVENT } from '../screens/timeline'; + +import { loginAndWaitForPage } from '../tasks/login'; +import { openTimeline } from '../tasks/security_main'; +import { pinFirstEvent, populateTimeline, unpinFirstEvent } from '../tasks/timeline'; + +import { HOSTS_URL } from '../urls/navigation'; + +describe('timeline events', () => { + before(() => { + loginAndWaitForPage(HOSTS_URL); + openTimeline(); + populateTimeline(); + }); + + after(() => { + unpinFirstEvent(); + }); + + it('pins the first event to the timeline', () => { + cy.server(); + cy.route('POST', '**/api/solutions/security/graphql').as('persistTimeline'); + + pinFirstEvent(); + + cy.wait('@persistTimeline', { timeout: 10000 }).then((response) => { + cy.wrap(response.status).should('eql', 200); + cy.wrap(response.xhr.responseText).should('include', 'persistPinnedEventOnTimeline'); + }); + + cy.get(PIN_EVENT).should('have.attr', 'aria-label', 'Pinned event'); + }); +}); diff --git a/x-pack/plugins/security_solution/cypress/screens/timeline.ts b/x-pack/plugins/security_solution/cypress/screens/timeline.ts index 14282b84b5ffc..68425731f149a 100644 --- a/x-pack/plugins/security_solution/cypress/screens/timeline.ts +++ b/x-pack/plugins/security_solution/cypress/screens/timeline.ts @@ -19,6 +19,8 @@ export const ID_FIELD = '[data-test-subj="timeline"] [data-test-subj="field-name export const ID_TOGGLE_FIELD = '[data-test-subj="toggle-field-_id"]'; +export const PIN_EVENT = '[data-test-subj="pin"]'; + export const PROVIDER_BADGE = '[data-test-subj="providerBadge"]'; export const REMOVE_COLUMN = diff --git a/x-pack/plugins/security_solution/cypress/tasks/timeline.ts b/x-pack/plugins/security_solution/cypress/tasks/timeline.ts index 761fd2c1e6a0b..d5106f34cc9c5 100644 --- a/x-pack/plugins/security_solution/cypress/tasks/timeline.ts +++ b/x-pack/plugins/security_solution/cypress/tasks/timeline.ts @@ -12,6 +12,7 @@ import { ID_FIELD, ID_HEADER_FIELD, ID_TOGGLE_FIELD, + PIN_EVENT, SEARCH_OR_FILTER_CONTAINER, SERVER_SIDE_EVENT_COUNT, TIMELINE_DESCRIPTION, @@ -78,6 +79,10 @@ export const openTimelineSettings = () => { cy.get(TIMELINE_SETTINGS_ICON).trigger('click', { force: true }); }; +export const pinFirstEvent = () => { + cy.get(PIN_EVENT).first().click({ force: true }); +}; + export const populateTimeline = () => { executeTimelineKQL(hostExistsQuery); cy.get(SERVER_SIDE_EVENT_COUNT) @@ -88,6 +93,10 @@ export const populateTimeline = () => { }); }; +export const unpinFirstEvent = () => { + cy.get(PIN_EVENT).first().click({ force: true }); +}; + export const uncheckTimestampToggleField = () => { cy.get(TIMESTAMP_TOGGLE_FIELD).should('exist'); From be7e21c9259ca4108f98ebc7877ee0730c2402cb Mon Sep 17 00:00:00 2001 From: Angela Chuang <6295984+angorayc@users.noreply.github.com> Date: Wed, 12 Aug 2020 16:14:48 +0100 Subject: [PATCH 07/27] [Security Solution] put back savedObjectId in error message (#74775) * put back savedObjectId in error message * fix type error --- .../common/components/import_data_modal/index.tsx | 14 +++++++++++++- .../containers/detection_engine/rules/types.ts | 10 +++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/security_solution/public/common/components/import_data_modal/index.tsx b/x-pack/plugins/security_solution/public/common/components/import_data_modal/index.tsx index 038c116c9fc8c..65dcdf8a6f9cb 100644 --- a/x-pack/plugins/security_solution/public/common/components/import_data_modal/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/import_data_modal/index.tsx @@ -23,6 +23,8 @@ import React, { useCallback, useState } from 'react'; import { ImportDataResponse, ImportDataProps, + ImportRulesResponseError, + ImportResponseError, } from '../../../detections/containers/detection_engine/rules'; import { displayErrorToast, @@ -48,6 +50,12 @@ interface ImportDataModalProps { title: string; } +const isImportRulesResponseError = ( + error: ImportRulesResponseError | ImportResponseError +): error is ImportRulesResponseError => { + return (error as ImportRulesResponseError).rule_id !== undefined; +}; + /** * Modal component for importing Rules from a json file */ @@ -96,7 +104,11 @@ export const ImportDataModalComponent = ({ } if (importResponse.errors.length > 0) { const formattedErrors = importResponse.errors.map((e) => - failedDetailed(e.rule_id, e.error.status_code, e.error.message) + failedDetailed( + isImportRulesResponseError(e) ? e.rule_id : e.id, + e.error.status_code, + e.error.message + ) ); displayErrorToast(errorMessage, formattedErrors, dispatchToaster); } diff --git a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/types.ts b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/types.ts index 78d2e2a5b0c2f..a5bbc0465ccc1 100644 --- a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/types.ts +++ b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/types.ts @@ -234,10 +234,18 @@ export interface ImportRulesResponseError { }; } +export interface ImportResponseError { + id: string; + error: { + status_code: number; + message: string; + }; +} + export interface ImportDataResponse { success: boolean; success_count: number; - errors: ImportRulesResponseError[]; + errors: Array; } export interface ExportDocumentsProps { From fb2b9a46af08d8369b206c323ad9a80425d7c5be Mon Sep 17 00:00:00 2001 From: Steph Milovic Date: Wed, 12 Aug 2020 10:41:12 -0500 Subject: [PATCH 08/27] [Security Solution] [Cases] Bugfix for special character tags filtering (#74849) --- .../public/cases/containers/api.test.tsx | 27 ++++++++++++++++++- .../public/cases/containers/api.ts | 2 +- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/security_solution/public/cases/containers/api.test.tsx b/x-pack/plugins/security_solution/public/cases/containers/api.test.tsx index 321d330758e53..68a0d2834242e 100644 --- a/x-pack/plugins/security_solution/public/cases/containers/api.test.tsx +++ b/x-pack/plugins/security_solution/public/cases/containers/api.test.tsx @@ -159,7 +159,32 @@ describe('Case Configuration API', () => { query: { ...DEFAULT_QUERY_PARAMS, reporters, - tags, + tags: ['"coke"', '"pepsi"'], + search: 'hello', + }, + signal: abortCtrl.signal, + }); + }); + test('tags with weird chars get handled gracefully', async () => { + const weirdTags: string[] = ['(', '"double"']; + + await getCases({ + filterOptions: { + ...DEFAULT_FILTER_OPTIONS, + reporters: [...respReporters, { username: null, full_name: null, email: null }], + tags: weirdTags, + status: '', + search: 'hello', + }, + queryParams: DEFAULT_QUERY_PARAMS, + signal: abortCtrl.signal, + }); + expect(fetchMock).toHaveBeenCalledWith(`${CASES_URL}/_find`, { + method: 'GET', + query: { + ...DEFAULT_QUERY_PARAMS, + reporters, + tags: ['"("', '"\\"double\\""'], search: 'hello', }, signal: abortCtrl.signal, diff --git a/x-pack/plugins/security_solution/public/cases/containers/api.ts b/x-pack/plugins/security_solution/public/cases/containers/api.ts index 35422fa3c5fef..83ee10e9b45a8 100644 --- a/x-pack/plugins/security_solution/public/cases/containers/api.ts +++ b/x-pack/plugins/security_solution/public/cases/containers/api.ts @@ -132,7 +132,7 @@ export const getCases = async ({ }: FetchCasesProps): Promise => { const query = { reporters: filterOptions.reporters.map((r) => r.username ?? '').filter((r) => r !== ''), - tags: filterOptions.tags, + tags: filterOptions.tags.map((t) => `"${t.replace(/"/g, '\\"')}"`), ...(filterOptions.status !== '' ? { status: filterOptions.status } : {}), ...(filterOptions.search.length > 0 ? { search: filterOptions.search } : {}), ...queryParams, From 0e5ac40b0061e3abe63f8687cb1876759830e4be Mon Sep 17 00:00:00 2001 From: Jean-Louis Leysens Date: Wed, 12 Aug 2020 17:45:12 +0200 Subject: [PATCH 09/27] Support sentence case names for known processors (#74847) --- .../processor_information.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/components/pipeline_processors_editor_item_tooltip/processor_information.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/components/pipeline_processors_editor_item_tooltip/processor_information.tsx index 96abd7ebcd7ce..85320f43c1b83 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/components/pipeline_processors_editor_item_tooltip/processor_information.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/components/pipeline_processors_editor_item_tooltip/processor_information.tsx @@ -7,17 +7,19 @@ import React, { FunctionComponent, memo } from 'react'; import { EuiPanel, EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui'; import { ProcessorInternal } from '../../types'; +import { getProcessorDescriptor } from '../shared'; interface Props { processor: ProcessorInternal; } export const ProcessorInformation: FunctionComponent = memo(({ processor }) => { + const label = getProcessorDescriptor(processor.type)?.label ?? processor.type; return ( - {processor.type} + {label} {processor.options.description ? ( From 34195271c533a002b64d30633bc0e262b1904198 Mon Sep 17 00:00:00 2001 From: Brent Kimmel Date: Wed, 12 Aug 2020 11:56:05 -0400 Subject: [PATCH 10/27] [Security Solution][Resolver]Enzyme test related events closing (#74811) --- .../resolver/view/clickthrough.test.tsx | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/resolver/view/clickthrough.test.tsx b/x-pack/plugins/security_solution/public/resolver/view/clickthrough.test.tsx index 296e5b253c0b9..60122f2e450c7 100644 --- a/x-pack/plugins/security_solution/public/resolver/view/clickthrough.test.tsx +++ b/x-pack/plugins/security_solution/public/resolver/view/clickthrough.test.tsx @@ -162,10 +162,28 @@ describe('Resolver, when analyzing a tree that has two related events for the or button.simulate('click'); } }); - it('should open the submenu', async () => { + it('should open the submenu and display exactly one option with the correct count', async () => { await expect( simulator.map(() => simulator.processNodeSubmenuItems().map((node) => node.text())) ).toYieldEqualTo(['2 registry']); + await expect( + simulator.map(() => simulator.processNodeSubmenuItems().length) + ).toYieldEqualTo(1); + }); + }); + describe('and when the related events button is clicked again', () => { + beforeEach(async () => { + const button = await simulator.resolveWrapper(() => + simulator.processNodeRelatedEventButton(entityIDs.origin) + ); + if (button) { + button.simulate('click'); + } + }); + it('should close the submenu', async () => { + await expect( + simulator.map(() => simulator.processNodeSubmenuItems().length) + ).toYieldEqualTo(0); }); }); }); From 8f541984349c12e652eca872304e455633213690 Mon Sep 17 00:00:00 2001 From: Kaarina Tungseth Date: Wed, 12 Aug 2020 11:13:04 -0500 Subject: [PATCH 11/27] [DOCS] Canvas docs 7.9 refresh (#74000) * [DOCS] Canvas docs refresh * Reformatting * Image descriptions * Adds workpad redirect * Link fix pt 2 * Link fix part 3 * Link fix part 4 * Comments from Poff * Corrected file name * Review comment Co-authored-by: Elastic Machine --- docs/canvas/canvas-edit-workpads.asciidoc | 136 ++++++++++++++ docs/canvas/canvas-elements.asciidoc | 167 ------------------ docs/canvas/canvas-present-workpad.asciidoc | 30 +++- docs/canvas/canvas-share-workpad.asciidoc | 14 +- docs/canvas/canvas-tutorial.asciidoc | 6 +- docs/canvas/canvas-workpad.asciidoc | 140 --------------- docs/canvas/images/clone_element.gif | Bin 0 -> 1193990 bytes docs/canvas/images/copy_variable_syntax.png | Bin 0 -> 27610 bytes .../canvas/images/specify_variable_syntax.png | Bin 0 -> 17885 bytes docs/glossary.asciidoc | 2 +- docs/user/canvas.asciidoc | 162 ++++++++++++++++- 11 files changed, 334 insertions(+), 323 deletions(-) create mode 100644 docs/canvas/canvas-edit-workpads.asciidoc delete mode 100644 docs/canvas/canvas-elements.asciidoc delete mode 100644 docs/canvas/canvas-workpad.asciidoc create mode 100644 docs/canvas/images/clone_element.gif create mode 100644 docs/canvas/images/copy_variable_syntax.png create mode 100644 docs/canvas/images/specify_variable_syntax.png diff --git a/docs/canvas/canvas-edit-workpads.asciidoc b/docs/canvas/canvas-edit-workpads.asciidoc new file mode 100644 index 0000000000000..6558def8a7474 --- /dev/null +++ b/docs/canvas/canvas-edit-workpads.asciidoc @@ -0,0 +1,136 @@ +[role="xpack"] +[[edit-workpads]] +== Edit workpads + +To create the look and feel that you want, apply format settings to the entire workpad, or individual elements. + +[float] +[[create-variables]] +=== Create variables + +When you frequently use copy and paste, create variables to easily reuse strings and patterns. For example, when you clone a large workpad and need to connect your elements to a new index, use variables to update +each element instead of updating them manually. + +. Create the variables. +.. Click *Add a variable*. +.. Specify the variable options, then click *Save changes*. + +. Apply the variable. +.. Copy the variable. +.. Select the element you want to change, then open the expression editor. +.. Paste the variable. + +For example, to change the index pattern for a set of charts: + +Specify the variable options. + +[role="screenshot"] +image::images/specify_variable_syntax.png[Specify the variable syntax] + +Copy the variable, then apply it to each element you want to update in the *Expression editor*. + +[role="screenshot"] +image::images/copy_variable_syntax.png[Copy the variable syntax] + +[float] +[[apply-changes-to-the-entire-workpad]] +=== Apply changes to the entire workpad + +With stylesheets, you can change the look of the entire workpad, including fonts, colors, layout, and more. + +To get started, enter the changes you want to make in the *Global CSS overrides* text editor, then click *Apply stylesheet*. + +For example, to change the background for the entire workpad, enter: + +[source,text] +-------------------------------------------------- +.canvasPage { +background-color: #3990e6; +} +-------------------------------------------------- + +[float] +[[change-the-element-settings]] +=== Change the element settings + +Element settings enable you to change the display options at the element level. For example, use the element settings to change the dimensions, style, or location of an element. + +[float] +[[change-the-display-options]] +==== Change the display options + +Choose the display options for your elements. The options available depend on the element you select. + +To change the element display options, click *Display*, then make your changes in the editor. + +To use CSS overrides: + +. Click *+* next to *Element style*, then select *CSS*. +. In the *CSS* text editor, enter the changes you want to make, then click *Apply stylesheet*. + +For example, to center an element, enter: + +[source,text] +-------------------------------------------------- +.canvasRenderEl h1 { +text.align: center; +} +-------------------------------------------------- + +[float] +[[clone-elements]] +==== Clone elements +To use an element with the same functionality and appearance in multiple places, clone the element. + +Select the element, then click *Edit > Clone*. + +[role="screenshot"] +image::images/clone_element.gif[Clone elements] + +[float] +[[move-and-resize-elements]] +==== Move and resize elements + +Canvas provides you with many options to move and resize the elements on your workpad. + +* To move elements, click and hold the element, then drag to the new location. + +* To move elements by 1 pixel, select the element, press and hold Shift, then use your arrow keys. + +* To move elements by 10 pixels, select the element, then use your arrow keys. + +* To resize elements, click and drag the resize handles to the new dimensions. + +[float] +[[edit-elements]] +==== Edit elements + +The element editing options allow you to arrange and organize the elements on your workpad page. + +To align two or more elements: + +. Press and hold Shift, then select the elements you want to align. + +. Click *Edit > Alignment*, then select the alignment option. + +To distribute three or more elements: + +. Press and hold Shift, then select the elements you want to distribute. + +. Click *Edit > Distribution*, then select the distribution option. + +To reorder elements: + +. Select the element you want to reorder. + +. Click *Edit > Order*, then select the order option. + +[float] +[[delete-elements]] +==== Delete elements + +When you no longer need an element, delete it from your workpad. + +. Select the element you want to delete. + +. Click *Edit > Delete*. diff --git a/docs/canvas/canvas-elements.asciidoc b/docs/canvas/canvas-elements.asciidoc deleted file mode 100644 index 9c7467bb452fd..0000000000000 --- a/docs/canvas/canvas-elements.asciidoc +++ /dev/null @@ -1,167 +0,0 @@ -[role="xpack"] -[[add-canvas-elements]] -=== Add elements - -Create a story about your data by adding elements to your workpad that include images, text, charts, and more. You can create your own elements and connect them to your data sources, add saved objects, and add your own images. - -[float] -[[create-canvas-element]] -==== Create an element - -Choose the type of element you want to use, then connect it to your own data. - -. Click *Add element*, then select the element you want to use. -+ -[role="screenshot"] -image::images/canvas-element-select.gif[Canvas elements] - -. To familiarize yourself with the element, use the preconfigured data demo data. -+ -By default, most of the elements you create use demo data until you change the data source. The demo data includes a small data set that you can use to experiment with your element. - -. To connect the element to your data, select *Data*, then select one of the following data sources: - -* *{es} SQL* — Access your data in {es} using SQL syntax. For information about SQL syntax, refer to {ref}/sql-spec.html[SQL language]. - -* *{es} documents* — Access your data in {es} without using aggregations. To use, select an index and fields, and optionally enter a query using the <>. Use the *{es} documents* data source when you have low volume datasets, to view raw documents, or to plot exact, non-aggregated values on a chart. - -* *Timelion* — Access your time series data using <> queries. To use Timelion queries, you can enter a query using the <>. - -Each element can display a different data source. Pages and workpads often contain multiple data sources. - -[float] -[[canvas-add-object]] -==== Add a saved object - -Add <> to your workpad, such as maps and visualizations. - -. Click *Add element > Add from Visualize Library*. - -. Select the saved object you want to add. -+ -[role="screenshot"] -image::images/canvas-map-embed.gif[] - -. To use the customization options, click the panel menu, then select one of the following options: - -* *Edit map* — Opens <> or <> so that you can edit the original saved object. - -* *Edit panel title* — Adds a title to the saved object. - -* *Customize time range* — Exposes a time filter dedicated to the saved object. - -* *Inspect* — Allows you to drill down into the element data. - -[float] -[[canvas-add-image]] -==== Add your own image - -To personalize your workpad, add your own logos and graphics. - -. Click *Add element > Manage assets*. - -. On the *Manage workpad assets* window, drag and drop your images. - -. To add the image to the workpad, click the *Create image element* icon. -+ -[role="screenshot"] -image::images/canvas-add-image.gif[] - -[float] -[[move-canvas-elements]] -==== Organize elements - -Move and resize your elements to meet your design needs. - -* To move, click and hold the element, then drag to the new location. - -* To move by 1 pixel, select the element, press and hold Shift, then use your arrow keys. - -* To move by 10 pixels, select the element, then use your arrow keys. - -* To resize, click and drag the resize handles to the new dimensions. - -[float] -[[format-canvas-elements]] -==== Format elements - -For consistency and readability across your workpad pages, align, distribute, and reorder elements. - -To align two or more elements: - -. Press and hold Shift, then select the elements you want to align. - -. Click *Edit > Alignment*, then select the alignment option. - -To distribute three or more elements: - -. Press and hold Shift, then select the elements you want to distribute. - -. Click *Edit > Distribution*, then select the distribution option. - -To reorder elements: - -. Select the element you want to reorder. - -. Click *Edit > Order*, then select the order option. - -[float] -[[data-display]] -==== Change the element display options - -Each element has its own display options to fit your design needs. - -To choose the display options, click *Display*, then make your changes. - -To define the appearance of the container and border: - -. Next to *Element style*, click *+*, then select *Container style*. - -. Expand *Container style*. - -. Change the *Appearance* and *Border* options. - -To apply CSS overrides: - -. Next to *Element style*, click *+*, then select *CSS*. - -. Enter the *CSS*. -+ -For example, to center the Markdown element, enter: -+ -[source,text] --------------------------------------------------- -.canvasRenderEl h1 { -text.align: center; -} --------------------------------------------------- - -. Click *Apply stylesheet*. - -[float] -[[save-elements]] -==== Save elements - -To use the elements across all workpads, save the elements. - -When you're ready to save your element, select the element, then click *Edit > Save as new element*. - -[role="screenshot"] -image::images/canvas_save_element.png[] - -To save a group of elements, press and hold Shift, select the elements you want to save, then click *Edit > Save as new element*. - -To access your saved elements, click *Add element > My elements*. - -[float] -[[delete-elements]] -==== Delete elements - -When you no longer need an element, delete it from your workpad. - -. Select the element you want to delete. - -. Click *Edit > Delete*. -+ -[role="screenshot"] -image::images/canvas_element_options.png[] diff --git a/docs/canvas/canvas-present-workpad.asciidoc b/docs/canvas/canvas-present-workpad.asciidoc index e0139ab943104..a6d801b74fce1 100644 --- a/docs/canvas/canvas-present-workpad.asciidoc +++ b/docs/canvas/canvas-present-workpad.asciidoc @@ -1,6 +1,6 @@ [role="xpack"] [[canvas-present-workpad]] -=== Present your workpad +== Present your workpad When you are ready to present your workpad, use and enable the presentation options. @@ -21,3 +21,31 @@ image::images/canvas-autoplay-interval.png[Element autoplay interval] image::images/canvas-fullscreen.png[Fullscreen mode] . When you are ready to exit fullscreen mode, press the Esc (Escape) key. + +[float] +[[zoom-in-out]] +=== Use the zoom options + +To get a closer look at a portion of your workpad, use the zoom options. + +. Click *View > Zoom*. + +. Select the zoom option. ++ +[role="screenshot"] +image::images/canvas-zoom-controls.png[Zoom controls] + +[float] +[[configure-auto-refresh-interval]] +=== Change the auto-refresh interval + +Change how often the data refreshes on your workpad. + +. Click *View > Auto refresh settings*. + +. Select the interval you want to use, or *Set a custom interval*. ++ +[role="screenshot"] +image::images/canvas-refresh-interval.png[Element data refresh interval] ++ +To manually refresh the data, click image:canvas/images/canvas-refresh-data.png[]. diff --git a/docs/canvas/canvas-share-workpad.asciidoc b/docs/canvas/canvas-share-workpad.asciidoc index a095253c6cff3..f6cd2d93a9372 100644 --- a/docs/canvas/canvas-share-workpad.asciidoc +++ b/docs/canvas/canvas-share-workpad.asciidoc @@ -1,12 +1,12 @@ [role="xpack"] [[workpad-share-options]] -=== Share your workpad +== Share your workpad When you've finished your workpad, you can share it outside of {kib}. [float] [[export-single-workpad]] -==== Export workpads +=== Export workpads Create a JSON file of your workpad that you can export outside of {kib}. @@ -19,9 +19,9 @@ Want to export multiple workpads? Go to the *Canvas* home page, select the workp [float] [[create-workpad-pdf]] -==== Create a PDF +=== Create a PDF -If you have a license that supports the {report-features}, you can create a PDF copy of your workpad that you can save and share outside {kib}. +If you have a subscription that supports the {report-features}, you can create a PDF copy of your workpad that you can save and share outside {kib}. Click *Share > PDF reports > Generate PDF*. @@ -32,9 +32,9 @@ For more information, refer to <> or a script. Click *Share > PDF reports > Copy POST URL*. @@ -45,7 +45,7 @@ For more information, refer to <>. +* Build presentations of your own live data with <>. * Learn more about <> — the building blocks of your workpad. diff --git a/docs/canvas/canvas-workpad.asciidoc b/docs/canvas/canvas-workpad.asciidoc deleted file mode 100644 index 9d49c5f492bbb..0000000000000 --- a/docs/canvas/canvas-workpad.asciidoc +++ /dev/null @@ -1,140 +0,0 @@ -[role="xpack"] -[[create-canvas-workpad]] -== Create a workpad - -A Canvas _workpad_ provides you with a workspace where you can build presentations of your live data. - -To create a workpad, choose one of the following options: - -* <> - -* <> - -* <> - -* <> - -[float] -[[blank-canvas-workpad]] -=== Start with a blank workpad - -To use the background colors, images, and data of your choice, start with a blank workpad. - -. Open the menu, then go to *Canvas*. - -. On the *Canvas workpads* view, click *Create workpad*. - -. Add a *Name* to your workpad. - -. In the *Width* and *Height* fields, specify the size. - -. Select the layout. -+ -For example, click *720p* for a traditional presentation layout. - -. Click the *Background color* picker, then select the background color for your workpad. -+ -[role="screenshot"] -image::images/canvas-background-color-picker.png[Canvas color picker] - -[float] -[[canvas-template-workpad]] -=== Create a workpad from a template - -If you're unsure about where to start, you can use one of the preconfigured templates that come with Canvas. - -. Open the menu, then go to *Canvas*. - -. On the *Canvas workpads* view, select *Templates*. - -. Click the preconfigured template that you want to use. - -. Add your own *Name* to the workpad. - -[float] -[[import-canvas-workpad]] -=== Import an existing workpad - -When you want to use a workpad that someone else has already started, import the JSON file into Canvas. - -. Open the menu, then go to *Canvas*. - -. On the *Canvas workpads* view, click and drag the file to the *Import workpad JSON file* field. - -[float] -[[sample-data-workpad]] -=== Use a sample data workpad - -Each of the sample data sets comes with a Canvas workpad that you can use for your own workpad inspiration. - -. Add a {kibana-ref}/add-sample-data.html[sample data set]. - -. On the *Add Data* page, click *View data*, then select *Canvas*. - -[float] -[[apply-workpad-styles]] -=== Apply a set of styles to the entire workpad - -To make your workpad look exactly the way you want, use the editor to apply CSS overrides. - -. Expand *Global CSS overrides*. - -. Enter the CSS. -+ -For example, to change the background on every page, enter: -+ -[source,text] --------------------------------------------------- -.canvasPage { -background-color: #3990e6; -} --------------------------------------------------- - -. Click *Apply stylesheet*. - -[float] -[[configure-auto-refresh-interval]] -=== Change the auto-refresh interval - -Change how often the data refreshes on your workpad. - -. Click *View > Auto refresh settings*. - -. Select the interval you want to use, or *Set a custom interval*. -+ -[role="screenshot"] -image::images/canvas-refresh-interval.png[Element data refresh interval] -+ -To manually refresh the data, click image:canvas/images/canvas-refresh-data.png[]. - -[float] -[[zoom-in-out]] -=== Use the zoom options - -To get a closer look at a portion of your workpad, use the zoom options. - -. Click *View > Zoom*. - -. Select the zoom option. -+ -[role="screenshot"] -image::images/canvas-zoom-controls.png[Zoom controls] - -[float] -[[add-more-pages]] -=== Add pages - -Organize your ideas onto separate pages by adding more pages. - -. Click *Page 1*, then click *+*. - -. On the *Page* editor panel, select the page transition from the *Transition* dropdown. -+ -[role="screenshot"] -image::images/canvas-add-pages.gif[Add pages] - -include::{kib-repo-dir}/canvas/canvas-elements.asciidoc[] - -include::{kib-repo-dir}/canvas/canvas-present-workpad.asciidoc[] - -include::{kib-repo-dir}/canvas/canvas-share-workpad.asciidoc[] diff --git a/docs/canvas/images/clone_element.gif b/docs/canvas/images/clone_element.gif new file mode 100644 index 0000000000000000000000000000000000000000..ef8f44223d240c9349b5b13caea45f5665dd6928 GIT binary patch literal 1193990 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%0D2jKuf z4-Uc|57A_UMIgMC3b4Hn&}#rm3SnzJzApEJ69u3{e5WZ}8mV4+D-I54!@WsBb2eO( zj40$FO){Z@KJUjgKng^#DiPQ$z)55SUeC3A0N`O~AR;tnhCeE#(N>D?M@l&TRTl%)kN6~Zj}vw7JVBpV(} zfQsXRNjCt2Bt$G5Bqsz&u|a`^Su-lCT|{-YKoWeo6%{nDfJ^b~ZlXXDB(TG9{6+Pf z$Nb)Dgib(-AO$Yq%yuA>3{B<@xMAV3yblV11$7>9`@ER9;44XpSR=vYNiZB6w4aVR za|58rK~&D6ulE3(0U!byb(0EEzymK5p&%hVmNM|&7^ETuNs;(}jc4|90jW&@Gc2fm zlY|h>NA2f)@N@CCMCCj!{W z#&B{(GddsCIo~VR0dKd@1@fA8$)XE`5zhl9=pzK-oVjr5kRN37#=KPH{HxG+XGZ7M ziJ%o@xC9lTONKad5at8`mG^xNEv$M1v?9(!0YF{A=ZiexNz6hl1-zdJM9~)sq(wA) zX+Hs|LPxA^Tks~sVoi{N6sR`|AVmTyvwvi1j-;D_?%y28vHu+8j7adO4e5v*{?Je! zkP3j4UX0(w<3g!`U8bPR$>S(b`lH>5J5~t!}l)|n{4y|=ljt1328P6LWJ82 z0TN{3ds9$@=4>h#MFjj5;l-!JzXI?$b22aw*A@8obp{MyG5@ zq1cTvX?1o!2&m${#ikzse5I%a7EJ8B6WM~mO6z+OLDn%Wux?@N;g;skNO5VkL^jWi zfxr_Y68qK6%%j9(S%QOX&v<}k%Epn53XVBcT#E34dJld3m6(&_*=>)2(eLEc9hdew zQlh1?-tXU}i!-1JdhNFq)b=S)G2!Y~w|iV!7N?%jwHgX~{_~rIxI(m6e|i9< z=%K=v!U|=;yZbsU{OH3+TVg5DOKgTp5o(JUol!v?pJ7xv5?HEONG0frRM=B9gylVn zy$`w|4W0Wu@F@i7hQcHDD!6EcOH3DgH&44jOMdhfA1}vcz>Z0B#6E?c<{?zX(i8P} zWd;4PRVzphup4I|f5M5*P6()%(h)J0DuY&6(b~o?HBMwJbvDE6n)P5jY7wAtT#Z@fKB@gNzw;2OI;+vQC6gY2t zq=rf*R6H;~ReHHw2TAroX&h0e9usF*jg`QRW_=*CO|u>5M-6C?RNEZY=r7i&MfS{! zCw7NGh@Alarc)oeyAxgZX;8Y)?hWU4=l-x!QAOGH0z`S>G;?)Uy2Xewrwu7PSS^fU(=b*2fE%fzM$MR7g|B5+$hJ8N$a|Ek9P3< zfj5@37~li00!|euxs!@wopYkGqyV$tEEB^IMo}8OZ5SZ&SZxqY_v&@RNA462@KWWm zEHTk^@8Lr+pc9@3r+BnEZ|t71VVg22HvOjsl)h!F_u!S9zrn+)O?M1@6;G=f+#IUd zSwjor*`6(Y`ITT*HaS+q(~~#xEt7Kn^Mtf0i!kt2`BeR|*?>a-bM)$QXA)ZC#d(en z)h@nld*}6X@B>?9elWDa@w7x?W5%beGi(pkkNhLSO$7v zbONm9E{&-3Q(w6KW%CYo#S9;f_pWc)vXEWLy(_NWlCHz? zr(8s4I}huCgMrZ|kjxLx-=Sttz04x6o*}&@oKl%~DZ0Atr+okLhYXz}&V`G>v;7Li z`VvYPW5Iu%`iU#|vW0fnF=9Eg4O`68JEqBIt%8#u@=a7A-Av^Pcg4S}J0!ICoKY=H zR5K(Xj`7$CvU|IMANOfHh75Z86f5RvnQG@EPBc18aFO!dt0aMdjda>(W~Lw9Yrf#X zV4lC!WX(CMT;%TgyG!%%t73n%3QdrdvgdA&6|9Gon7)+%atM-cpf(!mv@W?1&2Ag` zdn~iJaF-uwGj0zHudSSjhZqMUJ3cjB$dX2Djz!GoRrjKY? z8yq@r?st^?eZuxfD)AIn^X}8<@ujf9=4)1Vw}cUrd)4ns>OHR5oxbnr`gQ=XVn<3) zxdrN&Hkonh+f|p3JG^a6LytbPWUROJ_So_a=qtr1?aE}k zSCT~8i(id@FYjr`=$K#FFP#M#JZ!(=O)t(bfCX{L9j|_z*^+Y>TE;ta@ZIH%#m^65 zI=e|pYf(VOYY7;S{f;TGPd-t!@a{da^`M_Z>(;uw8NC1Cv17weZ=wIrVBKBb+6vs}G+UHCT1rrb-e#eNT5L{g@56nCZWefb8ObTDZHPqUmU(ey_#K>;5Wu zk2NE#p9%7WWEUwlJk;-}eYJ=nvlRMuvLUY^;n6^ zA&)Tzfd+L)?^$vpw`pDf<#IMkDdfV3Gk$@GCtK_{PCTuhP&Xm}Ie^+4ajVt#%)EK2H))nLh7$G4XA;%KSx5C~aWoVKwMFV=rsBa%6v} zbN7{bOk!5S(P_w({6(p*^H9T0jdY{wv0(bqG5Cq#h>7{*x9MmnkORw|+H`z*y7*&p_7Z-_BovvG#`V6ON6mTVs%fWuGa_>YWC$vyGX z`^Srx(+U&}7S((roK7eXEEsd2JoxhCRy5~@3KXm&q&Q&{9}F237i3SAPMHlC4Gb(< z%;}lNsT>mh7u%G8n686I0`yT+69LHH zHTH8`>+ypFhnvumrW0o##A)w2KFT0V=%-f3Yq{*1%fs1UNV~3l`%wmGa?K>0sHpa| z?!CMIHvwZw1<);#0;l2Yy0lgU6%qkuXcg@TpcjW`@2r0|4W2O)`1T_Ea5bcY) zn@#{ZN0|`l@6#i>TZ{Tc$7Qtu!EuX#vTat7ngDLJXZs^2A^PrRNC+>{p9IwKN{0dS z+uhSsiOFgMba4X|vk0__9sDTxKAgDy+qkg@dMFZ5V z${I;XRWIhxy=R1Js%{fX;IjyAvUFPxWPg3Nd-h#<1KFQ8jJP-A2}=(jQqi&mfCcAv zE{9ca7$5L0ZqcsAmeSHyTP;0mFJV zLHQk~vVca5i~>RSWZY|cwa9!HHe^CX3hch5-YJfV9a@5KhG@c#C`z)Cpu3sY8pQ3n z>5O9Ms6@nJ);{D8TluS_x8~}x{8G9BHxf)l3Gr!QulqnUq-DK9bky>~f|cCSRbJ9l zHFH>lbNkY689N&gh!_7OJ59!hq0T$hcpIRE=(y-6^`|0oM{QP;o7I|{Rh)Q+fj;0o zFPV`CFgIg?NkBw9xc5i`7*9Xxd~}Ois{QTTymSs+7N9|54IasCtdD6NJSyvZXE+Gq z<`wNJo9j#m!9|i#2v_DM`jCLyHlX8iabPv(NnQ%L-@3pCC^B@;w~*CxKqW37{jo=T zx@SK7r4*O3!R)f7CxkMP8mouxoE-}Aj7?j7^6C#jNm^*qv3%x>!mPtHz7Lz0wh4rJfG4ZSbFNh2t z8tTK)sRij*FjS7dmvVm3+=tpibJR8fD9Ije6R9Tx#DWY!r870}(qG4>;MkGcHgsGp z-7y`~6be|}7q7jC4(33#Yg2_o8KDQVi~AE$M9?;>Xo1^t6#^jbY!v8Q9D)E=S_PZy z1G4e~q-#f->&V*e;7x6A3npnpIXdW%xOXY$03`}&#N%^Mo=mnuw@mnV^18I zzjeWap`6Y%rSvFs;xjXV@&t&bz{%g3jzC1Km-MN(gXIw@k93H-0I-b>Qc;3@)ud-O zrh?Q!Dr%{BiE-d|rn2DH#P{5rBF>0+#uA(>4CuR8nWl)NFV)gXAEndTAafp*NMLRe z&_j=cEu3?A&h;N`2kX=6lypc+>}^g78L>*=D)@jSF}AGIA=6PuNOT1<>mZq>tOnJm z^lgfXM?z#-uCbBE(=K_&uIHZV4_!uBDaE7YalI3YEM;epR4!oovbp#PvdGR#TIm$DNexjX; zQ;WR12V{{B!mlDMZ2kWm#rwAoX;RIUCTk+#}yl$8mu+be53~okD_0kr;iJ0}wJRP;G;;lLRLE@31KVWZDn$aE=0LF`r1gZK0fBIVS>(bV)#@YsvY8?UC!<(XO&! z%T>S@*)!@~281?1#Gn5&7iCLeNRpy`coZ8FPy#S=WR>nz5(!a*YO8^y1azPuV~ZLH zL1MZJ;TF;KeSk~?nWdfH$77$fr!M>S(_*NNBS_4MzRos8q2mlni4yH5aDU5&rqN- z_aQ*?(@}Z^poAZ z1kxY`8uN%O^Bo3+BQf1+kfSybNBx*1&OjY!ubXNRLOQIrC-Uli)HZ6gKZ2oF3lot# zH5$Z(54TQ_J}x?7Lqv*1BQhQ4-p{nhyWiBB`$8Dh2V<`bVO_uIW(0=yD$LYtLeqKX zpJn7kO4BDcuk-^=+M{WR=&0?i<7!dt9)=MOY``Dj-D4i*#{|+?W&)-+A?ix3U$v{~ z+MtTM^y9QCvvhz7DbhPO#+@?bP6E|D0q)>IkLpJo>BGxjM-dT`(g=_Tk2!>m#5;q} z3S*qwBlW1!)(98@5q+E*t;dd3KroOz$aOyavTPJh$h7Wfp{>C>6o2XVNOxIikeYv& z73e6H>@mis| zKFoj$*3pNmIk1k!3XjP~S&(9m31R+Jh@+RgH4%1107lcI%sDU-89X3l(fBdm?E#nj zfifeEW9iYR_kU`p11_sU^!{1K81M9GH8qIHGP*j?8BOp|NEYy|HGUo=mvSChMNtSJp9UQ8+bCAf*(mt^qr=YSgU}y@Im<&H+!#b6I z?K&;$0RQSyA@~Rh{%rf)4#ky0=YU;t)FT|A6aOkzz;dHRonL`WTfyChkT_C|h*1)) z;U)n1O;XG$KIF2FV$$Apq%j1-|R)^IADb%q4DXT##A zVbo-J&~&s*&9&=nmLCyrPlkp1hp4yxypl|H;J~g6S!c*s&h^2=Mu6U4G^#M#O~~?2 zkFnglWMJdVCJUu?HSn9rpsH?=Ti z8VhkLDydJj`7|bgd?g_H&lu6&%q{lowj_jV0QFLMARQh=kD(FaJ~F>u?!&3vWy_mk z#GCMv`^z-_2r4`#B$k>J6DGPPp~UshwqJg=>rD^VLu%La_5L))#5BpQ-;9X~<*k2g zTaUgJ&Xf6V+4s9gF@kvMulLP}O)6mJg-k@wi**G2=SOS!$o+^w&b8Lf>u(;wn$Iu2 zPKM{-Uv1rts7?!?b=X?pR%!i?~i0*M{-OE;b!NH zh>s4N5&Rf_GIjO--=PB>7CQUbVPOd*#<1b~V>MB}L_BOUUy6X@0(S zik9!7>hTBUqSK8oA9Y$Hgthke>oUSam5^gt`%*l$tLp}E#OiRy__?vB5DkaiAKHgo z&+L`BWFlu6{H^=SrG=&pCCj%D+EVuVZya39DgA4lXed23`(ALVci6R|+H-xS?oi)N zMJ03ST*#*zD=s1Df@$ZR2sgiYw-M~HZf)BRO2(yakCyuf7Ih!@ZNGBjneJ8->G!Hi z@#+t2mH!u5tacs^-}VnI8b~aUUOq4=HR3Q&Q#%nS)j`{F$MzpsRC}+V{|_uqMjxz) z?_?jmdk7-lsrJB|E%$9>k>=iJ_~8ium&wtege`LC}nUxR|y?{r{B`<$$C#y>M}O^qx5ED0_@vRJfPs;V+*gZ ze0x+69dzPQN||K0$u$AhM2DdI<4I(t z&<%s>yaW+gEPVURW2W>`li}>+a%^f}YM1NQk>l`=o%_t{{tGN_7zvx1CPs_8pSG_! zq{Y7M&aG!A;g((=HZ@-Uh(3St*W0F{)b8p(A7b}RR%IIhp3F+#S~b-E^7;trDmY56 zI@{Fr?<9D$yJ^K_)I|gqkKcH~ADnt2S|}S1_`dxI)$tkVt46Tc!4V*Im4|fXUJ`$E z|L7KH5m@B=&YU?9*w^1IeuwQMbA*y(=S74+B>Ssso<_T?9kOWT`s~ljt9On)^xz{t z&}dx=Z}j0%0<bqT|l6ER(3@I}moLZV!fhpud%3+e3)F;BrokJI3YN>~$EO;vR zTFpgPL#}p~3&5vE&hfcUQ}$4cSUv&1Pb;s@vo&8%i?Bm!8{Y1ig`H{| zUs-RnHI{i;pK!$G7W7fs1vu#&7G*(=ApmT}6sYd1!CsJksJaK?kS?eNCAZKg@4=oK zmV!PvPPUtXIB%|f$5w1q;=q!nXlE{Jo({rpFD31-&Xdc>LsSO9QK#0xs13?RgFzC@ zaJUug90bG;HDmTmRbB~g-HEN1>*Dl-;9B@71E$>DYfbM@1@j9|930qfhHu&G85^~I zE<@5y#{rM^f^mHYy5XJUSqN6%5dSz<#<>73QN2&r3|pMgeEm-);FN zWuZx5K9-{chEL*I+qC7-`zN$Q%Wv%#e?y50KP#z5iHGh|l{U?ZjXasCUwqW}{U*>X z6^x=3?c7&u1}ShndaIiMP>p2x?(PDiaiV1d>C>4|r(s4#+H~qotUpv+L{!&v5??i3w@(HX~vY9KiIv+ zvcbUC-GNnfZXtgc(@A`9C|^T$-aakhUPwpTiwpW%$W6mVD^c;>!oXQnmVi)sC0_uZ@pM?`wU7 zIisW89q}WM`dN@f9{ZGw*X<^a`@DXj=Foli>;0}f;pe`7LdJie^8-i>^_Cz-T~con21YrNGy+b@)(2?`rwJw97ymebg&uw z=xY^0G(HthTI5R{uDS;7^2%zx*7LP4W{-v0t?=jlidjFcs~iqZ2RN&2=H9!wEB0#S z1F66QakA7a->x}HH_o5j>RM|}i{}2wJFmCB+XW-$$@+%`ozdZ2`P3#J9b>DX9x!RO zm46I$eet{Sz~6ki)(e+XTGyBg$CA8ZMyk?rE3Ko4MxV4jKF2?XK6|b`+JEEasU+A` z_w5y%;_tsAaINx7;)a>twed~JAe?_R-v8?;qQ}g-PFZFfJ4n9joZNiCT3441B zOe`Z+!|M#v3_saUPnHEXGTU1G`dWH;<$KS3_guL@X+it-ENk!FsE5%IX0^E_WA)wD z7Y)!U6WwRyjSIekYr`Y+E6qRI-^?oO-y_Ru_ki0MgU=tFF!fx0@YDFmz0I266Db?3 zU4h$AB*uhI9ZG)k_LS>VagFp0^yb>f@EZy5cN@>TZx-uBmK=*qGoD}hx|Yr`UTNxU zY@hh>XGGG}u1ZwMNGM<5J?FZ5@w~~BK~Ti7sp;A$hqp^PH(#dM8%vFEjHetn*Ty%${CIJG;}Sa#50vzb~6~K`K~jSt(C0fUxzlqSzCq`MXLA z(HG<|k1AN*R~WvqIGMNo9%Y-!1;y9f6=7})8%p2B-KH_h%1?8ZwZ>)+u?x>z0Flw#WhLZUP;yNOPCs-5bY)%HnuA>e}{yE`u6(TA2q%|`kYSBm`?7w z12;wwn2&403N-!P_v9<5#>(o)e^L7}rgu+eSm~7E<@<&&a}K@{%Td_uHg0Dc5C8vx zMcu+fCOa%73XS++<67qb28$k6?+=x-$BlaMrb4FutwP&*mTj?zT`*QH+M~PC+W2&# zalnqF0TbqK9v1T|_QMmF+7tF)caS?<9Cl5Rl|7DuCXa3PaNIKCXzp?J(}Xd5BKmpT z9+r9Zxt&g)MNWP@PX!m9y0Ozay2v?cr^~$}m)xDFi;GS_*?FeA=uFejvrmeMLG9s% zV5u)VUB4E&&hI?`tLXg3P717;g57mtOYw#6yWDmayJ_um*DZE8+2x__`K}0VQ@>-_ zvPj?AbK3X+Xd<<>wF8VU{>Mbdn$ScnlKPKDUK6p%2+`xwBGl5-Qq+6AZFS@JfAt>Y zY(s+VuCVMv678;EKOB&Bn4WStGUF&K-68hBN{=j2=`rZIPvUU~>qO|S6F2Ui_?LMM zKNTd(JnnG5$#F@({V(>Ic;?I*=9%z&XX5XlVT+$l$Ul2K??SSOLWcgMkWqI%;z*&(UM zw8|s2`v*cBOhX@&LMwH`nhnAl9);yT4J&#UR+=B4Dat&GD5MBMUcDa0yUDeRtUJam z;V?7Hm<7+7PgpEgC9AZBRr#N;V}3&Jql6-ngM6OA?MSF6-)f9X%(!#s&Z(4FRVj}f zQl7S?)ODsbUP`Tce7E%7-Ik=Zl7y_%tgNipSq<;AUR}uMdu8()vY&NlzvSkW_2qPi zFTo$n1<8~H4ect-C`Rmic%F1V7DnGYDo6 zn)-Wn?-=!St@STU8(xbjX(0pTB-Dt*kAtFaP?z{AXkKf0rIbCbDs{rKX(F9Qof7N4(rv z7L7P&9xuD!F{q@XpzVJ|9M5(91``*i>}L-S^@;_1d5D zFa96dv&T~>_62>l2^1WUmR0oIx_Ntg1E?mTZyMKFhWP$IF&rtTJ54ywRj-xy`E|=Z zFKWI_b&JW}XDhB-UVB&A?TY5P#aJ$2IYVqMAw7i(j+ujw9{(id3c zK`pogKTgc-IPj%^{OH|Aa*Ei29&)c;w0!XN_8S&uZf)3@DnP=vU)~Is;@^^|;4Kfo zKgD2gl|1d1i{E|+y(Qy&By)EL;cD#eTORo+3Fq%G5fZm1?jUgs|2D1$BX*y(yLVqd zWzu-7mGh)=Wc!$ye{lT%r2Tfw9`@?FJ9^PZQX;!+yiPvz^;y5C#@)#I_V-=-jgawT zqoP~PTUzz(i*IwD_NydmeYjOAb#8WaSv5A;BhqTu>;Bu;s)zWQ2|M2jxLsQBELv=I z3Z55~C=SI+RH&6tNF=IFmN?pL4QamFry`dY7^}lw*E{>z)}Sj%^Fz8yg6fC%u_VIx zH;zR{xwXB?`nd?l2U;OI9Vw^gjoQX_QmJZ}vf^xah6-CLDV--r?W0Xx#dKr>*Ri5O4EzCH2nozNe6` z&hg09NS}d^u-T_Z{p~LU_MZH;BWcG6%{^${4x1kVrmqh_t^W8%Z-n48vGmemuY1C| zA}vaftIOV%{$8B_<+q=!8xAgFSsfMJQDO^k+3@h7# z%vp}SHZ0MmI>b^fxtp(8e|&4@TAty#s*X_oH+i(x3rVge-Exm>NBNs2N>9qKF@yh7 zw;WizT`#QYc2LyrkvozabCUGZ!;aX>sRG1FKYocn+z#1GxEiH_AH5MO>;s2hjn;av zny3-^Y73zvO2>Ymfvx!fe@JO>zzHv(D`Rcq{=4G(|JqCRY_(QtH#54?4?ZV72EUiR zs2Q*{e!Jy;-Yz|Lxf}Y2d_PFK4XguOoxIAm>!}0AC5#7?N>Q$UfAG{LPelE*1%p@n zk|a_|ETw6T&4L_u@AbMa*RNBkwSgjuXwLod);*>+yK|t8#d*if+wElHPw6%&bzVN5 z65KFasNbe8^K?$d?wWU}Nl9x;uKppJ)FZErEK4Mv?%8?nD08<&wiBX*%ic`XwjX^GaJ*~itKmu=KT#BM{J%|PP1l$Cu)YSn#b^zE$mcAD>WY66$N!Is z{2vj=jlGTQqlr%JkXplcF=pCb|HDKsSUiW@chawSjbamy$3lCA8sgtaC9={(3A$WU zLH%b*k%`3GRm6t8cas%G9BUYGn)!1#h|!%^eUXXW2~OU%NK-Uvnq{ZG@o1BBQMJz9 zYB~X&*d;QNmqN7}XBfGWsfnG=A`{u1KM4xS$T|MxM|$5I&l2AFW}auTgi0vrtF9>G zcrYTfrjs|c5F8g?mjS+w6}(}f?~RGG9gbWy#};2nEQ<-LYHw;hUx@6(%p6l%@<&f5Aqe}1vZq5HCo|LNLCe$UE`)-S7G+sd!(dFFG)*Sj$FbRTc{ zT8i42ixQiL{q4mX<%x;29!5rwyX-qF?jQB7vijWD{iM3uJ8UlJNcd;LJ+GQ;Kjx@e zXR^nCS=YVoo>wRi|1y_U^Rctc?a?>z@Q)t7>du3%Cl@A$2R_yC+FBQmfg=Qn^3%!af?wT;`bi}9a}-&7LyU+w8xY^R(Z2QJjMEB?G1-FI&BTE8&j-6&o-BR9-uRij*Xk?cYu($J?LV^vOZqS&2Jg~xr8z2=(?^oSoU`o% ziw^(&=GPNiao;si6me8v8V>vT!alf+_2tvqny`Vc8^MM5&(2-h4ExL+Uaob|8F6!{ z|FSYK^}OKvcae#7T%QjvL7NC!4~&Lz4nbke?8O*|Yh6lvX&oB5KVtRjJ21(i)mLu( z$f;?V?A;#r?&ijiqVs>If%n6nmJfeU@c-L>-eJDKt7-gBOiY#U&G3Z7uB>Yd#%-n8 z@X?Vk?aQ9ki{=iGsXr1b4zg0W`5>M}T zsqDK^F0wJlj>QCe#ZcR$!_;DYOQM${(%v-eNd)fXbkxukvwsuDGS`ptx`wSJh}on& zS?QyX#)h7!F@NSWzdN~SJdhj|#J;Lw?(2^w({7f;`s9>EJf>aWj)xF(oZo3qf zD~8rbn*rb-*@=U)J`(VR!wgiQHq2dsV^YB9Xi4?=lA6`FEY9Js6z8cid@gqwt<1pSm)r<7HjD0={0&jn*fk}tYz zU%VWIEIus)kq%c=?FMA+4W!8j?siS3965$jr-038aAy33(CU<*5@_3fV)8ceEgZ=i z_Py3gbQT`IOv0tHaiT=x07tTdgj=H{!)9=ANoYeeG>uKEz~g*u(P4OSywLv%DQ%5} z9-yXP$-tzM?rpF!K5?jNq5mT1^dJ>EO~>AINz2N>oZx1x2~dmFj6rI~z0lNYfr#@V zaj(SOT<(g95Tz7%m7B>h5KAb%;an%hq{Cn0A?{o;OQiG+3H?TZW80#$>LeHWD4PqI z0J^A?iJlXn=`*-OI{fV>N2;0w55vRaxyTeUZbNibS&9wdA_aJOya2tyL2xLTPZX3P z=iXI5wva4SD1gH8aKk(-2M-r;aItt~mf#*8iLIhwQUs_%uZ*jr)FK(zO+tI~?%BK( zy9vOiQISUbkT(H25&+Zy1szYq-T0k7!a-DVaK#i9F%xUc#-tGBzv00x9L)GYZk9J@ zfPyLwO*1-%JHbV+Q83*k)CnGJp)c5|#&4Alf37BGPfWHq6AL4umPx3A8T8vy$wg9D z(K6bV2p7c@yV3eL1i&Zf+G3DIj8MIIwWy{i}fV@J&4I zf&lGJf*Rh&cyqCZY}6G2!i@lc4T|xFU=toZhy+g(AZj>p*h6fg5FN`e*q~stM4*!J zU;}`vAt4Njneu~Ttt3Pz2b|88^k&1>I50Q~@q&c%#&g~Xvp)&pHf!*BGHwlzRpE;n z$8-9=p_{|*?|LY97mxf#LCq1xrU9py@vvAf_5~XiM1tPgon5)QV?Sa`pa7f%K(Pqm z+icjbOdQ7&`bltaR)`?*AgTgrAsg~SfD0!ACAdh#+pul`>V**E%Y*w8MIr~j%teOb zv4H}F6CXUvh6Pa28zh7xA6x?{7m>;^B7BwzHr?by{JB6l8@3@t-?sykgSd2&GPU33Vh|44~Lp+kh$#WvW*C~Pl4mv`C8gicc(nYbk#~XO~ zCp@ZE05;{r&4mvxbFr};*eDlv1P|3FVvbRu)nuG60HjJrUm${J@yGx!yoLiHl3*Tm zfHWT5%MrU@4}@=ihN#g&1a9R97po(Lh}J{9)x!h0xuTpxCkau?g^O!s8CGB;41s)N zt=KG1?Ges_04T1nHYQ@i=!HLL3Ip*^!zneN@W?d)##IPx;)po`P=5`P8vu+p39QYp z;ZV>i6!aPqJaZWQfD5w~!Mf1!z*FVeS8x;;=D`K7X2OaAIS0Oh;T%|X0++-Ekp*B0 zJ~s%^a8pniKt&gl#dO#W4gVKkcj6A!|3Ci!oY_}1c2Nu>TMXH^hA4>)ZOS%8AB|LcKM7EfrK0bbC{PheAv+AKgv`XiPX=06aRRW7C#K3Rjpst+&Cs=6*i#{9L4=f|gLweaMO0vI$^3e_54_vsw77D7Ci?XH?BdM@9vY0dtvp_?Ki;&Mf!CD&b84Ctc%FqIg zlNH>G-&4W@$UG1y!elZb-G*8b!ey94)dB>XKXk?;@Kkk-Z#gNPKI{((MIH*vMRNti zt3r5b39h;eR3<<6b0(}(P#7){Pi~JCA@A;j+j6^(Q9(np*cRUCdaHY2BEEzM%2L5> zUai-qrW-VX#)569fs)im?es@6C66>Huno7w7FjT^7CeuSjRIgU0C5u!U0(1=QUsnO z*Vj@370P2-0Ioo8O=aS>pa3i%fe}2e6`-t{#BGWAX9Ym!8Xrp+AZX<0Fe#NKc`WjpRk;4>k7zzK`s zfp`E#FKEjYR9CYA10sUR1?s&Xktr};0HI5U)mgz8Xaog5Vk;BoC&GkN!Tn4K1f!$* zh$qf3dLCj2Ha}Jn!eVkD(}z|PA!cdQDkIoX5xkm<+Q6U2{)6&gqgXH+7l;y|Q&})M z0U*nQ9b>_?`L}P-k>oWR*j)N{QvvYn)=a-AK6v=)(TTWWlSufg^rG;!%u4`rw;PfM z%bCQjf(NNg9GwZOP+%I=doEC*R{$(KVOB&)1pz{edYi?3g#loRJeVR2uOa|scwjYD zHsxc(1OQZz^cNvvd~_ZSP3L3rP;ik2YgT+i1wb7-K%z`75MliSG=ed;NrZIU4Z85L zigYOG`gXOxag`5!P4gjMpbyi8 z&t-u*4IxUK1v3<3`e`Vl5Rlfpo!f|76u}3b!GmSM+0R2Smf4RIq%XY$n$|vj7}Wi~ zmDXxY1)!nj*#d<0Z7?S1euq#*@Lp)w{Vq$#=mKzAC=MwEdm2BrsyIm+eby51xWZFfH(Iy@?5n zf`C5_*vOmr3x}x-#$9{}K2$(a1kdE&cVdpd@EVR5zGmsd5JJ>;`d2?am_K7yLxiaY z;6XlL<+&hKi}j^!IIg$q~O9o{JV)oWr@ZGCe8$zc0KBnS9uL|9RffF?|{qoF!Zs?t+3@JHhOF?_8$h*H_D)*_#5v2-)RJa8S22@)^kz5Qr>sbHO zK#}`-)g2fWI-LuoAaOJWN(gN&8Rk?-RMFvZl@SHv4^$ku-85TH%5z1G1ee7gx{!)< zv8>?vzIv6t?oP#tdgiPuOBS#Uf6M%7a@DLVLFeb4gOx1-fQGpm0qcb7X}eJHK{ z>{oX%A3>BCPz+k?7Pf6}6LxAeW;2h~n^P{*0OTFhPEhx*?!;#OkMfeqX9k39FcriF zRbZveU)O^;%emJ?bRo8%Va z{+!QUsV}&58^sAMa3G6<0dw+!YjE9fLsK+RIXF|NaVg|(_-=D(3f6AR%(2nSHC1(v z)oTebK}}p3aE-tAgu)fF=W)IQ;+SG<&Gin$ni`Y=A0}oyhS45`QKc%!VEEmdO-?Ww z|F3McWlr{8oU&)V$`d{Wj+O|ml9pHo`A2%hdcxrs9NH6}A0W+ajF+d6zQ+`-hlhR8M-I>Do#|+em<*J7z z7PYRS$Tdt4ZqS)R@5ZjBm4&LZSA}=BULP~jfF|Ie%MPa1Rihplp5NO>M0gJp#P??X zfDy-x3c^!ew4FHw8SU%!nJ#gRIn+M06<-;>xmY#kQ5e=`t<|uST z&*o9O6CUOp{+wRUD%ifGT09whsIMWLbv>GHD^_XP29*JEy8Gq^#-c7XWd9j9Z0Q|d zyO9>ta+X}pn)1tk`trM_R24lnGOO$|U}tqXkPVL&*!^TvYf9@?4IJaijj<>MjL%1k z#SOMO@eF0p9f?$Y;A5W!Y~&EX+Gqs<__(4wp>Nf_9Gz4okD6#6TKwem>$O7lk+=P@ z;rSfNEBidJkc)SQUh~-X`)S1sU_HiI7_In7{49Z7E!jvfNZIJ`dMHD$luzHZe;q<` zpeOnBb0FRPkurA6#5&ww-*l|1v-mHJ0cKIx$;ooqPd%-2q=WDF?(xK3hm!{RZ%_`m z7F2?tPKXmX4xZQ2CeAP(*xBVCcavS-k2K2M&|l(IOcqY;_*}Ey>O@t(;;+|4i8bC0 z+ar4}O-X8n0mxN$@>1jokBWJx9Ysry(J&D5IfwjK{dXg7 zSMpMG^o^2AJ&VZGS2yRDpTF{c&xJVoEQu|3iV-~;AIw}0y!n*^!Usb=25a)H;niaS z3(xjYlTG3{&)h%}!vym`;uUjlE8I^MNU8q%CpVp3HhlgwI zw$m14Id%SHYERN}-|Mazo_=TP$9~{f&G!E|7+{mt+`b+U3$#x@G_`VQ;@yXa%#aUm zQGqOmwN&E%@ddZXbCh_PF^_WNgUn_(_@!4y%?{BY%`az_#%*_OruU0)`;s+|OOr?z zgMB=DQ*zum>|8z{sp*(jbLeU3(x$?k(D-Tm+2=`xx7reuLCRVAUDigr-&!5yf4=Mb ze7x_})txgzWQ)<;aZTs9*BQ1c5OcsH21)G?(thkEk5_t`3FT9uhb5&%gL4mUn#}@v&U0h39~=9Bjaz8CxE|<@Uw3 zM?QOSAEmW3n$BbbnB0@%8OTHQzXokQnD@KF?-%y056$j-b!gIKZ-|?0^}%7Q@{>gsKIZ#STT?sSf>n5TWb5+H=)A$2 z)88*_sXX+edcV=Npm-(snFIO{bmy)Q5du}j+aVZscyY`1SqM31lQ!)+YOU9(S=Pf5?7D|wq$5c(JoA9cM_ zU#E7@X!Xa$@%5*_Nk4IW^`}n*ojzsWcJ6_*$-e7{^`D;F9oPHhf&EBd_f5yMgu+jn zZ0_!7BPPII;>U%@K^OFQ6ew5-#0QEIKhN}5m0xT(bK6k8&Fky2(C?QTZYS^gd|;tf z*E!ph$+NtJv{~5uYr?G3@m0>T!%6X4662pkB*rYK+_p2$|HQ)$fF3~DAZ*XyeN*Up zhVf)+Ei&eGqu0ZA-mVG`e_rKYAHMf&X+wNRL1T$9hv4h`8Rpx^!M zy^QLtElq_i@mC&AuaEI<9B==|q-#ao7ShCE%;fOdI(!YDP_aqYeJiF|0%e<7IF~Um z(Ef6arJix8=6Um7fHP}aX+EJ6-K+yQ%Zx6@V>EkovMIC-tC6{O^uuE7SL+A#0ad7b z7op~fRYO4k?(?o6_$sFb-h_9r)6%p?zp#~J(|%{PsPihqQdqIJVtODP=)OGQfL(Ka za5XccH0os0NT9T=4cJ$=3B6poJV?L*n;+0*T`O4DOz?%HI**Zzq`>nAY|hxM%eX5o zr@@)n!Ws`c=lk&d_(6%Y8I&Fx2-kqAbptY#WCG*d*g)=ltgR~?v;`%Xjpcxp&>(RcS^<%E z77oH>=L$>-ntvx*Ai%Mv6@`2BG&A8v%W_g09A~^FjRpReFFUo3C2*DX{dGQGqJ*Z+ zFpsigdT5y`U?gB9r3j<&#?q|v52@!t2NtvaC1g}AL!rby4d^Jdk%N~5z4w!Wu8xZ+cR;R&9rS{4 zQf~0LHhXq9huA~0*6M!_+_%@r9MQOcoyIa>mM(H~t zI6yo2oHe+Tfz7a^w61?jOE#iN?vVmz$OGt!qV8l6!CI{zSFW23HuTtEW~KZ7us`?F$=vrr5n(t|SaxtuaTD`~>2FvToe=Ap zvPXnLux=@cW0m>$vC0y1EUPyWDOwbk(OB-<9f#99XoFc)=w{177T94rr0YF74LRB7 ztQ~$Z7>2@931ssSDmYAXOU_k{EvP{qau43M6R~xB=B`;ynAsj;+2dWRnSi=G9Klbu zC-=JJcF~GhLIHDx7nmp7=SV3pM0agWwLMay4#49J1k^KfdH@u3^7Da zo=j7(oGZ(gD!9iqMVO8t-B~**@X|lUFt4p>eIVa2S2{uFp&V=0KaXgN?0izB&VbRV zPOuU{9=Z(vM8m(yYbMKV6^4`yCi$-iakrs_ynBif9q@}qd|t`m=^zjgy221Axye`z z-I~m*mr7BZ0PaZj$0`6CHAt)gG#tbx6s1DF#^O%;?%aGre|n?{)xb~ja{`@d+usMm z&T#>G8cWaJ)sAB|T1-@Shp)RKj~{SVeI&hp-1VKDqDrj!JvM&}rxvje#Uf6#$kjR=tOy{J_exRrZj)xM6W%xGChu@hc{f135zAil zkOQ@9o|MGaM$YZc3&C5h6+Kru4imBIjF?r=5F9LZ(STnJY#Vs*1XwQ;UZAUeiTT#k{P!8P9lsWn6*m1R<3g>$!gA=1!U ze7adJWtsu@y@6ZDrjX4tz9G817;I~9iXJOZtDI%TJCOV943V2`!cDQ*j5_sJI+^U2 zj7(mKN%!Ltr8J%-?VGTTO|j!9(_;_8Y(Ql?VBLY#%7Ev5avx63&rc;WGuYP5l++@Y zq=;o~id5!;$XLz}K~XB}ptT5860zx`JtQtDKbK+~D^H~ZYe}gvgefRb;q2hTl?sxB zD99ZH+2(;_Num1?rl}@CvVAIBNrR(jnk*^sLb^kLLBN~C+0yPQ#fh9sFN|&|kwOQu zQqyc5RHfWOWd{VsNe~>FvRtB)1IwcWY1Y9BpYW8e${&d~;_^^d zHPhv4UPcos9&;&5H7q-!8%zL5v8LA*r8rX3_P9UO6M-~$4pDCA<=ba^K(b^}vIi#B zcml3XN4a6rJ;*6`KyvTjS4wnX_Z)mpkMH&RR_cyr06LXDSfYq9j=aW zA*0HhTw&5XiP3{0Vu;lKWXWD(4d#&LjF4r|^?#=@lO@Kb^mMP8s% zENlZN-KS>m7;hp-kbZ0qv@3uo(hva<;ag1BIS&MgQV+kJ2uNCxJ$59rva>AX$Ynt~ z6I#|^2CSCfMHi)Lx3R^!@Ah(`YY1x5(}D^>Gax;Vl13WvbrW*zmRZjG;rg-cJt8(V zCXFsgkES84GT_H1I6)Y+Et8YI%3@ZfASkKc+YwmkEh{iBE--DYJKB#qw`NuVuIoVV zSVks@!Lc1k=;k4dlKr@F^H`YD9LrGS&0ZeNjE=ISpw>}PZbfOv08D<4O zT7VLniqQAPQWc9*d?*Mrx#SRfdI%lS?ycAHS(I~bA9vHNp2ubI$ zO=*Zz%SbC8Oq=&9PLOO$iGUtn9srt2LE6!{bW|V@ zW|e`^;zChQv>Eq^J%#B*Np0Gnq9~Uv4z1~5PY-uT+tWBcm~@AZ<5#yM4vCO^9dE(g$KOX(-5sXIHEiQH6E2l%0y^sUs? z6QUo^TqM&49S8lOL%OplHO@5J9ze#?IU%C-I7qp=FP?xly$51k*5Jn+(0)GO!s!Sf z03E#+;xmd$a{$5qneI$SAL6Bjn8ZX4EU%!_ z58sPQ%=mVM3tJgE;oqJnRuto6lIkmpav5bx#2gP5LC4b5Bl$sIN^xbp3;Qtq*nga^hY($eF9{)jUD-F)DORZLvQ zriiG46}wGe_qqIt6RpItR?a+2k7cf$5G=1$p8c~&*yzo1IN8xX(e9jrQC-M~0!7D?75cr%lgBshJios&lFO z*7HAVT$Oj0ENbb7JS^CBI|0*v{L}oR_5{!G{+Z3kmUJdtk+Yv9=NhD~Pc6R^d$K9N zagwbZWL^54r#HiAS-k2yxaLZI)tB|x;CxYwXrwpwsu1gvfHcGhaph zk1zf-oPSbxpe3x~d;>p>`S#V~(RSnD#AOK!ua8sT-pt%h{ds%R>|O6rX1?swuw}>g zxXPB!#<0KUOCKly_AG6(`0UAUKe&(-2ARko^UqqszpVcK`k|`*@%8XE>%X68g0k=Y zmM)_KN&6HNkn*tpjxVs04k(AOL6o*9f|3SkPX6XaK!Rx8Vu`I>E}8&BKUEvcN6eRV>h!_+A}Ox`7L zM=98M=%iY_t^7^33tn++saI05zJX+~y9kz}(Qd+-$^(1-eyNv41bEl}4~ zzZ!V(qGnxfReNo9LucG{rS!Xl^9QTz;)L#C>Ta(~NON4*WNq(F3(t=BJP+Ml zgVqXFv@x+h?E{}~|Gw_`wa)zLEo4{L8|#h_moD4^EQT)dpN$w@?vaj{Kj!h9WiGgT zyx1|cPZUE%7aaV-2o4g(cK2No9}dQ$&wuX({e%TNWDQ* ziI)OtY^QdE;V4G8RHL7^Yg(m9;k`wzji_YL2hZ)H6Mko&*I5L&^UlGT|-+xVn$**r2&q}m8|2UAl{GjRp`@bTNH)m2kRvE*H=nw&= zrDV&!w~&eKY~g0jx4qMjm+X^kDOffC*hGq2p7Pzit^MQ81#i<&wO=3;+4OTn|7p+V zlD4nsNvEQ}4O@_Yd|Q3-$8vFei^AV`PmkS6te#%6R{c4pqICPgOGy{&l@HH?tiKDd zty%wBZqoa^{PmxRWAOK*`H+dMtUC2K;cYHpFu&g8yV5T}qg<-vvo=#M!vv))Yi!!1 zP{RYKQB8zXIlct8N`~Y;s7sDRNTYu|q}2J!SW+9c<=0~r5n~w?t|lgze_yVIDdx-& zQMM4+2&5ZPLPd1)8!(l-+_pGtQ$7IbFE)ppY*&Qoap^ z*(P~0@QjW8>B@0zFDjP-WUSA?Y3+xL8P{Ku`Z}vjoMf#>_oSd=ic}MXpb|8X!em0Y zaqksMjtzCd%#BiTGZ!Se>8LDH&)W4_Ww15L+sVRNghGvo!eneSG6WskP0Phyf81ZU zHrkU$X{A$`fm~t;Knl<4QONy{Ry5Slka9mB?NgjebmL+-@!=$z&U1=TkYRU^$-W3o zQ#h`<`dpQ?-P8=~1P6`Mfzu=U{J#rrE;v6ONt{UDfvf958Ryu@DgWWpCYZxEhIg^d z3|}KTYPR9~7F4Kw{pxT%A+UIT#ZhRY;gG&v zVOGd1K+$^BBNN==Xr!7XDpen48dz~@-0tYNC&jwHrC)4bauuxQLHlr>!#k&Rv=rrC ziPCX!Qf!SY@~>+ybUHyCQ;giX%_uEENA-$Fa=P{61V(QK9^(}x%supTZIeM$Po2m5 z3K~iuqupmE@_4IHaQqe!4Q2*NIN2O1FQ-~vhDRS!Ppb0)&!TV)7 z!NMMteFN7dgxlMYqukcw&_mgOpy%bqaf+q?HfFDB8fEBJhmEImglmt()v%h{+s?xQ zE?w50-2pc~b(8#N*Qsq9kR*M}Q8>o2$venokmaq=@b1|w+dbPU30eMU9dIOPvZSKI zV)@n*s%<7t^~_8ZTWR0-87a%=GpE$5()zl(p0wTV?mbR6o5yx~uNjXkk*CFvb!OtO zS%0ftY520gdlnJD0`F`ox`rTyJUl4cmwnj-HAjCS@BOg#-uHd$vyJL4#O@=buc#D) zz1eNR#tT>SrS8F%CVid+vU3LMkKxbx<2Jkt9t7&F+>;En80PRgS^~wEvp~!~@!Tco z1p6!&mJc|!oMW=!m!>TZCEV- zWHg~Z8eDFxQx=3}%hsO@e(o93cEsxGM;}Kc-8ZJQdI#=li_Ye(O)XBfwK{k0Qbt*L zWO}#eU{naP{K}hqJhZIkojOjuPN{ht_Vi}&{J!q?nzz1KPKOb4#L|C*KF{ieqLRfyo$*1{IgC{>@6 zgNLod&r1HDHMnzgFsO`q>2>$}@7oXfAMf577SEouze}$uEZyp~=TAWHs?A>+h_x;h;@3+<#KWAV5 z{zh-@?en9FKel@RojiJHdRi%Id8^mzkM{1rU-W+cS(y3y=gXZ}_KE>Y?Mkm6y@Y=*h3}?J?&Bi!HlU7hpM_G;M@rF2l<`z9#(V?zJY%esf|Kxy z;fhTS&)~d0V>B+k>}Q~xWm?~q5rd}*pLY>IGsYJg0h&;6og(&Xa7B8p9IL1-t~HA> zP#!g#l{m9g(y@FDtK7P=TzX}_jLPiqP~U;*SrXfKG;?<5w6d&i`MdJj;o@2OX5XQk zzP1|T>)XoZgFQE#pWPtltGMz)+_n73EJLZe#Bylh%tnIsi&RUUS1QeyRIODuZm-z5 zTSaYug_^gDdb5J+!(P>}SL#PpG}0Dd>S7?^0XjN5cHL7Trsi?NSQXfGIf@BC{ zuRaf{*oabe_oFvVzIuG}>89g;YH_c$gZ;GsKM_ak!<&tF7YEvEdsdzZ_)o;~M5RfR zs%cuKX`ZUt`AV}gRr9J!^F~#Rwn~fJs+RXEE$bXq4TR~bfkcZpmEfoUJ>vMUiQIn0 zZudre-Hm2ao+o}(=xJ@R7WJBjTzR_hf5nCR`uY(T{_&O}Db|t6wD3&Z7^u0Jw(X>y zogIV=Id;)e_QC%*F8r4jM(;WX$-<0XG5_MiqTT=C!XnqSvu>Qdd-q1}4N2L1GW$QW z@Y3F_+wl=U-L`g+=b{*{IGA*BXk<(6TWa>7!1VV9f2 z%C*CJ4aduDA}cB)&qK1%Ac_a!!jh=MtN-zZXQHz^qO03a)NYCC`cGT2%jjgA^~rj} zIKF9Ims1?~THNK9xGRUQ>x`jjiJ|Kt@LAX#{u z(*()FgQ?}`(oUDA6;)=Gxn_6%w=e9?z5x+KcFy^noE(?@{?;?~0fjf9!Xl&$2McfY zpS@Xsu10X~uGjf{c^7ISW%w^KgnS_sS!^n)|5q9MmX1Cvdsuq8GOGL^XxLZT4Ov47 z8kSyZ=)BVQ{L0XotIh1XzT#^)IdX4+u7P#b)&bfqcivBi=vw&?9PRSP9a1L`?~H9cHJNA z8ot(jf2w=@P50!t?ssjs`}6L8y4XA0);HAG*Z-(*WUBA!>%QraeXqawedzBWsJ=Jd z^I)WC@LSj5__P1u!jD65AzwH=JX||E|6_DvW%Tp3V5;{&zHsQtBt#5r$Cq!9e};%* z%QMlRXFnicI6V1gauOnjAHGk0UYz>6Hud{oVmLNC{~uqt@cqr#-~aK2x8D7odG~Sh zIUTYnFHJd6>SxX%BU zJ=A$);TiAn*3ysHkKfsA-Z*!=x!iV&Rx1;)^WzxGrP9dr{iD{_pAL^&J-44IbXn>+ zJnHh-^T89BeJj2Gp|)oK;KC~8-q5$6y`x5=jUAKL&tfCC^Jsn4L7@kjd4p)!n_Lnu8&Mq#`$Vkc;w7%RSFaXU={fa0D}G*>8=Q}m}vcl;%WiFf`;I2#t&sXAI%f9oM?zR0l6(!p(YaC~ zdfuwy6TVaH27&tJjoYx<%|JJ2-7iwF#B{=LS3a=#n^3t^nLm_s-&#tyGSg})ko`b& zsqfEl%Xo>w!^exk!AMj#xHQX|f#QL%S>6Qb3w3O4YVpR+Z)R?F28C)542D z$Hrd7D9hIzlXO@r?AwmAy7J6DKT=NYir>F=_tz}%0r*L3j&ICG>DF*dxQrfQ%4k5% zm={p(Wiu$Tu-10J@N;dtwX@P``?!atU!&UDmM4?NEe9M~}f}Dq5-M64Nb-wWR3wTQ@JF^@?iawa3 zv_B3-rP>X6Z#-;kkaK0@`)`Fu16{n#*83YUK>R!ye9Z6~YHHs8#$@bVM(1-6RgGD* z*MF+4e?CeUTT&lXokVZB6T}uv5Gnos^WLPWX;kL;$-d<0S++N9-koneS8o_Fr!bST zM_sd*7O?x<#fiN`X-mmAsNLCtZ{xP>?LVIrmAprD`x98?Dx3?{ZlQIa++=y3i+n{z z=lLZ28~=Q;<`QB%=d@nyYACbtGF$!!7vo%GEBjFJ!Cx8gInblu4-+IE`cbjJH;)Z7 zS4(P5!8>9gTQ)t!`%3M`gFs;xX}H+`O}0D>1&>; znLFO}JZ)><*TDP-7ec|s$;HOl;cE^r zd3$Y+&5FgF8jFDHv~$||*i%q&G07=oLyjk=aH3B$uPJAy`4yqvy-uyHDKF;ZdHH;I zO|y4R1?dDCrCxU6FAbN1%pph=_7BiI)6H0f!o62t9BIzT|EQ*R zz-%b+eADU7G)cYcUu(m*jZG$DfBa0R4&Far)pF^}(0j@E&-oSyk6%W6&2H_A9p&tf zViR*;Z_!?PbRi(BRN481z)}9uxslcYy;3QgV=IsIjiN4Dda40L`%!z~?~}cU zFOKu7YOn3wuyCkSz9jNxb6x20v80iUo60`l;Hmvupk0WY75 z@19kFaAEDYh^)1ED7bjQ@xj7|Z)dv_G`}R>9J(y=y?Dy=?fa)U9)yoX7QKJ5i?a3P z=w|Ql<)htm+fSV=d%ph1m7fW3S5KIanr(=#ohq4MWp<1Qi#JgI%% zt)Fwde7;}5lQ94L!^A=__1DWC#%s&HdLO@9ME`zs!FjG+JZH&beEkhpTF|A7`ODAP ziyovz>WSvHszdM%tD;lRNRl~75{RN#?w>jpeTZzVKpbGr{a}d=u<#nmnC;0Da>?WY zE210=&|t|7D6bnxma9otcDK{$NY;#HU+!lwjwR30S?Hou&@1N0_esvFVmHWy@6YyH z#Gb;qr;Mc~_1^P!*~GCcN-8*#1YF>d?sFV5$9fLnfeCb`kW|M*#mlCiON;*}K}g4+ zEWjM2q7DwEUY1G71c-?YqL2)fLWGZ%c2OqbBtR?`VCw+HNd_^}A>Av3v%4Hu{~mF; zfRssvn}Zo=)8cop4IInQVA2ONqHAJKo5-B)2rewj%+<)y8_49gWpZl*^GvgX<}#}^ zQfrE`E_P(CAIK_oI2o4~#~TQ~>Ykmip4EXl+TM}PK_&eXpbrD28vtUUzTsL zRU238F2J(rA>8Fj&Xej4Ez|BWIKQl!^ z&aV|jH;T>(`EgU+{D~s5MsfkCpK!k@dO8rl`CvFxbjBbRf0uW#Y0DMF(nM_4%_94)F2NBZE?-h z5mOAT!3{B83gHQ0?D&B+RZs*8MbrbyMH;G%OPUZ6u2PW4*7zs+6X-*7gxwUV2}y{j z;}%)P*%X4$!Sk1>xvc_ZGy}sB5SX;0F&caW>rATV#YHMMh>i|oq2d|XMHc=%Rcwrh z4-}%=>(CuSQj!Sa!^K1UofgT&2)@`=7A}~I^`ZbbpA(>bnTy^Kq#H?gZiLKy?Qz{9B(i>2)&`S36wX@nX&+D%x#=U3!! zAhF0qI*Jc3q~p>=urmNUWX=2xl<=ArnrQ2zeFi?A=6*Q^7Lfm0>=vpN9wr zFbov>Z1^? z0Jy6F?p1(Dqhft%l^^+VXe-}MRM1OC6CAI-W?;6NgVz{%&OTBf0~1Imm@=^S+>8D! z)QSiJ0~#;08YZ}yx|7%IxuoEmVp%kTDXnUnfiV>jddZkYIw^~HdV~k}p`m={v0j<@ z6%mZiLizCUK_Wzw*2xO>n$tBT$aMtM(cXM`_MwXq)yp@>UKU~R6(H2e2=xMl%Nh&b zb`jDcAcP+wt~bHL_4DDDBD4()1lHj~GfG9OJ4-j2OC*=Hivo>`#$RQjEGWcyVdZNwdivmnX(1ZOCJt#5y@X(= zkl-T1W(Qvy6G3nWhWU-{WMDhFBtrmB2jEp)lsyYR;}E;+z1mtpqL*?rj*AN5fobw+ zjgxq(E;yQnx=LtV^x5HxXv^Wt|1`00`SikL`y2H zi-8lTzz)V&j8L(Xj(9i)VM|65nQdcqLKg)Ap*??vb|o(0!XsNe#a6$9hOFZozUvg87RES!E9sKo_cEWj=yDTo3}3U96O&`AIU+TivI2&l_v zNE1_A6N24bP+SBW0(TUtcO)2hs+bjH3@(d*$Cd%#LFQ{vhVH;XA%p?U}C&zpw&Fdw+qx~!1#Z_VCrp)?z?mzUJ$)PfJ!eIHsrzEusA#b(IDUgAEQJC1L-772Dm?`AIV2bfqAyL}(Zd&83Oy3jhhm!=s)fWpol-0L-rkS$u>V6%3-2jA)}u3>-wMJQHHQ z>tl;F?z!>+CkkTAG;|BV19=!o;)j=@xC}yw0!)DcQ=-Ch=p=74KZ4TlO#z)4pcNUR zIE+$u7K1{U-3%C!ac7zjSES)D&;SJ<;9CGaK`@2%<|-c0qk{l*+Pb)p$z+%g1)8F*P$@ug z3s9B}T%Z697zS8O%t$DpPC?-4=u=FLIuncvg@sVsEk)Q?Dl*FXZcG6}i4UZBO&C$Y z)`E%UkF3L+g8MCMTwNiU4=4k(wgQv{7qBPbrUh{PFs6!(l!ee81Ga=m-s7TB%;#xb zk~fPlL57AfyvB>bQw1;;K3=(Cwv`T30dOZ6K(80doB1M#j&^0>FqFy84Pg2DY3THu z4g(M)!^re!N({m&9$@=-dUi9o{ttLUgmx;JQDRoFGH?jdYrWf`>>2~67Y0+Lf%gCu zf&w!V%!CqA-=>H-GAaP_Q39ay@90hnC=1MHzCHwI| zhdm1gRCwT?#wi&lc$EOl6TVPp00CqqV+3W(pRdfDmMVCc&Yac}%uDc}Nl*~m8PE~Q zAuA>(h63(npq2QjOJy_ew;|V!#tUETSaw90eMu8E?qejf}1Jm&K&rOYU(znAt$&){pDS`^Z zNB391s&hd-F%bRdk#WIvrw1vR{)w4{*#{{-;L*%W0Lt;s-UiviZ~Jb4fC+?3K3^(t zgG3&nK_#{dg=E&ECkc!i{n5D@>?wiy=Kpl!fdO=sJ{fwF!88j{_s9t1+UqZkb5WaN z;tYZ}<%JCs{p2-mhAuDtP$o^N@%T~a|l zFylERg+n~WAp{=Ygy3Y$>aZEjvv-lLw%ug9O@9SKL7u|k1%im{#Y_`-OoZkU3|`-f zVA{vY%`+M2@Ql#3e;wsA0t%0>vx zQDku-%h+)`ji4G9xb2Z22Ci@D9s+TCWzaQ1%l6a%=SJD6i$5DeSgG4BA^MaZ!5BZ$xShc!^>AbfI%K~A7BIorT4w5n^P z#x@w*+7V`Un#O=PyfYwt)5WYOOTgY3^C}51-OfDdL*9mm#$^8n<4K;jZnj~8&BL`Wr;O7N(MKi5U|3GkgNOYaJ2=Q< zU5UXo{6mIs3i^d>ju$k5 zZR7=&bApw^&ARqOL+u3V`g5sgKRar22wB$*w(a~C!k9o=4nLVjIZ@Bp2n|!D@6Gp} z5gy88oNan)9Gemim&xPqyNAl-*}(A4Eg0QlTWz>0mOy6Xx@vgB>!_j(Y-8~mqYiUH zNkB!{S!%&GP$8s4#{E(&@@G&@<#~C{wTLg3TeKrj-NkL#^sOc!$LJ{~tCW0s;lRrq z4~y9C9}FJ@&xT&^&UDdsd6Oa3{dG1Q=XCP0=^>e#kDsn*XGk`fKl<@XA_PhVUtUY%)MRKO*k%WN}~&4WUl9 zZc~+g%04Pxy0L=vPDoSyqo0EQ%-K+sHM90z^zG)OVw%rrxt zF?EOJ-6-Zj_oId@ph1bZ@`2;Fc4zWk4KD6GqQ0Y)+{aJMyF2kaDX8Ivf$Z`KY_MxFPjX<4@#lG zsFeDSa2y6Nman`}uRDMGop)Tfz*yT>|D*WMi?dGqJjIX?BM*fIR2+PdDq?B6`PJ-y z904FSS|9Fz^?!J~)2O8SzTx}Kpn{^Ml9u9-Q<-RKY7Ue+%nrHSP{ZUn_y zEOV$dY;Y)38_XdqN-HY|)Ktn!Doax<8XU{GcXk}dd0y9f-D};?b3g0h4R2Vm*J87P z|Neh|U-!yQ?+UF}VU{OJr-q6>GSc7Jad*Zy`(_Z1&S#f+$z(qwMXh#O-ndL!a!wP5Z6SpOIo_oCYn02Ry zhP0#K3o{gX8FD1c-&s1=1&ikfL1j}z)v-ivA zD-W@{5Bx+Hn=dZ+jMuC7lxaB^aU*}5>${wwEkwk#mWC@&H|rf8Y4+OwuD2oFQtj-4 zHTtIpB^z&E2unQPH*DBaseD4CRyyY<*L9m?iOc>G^;AJ8%3_F{blx@GbZ6s)ykz)g z|Bs`^r>vR*zy`Z6bW47w&8iu`?H1T-@6sZ#>;dD|^1dAjAAk4}?&#`;Uj?s8v=l6Q z1(78!^+`?+#4POGWl7sZwO6Zm2JR4h?2Z=nKX&fu>e|wWFt73XCa0V_s5^O5<;I@< zcN?o%Z>}UdhK6NIwD@I(&|tAS;io3EMn+dwf%A*Ve<0)KDH!ex`N2t70O*>e!{|RBlR%cgPco zhOgYv(08dSk-OOmxhgLwZ6>@P!p^RXY;>`F8=l(RD6`d=G82ERT}!DZ;}+({%AJ?4 zj!Gt+|EAUc>Vr=&RVaNcSLN7=)Rz{IS?=PZ!y$g5w5#__T23=8ye_YOWE5279)}v} zEHL{B`54UIXY%Goqvh=(_lILIIG5Jjy0KO$=;-hA|DaVfrhj4E!7w)$JEa$>AxPp_ z+%D{cPkZhh>df)#Mi}bYd@a!b!g%-OHLvVg-g;BB9zM7Y zq5!;K7nCP)W?KhLtzE`F?wspkIYJ80ba$afSI8k38?BE9DHJ{oj89s%umh>|wipIh=!XUu*vc20xz zeIc@1a)%aF!GV@*oFgq?@gy#{>I4?L!tsMKmM4GfOHqeX%Znf7Cp$Ps#7n|83>#kd z_I$t^Qu;lZAWsI21lST&*o-5O&p(CmXPwmmA{Gb%KZ+h*k$VI{mO&Ig-AoTEF;ie> z;|SJ1#kHVrb8muw8@_dI{if!i6S-N|t1YKPUbejnhoa}&b;APCZHCLdo(xEVXipgAYMN1a4o}mGS zs{AZQ5g_h!aF_rBiVOF?PH<*YVH|}l%!x~ z{6`}b{UKvQTVf?0S& zB(EDaH^FiHQ*I2mH*oD?P4)xJq#mWGY$9HqN(WTPcXQ^_Gx>K+(sMLkNU4nF zQd$nM%}vZV9l4}04=eR@3H9)Y?Naiq0d7nI{OByVRv^{_F_H}&CZ%~+ zGcYtr&QlwMaR$yIrQ_!l0s+wErb_Uj$DU>+R3Q&xPXmIF|GUT!}XGOF9xyQM6)#-71Vm2q|=VPIl1*-c>zI>TBq@*Or; zBNe$n*M_4%EC7C9XKtWCyhJ^7^8h3VkeLHumV5*fNyY<;rU+vPIH3t)%)gUGmC_NU zN^?@M0~vd^ukn}x_cjUx3BasHSoj=4wrOzuC{BU`(Sab0MKB!~m@I|4=|tApb3mz{X+G}m zFM48SCWSO**$|(uBC`Diz;Y6_{d}s}iT2c{3T~I~aS$g3`Y$AewO0T&6?jnepHUj} zhShe?;n6za+42m)#4x~NFYaJHjsiF}A+FHUy^shMA!8i`30(w~#s_TZg(M1q;ihWV zZzGUcPE~M~7-;Yu%W)if?Wwf{7fGN37!q<506`;}t7!<54nq!tfbL{Eo`4vSLrD%$ zV@%3;h-Vr%mBay*@G#_D%3e;I4Ie-T6)(rY>?m;EBLq}2b1!w54g_42WnqN7baNQX zf$er6I=+x9xq%_01C_-yM)xC-A|Op4B`bp2fj(3xZEp-ik%q9QA(S{CKM%>P;DNn@ zR8s*$>}I@Mm?*RFDZhf3W{H1}n*%U-a4;Bi?;KNw3$Y`ml8C_2_--XG(@_WI&H;$v z5+oi`>H;-!cz$6z<=q9wUP$VODyB9a`VVyMD zVnh^yAt69U(P+;i)3l2b#&du|(1{JEkiEjaBRC(!19`7MX40t$aTJLqBZA40;lXqt zcOg`Ugz#v3-m@2GE`low;BGqnk`rEbrf=k$hE%Gc?lgZH5j<*+wSf!Q<)yh1&`}W3 za4``k$h8W<4#=|&B8a&F8mxobz=8R3(iDqP)-h1Gb*X+LAQ%G2%%mvkFk~oC2|A3` z1SoC>?J=HWX2RM**=OUx#NlBCJVO?PNEET%xbR>HxQ!58mPL{%OeA^GKnG>RVOfGN zy$-4)0!&40OGv<(RM^UKlphZoJf0>Svp<=Wwu;I!FTf zwi%V>MrAq1c*}D9bqOdp3Y%Vqj(-Jpq#|^y*y{^Nw5bRq0z2{m`|vo#2#-#rp^YdA z(COvbrLN+_{YWe`0yKom4yCY0aFVQb<8JzIYx(H3PY_2U+?&9*B^@$KXWEL;Ra$T( zoryReLu^V3-AjP(C7{D;$d*@dKQhyR$lO5=v84wmgV#rdh)60j9FK1P^d79}94>=+ z3YZ57XeR*fDmoNGL4Z|ZbxO#}IYf9pV(%OxF(ySCm@wtQbgAr|!W2smLbnN-NMSb} zK-*Hsd}+vdJEl6BA&W;1XoW!cv3#j$NB-fd2dTbP=jUbLgOG@?;dsNQBs1 zh4$t#BJpf#YAUJ`;Y14`_{Dlyi*}?SKKLByH3?m1oym-n9Jql{q#+}TAx?xeHyZMw zkR?`N`w9_@wBJ1MjwichhW+6NE0l^(^R=c!80@T^r%E~q~*xbLp|Si%CNgF zQ0M{C8yaWhAkoR_Ig8{E^kTGS7(KL-9Yc*2$LT}|t9~^U&&1uCjXpDDDH9z%M9->3 zTe!{U-I)#9g^rkwKHxTAKK`YGIv1Qb9alG-AV8lSVkZ`(Qx)f!?D?X+*y8AzGImVp zu8%Ri`GlTmP~Ro@uw!Ck%JSwf@zDwNxda|NrZ_I4e&J%^LRsT%tbk3QJ%nS=ov)iM z-xpIM6Bn8slbkmnF%*;7fllA`G0`;Yn(Bf@9(#p*?Cmj$z_59y;*SdSEIoS8;tadu z;rx{$ddkKhsk>sX42fbfKXz&-SZ<8#2uwH}w(w*K-98q@uS2)n{|xT=R(=l(w^fr|NBV-b< zh9!;VC61#P-zCpK-uG+#PSVt!Umx-osoL@JJ>Tvr#$9PlIvoA$eNobQW#YHwn0x4% z3wPq)s3sK#W;W#|eY+!`>JfkIN&fXY`8zs24urs@x8P!t zk!6f*U{BSK${m*vPV0H*8wL)xK011?yH4f)yjGoihee%JagADUhF zs&!T4!nxpOdV*5TUT8Q>tlyjM8pOC4IyGmwzv;;Ij@poUqxZLrencUs3_={r_%+B) zS00RH-_Hke;m7B~{l|{3@2?I0VY2Uz&rwOO-D}+H`^g8AoqsHtejRo4A36N#r`e~j z7E31T(RwOm=iq5g^SymdUqx>o_WQ3pX8Ik(h37h7?hc8}ANPoav1@yFA6s~n|M~Ns zhS(_yQzGM|9czJYRlGtocxCg3Ws+PK}WmYi(tUVH0tKy0aSn`>sZ;mQ{daymg z|5p2JwtmYTC0+Be>A3){9hJU2*WPaO&obf|O3tdE;;**FtZeo446~Ueg)v zS4{MDTo=1K)@2Kb3s>J2x5?~sS85h!{@kf4douW9^MNhYxT=7n@W;V}2exKD>djx7 zKVMoRePv#od$46*%Pzhc6gT8Cgg1&j}wGIJ{^qxP34oQc!eo?~UvJ=Wdw{ z@4XlrI()QjRdjV&KZpwzU_ZV+hy`)sfv6vn-7nP79@iHFQm)Eq{Zj>Kd!go$ekE7n z++!?%?s)op|LpvI_O7PkDesl5Q(_!5sQo)sUtRENu}%zGE`h&TwbIeb-<091yQfX5}Zx4Vd})>(XHC!h-Dd5{3;j@?T=4$h24$ldlaT>d*tNf zyPbGPSf*v|w(oCOd0{li0JpQp6Fv1HFuRtMI&~+*DMFq9@SBshf09ZJa_bN z`1)d~1>d+1jh&Ce@pI2CKx>@@)B+m--S;NF}tBN{<{Osj^Y$;73t}#UI z?C6#_D$#AXz<~sDZG06&_MpPfD#o1VDIKD=5mH{WdJ^~J9G$mnp5~yR?bd)cPy_c!Vc!2$M99>wgp1V2&A*HC>X2D~ouZG^6+p4&-FmaUa5BPm=ZDUv^)Z|Y| zp@>K`g%Kn(rBtXcFYZadv0=x9m0us*Yo0_)2X)$IwPv3+_C)7eefQl^_>FDcX~MRE+m$e?E;Wapi1V zd+yzp4e498wKh>}O<%a%fTr&0_v2f!s8K=2;Kc~_1inyubdcD!m0;H>VfvEL zJ%pCtViUuWdgOFh_R*VdUyl27L~dMa zz(>_?{8W2ZG&1-*kE_zO1wL+~cX2d(sXtrGw4Q z_Rn)FFt(l+K|uGDBgd|udW#J(ebU@bxp1xYTY{a%WOGmQ+iPdwE*r^GE&OYU^(U~G zgGSZjoU@W5tdv(3zu3~!*Q)74yil`M;ZkH#h7vctL zZ+l$Yr$1?WKW^|w(vHhvmk%kuiyOMFu)Qu>e<~&aIk(L!ij$Hv6|l+vS!a?-=xN-? z;9YjlpWeRFlKFCD$kCf(yXO@VU@NO9EbHcrUaiLF{=K0Qmu|j%rZt|!`}isLD5C%S z?MA1moX?4sTStEW+UWQbCt~c&dYZP{^j?FXC{+8j5EeGaQz+ElX4Nz2u!Z_F($o9)#82ESY#E5mnXVa*oAfSf7`pRmqCRWy zz)6&GKHt0A31cby%wJFM zpKIG>`2~N$>}_6G(LEchue-$27G2VZWB0lFd^s`lvv!ksu8dhWQ7n`2!QgZI{mNg1 zXL~H#_85TQ+CDR0)|Qi@;)Bn}d}c4bUmQyen_Q{!fsu<^O9)*Zv=n?*3A%?+>J_|2IhYN6`(GKYo6;>pv~s{|3^v z_t!ibuK6#P?tg-G5B@;9zU!U;K)UMY_CJ>HA4oTP^LcA)D`@FJNO$S>lYd#dw*MhS|DQm*+5d!e??iJ8UuHl{_rHU5cmD4nUG4u2={~q7xt`lrx~<{j zz$NOngD)R9TpFsQwPmh)a-7z8X8*q`eUD3>X7%ouE+ouM7S$B|UFoCO++)Pg*F5=C z>2o@qF#F+EfH^1VFGy#@oGE|y5U;LzAS2bhc?r@ziSl};dgoSkg!i+=fUFZ*F7+YJ zJ1)$A((lNV8S83oKKk~_na?+ly|Y(qsHr}1rt206>AV%=#V^-2%zR9`oPf9g3(~Fp z4e5>vJ(EC4cLs!XeU>1k8@ytx;{JwFDNMmeq2;~YSH%=s&lUK)nh{$13u5ChH13Jt z&EMguaec#8)yQpYHS86(z2Mlc*@i8*SrbUnev8i;t!TsVeqoBpv-~=KPKD|mXv+xv zaxKs8hk)7RPS&43Zuv>@jb`nsKECY4ueHIaD7ZA;_r-^7AGw(giu`dF+w^bb8NU*~ zbvgBO&JVYKknG>3tF-RET3kzSrH$SZETcp6^0=C6R>Jq=k8#@yV9x&r>3DQQNz%r4 zqu-G3YsX)Z&f+(u`zihn>3oKkc`QM?&Y+;4BK)g^ZfbYQZ{4h;Q`~c}M3jM$?rsxY z-fAx7kz3*Z-;hrB>~#0qPGFfcDZ(c{)A;e+8>dr?LNh5VVW%Gm=@y@D<5D{eAFnu9 zRmIkEpv=NaB@Rd7B%XstmquT9pKD$M-Cc6yxdL^kd(uUH-50P=?saK=4C=Hux!f_P zd~BQHvd+fA)BRamgWtcps(s>Z8QXNSwO_{cB>qs>+L)>S3hT}wzdXy6v?H08*MeZ( z*W!;IlWFwW)%B4%*Lg&GeN5r{G1l#%aaV!k%(84_&x;bcTS=~=E4W~V*M9Yp^H-fU z#3sI}a`oH9-=tOhe)5p_5;(vI+|?irC!?z|tuc4aAaCuou3p#3+JF>OGB0KNY$mGh zxPA2T+RvnZC$(E^*Ey+GlGd!9_;UN4i^11pr(U{k^1rIx|D42h>|dnyWvvd`1425f zEdj2ipNM5qT@edc3D&iH6tGr{;|)=_4i68O$NlWR=eK%Iy5CuOo9tsa#VGi)CkD?f z0}R?M42>W_Xi)1802JVx|zZ3-jf+ASNb zkkoek*nS!3@fyX>Vq1e0sPqp0Bh}ceXH!!N}kK`+O;?J!pH$ClT#$R>R$UgO6g_f~nhU#Y?Vv@&@aIUIZ z+3qA~Eh?{-{Bmv^AM+qp;e%9w!+2V8r{>-ySWZLrBsglodXD+0 z(&ylEk@6$Ly$pnOZkM}E%0WoyHN9!at))s|2ZiM&U#?(fq&|4{ccstelGngVnJY<= zH6$>?_kP<@^MfTw=QI0PrBB{*FZi$IlRi?d?wP&o@w0gk%x_$Ai3KZtHwCpIq&xa3 z*wYY%ba9?*PA%31**iTiW!<=5<#KuFo${>e(wQsn-$Y z+$;#=-D^mDDdDQKV`#!_wnflY8?{vF`!`58+xmB<@5Zi+BNSxB@N&Vz^Vxq@`Wn?O z=F`@^f3h|D;tUV-OG~HJiRP&_cNc#{?Nrn~TCzhVu{WnaZR6Ssi67_g?Y7is+dKO` zvPhv*op{B~;&&uI5yCzFYU1^~imgt#N(oozbahs?G{0i;l^?TYq!6 z_)+ku9XTV;W161@%9dqEOJ`5N-85FxnIL^VYw?A!^g3AS8zhwnW5>5{Qo5Hl^QBPL zCAinltLH>_M6kijAeZ>(*G?b!cHY|M;H7m++NJ9nE;hs+bgo+%*clpm(br|N^s(2| zhHhiGu&(1alM6$_(S~w++?1cHo8XtI;Yv}Ch3}-zv(8+Tfz!Cq;610DpK8rCG~&ua zj{X=HSZSBFg$M!^AS=+)d2~D}AoMv3Ishe>?eY^rcBpvj@Evtn{UhS;?569CP_p*zY~Afi~}pto?pr z_(jh_tLFaHb>C7{6DRO84Fgv`9liYH+#By?^InNxkwt7U_AWC&(DN&-j#>IqFZ$-Q z*V6Rny3$XgnYgQ;bEBgs6F(*9MW45{nBrCb{G71yXQOQ0-1*AA6FHxoUTPT3KU6OL zs(8lYeedn#;l~$0o(jA9E>LBGedzZ0NY%x`?PnIc#UB{g$zZi!pb>@^YRoW)0EYil*4TR z)*(e%E=75qVbGC64DwnRlw#z-BneUuGo@t+47h0mH!yk5e&;w>>K;GYBY*|fVURJQ zUmHWz?IK;~Sl^0*Md)yk;#hZT>hNGv3l~V_V198W50PWMtAZz@aZoz0g@ewhNBNV} z0v!&1EW-5i(L*8}ln?46#L>Cnk45NSzCeQ z`k1U@)A%#H;#)cbo9D9f4rJZa3A#(oPLE3cO*>e~Ny zb+ba5wtC#YKdz3H|BLdMtBV0$9iH>6e#zC*!fN?{xw=`7`-JE(S4RY09WCsOn74d@ zcKidGBOQDEH>?vy)^d)I0P(|Q&KuCx)pN22u)TAUV?k0IgTv^Y<7TN+ZIol>MZaC$ zJNpsRx%b9}wz>gW;{;Svn)Z&$aW8k71A8~l%} zqZI#kb#w_c(AAN!10rJ&(AANCm;dnMe_)*uTL;2AO59@sIsnYz@rt&8!N!Xury-IN zX4v5Q!c+X5hCi-Oh@}gQ`$1PnJf8RHWWCx{hZ&fF8d!>SN|_pR|mQ} z@^4qy_5s`Tx2r3FNT@Hlx-%4P7OnIzS4Zc9uC5t$b;94SuA6wi2Y}c8o2$Dok__ib z{^Fkgg_mXk=NVkgBvC@TH8iXf7X?625%rj(6q&Mm^h+|jK!h;h(TK%=?y%% zGYzdQEcr#j_VeK+JkpYnbmU?BTcmJ!ad+@ib+wt$Nj{Muz-TdR~DF1SG&Hv`=`bF6O|LW>S{JqA}t6xHO zV#xJnr0cfIm@&{W(y=5y9N@!)!3_+2@Mu6Si6qhQJmtYPI8qgOs5bc+&Syp*Gb^^^?(V0BTBvi~uAlc*&gj^NOdX zvcYB=5t=W8X=Pn|b;81e#@6W@ap$W3E3KoI7KtPmcyLJoRaJjYnF~|mG%Vvt{oUJlhB`QpyET4hUPfDBnG(_VM0epX2bd^ zSPl^(hrb)Zh3OHY%SEs$;4X!aG~h_B)4SL>2|_{?n~z*hKmV)#hB6+m#qU(*qNd{8 zH(-%cWH=3w4C29`lF=IVQln%j(+eFXL`GUb>mZU(X)w8ZP#R+1JHt0YPM6n1ez))- z64_v%3_wlu;0nYC`x796HC45Wk#E@Uk@XNTzbS`DMDifUZQnfAgu$M z|Ij)gkk$bWlmABRN;evsDT|E6`KC0Zw3qIJM!Hs?33GfwDwhDE)Y>S|u1b>;s?>&pMoI?|J) zYkU6Cy4ioHb$I@7T1Vywt&Ba0jSW35zko+d@eo@?{h{F2CIFQMNdDqI48}`7q&2G5 zL$yRu4IXA%h?HE3_L)M;@em4p_-1Zj2)}QX15@QmY4IWAVVs2!+JIlm;o(t^LN=YCPB$9!!x4mE}Hp2sBz!U^IwC6dvlv$EnlMQ5?jU`hnxZ z0XQD!cNvBcfd$aeDiGu-2O&j-IpQUQdGHDVwF*Ckg<#nAFHtnu7A_=Ggl5xViV%So z50&r)&ZS7XLj?K>Xh#tgD-z`Ih09T-PVD6qFwvERt+`6_)1aur!&a?Bgc8BI`}fQF zI7@nOHcfIn9jbV|5#%DnjcLVXfc;e56(rVdXS5 z3i2{QhO$ZgIyQhiv8o&4a{JaaAFhahrgQii>Z43qWt4uC{B-@xqIJ(NetJ5rv_$Lh z63*Pw6G@FAt*cIY^+O3I`!}rvi6aV(975hd423EZpAhj9!>eE@3Tiw5eFzcJEIs+o z1sauv8S93%tb?ZOL$}ZnC?d4`1)NPs%W)7Oq@0)rB~nmzr7#Xn(u5C@=D$|rLe+VYU*2$k z%Rx)>li!ConN;ROqyX4cij=Z6G~mokIu5!!`GsT{OjkG~*@IA~ zpaSr4Ln4&Ofd$jCo4H?{yFV963)Jz@heBk}DnvBolQI{j!bLUILoDfN`_dULG9(oL zZMU09k&kk@4K0UA)W7;BE&8@uEErRPE6{lkd9e@E<(dIQsMz zX_!6j(?@SOy%wg%nTQrEOZeqN58V0W>mxd$@);&G>r5J2rV95Sp~_Ei;p{49yplI&v(VKBEu%?XdyS!~xtXY9Dy-hj#GryF?gvq}r*q)z`sV$gKmFid zwf%zY1+RgLoi)1~4!?UoFga8wnlYS4tvPciA@J11@k)iYPvdYdAwgV55ECb7LR!gx z;F_MHwyp+ocYj-|R9tF|8aL(fHVKmrWL|wA4C5oOeYhU4F4v1!@GBA!4m$mb^Ik-XKRBgD^`ZFT2q{~Kr_VXYccst@-uEYr~COORr3ps2&;&F%zm8#-TwU#(TKepmfG>maON*P;z zPV(L*Mn+jYi0cww@DS4-Qo1PV3}zMMH?D&gy0%|dZ(qW72e!RwIZ3A37<_WgmNUex zF88WArjxL0q^0Hj0ILa~tyQ=}|YUAK%wsgf8k%)?7cmO=K-bkA3}=^6b0Z z*7V!YO|w@k8*?^0w>x8wbxN-}_8Zq#bvSoxrn6GdQqTU4>tb5B*Wn}1U$W0w2|0E{ zEvrCiA*7~|;pZsRuG?^zLe4o$DBx2h@LrdD&l-KolxtfSJKAe;OF-L#w2N2j+^yw# zw#VwiFOTTGQNxjq)nv3WpMRrf!A}0VsNwNl{J3AWw!K;?(}i%Tl}E*91TeJQVNN2rjP5}U1WSV+lnfgKHi_u2am z1y$K&nj|ttPx{2HBp!`9dnOXFGhvb-}Mg6-!{AVcct&puUjt|zf62S;m!1lgjH$)G>nl%$zA*_@&X)8*_7l7n zItn@->?_LddV67KymZ^UvSHrmS8Lydn<+1L?H*j!V7r5)cf>OzlYn(l8Xh?58Uhcq zfvnt9Sk+2AWN~+9FT{LT`g=a#|5kkDuJh|~J+qTF z5sKHAN#LE|^?80j5@`A=R6l0fc^dM^`qtPJU9myF+r;V%G->J4yQ=F2Gq>aUy? zXj0XLR2iW?Hm-%;(*Kmdn(&x2gIHlRW4k@lDFnc(h#xv!m_HAV^;Xql%XgjL*=Ij_ zD*G(U$4G;PECSI(tA^tL&F>_$?MwN4T?DOJ;bYig=%euiw|%Mk5a z#8F+(?xPWFF7IDcLcIFCDvkOEG<91eo_Nc7RN3q-+H9;N&+=S-7*$-(QW@ia+`NIK z-S_Ip9NNyZ7LmFvABx@cyi4_s>-ux2-f#S}>m25O&GAVM&3CmKo~ps)7ju*=^%|=j z-*2E8KYLs4CSLKhQu743m3L}q_JSSlD`@Iydff%V_2Rpx?w-H=wf0=w*&9C?a7mFL zL{!tfLw{4V_2I&H?9N@!ZkRXdl%0QX8eD9>-&fu+!j`D@VaWMO={RW^%Md5DtOOK1 zo7&#>_{tUtkcp`)Jtlggh8L6`p(;#*Q{U}0oFBA&K#qQX`a>Ndb5QlxKBD`PPp;F^r*P?YZAi*c_t-8l60c8_^O9gq#ye{JNS!Cl1l{<= zdo42CzM5EgHq>jS>qlD?Nt@2XL%J<~0)->)1Nx&!e<)ZxfANHGwCX`XhW#zX(Y%fU zw|v>%vUu&-i?8nP$985{pU(Z{6*^s$sDI=gZ^hce$MdQ?OR_J`m~ZvqI)5ptl<$st zzt%xT@7iLmo}KBCsWri^7(*b{dF66)iy~+#_goY9xEw1>l+opZgcLfJb36BEBB>O!;t$|DtDm% zz{c>|*3EnD@AKYft-T;4@sbnJurp5y)VuDJU}2gQZT*~m})kh#~n2XAZ-*iL;n zIAb@6T7M`ct4L7Z`)N;s*^elT(xAQ*#gG@c{@14i{m(}>?s>;doK1fJ(v19;(kJVC zcOc27<|fDFy4zE|v;+PX7bC-tpz4CJD(ITsNF!s`Z=jxX!847h2E!^vf{X<9UHt8i zkBldDKR92PyK((GmJ_d&l8y{u zddD`ZwDu|unX)mk1-asmRg@5O78$}BODYDebTd-ju?8*uW8dL(GUIvrV6V;CWu=MNI ze=Ws0&<64UVr5s-EE4eM%`%r&7cy65%bBv$>(fi-n1j`4a<)SeI!tBVObwnYZtb#x zbf{grIjl;%@R11{x@!Fj9EJo947V{x#1W>%M4D*+Ev2)e<{ z&%v>3z7c;jyL|KfyX%32cXM7o!_gU7iQ;7yekqUYaR|za<-T&OGSp|9f#1xIU~Q$OuM%1v_kpnKY_B~VhTH4(r;pay(dW!|mN0A^i6 z=AovvAgYZ)h@CamCK*iQ0qDK7%-_bY{+uDr29ChJ0F51uh~U~BEpMKu*14LOo*>wf zJ2`DYF2M}pP+y{=RT1}q1Yj0)rJqbF9?7GJ_X6oau8Y)50(%Y+9}st z=XaA$NHQ)vpkieTgSz4YE}fxX0G!LW)jFSILWXFuQaUM6qzA-jVZTH7D+jK6Lqsz$EIDZf)q^%Yt*uZkfYNC zuQ1QUj5Ah-q<3D!fblCK0jma+d#G&JoeAjBm`Gu&gG0`VblKCyM;HjJlV5dFrrKLEGuOh2eB+NOMC3J}ayS;?AgC0nt1Elc_nn-JtBc`jp=@64h zsa9S<<^B?4JzRbRWSp7X`v=((2rb?~hG}{w6Of@m>>N5AW2NDyN(d_8AS@vS6)x9t zDDj4v;HC4fw^nI5XmCMehs-?x$JoKMO!G`*JDyxkC)6|f&RBT}l)p*)<8y~4V+ZjE z5WB(L8^E#wx-sKv{)A&n=@1mvG3k4XiU80gc0EmJKpj%NiXkiOA0fA=9>SyiQ(RWO zlnDZj-5jcMoVfuscETj?7LMalUVF(>#b(>(A%&j@E|1owL zBp)k*)LfyK&JeA1!w@sYAhL5HoE)YC6U{pYFRG+$=*X%<5=MU`J2JmVWeO^uS~30| z1~tw`7H655vR)eH;;58O4sc`@5;I*UQ_QzX2bmoNJ3x`f{Ts7OM;KGdg}`#14v^Ww z6e2Tyx3E`~4*Ue{F4FAItp$x8>9QwDIlt|ai@@Dy2sZtp)s90 zrXB>M2Vo8(Q;f26NXgj`yF~@GPcQ06RJk zPFo=hQo-;40(Knyc5twg?W%0VW$30VxPv81?2wMR)$v={IV}RKh-m-c!j92Z;6bru znbTN1^oN>B3>6B5+>yEpVD7rG^W=r?yQQu&7i7YL6l+caE*(&u12&LSiB(W!I?I8Z z#WD3H3!y6GDU>R{OcfN=f;Qtzz^*D)lM2WIP#b_{E@Xhlio#{7bUZ;80A9p-FxtGEC)=OX+`NC^y#B!q5uc)py*ta<5WAo5Y_ zNToP1&0|smV^R-yAW1Zq41PEK@NSPerX~O-R54d|Ah&_cjs!A0$hIYBxBtQ)W(WMm z?115s-^`Br-60F2dXt@Zut57Xg(j@TDPS8bVgUP#j13 z6QJ8@Y}sPKn}!zS6SAM9P0Dr6=F0ym}tA&W47kQNG< zZlbqx08Azwo-AN`9rn`Ufvym>vN-K90lH&`9V}qj7Q+*%2!Bi}MhB|m02f;q1Azjh zX}!NicTgSwZ46T~k$_GlA!G#b<>UV5q7iKZ!^$odVh7cYN!wcn53gdAQ2Qv5)R*#% z4GwS;0COKtku8S1fo(i0%QBrADnf*hr)i^D`wqV|r$HzpW?=ESnGOuBw*`XCPAAQ) z0xo=s+@`a{>`49w9iA$re=$47B#_xL18L)mI%#giu~3lNH6ak;|1dkmwmENE)BU={ zKg^Du`iil{?9f*0giFj04g7az$1eHJ?3n+?>=5InnYn}GD+b<*8~JR`C*Ut<$N$UO zT?L(8$8Tq6D*CvW!1&GVVvy~xm`ltKK4tZ>e1`2PLby`cJMrjnQb?>1Yj66P1TEE) zo)+H3$|?-`ZS3f2>Y^oM*TnkE*byg}j2*fdGj3U}kh(P%MHg=CZ(c<$n=x?|GJF?STLU!i=7&}5* zoZx>lc0u3m{}{WbujQbzBcQ@XM?s)x3>rIto{X8spvR9?Eg3t?(MR3rN5737!jCZh z-;AAtB6`dgA6I`goQ~2>pE4N(jU8~1903|Ta$tC(AT8|1H>aSPnELJXip&>>kCcsu z>V$mlIC50>i_LmW&-`_Nc)uoe-VKkF*Pmh}ietM~02jjvjGkGiD=4 zZnJ%or)6a3;!LAcz)D{XKE`qgy{{-by=cx>djdpuc4B%Ii0sBAz6)O|J2iyoP@}mXjC9beoT%Eu@aj`qEG&UK9qXk*`UT9T z)}iZ*W@FLwwr9}wfpIqj!?T8db)#Dn zzf#QiH*eo(#V`u!yA=FQtGmQJ`fE+mHElk3OXS3G#y735lQxMew&vGAY%l$eeeX2> zMQ^ai>vyGZr-nnmrb~;*ha+p8tNuVb{TEF~#`*%Brl*El<7U5poZRI{P1bNK+aDxW zIO`N6DZk5k&#d8S$1!d98}V|VM>4VB%)nS+vU0y-R^jO>w0tJ?p^c7Q-Z7e zMy5l4n0$J%Yjd9d>0{q*3VLfLmayI6wW9T5pI#jJm{A<*UUztLP1wBvhSSp%_JVL? zKknvIrLVcS4y^R~ghlnX4bqO<@1JX{l+mASrPn;_L+;+?Z(+YpH{h5vSn2a*B)a=?D6Zo9fZUya zW?Cf*X3vPx-m(%}r&eU{1}l9@5AvwbBR>qB+@{~4ea5aKLQp&3FXT9Dz_M9uVlGn{*c$y!~OMM<&#aS5&Lb@mai?us(hw}de z{XZKsmSIprma&8^nQRGJTWm3<1*r&8)`aYa!PxhZ(1?(1+1Ij_JwtXCLiQ!u!~E{y z^XdEfe$V%u-#NeYyZ?dvy5_p>YwqiPzaFn=aE|cnw?H*+8vEI zd4g#Msres13g#5FRskz1CAf~a}${E%c@tO*^TTJp&AYPpdvwt8Rm`)K>Pjx)mwuVMR;hq)!y&PLU=7{L!`lGiz zPk&^$RxDJa^-vUT3_NutS3P*f?^6@c8*+_g`<-VZqbKg5XYZ~RHI_b{ z*OT6wQ2NvzPHy5W-?!p^ zyf@S}Y$j-A>pOnrqi^TYskfvv!HFe-ETh?y>eBlHF*|H#1}#x6y2(*hYB|QbSNH}T zdf`45pO^G_Xf+}JB2wBhU2M9<&#m-oXQUNTFGZa?mlNCbD%IlbojPe=C_J*~JE=gy zbqIdVmF{e20M{h~xURveC-@12CfV^zM?(i%6O!weueFsQ4M%J6-5qVe#P>4m{mAJI z#$eRP)rh}%-PT8d*S%w@kT{D3c-;|43a|6%Z#=#sr!LQcIOKIsn^B6n;~XgtM74M0 zFiqDko;3=uBUJ}Xrah+cx_74o?Q7mJ9`HJ>Jo?)CV}J9y^If*VEqDP8n__HO8VifZ zn9N6F$k^F&v9T)}Jj^Jh)A6^R8y=H9CQr!a4GoU+XIVwnSPQ5e zllmOMg0oc6jO*s@P6P+6Vx_KwV)$al(gXt%;jY+dK9$6~3w8QZ1jR@6cjCvk#VmHT8Oy8L(j#rWIQ)v! z{CM2Y9vnBN2xOSWT*!FgJv*M@q2-%_ynu2s$~RO2-AdfL5kn$i;behj(iX@?xwfjvY+B4LAe z^qccgx^$-6E>-iaQILgG<4l`ul^DqMOB!Dzoxhje31j+Q@mGGK$8H-#OTAhNr{sCV zXe3V?@2}Y0(Gj9?GBykQfrCT(hEU&${hYyt#`dvW#smbvno^0OfBX>qG1){&4Vrqw zAK@O3^nlg1<#KzAugh`B_`9?_9oH5S5o;LRdP#SdDbl%PBB+k`#DH+Cg1F@5lS=be z?fst-0k6!3;g!wm7vU@g>=RnE1H3}`ytcqtMnsZrUE3E&Z%a?1Kq7y#;f8@y!^y_T zD-s+9>Qc#7VbkX(ZgzR@OP$}NpHaP~NAg!H8K)1QxiEdXJIuQT)3+<2p}%7rkuRN@ z17L=DuF{Lc@xyJI+;zbRB_FE#e`=NHJr+^&QL3fu47=mSN$Gw)imeu*rmM1%7X# zC7}9CWp`QS=X2eUZr%F2w1lV{6}L}#>+x-4|4Qw0-m{zprTdD1LCH8H<7|^?YPWCq*=*i#Tc&WqE0@SGc1uOc6F@m| zIB9yOOJRAN$xvzS1JW(=Y%v*nMfqL(`Ulbx8TZjB z>NFGsFB9t_q`UGDNGHO3QW$T$73gKi@GnT`&C3>;#umZL9-qdZ%FB_N#*xo^ye#eb zJ6_I@X&gy-g=^#VE@-0W*zi*fPOEM4tpXciSQ`r^T zzW7tDduvAoa&`Z;RhQ?Kn(vereUPiG_#bk0Wp1yf4~lgv?r(u;9RTfK9u({TTdpp> z`2UYw9iZ&;{+X*w%KpE})g}ESSJ#;Pz9YBk53!rf8#pZ1^%Qm-~SdcKm4S>|5_#0HSqYyNB0% z7XB{QjR3{Ez23EdT05Xv2SB^s;kC|@DZtvTjV$+lnfN+3{wG&Qp4dAq*8QEU`!C84 z$klEC-27iCyZ_5v-T#luj_`k`?BLOS{Qq6q1%w_I)G2hJC_B4T|69r~pQ7vn4svz> zrtHrCpC~)Ezm%OOMcHY7i3$+aM5W;=%8s82P(dPeAcA9aJ4vMmC2Xb{+V0?A1ycA{kCs%i5JmB?(gIwJ%x#9fL8&19g zar?=u49Z!U^t5w#)dpFVH;yptNbj#b&XSuF;6I@}o!n!MSyBmLRJz41%KPk#%lu+- zXsr~T)OQ#QeM(cRU%2GEt)BbJuAlrO<%&)88T5Usn1xv#gB$~eMdp}jnS1v@I)b0S zfao!wb)c=%FH1i2^L&f@9xnW zgJo)K^n(-%Ne>tWm)H0s1V0){(Q*GSnPrqp8Z?U(OiaGlC6*M#pC^+Q71LF2V7d1f zwd)vEIHYz%htzI0cDmO4&LOpfA5uGr6xs9wbD=Ik?LP00eQ59uqfk2semcn_|6RF; zzo}ijG~&NeJ4Fh$Lq9ivTTA-QaHh87UT5XV>e}h1yWjEhSSdeM%5Jofwbl0{0?8LXXY@sW-d5xO)SkvrIT8Cf_cCWUj*5XS z2E){8 zDxSq0lyc6Ia1-Moo~Uad%UoJobw5oBbtCRp2PO)53qx582e~(EZb(_zAn#rQHZ{3U zlwZX1IW>cIy_V9UTw8ew*Uqcm$2G#Zw#JkMYpQAppj?@kgH?s%)Tg-6cFLg3#UFo7t35i zib?9dmCJili~xW;S6&)S_-h?Yt1c19KmoFMQR}$)Guu7%XdGjXtbAO(5%(pf}J!vS_y!=m;Gf`>j$~IsU*hI zROdVjxZ7wOsQs~CfJ5e*z_kY(I5rA{j%wZoz@6}^18|20z+IbBS<&Un-1}z~hKk%b ziXYQFG*HzZ?n$~Kntm?t;m!8pl#H^{!tlJC^=YAR$h8|qfVexz)%ExnALQ!(rR);g zzx?0KdO)A5aI{kG^!jZSfQ+f@%qgYR;yM@hY+~R1Am0eAg=zP$3--wjL z;B2jY`@xmx!zCG+zcTeY9~S6x2)(i^&Hb?R5ZkrWe>=}P_fhA3+MH2eEraY8pU&7z zbiW6u1j^EHhA-Sdqc^mVDJ#xeRJ52^AMX7m+n*b5YwPh`=ga+#@@8bJL+tM_V|GHs z&kKXrp~t_jc!yU`TwY%8sQ$L)^0w*;y>)5@kgFpglTI!!+rf9ooJ?2!Xd;f`0cB^; zE-AyB-{+&g`<=#qy6L#>qc9J}@0d*2YOejCF&-9UN6A8!tv6GT#zpRa6^q=yW~^)Y zw0-x7Zkk)YX~eJ8Uz6XI7^|+~P66fTfSHSW^2wW>OG&?sXGJf`_XeC=fBpLl$Lv2^e z@|LVe37Nswoz8nXpzBHI<(h@2=G_(lC%cur65H9$x96WqRE|m&Y_}_<{Nfo^oEd)? z>s-9IlwMFh{UmiKH1yrN*WJBAQ=Z>FJW1;%H)|KqMr@_MgmPBioS8rOJN(jlwPW>q zWeX$RZUH+lDc}wt`@V5Jp_DVy)xS7e_=;EX zifH%=1>t29{qmjh5*7G!iFjGzGc!0}juu=y!F?Z&Gd_W9z~YQw(dkv-%!Pb*&e)24 zbk-d7_La&#_a6a2)Q?Wf=TpV z4u8e$F4qyVZuq#7=qWKfGElQ~KoWw294i9MGHL4u4r+F2sJv=$+Wi3TV}WUw!9+RR zS%QbRV@UZ%K(1?GW{^aIuywv%Xr^FDSz^%J#L$`>p*1ZJDz-vXeuOr#Jphzl{Kc@A zM62eCu#k;^al1=1VfKNcouq?|-2u0Y2e{o&@7MrC9p76weIw$iSeMHq?wCfDY*M(L zWYj^%4n)w2_GOV&qHsHmufjNm+s&h*{*&90kd}XC?4ti<>?qvM;egwrAt7V-1(;|c zWA~NFxQV(pkBz2e?8x0nLBQLM9d_(uXNgfqhGM^>spcJA3RYsrK%QTTQ8S4Q1*quQ zDf$6dmqjbObF)CkE>;!bc7-vo34e1t68*T`QJ|Cd3E*}lK>Pj0?S?2ByJ(s118%qS z4{m32n6Zmq05Wze41_~&7lr)#cgAksgw}GC278dPTL3b4Dt~3{0B*-~mf_KZ!;D>& zJ%*C8>jJo)NsQ)CdS8`48M_34+sVI1gwE32pZ$}uOPn`>eKny`{XpS%y%<>|@+{-m zsAoGXw5)$~yP*~OOn}>w+)0CQdtv&^=)@~vq=yOZx(TiOS$ccJgy)!uQV+&EYPbpFgUJE61Em1TINz}hUm{|G z$T*IMjJ#&dItl4gq5o+3?D-fYX^bYmj^Pb9b{1>64x$bvQn;Nr8BKLcKHj>Vaq4E^ zRe;-J4!9kf#(|V21#mkI1M)RP!U|YV1!7`Cdr{@tA-B7;L*aH>0JlT^i`$K>z+=aN zF&~D1a=Qql439$i90sab2y-EVGiDh-02w}Hy_4oh3wxruy!j{isZW2rL*)+pqxa& z+JUGj5jzl-E)Lq9L{0m5!)^#i`^VbdctdH}jT5P{K*J7;)cV`n31I0=(2%)#)L+4 zS;Ib%N`Qc!77(zDqNA#Y_7%c)MV>7hCXSE6QO}WIP9g#RSPeqzuFxbuOg^mF9Rr}9 z2?g3osX+Bqpm{{uU;@iq2$~uHJ5lpGqMN#XH zz0n1r9Z)8WqK-A8wNk0_C|kEP>5 zgL!a}IS{P`i24P<3ejNcF>u}r70VdJsnxA>#J;#ZBG_|0MHIyZ&3&lJ%Dy|QT2Kt3bd0B$*BaO9g3O&qB=s# z*k38*06_&;D9~;(v`KasMvH-(9zeT36?oAbh9gng&L;4?Ce17+w3%q+2>@C}Q4<_K zNfkmr($La^z#LKk*03`({s_l?jC$x{nB{Gj#^_A^H)!YH(M%IXjpL-^071HRAS{KI zrhpn7gWuJG->oZM_#4`F=d=o9+62gGq?s{YI<}oQiURFkA40n^3bf+|8g{rY7RAr; zxd#oqv4e)4NluRn1ZddZ{i|X3JP&BtfjU`1P!7^x(C$of=LjeDH~LSN#Q&jTM?{JP z4LfYRlj2{{Zi^G_Q}}no4o%`A(Q0E!50c%i!`$q0DbS9#5XdC<0??i>3>UwNedglIyb{V+`(9VGdMg-Fmsm{@QJxdEfJM&ry z(;>85fz5%aXzRdO5Cz)h;i!*e4xnA#0kn(y3)-=wDbNnr4$TCh9dYo~E*uL$JJe9@ z0kli7CGiG5DcGoqn>%s{?RXBL9S!<}&sQjWCn6n1#d^@N1MR|^frg#QFwn5Oi>_y0 zDfa_S(jGMIIDv*8dXNK4ccKnV1fU)ItHlZx(CVXP>@c)+sF7AKaN+LP(}x*5%n$q? zxOoLmi|Jq7`vxep1|Ac5c=#9(E_)wC3nNV`<%3yGAW8=fyJi$MtPU(wH|D`bz5519 zL!`1OgaHk^qD2xGI0#=EPxwa75e1QUplQZZhwP1On?M9e6llkR1y;Vm(={iE17SC> zFn$T2&8VHjBJ))-poc5)h(egQ-K>WwtcEx@gDf;c*CS0JC#;v|AiQ@PY3|oRdLV%xD0mlM$CMIys`Th0zf+qj2f8WJcM>2DwjI2P1GFX z4n&}klCh($n^fYS_X+Ld90RB9A7tz>B~KLxK3l`Tbk6aPkuCws4z)6V6a}$BjQ}0H z^n;EaPb!$b4&abovEfUAJ5KZ>?VGqeCa`uWEwQgGK>Uw&YRt2NLN_T#7ka}bt zzBK_QJMeeSEoH%RITB6i)sBW5VIrB=iX^I7^UtT z1{q7t12Ma4@)A(9n-)bua^96kV167c+*mmE18zUNs=MO+9_D=eCkFF_6|{!LO%J1{ z*s;HWm>mxT3dJFfsE0scY=T!2wB2ZYFv=+23UdW~J{;}iFAZX9@TWqsqGhA%RQ<|M zz(g`gs~7NrlAO}UA`hAaRp@vTUxsGJd|@=`HmfK%O;iw^A?|)lov&(=I|d>9SJJNJ zK-t|aH2n~9;#U8HVabEOe2bAX@ft6q_XkP4uX#I@PH<89Ui1% zlJpOtW>wKCF&Qt6l7QW?3KpxsNR2qgcWbf_lMzVEdrA{|g?AjMt{v~0OXhqw30HB6 z$N4XSGF1F{cndM6ex@yiq7(jd^y+vHVVJrigXS*LR8>&pVUQ%#5A7t5;V)sF4WO_< z1`ZWO&W8r=OHa6koa?Ts1Kcjd$N;T$8h=U4*PI^TJR_~{Ms%qhTJ5Me5q?TIA zOFm)zItSfsVbib`KfaAy)Skvy1&;>29mbSqL=41KwdzK?ND!HM?HBNVaMX!Zz`ACcPp(?}F46!Mr_WWS^Hk75 z@gA{O$D@2Y(1FsTQuRa`Z5!csS^*SaZG%>=Kb4;&a|bohu~WsvLj-0EQGrLq1nzJN z&y=6wi5;sw`q&SR5A-)Ftr5F0S%j25fmI1Qp%T=0DW(lguZ@Bm*`M2FFf$82%6FT# z=z(EwuJW5gzO~z~6HlLf%cH;0TYq7bkB;;D!d!wFojOV^>y=<$3G(dYwQfHP)${RG zuSE1kVDuXI9uxJwCJ>T_w~khTS*niwB=Qi%TW-+s%_B9VqHNU%Hx1;z4~}wBsGW$b zL{XGC>~$D0yr6;*$Gm#!_ld(mO{AG~4tWvb!tx}Tyd75sx_I0M>o)8H&e*grY-If{ z=5hR*w1n6D2D%i%RnkGiPMeFfJ#=sk+?M$LG`-C2{$_e~guywR<5s_}J+@Bw>uXjz zl@K7~HZLZ$sMglwI2s0fR5cH=r_YGvOctOp89>4=`Z$8N`sK)jW=~iSkg&t~0%mJrZ+ZA3 zzu{D>k3yd#k0B`Bo?d+^)%=BwoSTb{+c{xvv*-zKfv3kJ=o@wSmK{slgQ+s>j{Az` zY1C@Rlry*rvU-KO*R+3G{&GQ){yr8@Ey+!OM`Ar!ZFPdl3v&s+I>yM3a}b>~xxVFY z`E1~9CyZhKYj)v@cfSL=9Fc5(4|cMYx+^s>QR-un*96~xb8fRl3Jgsfm%RVIC*paL zo+prF>v{7+;7w|Cj`#(*j6uo+{$0_I$jsQvw4bwn$IZ=-f7OU*NWCoDN=G-6L=05| z@iINOHcg5_fO)Op=TWb9Mhnj?eZKwklEM)P$Y&5mFbxWVWeDh_%_>)&MKmvqjn3Gx zK-j)GToYk2=>!s$% z=;AWgUPeZJR!*fl{Zv3ogXJ?!*Xg6A%h}0Jr)!yfw^vsapeJSq{hmo2Eei-3m5!%- zah8klnjUv1_nDw?F*mlfP!fa5P%dA~b?3F%RNPRTE!7X>+_UGwj zcZ+kEk9BFE(t&E5^od#H#put1AfT_W258-{Wqh0`^1!s!n$^xgjjuY5>6{!>Lv>q~ zwOM}a5xCjc+Yr@63=EXMs-fQ|wpAN*Q$p>ehIGkQwlMq4u-^OG5wLV!RlC?c|D?!^ zLa4FcKo3=}hmS(!S+fMMzYP^{zd9|aLx#Lgr@As_D0Phb*^*)R1*qvfL#@S4GF5~n z>sa>rJgfIQtM{K|zMeWa&~#(9uho%Ae_ga-Q2Bn$6$^J;6Pe!}FPAh?`bajLczR4q zqvVascCIKhUf2-L$=+9X;o^3sIYS?%-;}=)ej`Ik3+JOFM8gW3op5~zlcfRg63~QDwJQ*A2n>Xu=7QRu}=3ys|*WsIWG^~=m-pY z`k?K{u`5+~kICnO$HX)EO(&megqMYs{F=T)e%QIIN)3~8G?yv=t#d+YD|pjl#=bV| z)>Q`Cx`1wwFXOHm+T%n$=_m?+OF;g-5qa~1Y%kVaq~`AVmtA2DOb=Wiea}+FUyIM4P8-%h^ImcUqOtJMEo z^M~oNPiLDSGv~Ce*z}%jPO9`$Lg8sNZ-08~6#d*HzD+KGlD>vZGAdH=Zm^QiXx?L_pFP4iLcJO)#u$FGgY~obAq*mw#KM`KGoTn!9v#5 zkJM#iy0VQKu|Rk%*r%(pnv#-QS)V;JC-2e|r$ihG7Mu1@Trb;0)j^_FfjP2_@7XOZ zc1^OJ+j%`%ewItT`|;KHS#|W)yVQIixsln=zlz=z%R^pU?z(J2+W(E9E9sy2_K7e3 zdOvH2@91~xL6E0{qN}ddi8^162k-mh=QJ-{LfGPXJ%-|4o^$$%v4z`dYj0e6Qyw%> z%vu;5lUr<$&3BB?N+F&Sx_^t!_{Wgew6_6)e$qhYvpSzB^;yoNb>*DTj+$tl%)8?! zCVr9+C{|rmqCL@re_Xk_G@O#@QNb!3^XjJ-2vYi8Y&zzfTuxk?;#aBP1DfC8(-J=w zAW!B`G2mTFoA<+Qgs^fIjmaJ_m>@6{a=o31*^}2>9|OfuYFh?R&yFV7$gV=W$5>q5 zQYCdh_~DX2h&jN+<*NhKF0+5;kFAukuxs>-l3%QNU+gP3#fu-12S<ih&2ingv$9vf~-Q68dc+cNucj^z82Lu z3-J3FjjY)$HKS}v?Vnj^t%2E1|Hv77nl0#HD^HZ6FO@K~MI{L(2iXr!TzP|JGl9M4 z$9ZtDHX1~}V&huZKp-%_4}9Mz3n#o_L2PTDqgXq10W}tPr2@aJpY)yoR27~+1OdF$ zs*j&k@c|L;TLqf+P^=x9g6+_BBm4;s*gAfHHeVe0)5;M#18@TgB-#ct0YOXF^`J8rf@sq_tKi| zG#UurwWoyk6ru&q2X`e=j{cH?0GrkBT5E~Kl^mXN4kOcN>N{hiq zHF_qUE6iL#)lTkp+@tf*3Mezp2`UWuh;gE}e@Zql<99aDC7^;O7pA>(j=!jmU*rQ> zzozE5sfw%vBV9!d$^d-az}MH{A`%CD5yri$zktMo#I5jD2CYKE;YSVXVCauvv_`u} zu&gjKSuQf4hR)SMU8>~bOV|-fn?O7BMj40aEPknPO$sIIo&{nwWwHZ|!{k$G!qB9n zq~K;rQW7m7?pEqkPZuZP!h_Be)2^baR`n+a6^wG@0tG-pYv<}U zf`lvZ+3tY219N`?V(RaZdV!Je7>BC-#} zorAvw%CC1sb55n{L%M z-rc6Uk@ocp^;vFzd6c88pK`^Kzv!J6K<|8E75>_&u!QUbdWVBx2PyQ91E6=PW8xYB z%%u{>;+TnG^@;;}mrbpo=#NI|Py_T%r2%0@1+?vsAfYFKdK=KTL*D}EogszZ`5w0I z*8Cwa*$fc5U|u2!(?az?&YvC&iqiB&o4{n)(xXgqXIldNz5Fm+5cMEXI8u#G11x9( zQ<>>CQc-2u0(xd3G6O>Iq6UZ&YiNe{l`w%ZCW6db0*<+YFRnl@CV~yGtAzYx^Y^P`}tc=?tqh4Fb4(Q1!z*x9ks2-Uu`>UO52V~SObJL0NQrG z%xqK&u0d$hm)k3Z8#q4%0)No9gNfr*qQ^j#wjBa~4GW>P?a*Ku2N=+{`$alHcZmn+ zF46x81>FI+rl33KL0|GQ1dw#`)x^Rn>JAG(>V3z`!B3Nd?!X}$6m+-n_0BTV91Ol& z4&=_T0J_6b&|OsEy6qvl3jk__->w6BJ3Kp(w?hDFl;H{s*u^m%vj(0e&-aFbIZ(KB zJ}lg|0B{WMd{DS!u?x7x3eulBEZq4%!~lgmKT6@wVe%O0zCPgYvI8*=g+gS#A{JG&K_BZ44C?QhXfL3jEq zP^*=hvlu_iYyyDpoQ0`PGx0yZ251844oeWiO-RVyJV19)plydl<2hxifVQ1g#R0m@ z4wObgI971TLKwpBkGu2NG`YPip?~G=;OgEc6nBRv1l%Av49-8jaoDya zy!eCeP`+dv6M`KUwuGdMJ2iXvgn2m$9{&wQL3e1v1+>j!+^!rzcWm<%bf>a(8|8Z& z4R^#)wNcO=a99QX8L^nT0qhTh=^7BOgX~+ErY{Uqc^`!BEYWan)Pt^1)E8C=mcRnY zkG_Uw2jb4b59x3q?o0?Ne^>3YB5Z(CT!0|;jY2DF4CDyP*Hp!>=bHnAC0w)6e&>MO zAr85ntIfj|o1DNu+z#x5CLj%{Sb(G*+HrEh0@f(ey7*53{Y+szz=?Scq)*#zenCohD*odFzUKlccT)}i6&FFA@YQ+tiU zZW&nW)~z@j%s8&BK0?EdiI2NJ!MnVHttHexD=?S3fPc2_*oEMW0VsEnlcOupwp&n; z_+>K)dKg7KdCgEeQ#)z5Y`7wNoLNK1QyoX7m&yvAKHY&&0`ATLE|CS7*tC&K zcyxJr;Y=jKy>Qd5+{vAdfIH)&J>cYCux8E!mm)lw)FqG!H(e&*5zIGjJbfNZym%4> z#O)lmTwPr(HlIX{ZaHT=WpNYS3Y}P*pSW*r1@ORKH&>M<+$Q_s7R_6(18Y8(uIyQE z?!-0x=JxaVo6Z>5h?`F`ctT^9>^#f2Eep1jx&Srj?lnko({OwKe$ADzV@`07wcpNq z;vQVE?ONf^a(CN2Ys+zZE1%##`Hs#D``e=eo)G!Fv zc9(N)7jSov*aA2EuAK@-&&h9uQlZ_ZY1b#(?j6&8B4>;;m@b!@Ll z*{igC`!o5;)2=;B^4?(i+T;_r79p<)#{JBMM?;$nu8F_vl=o-IdlM3y9m+m=CQr&R zd-#O?Iv<}cAocQsylqc*Wh8H8`RtAQ>~Few!4Y2T)XW)Kk=$zdweK`KK@LO}Ul^Ty zu7>@~rr`DOhE6S~xi5PCT>Vfzz5K6ST}Ps%Wlt_e*(J+AX&8C3dOX*2f0gFKYrQ+& zPc_Ly#H7k8i{PH(Sdh$l2C3>jwLZF+er_LS{T z$)%T`CxBetj*QLIIPvMrmB$3-(U+4>#B|d*DfKoGSR|B;e$EZH0m{zqvFx1=A^T#n z;e{kX?CiFJ>~q>6b(VG&ch;QJ?)JZ7&&*eBD1)B1SE$(9-Pshnkw;N>N+0jo zK6`dE4g=11yv!18b4=fAR};w9J&8+=o*WtTf!52EQ z-OL+yx~(FHu*6jn8zMeeVfJ9M6UfzZ?OZc-lI?lQAE_yFGVvf+_gH3lBlW7BV~Ie# zp-Zno+--L<`?EM|ZnszQ7WZ4H5+3Bx9J3fZa@HbHp7()ZisH*k!BjV;GXl0eSJ?-W zooTDSr?_*t3u~{eJih7S5HZw!BU($okEqQWBAiJm+rF>mlX=84#9UtbJTA2F-W;SxPn+qT;J`px@H z7^A$D%mwD0Ra!BLs^yI{D*?~@svY7sHlD!<4ap@uSoj}`e*(}WWp4MgQM}Esf zuN&NTf{kPKc^GA1)F^u;Q`&X{TtM4S8fe=|n&&ZZsC@D6k?Ac@-I@nxFFR>U&Zs`( zQ!XI)Qv4lD@Oo!%GeyZXh)QG1>Q? z0u7!F=6AGqq7bGydxh;8btPRi)FGFbabLj~RGrTJIC)Iq$Z>V}MFoXC*Iqa3RZ?&>DW14r)WkbDI*u{8-!>+_jI(}!NW>EOqtRQmL;hatQ zS&{fijV4CUPJ_!l?=_pP6&X3bW*VKHrX#HrC;ZvXgHQR-GD^s%vln^LC`z{0YwULM zOn3w@6cv{+pR_=-Pu|_pjX^w}di>0*MSTa>!u%pH?XKGlOi{p~v+gvrEPLP6i|b`q zKAi1%JowQ3mQpcC+`SgB7a_q~;n(BjKJ-eRve3DFy0Ir(GB-Wi5O42v<>Q=%1HEL0 zrEv^3j4niirwU4-|1!gz&bI;!)<{~~K`SNr+as|@$JlU0y6Xl{PhY%FWyt@CjQon@ zXRHlv*L9Q6kBPTCyMq0|KmXZZX@fV0IXx89kru)r07-z^SWEFeQsNL_hOIN*zt|q6 zonXG=x}Po}uZz`kZo6>)*@X!<-6J$+KQ87!zQr1JZ$ipyXCm~+8bQ=TE-Jg6S!?P5R>hPkDtj)$3Qhp zK)pYMQ)?tp+-;eChQ|yCZ-<}C|9PurQvFy8>LX2ki-b>a{ORgYn0)@DOOMHQcs%(U zjf=N+#QEHas@u}bTK=c`PDwoorz&Q{=&hT->+H5q$ZZuL*EPeu@`^cEyn)F z$&;de{T4~P%tE4KZF&)o+NM|ItPuf3sd`7Y1jv0%dQ;o*j^nd5&mRd%Lp(E}3HivH z9Dz3(md#Yd&a0|w$y{fE0r=vanPg_CUY1X1+Ap084=P@h!MoyQW2orqE+AiMS==SUhF8R;T z?N(ofYR(B|?Ko-KIR~13<>4H4@6>15NC@>>kd&w%YW%j4ot5%k*}l4Zl;MeUyVueW z*@~}Sw>N8iJeEBN%0|g|7VGGghW#aWix>fACF=dN-mYfC1G(KY?Y))GtoT}qo(o3hJ~ z?yirH+&Nhyq%>x)=bp#^ez5-TySC@=XQzLk-068Qy&mb~Wo0?KIdaowlR)-*NKl^d z=TRnV+juUg^9)XH%KsX9?=~eQX1Xd-rpS8q?7K;iVXb-MV!Pf6M*pt>8Zh?@-_Yojamg z2-u{j7-rA)B0x!%yAkQ%saCrHT z(~2KwNIDfdIXNXe#R93j80WAG=dAMoLE!z9-@S29{jaIJ>VwqX1-}ZcU$#HqKNp`~ zf`46&&wJ3M%r zcSGqNb{XB#8O2o@WqvtL6>myv-&8%%Ezix(ZOVP$nfu`n!kfq&c%5GoQrO#5*bX4P znxd+aqJMLE0K%Ip8ICRQI&^p`mFhJ%m-PQi9c30li(bLp5($qiE z^yOF6?CTFhA1GJL{D%p^;Z?QuCAP0lw0{E}-a^L|fbcpyI{}2Z-nHgtscUuS(MQlE3BVm+*jH+T@B(Vy4hM88_!;u zdGoG@Nt~6e_@=sM``1kCsU?x;BFi0nMnADjUua{M!#da=-1!i4l)w4Pl`r0VOu}3& z)c0w%E{EAgOzTSJso$Y=$Z(w+>U|)c?Og!V+sVK913YTlk6FlpOo=}ND z#i-Ho!yYEUq+E=n{gF3IVwzBAOYQ}_s4&#G*q^0;bRk+@xH2O~XV~s+Xv?%;gLcYf5-Z|Deu4+?GQ6HV-NbXUv1tKM3%AWe6n4Xk=tI^Oou_qC zA%+?f?dE}2GNUm3lxt6tS;)zD*yo6#?X7E!z@ND_Um? z*nWkGjkMg;`6vf^Of6Vc2n6xiH&sINd=>`Kyu4LrZDLDepW91w+OGzkBz2VOC9WI) z4i{T;`rIzoHx`Pr*;BD~8T=|{7Cg9T&_gGHFSp&_=8(M+QC>e5?v(aU<%8a;<+`n& zvb(Cj_f^`in`m+Qob$9Qs{A7Kyhnxy{U&fsp?9s)nHkLq?15tl+cDZ31kDRnvBYr2 zCO%f)&;ahiX#cy{z8@Fc-h)@!(G4##gxSOwD(XJ_kcp>TY4iqle%|Y$x4Lt9EBq^&l*E`n zO|qq3f?Cwe?Srulj+n|vAG;CBrx{or>!7ebxa!C84xe`qILU^&3cPB3Zi!dPDDU&j z#|Lm9&%C=5j=M8qJmxr}bWE!wP`>xHu+bfT`N>E`K#LG*$&K}*Y^rEf$fCT1y*Y{?L`C7LNE+lc1>gs!@C~UY)?@NyLY>mqg zuNKtxijS#e-cD;>SFHM+V^pdui~ONiFw5d%!%Jg=d_!?~2emsYYesh*e)55gcu8fB z@pQ<$&6y8eBQ0(s{EsPJ4n4$+}DpmrCT7Ibdm zN_3}VS#c^dk5aqqNh&MZTFJeyOcxv8G*MdUWovDzJu*xl-Y7e)-Q9|Ak`-8Xn7Ha- z^xUh-S$0%&=}FQ{io>f&49|BORXg6Mdr-T(p8MwOl6!gem%V(~W;#QM89v+b>r2-% z+P-Z74iD*;?>VhK`fs(nza5?lM1qR5P^G}(_4VjMd7yR|QRpwEGfsO8aCo19+Fi#u zgU41Qn&EBGC7tig&j*{rsR$xR7P7uoZGFH*ybZI|ncx`N`gnAlMozc>-u{)RH7X26 z>Q95mxXZ5q4sZ47?~+(PsT&ng!@`&>9Six>Lp-{fHm+}g+THvQF7D1%zX@IoiRarL zap1?XEW75fqS(ou4iS&dd&4Yb^*1^lKNY8rs#%_{uI%t&C?Qt%SQ>CL@t_-i5s!6R z9N860r>Ge%6OL>pRPp|Kn z=58)LG>CNXuTXlN7hc11VR~o4_?z?d*zeXR#}!%|-WBIWcG@fpD)e_o$hy7ovVL$& zp&F>&6%};aw%&g(^kJ#2LiG3I9ea;2GpW{ZmRHM90t z=W+_L(*tC0Rk_Z)j01K(K_#~8kL~CCk3JtqbwxGu>ppV5T=Sjn#pe%FpB~ZM)=Z!! zx|-E>9Y?}yCWXlfVTF%kj`%4nPGRiZ+XCiS6GwJWOW9X8*nj#}GU+L+uv|&1UwvEy z^P15Z)#~26@+(8(wwN}s3MA{>(`=rUIRnd(zPqXG`M=HP?=b$pR(EQn$ogw~!6)g? z0=tdZv9*g1J_=tt@62NhQsy7?$Y&C4ooc3Qr-jHK{ZI+l9F})0ddiC5WAnE@%yTW4 zQCE#}MXr9-Pn{;es~O?#vUbtC^9!xF@w5}U)443L=qcnio07WSr@X%wy<9!d-nHGU z?X`g`@G`TH{QdmayUnzLy|2D6JO+OyZ8qs`FULmyoRWI+{gaPUQ@Y;3W1RZVKI^+r z%6G5ZEAlZ{)p?V3UrXG)t8(v1^48m}^*pauy#zq&!6f^av8(N+TrrvN>zoU8GK+5m ziB0zrIIiB(vux8Ri0U@X>cU1jZn+=FkZ6apy8h*u@9ZPTZU=gfErTf{UAM!X&;Um6 zY&zgrU+4+Fg0Ekw1#)_fQLMsXnaHw?LWVv8K%Vi;2ZJlo__JI3@)b6U*?5bec(oSg z^Mm+{LH_CnauQp9mlFBT&)`*q@Ol~n3QYc2xBRu)0yNnIrqOt5E5Ah{53Ok5;}r(e zM7m~>U+Akq0Rz0*j1TUHFTC8s_KYvIx4;B7vEW(9+COMe_5+QA&AM z7C@G*mjU*sa{x59tO1^LK%b|pr13q~v%JeXpOZ0>j6 zs)OHKVW=8|nrcK&21O{%Fm{t*PaNR)Opr?0%Px*u5;agz|5KVtY==I_v8J< zoRWCL+0x1n0}LNfE1YMi0EVxPk7iJbYnyB|(9CP);g4O#e&-OgNofG$d&(7iDnR(! zV1>ezf0}t@NDO6bF*kLMj(raxKI+zaergsu^}Qf1i%F;k6OS3;FU1fvUZgs|z|+`- zV?LNGXu?nzUIU#x$H3@FpLtDBkvWTX*4cW4o>6lX+e%4)aV9aEhwKtSok)1Jj`;k) zfUlN^e@e>K0~52@TZYNVSYGORzciqicU>3<^zv?VkqkB}n}Pl=AU+YKE|8JAWI}}w zZi9^~XX4*;F$cL~b0FkA4RdT3?LY_J0P27O^er-Bje|wAV{Zu3%=>YnWJ1<|f_d~T1P^mD3sp6bOP40Z(6MV=OfD&Bo&kH$K-c6G z_K8m!>rISoSnGz zXIWWXb{!AyNk=&faW^~bl?R6i@4XV@s9Y$Miu9zQ(?IDA0r4Zy1>~S03&4Xx zmjNbgfq0LJjb%XH=ZPzTkzKGJ5eyFT0vQxZ#XZ;rA0>fUX`DSHee1mF7RGCH_4V?YIxA zM?v4CqxO=~H~3lh4~aAqLGu|QO#n6{K^$lpQ%+6*2rSA+>n$T*@i6T|s5=PdNI}Mu zkt=+30EKXyg0|*Br$ESCT*l>aVp84Y{WgxF3;xw3Hw8R&A*y-VzW3}0+4 z_8zEem{V};WzHHXdx4E=-(*0+*$*Qb(0m!x3Y8c`N$=x8FHjJ7M$xH$*fl=nI0tco ziFFsiPGx7-W|xI(i?30UVqAnLAFf9(XD#5`=;h4|=nf`K86a&;m^A~sREj{7!7)_g z1_(LK#Ju1_^#n*N8xh<YbT1okNI^7EiEaX5V-ofP8SeSqnl`~<^AICH>F7^Jov)}joGU?WNxPXV+j zO{)_XKE1gWB{o|5fQGBUq6|3*SqgND165(;Ed&rUu2GSRtps*o3F`p8naU}=vlXV+ z3(D2QzhGjGgdiEtv*OQS3M zFL3RgR%uN^cIANFDCh^g#@9XI1};I7lpVxI+ylTL12RlTf9AtU6mTj9e;ibx^qKe! zD0d0KDilH72wuxqk8h>3Az zpd2V*&jsS0GBAY(5iWw=g-|B9^W495&yk4%c;n$ckOm4t3{>Vx18M+$qBP6{3SOB6 zMsg5wZ2o=@bn!PDNpHhY(QyK>C>yat1#DAyB?pG!L9#~z5_=ObB|ky(5$+@~m5M}f za*_A=FY>m%?BKuvxF-#QDv-f11VrFGXAB=1rjI;Nt*iKqG~yyiROl21TJHc6VYCj? zyX(l9w}GIAJ)k;H?=vdM%^p}JwEq}dllDs6<85stVTA@fk9Da+w5I@koPt-NBJ=og zXAoGHk7g}kpft#`2bjVE!vj!td~gt>5y^!7{R7uy<8M=1N64T!A=-iiGotsQDabrF zp27o(&|ckf=+C7R!+0Pq9GJ<4DU-o&qyeRCy_SrDoe2TE6P_mrCR;E-mL!<-ID$lh zx^hq@0-_%1B>9L0{oH&!7*A# zNWGP03;_3#AcPqi#H64dK4XxiJ|j@uy*RAfUl5rKF#^mO=hb@$T;V!YSqM*~AxQ$* z2npgvLz7|P{y5UNLe9liU~uKAZ9|eo3PoH2d-lS$Iv6A_#bd= z9)^kxW}vpy!A0jG9?W_@8s-_0tJ~Y*%Y@1CI-Xhq?^w*Ugn<+J@f|+#9vQS-nG!1? z7!Cw6kb?n45ku=L_zUGUqV98G5+Def22uF~>);~bjQ4=sJI`nnVbq6#J|P9*U?xO? zhb1$nE2$6#A=+z`29lwHocZvdO{nv`F-ZR4!XYppC)h^<@8*HC`h!$^<=ypM(e`ecq^KnQ0p495cv z27x5x0NV#9(mr3~fK>&MG#bvCy=c%3yMBSEPyx2SH(hV_Jh)aoS2*un`vq7lM}mK%Wwl%3&RLgh#lXC-H2QHBRXGUoL+K%rkj1{@(6trIc&<%2B*(d)TumWkazr4Kg zitz#Q_a#VLFrz?(m{5fzE2sq-vkL_2HmFaa%t?YsI0F|{3lhdXDW zwA&+b@!=9Oc689>k*7}X8v24c<`fh`I>TY*Ln6o|qDC4Bd?hAQRNMgAfvyrwC2ils zE_^{g9E}>uAVo97j!EKWx>Ru+9IjaK2iojA7>`w8KNc@{C-6X|O8UF(? z4U}j*2=ndC<`}G0)Pc-sMQNx}i1)BAA$+bfq^^e&BNJaMWIx5>VI)SCTkAO^V_2 zLNxzzi_8yD$?KH-Z3hjg=qlJt@$DA8v_s$hSUAi@7rStnB8oK9cH3}o3CjlGSCCRs z%C$PprK*CI5HbwV17e|+b@)+Xw0Z?%cz_Bf-`e>q48Bmm`_XIN6`?W7c+1TrqTujj z8ZY-u^~%3GJ>6r{K4+u`WjQILo8ACa4?6M@%Rr|c^(P}VFsc`0=JyDa3(|J6Kax|d zSp|nFCXC^g5;Vw0RC$4#TjKzZ}O&xGt?t?jdr<2TI~_ zhoZaENQcdgB8Ke_!xP?pbh)4$)k8bkc*JYlAQIrhZ)Bo>B?kG-Qt(h`j>a8Vdt;D{@lNh_pyjxFTh??`z) zcA*89kH7gs{BY4`K5f_iNYpMV!k&~1TVvxLv8cnb5rrkxgNO{(gu?LAFKS;#V8OHs zY-YK_nUPOV$|hshf3Dx)iIi!Z*zWIHRquW6`jK$HoeIUbzI&*_%M?#Jb$`_*a4*!W zcG{sLVYRWAmlnI%PIqU<->gvaJubOpL!H+odQCdscb_TEX-eO*ufreIJalBK{#^fB z#l@J_!a14kJL#&-Fa6es(c2dRZ}JJ{=&p4G|C{h9K-hN2S9tP_?J0`2mLOcLJBV4O z{-WS&Ko4pH9|n?I+C%Jn{U9|_?@@xQf5)!TjMJ2q-u@DpNc3^C|I0Pc{rNs zpC68wX*rE;jcWHX-u8)d zWV#`9a^k9V6FH1HGt86yqYy5?bXoSwfZYAofyTLX-eup?!KRI0Wt+d_z=xSBV#L*k z3jUmz(@Vnr1KdM9&Q^t;56GHb`Biq~5XC%4Df=`{G*4Z67e+-tEi*Qfef9UO%CUir zpUy7es(rxt(b-u^R!2%s!diV68~-tzgEd$Mi6rk&ZB|}olHW&}9@t5|UuySc_jSJG zI64g3G^~|gwG=Bpjj~r&-8N6QV0wHW?W==9r0n+D$xdg>1_89;969Y?`4o+zb64xn z^tDanOJLhgS{TgtYx3Ci6(uFt=CS_@Mp%Fm%M z(T+lwc4st+D(rgr>B-fPCzvzyGp9RY$ym**JIeicH$Nc@@ulwPJC4j`93Z_CUAX17 zf6H+#$q_4dED)3i`CIYUF*&HH0&`h`m6tVoDpe^fQB@Q0S7hc_u&gI@0CB9LTZT;6b_ZH(XTN*yARv!OWmh`;r<2RRvMssm|W?k8$QB#H`h2Z%ZQeLh* zKEkWr%ktW@{Tx^@)!!d^rjfjBZ=Ch|{mytLC8yStKH7Fe!!l{-kxwe%WnQZDq!RsQ zS&P5UM~_Z+u2?w?O47@Uj1rk-)aaMj-&pk;_a(gR-@1LeUuoY*oY)C<`@PV^)4M>5 z(%v`oKsoxcLSsJF)xWZ0cN*bxNx)iv)=t=5{_2AdcJH1-jQA+&81o(CyCqxTCS2;h z>6hnUZyxY}_I}`z)Tr*7MPL0PH_o+MV8ric36+<)d8bLgv^y=9A+Y`IWPP{LOXF9Q zW$FC{p6I3Zg_J6*Z80g0@5V-tf`~Hx72Cd+e4K}w)JvujP-&b7-4i}f3j%Iv(g=v9h=C?aa{-5?E z!E0CV|G*kpdy{v;Pn6TQ|GpM=-o@~YV&Ou)XkBHN>jS0q%Ofsp1-V5}eGSiF>A0Jj zwllczk}Re#=H-qv=WcGlu>Pl1_ayg4(}9=wOnyx`G#6*J=RV#aRZJJ(*6w5e?nl$` z_$)%V`t4?wYyx8}eG=iXsUXhwej;ly;a>b?pUMt;*i2K)VflnCb-hXY=J`v4w>Dui zGiGohBh+WiZ+hb4o+J0(_U(|YN1U!t+uGCU$%wd+Z#)6wehOzsI=e2T7aYT4Ln!Ifu0;(KPiEQ?_ja@*g) ztCKn6?@hn9sOQwCU6yx0Rfm06E_L?hB+J=<&|Kw@(jCIN&bzDpmtVZurSI#-r%M;e z(O`+sE6bB-sccK46G;u2 z>f}b+X5!+5li;1_f4$tTwI;xZ{MjZacVvps%kTQ(x$2t^+RY>MIGo8&u)PV_4}N8Q zU9$d**=)T2Lf~j~*xMHxAb6BZE^3)~gVhFYC$XODN@>-xOH?s<`>IK8-RUvv(G$%?ovP6OY!pf+TUZKC zhKz*kF9t{t4jYh!30T^l%;c$!pSAV~A3qw%z5A8y|uX{RSOSjv>-PS}RZp zDow3B!^r~x7fE_6Sa)uu3#DCuPZw>Z?UHYl4Ul z$d-o%yj0K*tryWwZ`$Q18%kUfkMgr8_8I!MK*{JGw)(6&#+}p7TQ))HB(MvMtPP6b zuok97@pMHz-{iudSjQM(0Z{l&74Z_VI48r&LF}^a)+=wAP9VjOd5>5-{*f6!W zF>PVt@CMbP;aIRynAJWJqebJ}ffmO{+FV?^jE+D%_bL98ju-n3Dc6a1c7UGg-uiSZ zn-2=}nAAgrfn~_yhaWPv*kQY1eRavMT2N*gD$wR=6E&nTVS~?5OwZ_ zIFkuOS!{7(si7bOcj%SR?b|u52iwwbwMIQ;S$x=*ym{yi+|b$dln@N_-4-GYHC6`a zxMVoPpf;!nP^q5XurOVzR)~usAA)xIiq# z>>|MXz>>6ZO&ZhL1$L!|8L!X!$^x-@Xc@YdjW8T+_grlijHg0I;|T!B+s=cd>q1?} zuz@tVyLRO5H7oL8_M!Hu+aTm?0rc+dKG5DjAfV0*Q+KtCm;WDJM<_Bnzk(#8oeXYcI!y= zj<)G;Qa612HUerDLI$y5O|1cY%((%CbVs1i7~(O2cLiLQcmK`=6tDNhUQI433vf>BJez#yybR1-5J;XdKD~bSx$qP)d?E5%Xrq(LBfR+P?+9pk#;mNkSv{0yTm;pBt zQrAiXK{icKrJ!hl$YW{FK@LU?Y1Y~HN1Mx(Ky_*1XjMeNZED;hmNEI1tW=aUaDb93 z7)1j)aA07@DP23*+4In&?J@E|3y&9}HY%|C4;G?eof9>lwG*|DrActl*~Qjn}9jPJ1K*Lz=e>1`gh$-sEha( zP?(8bxDgO~V?!N$hgDX?)F?32s@)zIc#H3V2?z$f*Bsd0qC$`;Ds+=X?K7b<3BDuF z(Qi!VKxi|BgG;D{9m~LuC7t`Xs*}lbW<;PsVd}$RBmTK9bSQ;p?=Tm(k_&cNg=qq_ zQQycDQb>o@FcTptJ3+uPfg4i8B)e&{JYexmF|$Yy8q-_|6=gC#a$$hOQ>HPG+l9$f zLrJ6v-Apt&leupg9zq{87Jn~m2cz%?gYltgU#Pzn(smVW%=s7Lxxl1WL&5!^f68~6 zEFB7n7;Hma4MkalsCFz8KU9KwRwR?P=|uvgc@bW;i?cxpl}whVkSWPSYf_l!d2nt1 z#L|~b5B^SkLpzF~{}D)lMpK((9>_%e^oo$31Il+14Kw5Nnc)VRp@-&JH&r7arjMDB zE~#9%kzqs}Sz;OhXo(iC!-RMM2{=0>H4~<(een$YGME~Xe=3}i36;%^bT)&kk|SL? zV+Jmv=hY&dU53;dlfbxFRLBJQox6DGwx38_0mMv;bpi;w)1ada;92;$c_(D)WFj;v zELpSgVa^noIluua&Z53y1m-`@y9+-@Rq8@-k|VcfMtYFIr-9}jA8f*g z2GLl~tFTQJIaHPwZomebcM%5#mkgI&I_=Jpop3=UWDtc#7!DUxoz^jwpvPH0b%Xi&}7Fck(|jRe-2g9Xu$Cc{u|L8LV)>Smo2mGbFa zQ8-LB!oW8&E+bsY1>x@!Nwte|o}1C3Pn^$$ISq$<`G#pOg?WvKI%h(4S3_ml%!B;N z6AXxsFCzMSsIw5}Nq|Vsfq?9tglnWV2dP7Y9jCF(?Z!#I&Z<(8)@D%*PE^!8usIE; z%0V8Eq^rIeP*nK!l<01aM?_#69uM20(;Pq*Uea8@bR0Me$3I~ z^RM|)DW5>*QsMR_Bml#XOF;pa7Gm~!pA_^_QPfr@baDbNG7P^-iaNnqJOmulBMjR& zxAgX?TL_zF&1ZSqMSQv95pWua&|UqfdFO%vns*7E9v)_}AeTrb@|UfQ8Ove#aXwN- zz^sXcsxl#799Pw0s5uj2&j;k#qL&#gOb&6{ckY08m>3Csk#xPUnE~YEyx6SO;IH;l zk*DY){v4zUKeW9F(Hp#QRVv(i817#ev6Y4d7I})aY+1)5OD@ecyPBK9e(bn9{_~oO zA&$NDBTRkvGj)o^!B^9Hjhl*y+ruBLYMS2YH=|4B{Yt1qgpLq&d*M z6GVFQZxs@vj*t*HQ7ei=QCdStt4v0SsuxDZPyg7VHA}dN?GU^I5tS9ojdKZGgi8L9CIwiFtIfT3}HLL#|<`RWe z+sg!<_}gp4)xH9fw-U`Lrs zF8kymeL>zqvp&9E-#zD6;~xF=GW}&<>k}5Toc?_E=#AgmS64IhJVS<78Jm7)kZC!M z3VFz{W|W`jLGQ^6{z1H`AYVY>A^kwVGrsyh$XhKN^7T~z{ovqlpS;zFk~c-}AnA_2 z*N1%RSJxgq#|2RW0_%{zcB=u*_1Z3E*_kyzc2p4eS7fbE>hq`vn``Xa^)jM&`H+9n zqn{Z!0#YTHg0usY9sNzCq9{=Rp4qsYH*oDYe0}HsNFsl}9zy!f{du_gN3w5~cPG$q zF2LXJFCF>U?M4v0c+K~bcjcX+zDIvIedYi5fAH_T@#l3^)Z1SHq4Gfi#NUGly~mS$ zCgp=tj|Y4l@}1aRlavom$qPu$3!HiM_r>hbp3UHLEXpf;vKi zO&vp4lQw^B`n*f>xfHSy7qa<1DQN9c&hlD4cY6q#igyl z;*Q4NSkgS-4}sKrAertqSau}*MEQ$vyN9_>T`7CrwH{bzYPf!De{s9~cm+_qt8o9N zHUZS`j(%DDx#vF)54WjN@jP>X(?sul@~mEbvT5gx`)`d;K<#e-iu)?S_U@a?2WR>2 zy%c}l_}=$^Wf?{3yQ))D|JLsA97)G$)ZgxXmbAEa_n8}CHx5mF9-ke2^fgF(;b~&>C4C8Mx~3KR z<6X1G7NB;Ae)%gi2(PZUII`aJQ|?S-~m|Xf!{qC9}3?+udiy%@^PE zR}NBDjNfVj-E>EG+|y{@sgf6D z(MinEEj_Jp)?L(A{C?iKlBx;So!Qd4u_EPiuA{piy=&TaqVh2Y>+mogVLwpWv@5{Aq)m5> zUiI|x@TF@#=gRD>``pIP*GP?HGLHLfpoq_AvICZ$WaoY!sv4_bx3Ap@Tp!Y#t+Pw5 z+xK{V*Ynk)oRQ`~kae{d;YZVlHOje4;l!@^H|p&omiqfT{;PHeIJ|9=e{KdX2lt35 zO2;lUx_16syW88)``Cco6F=1w=8xU2Sbz8Sx86hRf2z;cCc65p{c*_3TkHJZkAkCrk0ZlgVZoFFm(eNeZ%kAN!>>#bNYsT46t8n#)7DsQ3 z;e1-XKR5Z5D<1EuE%Aabm467|8eEqi@jXgAFKoYB>Bl5X1HW!f_d^obOEyJcA)IQw36L&EtGS=HD0)`v%fI;UN`daFnm!pHp^>uOQ-eVA{Q$(adq-E9 z(U%glv^+zQFX6x{*-!eJ@q#ls+=pq56G%zPYlou5gbLmUQZZ`IbcpqVN!h@; z32P6ZC^I(K?|=wY#rmm{d$f`GEB99W*Wn@tWU|bx>Ie>e#yC6hlk5&ILWWO{ymY|G zXPXgJT0|sf$NPN0cT}cYd{NvE%5mRhrjqG>g>d{h*tOKI&`j}W`w6XO!q?UNW}AV+ z=M%X|*KPgxrARlUeu}t21BXX;iU9jpZrw5;(L>;LE}9-hoVXDVv(niXnPgT-+}6K} zm3{Q=sJj$#Tc9BPmeVZJJ#8vnWHDOp)_l^gqe?Ol^>E5NrDE298wX6!6EXW^j2!Y6 z!d9U2M@cr1eK;301M8rxD?`b-`7IZG1nqiThL1Ji2Le@NO3IZjcEnkynf2{at{jk( z%4xi8nX0hU-1yc&eE9*&-pe>sy|v0%83g`uKU^|P(r90|AlG?cHgQ|#p}=;+HVxG& zQ(p{KjNIx{HD&zMAnecqsZ$|N!caBa7F(XsR{UH7OVa_GsK-y-voC!<#=v4T)2F1B zJ?{#U{mtx-$eodzp>-fg%N836nlj143oO>vu$5_z`woFKriycV>wCX#+aV~_?zyGV z6>Njs7Ryq%4?q3X%hJ4HL|WtTMUxwAz{QyZak8gGTGYb^L;e1uw6l3;{b9zE+i%P6 zIRr5|(0D0WFRt@Nm~X~#csDzxwDI^{1PLj$p zGCQr2lBLhR`TB_Q_Ly%x->}Pj?x?@847R(I=iscqKDF)4w%H_wtIu?=9l6@{CF_>3 zr6uc!g#5c>-^bpSZ%@2ikb5;l+F*3PEh|)ArlGC+Zdm-BNx>Hj!9SGNkyN<;6@4&VLl z|8aN`KR(mN^!f@U#>(Obr*jo z2qQwA-{C^)p0~7Ji9We)4*_s^rni>kZ~tlh^3$WsctV(T=iId7hq@QWiQm$02hQy2 zs_SvIUe4_KGkM_A@75cM-@|8J(>2f9c zA-W6FhPrPmF5Jv@mz{9o<3@bfm{@TSxnMxH19thoWy?w&tw{h)TO7I1jV$Gyix zt$sDC0}f9eaCmZyJZ$q2OFgiXn6!EhaClXK!#e{wyu5!L9uaVOeXi}a+&8{M`k$jp|hSz{NAqf1jE)5F|AQ2?x)uzg97qLYJrO~$|D;3xjA-N^`MBVd=dwW<21|F_!R#s5~jJDR`6 zT0#7DzW4=&e`|La#S_CcRuGqPnRD^~d+qLjI=pumb!wneKgpQG=a3sCJ zPy+ScS%Kvz3ZHmbU8xf3j4~H zD}bd7a|;GIU6Ffcx%=J!$LTUW;_qL}0BUx**HZvRXK*vu=vG0=?YmXC3;sjs_WLyG z`BdopRv++d(DZxyA2avV|6#p)IBDbt2m)i^|w%nEyPO)cxXGcNPtAe)p!n(A=$AyK30GMkod^TLz>-J!{>p{!F zgD$|&JuR(nDy{D??dmP-_hi&04TcH+J7KjU2Q#J>Fz%3jjI3D*wEP9@M56h)%%9G-y3F2 z8@sC;+Z!8O-!}G7HI7!d_9V7_&2F1~-PSwW_IA2$e7@~NL;K72_V&Sc{&@SyLi^;y zj(62vLv3BXIWL4OFFz0Uy#3fSUer6!>wOC(?%wx~e(IeBblt1IfnNUG5&lry;P~L+ zoAJT-WpBPcely$i=Kb`W$;CHw-`{*`e)|=mb$^DxSB(AvfZf>G*!0*GVC=q+E&Ui< ze)E26`2F;RK*0aFxc>3S)YSCc)a=I8pXKSVUuG6pX1>jQ`uu+O>+`vd`MKFQi+_ZR zUuV9oeEG5j@Vd37wXa{l{rbAP`t=u}?k2yj|3}^Z__?n#s90ii$m-_ z?O9Uwzp6Wm@vW8U<;j+WHQ~PRUDYbj^Qhq%S&N#I{sNPLUFTocJUkgzMjNO)Q7Xhz=nf7IQxZzmh|e=q;&XpQ_Ybyt62Uh}ox?Tc9HqQm>oi~vU@Bg$Zcf7gr z_v84c&dPfG+t01kQw|azhvRZpv@)S+(e}t?`SzLGJZAqFs=(`w2uk2R4wQln40WWE zkAKd+IvF8#ZqDwU?WyjxOTT@gi3gR7rfdV6I%+=<3_LVYvN?Q(f3|*uuo9a0nXsMO zd|vC00hT)&(bUu(vBN^ElIs>=vZ2C z`EWH@yvUGrSkpF=(YaH_!QtB!{=gq)Xx|B&d8n1%)`RYoFpqm$t7yZoO(4RhmN7Dy2?YolICm zIFRi0!`hV&I_-Y zpJ}(Oq=!6GJ}}yMU9QwE-6NK`D{fCgtgc&$lErbt&w@nxU+=>cb3*M=f65_IHWsYf78co)X_ON?GFGxa*rENqc*^JxTc= z$mQNwn*K_(6GbmAYsfm|9=8#-SJ#f|T}DB}MP%;uhdxwgiV{>Cm>Mtl7c4qO@84DK z)~)(EUa@z9Lc5RL={#La_6eN09rM1i#Oc~XL5)qN$G{2qy;=n|mpu8u71MS&p3FP+ zH22wLzD^ibZ+e5r zCwj;1ULFg|7?z4uO;Nq)Jl!K-UYGNs_X*A|y)4+`*@sqdA?yV8wTa#sSeDC!$m1aB zt%Xp$7C6ob6pio~!lk)X#MTxFI$Q{rWphon7y1$d0$X>m_m>mb+U4g-TeJ_S9Sjzj z$L+oQZg7-~a$9L3HVQi45G3Rd&P<7yp+pSZ58&+Mqve0wnW#^6w4WOtP^0GO9Q3$| z-E}%fzKIl}`u>;tv!;)7J>Ub@#gu4BbqN~nj z&=>P)oG^B1 z{mO&MG149DBR0PR!{DHouHK$62k)(|6jSk~L^d5Jes^UzuIdC~eWy*P?vIDJ{IBZ2 zIx(16-iFfdE_2egf>Hk`ZP3emE8;x8<^hrF-@01Mbgf z)%h0I{OK)1Wmes=c#Qk@p7SqzJFCX=k9@m&#D$oeia0AZzagyT_laBb3s&j@vppFe zX@{>Z{ph;=zD`pz7S*!Vu5x_FiTV;0^SC zzfip*b}RhY%r5)iFYPw29e*r>k&hB-x*>}^-rk!gI{2$M{>SCWremjyTf;Yde~!f% zW`-u+bT;l4b|W-?w#R#Le)olsiyeQrNbDjgH-oo#?(GBY_NzjDpg&E^YUJ=(jh;KE?pyzcF;He6bqy%~Q=MR&fY{Jh1qk$W9~!K%Xkd{dgi zRi&*}2(A5{H{*b+7xlOw&rw6r{hvmX4Kc| zO7E2ug&R!;O6NI7#j6eKmkf^;kIHw?yvVT%x>kGk@507u{}%xtJ%t^$uTwL=7x<*$ z8N*qxy>~>`WbIolEy!&+JLK1K2jY?Ik*!io@7((*|ChnnBZF>Ak-*=i5nfKAw zBU-^rZS!j*H|jcGeYo{iMe}v3F@|kL^J2#g*;9Uo~{ih%w6d^NEaDqvL~-)yxa1;C^QuuChj7w9Tn=Q5Gpsj z#k*^Z|3TL%W0B0F8%i#r`cdOyYE1$ZS?(h!Iz^kc-@AqYB`nvBZanw;& zU$}hraTjhkighU8jpyy#euic4!!rLFY*`XwG0AFtx+PP~HABlaUM1{SXrvuVdV6<- zo3`W)9}hY00Pjx!BXyDBw~^Ybk*>pA;ya^iz|p>{lKz>Y2<_W&u&`B$giSNK zq|9iKs%Q(T7>|oFb)hjSW)f+uA@(XEIdvYAbCFTq%>0sT1$9vmR2_?@404Afg!f~f zD#TUHi7U^ZE39Ld+r?e~exti9x~#;mraR6)pPA>&Z12|U^o;^%#)}|Bc_nd`oi3$k zydj$LuYJXPx&uyX2MB4H6TeueOX5aURmN0rpPUW|Jeu`Z)lo4r^^)1#siJ4+ zbg@gWEGpp~I8F2Hm0ek>Hx<(qw9{^;B%95PTj`v&$Vxf48izJdjQNpfk(G1+9cvS# zaLzBKVK{wuIUO#Y;dEBc`C+hwU&g2846(Wl4|67JKBm_t_GV1RZPzqLSb9>+9nJZS zo!zRzelb2VcTWBe^3PJR>h=jLx^QcF%XeCG=-JF?;7r}RE#;Dtw~@(9bt+z`@tHLE zQbAU#c~w21UE)tiHS0+H^-JoPj@x3EmoCEDs>6Zl zN+U{BQQ4g2Dvs$0fYqdCOI&KXzBkYk84~Qs2;u|4w2`yK&WX=P=S!W-zOawrb~1_n zFgj@{QK?jXd#vvZlWXf&3L-jHb^HtTvJ0;C7u>j0P}(K_qx=4qr~;$df|b?#`_9ET zy$F-^zyJMVeqwQwgAJyZbl+-M!SPti<(=_#1vmS(Eu{K8qPj&4o1$31qUSM1vBM8O zJ@YTz>3vB0=*@*9S4{CS8;lbI0ggh`D21~v$y;?jPMG2Zd>=i3-y54hU8G}+Z|0}> zl0dyQ%qal(abV1soQt+T3unDy=B`}`SN7?Mlv$Q4=Hd0_^cz$hoqrX~Lv8S&cT2ZK zS|q*GaTyVK-T35wxa5AvQP-2Dr8kz-Pf>C4JX9tLdWwguk;!Kj-@~~|Bpvkdz3MTL zkt;S*(q>V9Z8<$ta8;iJTNNU9l6~A`vz&M2DL>Q_+FjLM_DcKdrkGthQD5rsRxCh! zKiZk6D-(ZqId8qV=*Z9(eRDfVPQt;5u@~we{n~W{7NCG$=dNZxGF;%EF|YdIR(0C# zj!c=vIh`tlwJK6imA(1nWr->Y#mB1lAv<OM9W1iS2-m_y>#A-h3 zG?}>0K&pJG~zlFIQE6O!63ZiiH*`Qe#!VB!ukyw?jjS#;}Vy-cpkg1pM!tQ zB#iQLJO-hIgP#N8o?*RtV>sR2Tdi&qcqHQTCf9Y8-Z00*JpD}U2xtIc^fIH#LWKB| zON`OG!du@mLLzQlg|F&uEoNf<_;n|eYi@uLwIrwo6?fZGydbBpn1nClHU|ZuEEMo( zK*$Xy_7f9Z#1qTr!RB6ym9XJXe3&;A#pG1q<<)*$<1{aI;o_V2bEvk(nUsOlZk9vi_Nwcug@4u9{f5V)+K;d3y6a> z2!UGf#l;r`kCg&HPl4Nz5us#aF$gtI!BFu+0CbCD%%bTt**!o)_=33DXe7zOL;L3r0dY*{3>knz=Y42{0qjR**xj>&UMhHLPUF#?1N5K<(!JZ>Or@Lwg+2w|H{unre& z$w8~Iu^T)%UI0qqiJd0lvS`@-WcVd6>?{arPbMai5%1XWKpIqoj<;gKoAt2_F48m} z1>`u3*=>N0jpd`SlMq`Q@#9of00+(DpknE-61Xkvd{itO9nEeSW1~A7+CNgTgA}Yu zqw6{kU&BF<(~%v*_T{^1uORp{TDNZk;W6`h+N)adUSb^&?@i}_W4y*DU?)Pc`91gm zHadYk8cnG$<`Pxd(35;vB^j;>6bWPpPCg_mQs}1+Z)` zFg0Hx@FJm5eG1R)(cs6+wcItb|!#1G}8vPh_Y#)l3rv51ZS z$ixirF;{4~r8s^z=xr!-XpBFcWQ850zKLcMia=f8c<9adn6menyVnStdk9%{LP+Wg2*SQJ+gYQjfK#&e;#d}u7 zAJw3NY-s4-zhE^gxc>{NQb0V(7{5a4KEuQ$3b8vVP!|gHBnSL?FI0w(*QG;t&>+vr zP-#ATfQ(>JKE!S^;Nw(m785hb0A5~Hq7Z(Cj-2D+2RW#3O&<^hq!a1QHwH46gC?jE zDtLl#Y;=XNw~IO1A?*7`A4Y7zyZG-CxG!exo4^^j~!{Faz}Y z4l*&D2X`XjK5|giw5gaLyd(JogZEMeV9;FR4k2g<2YinKBTyh4m;u^7mhzVphbp2A z1!PNxlPS>aWN0Xt=q(u5WPncc(Y@!viu6w!%ujBBY36@gCnFr0h-5lMlQeOX4cbm4 z$Z^0AsX#aZ3~Ug~<>QAo;90@&kBs5Od+-SIydxQr(TwlpA%|Wg;Y)~}n?%$)X@Mb& z>MBQj^HCo`$P!L(4F@H?(Ko<_JMxekU%y?yHtEgB)Zc^qfY1XRbO4!9Oh*ooiC4(| z*-T6}2lb4M7@*_yH{cE&bW{^El!T%O;v6W5OKf;O10f{<*$4plwsemJg;OA;z_F7h z-gT-omyBkFYH%VSa-Ifq;-Er>6YCRSpL3w%4Dc2zWUByFFCbb{fkm#av*D)fiQB;l zH8LFN1Oi)cB{soCCU`4pF5Cd`NI^J~R?YzSHt$0q6Pa51?IRDrH{?qq{hfw-&%`7m zmLzCl;7UNihxEJQS5!LZ+oL677aM+^x#F_PL|zA>Syb#G9r>mLHTnpB@;P#bv^YQ` zoS|a71gM@qWF-S$%)rf%k@8;==>migh!h(8rQpY9T(){;BAvmwoEL-ILGc~1p||UV zNNZl79`2t429G9*%4Y|r&C_oj#W8rfC^f|uj1}?Uf-7gc(cGvPPrjA(P&g@Z>qHGOr>z<_R!4?>q?hr(%)y| zwpuX+FpSn-kvnRa>V41Ikz@6vcgWFd%&e9BGUnety82<_Z@{XIW9OF3C*_YNX!lp& z8G^J#ph)C}P}nVoQi|gh7Ys30u}%<1)EXv7ITn(6st21(sZmISRWklQf+xU{w9IB8 zFu4+5D*k|Kp;&|PqY~!Kt^Ok-=Zjnj345Mu@7Z^-j-eE%#uq4J2kVWtWB(6XcOBMb z{P_ESurYFsmXr{1gtR!)(V-wBEg&ICGeSZE2cvUzEA8k}N=r9LDo72G4iNz<;q3D{ z*YEtk=Q@Ag|Lu=^f85vgzVGMjA-#Z7p*0g6456`Tr-4XLF*w?Nuq}X-<%`x{hET$L z1`60TOU`Vd7VLAjQuxqEJ+z9A_^u|HRO!^1aHCasqUb>*n#q}myEf)V1mr=4CQbuX z6Vu%u=OK*|i~gnmSaQbunXXpWSI$hAE>eYmia&nw`kN#0Xv**c;$Xv914Ic-Ak1p4 zj5ks*giH|I5oX|x$P1<~n2m^p7~5IJLp38&C`%nx@end|KP#Xj4{cHmn`2Qiy@qU) zSL_CrPz0OV&okl#ksPlo3q^p%l(>cYIS;Kt`&JR1hPKyQywO$g1SBN;ZG4j`{;Ysq zV~?ju^a0(3YOLds5_PKb0tcNrI@ha^?(Q%6#x2EK728-zO{?jrk(#KEFc!gmZ~H7~ z!WcD15i;}PsrwLlyMb|WhoOm(LmqLR%Sl%lB@BQGwzR+$gx!#i4=LRiNNTe(We`Ag zgit*879u9QjdI3qwr?59Ai3|{;`W*_{0`Zam5w|RJ;QWEjH6?|#|4VZH70v%^P9wP z^dW)25x3mn?#5D%waMcpDhivKtfMX%frzD;t-}?A+`?8T_YypJrmud zr!_(JI#UY7y9E`VNz*Bg55zBsG~x=`oe{4_xP0d=T4g%V)FZ9tcpUev6dOat;*`vN z$Tr0L7qz70xlH)*_;A6_eEME-u3Mm45i|!@28m6-xoEX&p7tk|hawVpt&HUuO7z0& zr%VI=)XNr|?mBS7ZQr_^ytTTMQW8F+v_K1I^|=n z{K{fcwY*1-)>AYcs7j@MA_lJa3^2q!0AJ!8D#UFdGa`hC1`q7gUlM8{6(VCGQd^cZ z16B;=^u6q4e8c<)-^Vs{l0=0AFA#qKtr zLy_Q2s|@hm;}$+TMvJ{J(y7B>BKfb06l553(Izbv*dPzK{gX0~e<%&(Y1sdV`=KGI zfJ2`j8GuqLVY0aS|VoF3oeWL6;0|$&Dl3jE`y3H*5Ju# zr3q2G7$lN-J@sOdm7Y9}u7XnVzSZgi3S;l1EN3eS0`}t{`UZAJ`wG#??51fV8EfBL zHoj7{=ok(%o74yLIh&4}jW5_08So5(`TaJ&CBnP~YYhm}j2Tg+zETElUWbslAhAi? zq$3YjsA1<#FnLaG6}Md$F%t@KlfsXnV3AwgZqBRH?3w=f)TE297N5Zr?3k6$IK}+a zDk?cK#wu4XQz=}VIoV&lK{zh7MPzgONBjisUbDT!a+s2T4R<;C9M1x1>0#540bH|} zo914cKQ1^)E*Tnt`{{-0!w9ng%vv(q=iOb31`%rGM5xwpk2?4h%^0{`tW~0)CVopT zq7^HpV?%-l42%M+q6C_lr^5K)cPZ7QLvl+{9I84>ofOiUtJ4jAvKJ5J)FkfM;^#*G zshzlg=(cL%367Av-}m{KXMC%r_E&KvBM#g1-ZPWZg1J8IbfK!DGb+;RT%t29jf|9BWnf4(fewQK)F9NzVX&;I-TH(yO( z@~qsWq4;RKr~)n#;|hrq@8Vbdi)j7tobCW19Ii+5t_U!24eOr`!dmh%t%O%!p{%lF zc?>j~hH7=gGLO~v&TmtkRyhR?a!C+w zK)EYT5BU$PV3A{`9)pLQjVa;;2yBskKaXGZGs)e0@0P{I+mCnMroXK#33Sk)A9(w^ z+;TkG}ub{hTez#N+S(UA!qYuyqMMdXRRduFgUCOZm}I zDeuwr`H%Ww<9`qJ!X>&1z(CMl@y(`#qwVdxm&IAJCr(#M`*y?apG(sY+_p~Z+Z=w& zpzkJ3C{O|0#VJ}loa0|PQ+ES}jg)9fOcZ;)6m?=0DMPEayK4sT5bf_`vE48jJ-j+N zYwVBE^Ea~NyI6X8IJwCe@Bqg3jr#Jo^HLew<+IRNK%_%gUv~ ztLQS|O99#EWenXicO>|p^PosgTPZ7)wTC-)rXqKNQG}TetWxoxmSzBL=QB@Cm`bs! z$|hx^G72DDgc7@%8vp>gcp=kaNzI@Wri9F12z>CK^2onJg?5XM5(&X?tG!( z0;Ig@j4c0RFHtnM-7TwHhCY`jX|4M!C$lJrDeP)ftN6fuT)$BNl*pMxln>lb4k5)S7G#Q_+a$efU6%;>5H~QJ(h+UWKKi-(p&= zw@LC$vc3}qQDIegU>i`r`r`1X!EsU{%$wTDd4SAM(;s^SPez)Q=1VTMn`h4beYg}aX^b;|sT%LIt_ zksze3psWy`1t7Wp5$9RJs8ZqAj6$8Os}i}vQ5A}NuY~C~U_~y2!$i5g3wOpuJJD<* zs%8bn;6QD%IQ^`|@e}Mgr5{SXXpBsX$0DDJwquNK^<&7e?vWQ|kl9f2mF&&BdyD;cZhg8^!Gr|53iS$SX|mkY=b4=8S)Fp{AE(S;oqGtwJ zGBz6hrqTUJW^VMXs1W@tTal352Dh6(OXBvQl>v6zJL zM-o#Fgs?jhQz1xLu)(5MXlWwl>+Uvj8Z;q0O^On{;a*{md0U9IjsK_v@+wXi`@{6xJYM!GcHPJ+~0ALW| z_#_Luh0*Fl0Xu+7@Q@bIsgc+5wg86L=N0zbvj-gjjq4CPEQro0 z{)JeL=m4cLl0?N5xHv5+@9Q*@8m5 zjfWz*?bPs;UiZnQ8)Gr;)HiRI+B4|4@e8T;=rl|EiO6kRh+-BK`hFrQw;Q!&M!4

y3sIO5_Ur`2#Lz1*t5_;7YOFiIke9{2Kz0}(wOphOe8 z_M5Rr9cX6}qL~4t<#v$5E>Pr!+|fjV4@23R0Z=g_nenfz@L)$2zv*@e9V*t1nNB?N z`+a{pmBzK9BD|?8|WX*qM61rl81?P z@ZbqOkea47(dYEZB_p;{yYzj2xQQ!#7Ci)Ww2%fmXMo|%3q79* z5)n7iOBx0&vUNbwfdbDGZg-?)Mli^V=3NO2O0z2t3l^9ldE$p+G6`YT1nz=~ z1i6TB{uo8_ixL?}h7y+t+YW@fA;b8Q=!Llwl9BK}GBmdH00669jsT>a@98sa7sL)o2l^;At;`q=&7{P!{(#;E#8xOUwOzxdE z;#3T~mjO->1HrjM9S1<-hbv6b&>R3^0Ks z=Hm2p*o@?Hk8(w!JuyHkI58wLS>aaGNES83%}r1DuUZG&5r4V5A;IzAW%?M|iLh9_&9JM&;)z z(glRfq6F|2?1!Oz11KSf&_J39iJB0H{|q#S51X8$py>2l5vGK*ZUD%8medU%HiS4c z0)P;haGP21xH|~-HB@04J#aft0SDBL1iy<6S4aIZ#e;7UTVUHrf3?{^Vh-nlv*E!5 zp{8WvrgGQtoUVWx-PBk81W4xzi>gAkYqPb^TEPz7Ql)H_IY z46I5U|v zmL8X~g*=xd)m)O6>l`2bVKnmMj^u)_hjOUqZCQ^vT}Bm#(GT*^8h@_*06RPvdsinx zQu|CJ`%Co6>56QFj-|L`uP#Y9<7nxZ#_MLLdEXlmKHQrPR>t{HqNS~GtSO9p!pi3q z{V%CKlRx)U^LPvF#!|XmNbO9Q8UI(m+ncR@HC5$$DSfbTcuZ2oPx0YlK!?t+><98E z9`lSuaRZ^$0(qv<60a8{;-8DCdJLPI7P92(zT1KmMf1BY3kd1z4pMe+pSP=*z%wO{ z6Q1X~meku-MU;z)Z1ylh-5Gn6Gaat+bWh|P9sW$~{ZRczWiP;JJEqtxMQ!? zfc|i;9<7fzj1YRT`1*U`eY9!+-u>mkOINc9P-&naqK5+Aue zSm$4>{M~1B(cK$Sm#fH=eo~dirOt z5K{hmm?Pou){bKR#+TuTH{Uv;H;Qkpdc?daN%hW>iT@n_ZY3%ad7~?&ojlOr-WaE% zai*z}T=Kb%|EUOge6TOtdw5Axup$SI@hPV&on% ziroGX54nD;^Tz?!7u#@v+M|p=nSIa+z8xMBE>;zVM|9BD zS{jn+(`A!Adxn*&bRSXpWH7ClEkhyEZg`vbIJH{Z8*_Pwzm3{IJe;;w66tR-Jwznc zrr=6>;>moo6s!84CIr0Xy(wmDh#z$|=Y3>z_g6{(-K^U5b{B|Xf1kFE%uy;R)=nh3 zbVMtx_IBYFpVT9kk(E@)gDNS0NMh57t50p_*I0h|N4Sn*d}+q4_j~E4(y@7euZ)#| zyT5!=S}CJynRyHtM#Q#Q>93govG4|-694Zf$Iv#akNOB?PIyb zXWctW@9c%ksuKkbr=oAz@+b_oRo8b`TYre-q8q9h$xBUV%Dz{VAC;BR3YyuH8G8r4 zc6utAZc!fosP)LZI=+GNIdC{j+x0b070qVxD7+20(yg~pK$~1pf*n)b)@n3=MJM{b z2CIEqQ`MmJvO1ELm-+1UB1*Vg5*bKtgiqj#}f;i)!S zf$~v?`kacbx7=e%+8dyAog8DeBWZ+T!t`ukIPeyA_ILd@Jn66!4`w zvGe2Kwt=&04I*i#M#dFCpPQZxDDB%y+vJ7nt4dZ2ap{>PG$2YGCiDaDH}Vmb5cos3VeEAKhocy@|E6X?C8s#PM4V8 zFE5qaHi6F0)Z725^a^Bso=*2o|G1&*(am=B3Gbd4$p7MwP89=*By}$UUp0MY^~kvu*lXIhDvWs$JM$2CbfxOgW~N#ckoKF z4^!msA6=vC{)xv2eUY7O+PIJV*GWZ<$R=G51jaq<2CB!ZELk0rii;^xQ4_Ye*2FsQ z9a=<-wqHP}_`wXd*6wa=Xco{59f8SMa=(G+^Em4s&O`2B&#?>ry{8%iZba06VnBM6 z<9@bl0MzFdn#DcioKqi|;CP8%jWmpr!vw8(*jS#tTzfr0RUj0w z6N@7LwhRCxRbMRjaJ?Ds_qZ0QwjiG)`*%c74()i@_P4FNi!)=wLY)h`>5h|@|M}uu zKA8EXinLfrU#ewC+fru(^9Q~KClt_crJGYM=Ol_;64u$Y!YP?zA&nyX?D4cooUn2N zWTxUe#H$GO0GR9F#|Eo>+2)i-bvLnCtu7KXi-nBUWdCk5|FWXe#J6;A2UIjzh6lVj zA-STH{T^o8pg0ZS?rUS0 zELuLz{Xn73Oe-;Y1<47WU|Tx};$2@fO|bWs&av-|cfhCKQccQei)dty@l*bcwS4sLeGvhl_`;g35IgHuWVwRETv)YcvO@Re>ozgv4^25nv zn+KWhNEhH_^78pID-pp*Da54a3*;AQx}px^4Rz1y=j)YvO@@{L*%waiNyBZO_gt*o zbu5Joz(*;{02^XOe9rakd6Izt7(hevEB@&0^3pu z!|2HDJ>HDVz`TbBN@A0DoKlvq4LHX6^aT)WU$`cZM$EU1Gqq~f1sFJJ)bBj9x4dsO z$aLFkWBd7T@OQviftq&mJ)>zszNNBG6#yoiu2qQ&e!D(ciBWG+CTo6&W91&R#mVnG zz2uMN-E57*Eu{&^5Rf&;NVd_`kUqoCbMcT?M{-4kQuA+4{zyJkGn>wBb$)6-Eo)w< zk)M}~(G<TyRTFbf1aQJ-9Z+2%Y_K6AhQ=0B3Lvv@T+)vvHU9>kUP1bkJ zCD5a~XBV1MA?Xt(9$Gd|W$Law8?GB00$Dt%Md(a& zyGoNeSdf`Jb$_IG{8(00=H(j#b}@Q;4+cm2~o z`iFl^8E2>YRN}?T=3SDMf&K7`ILVL1(r*kHw0c)@YZH!BeyE=AVY0~*KFdN85yYwy zbnr1`<1ShnibnaL_mB!yQFS3p3IjeG*GEOB~BjwvtOrv!z+H z-L|vGN}uEl2Cv91wQPg=AH`VWtruKIOZ`qjb4@J^OrGjmla40{u3)JRCoG? zC@V7B+0ZL1wlDi`RaWA&lTTgtF}&;wS%yt>G7K&&Eh*E=FDv`B^Q5M%yiafxQ&#b< z%q^g_azl`1wXEt?koTyp8oXP9D8(`DR_+LJvy|8B)8a(R>!Mj|S=Z}ycQ>Vk8Z3px zOocwV?YcM$eGU?;3EFK4FK^TpYDz1w3!zTb5^8oUZ{~My@x0k>sdaAE-)&WY)n>EX z*7d5r**T_CsQt9O=~}3jVz2IfdFPH`7k@>ih;a8%S+`x6Cz@Rf3`-|PTt}o`C+P&IueYiy^gE3zODy-x?JB>S34XU^ zX$#u#*RK4Yv_F)!KU;8bil=|Bwz43+a!UW+LUYN2uIpk!#SgH{Qs4g4k@K?b&SJYO z{&X8(<+`#{!As}1db+oK;jqTKvtr}=lXXX4bNZv5>6FpvLGBpZO~eiT{^M4>$aY%Q z_Ir_?lB%65k=;*KyX_)-eN}tWB7R*WXbRE|dy&m+hlBUvhgWVMlluoYTWN_RXg8Dn zE|sG(kw4Pae-uTJ)vJ$nMNh^=Ja$IzJtpRN5&i2^{WnPTEWG+GUi3Vz`ux4dSV~tG?>1G0}hDsxNhwMY-mXfK|HF>YHm(04eT2r%JbQM4V#8cX7m`V!#JD z;6pKx1`hN@jKo+BghnGTD8r~l^HzZmGwzUT2ugxL0Pb@TIVs=6$3$Rw3b*C*)qE=$=*Mo~Ptl^uaS#!mF~v>wTS9A%PIBdYvEc zgBJH~mh!EaCxp>o!y14gy6ZUs6MH<)~RG^u4Lrn$5LPHcvfk3TWNCxA(XCY zAb_FW6<@-tM&qjchO2vHYQE*xwAR&r`dK>{Qum{%u5Gezgdl|W)OXI+PY}Z9x~8^} z=H2Gzmj346#Fif)TE3RG^d7eSTyLAlw6A^s(lh#HXt1Mqq2pUc=hvyuuL<3U1SFKu zGk@q^>FFCh>f7ob{JK4~_I~(R%kcEb$jJQ2?CHpU_vlRN*v|OaboIpM(8M=Fz`QfH zUOD}{dwOYldTwEQk&rGA&n&FX;P+;>M`oA5&n{HXUCqrc{F^(*|5)Cb|9L$BYhq!I z5Gda)UM?^F++W(>T;5*BFHf!PEUx_AUfJwjJ>6g3U0qxM{qx{Ia_IW?#rny@#@_nI z&aaK%#~Z&Fw|;GI?;P#?+S}V--9IK&%~$)EV+a4156*u5`u(4<`H*luS^IN&{O9ES z&)>b1%j1)ai<8UKi+^jEH~-TW&D|c>z~yzK|Bow5b4NQzv!;p|HTC1j0`-~9BHhv?Tz8Q8!zlH zVRJhp0+g6YzN^^rUstr*d%9HU@}ygJEov90mq+!qfH!*g`%};Ps>+rJZi}DMlu)x{ zpiewo6#V&zE~Tp#+rAL=RpMSc#VLnpc&YV0Zwse?4jM}|k6h>mZfEaVb9ySZ+JHl) z^lG$d6vlB{xAcT*ZJ<6d&w?naW13aENA(T`F$x(<^YnW7&kH)hPd(I%AKFrq6Mo{> zk`iSNd#PnddKvJ^dg|u}hL?|@#Xjtpk&ect&K5CY^&~|>L;66O#VJ34Xxu|;W)Jx3sZ#P~V0zEmeHzcN}Ywc1q4MHe|f8wT} zCc<4&}#!c6s(jeeu)J67Iyj)PEun?~ts; z-(!#zH8R5Fdi)NURsa!kFcT1E_cvScjO_OnJ% z5vkG0wf-5Fb2+Y6VLbcR8JsU3I~m7Yt9he5Bwkd{Gbr}QXvOzI(YRbJRSH=M#e4V; zvopW;XXPP|qLh%~_3}R1a_Q7ophV@g(Os8^Q_RY-WA&>xn$=g#%F*1JddN3~Vz- zL=w{z`0%<+C29k|UZGF82);dQN>4Er<_Ah)2x0Cx3qUV@5-JDqzKnh9uwR<&ILeCK zmQ#j-Uf$$XT!nen_|^irc0?KKx?;qa-59?Tze0mqqn;h<4jn-RgEPdb8T=6FIjUgt4ygnQ zf3fVB_P^ve5-m%^r`ZecNob8_g-a*ajM{M(G8ay-Xjcj77B#*U*!)=}o7|89qWyXI zR}sIc{%;`@{3`t^S%L6_i5u1xUUkJzj}UruNj((tv?91oheIb!*Y6-&`=0nCoiaXN zj&Cmum~sbYACxIasv9UNn?oQr^lZ$D$3?I>2)#kpBzseRv6w}vc4h}i&_D@HrFK^} z=5xYo;*=I=8&)qud%8e2s!%gkA0x>6C@Q*;LMgJ$;G_0Tnb}F1$*7Y-IS$Bj*d=g5 z=4=XHg}!Azsc_IKH@kB&QPe!+vqASwE?(*T|0tZB=~USK{G+uDY`!(Hp5h|y$e*15 z`PL^`t|PhTp!lKR;C<1v()8CA_JyFi*QY7G$#E189K-}y^t2wUQ|V+pY&O;BRfk)z z(9(UB@IPG9`TrEo&2gj(h~eaKtbZE^bgDcx=n`H}`!tOcT+xq@7I(}Du4w9kt6@w0 zxMF>!o~M>#7t4HSMIoQfy+{7vciB6UDXn`mbZ2bnLgfdk2t$4YmUu~e)xen#;(<*?*h&8e&8<3_;HdS z{CrR^zBc9K|1O;M+ACAO*Tj3m^kK;-BGw+8R3aMw945MTS>H!Cq+8Da3C(@TamDL(bTMK+5aH4HeRFXCoT9?Ls)Na)h-Y?`Yyh{=q|w(eV)}^{aPKC zBD}%3EHY8!*CRg}ocx-GhcEQ3@6K&&a<#j}kg+o`H(lZuY$mI-acl^doA^^9#wa;z zLxm+IF~($}XdLSU=DhkHX_X^OJ7%dNMm1XTeDmVRleyQ`>3fdzGZ({Y1HWX`_MwXK z?(sCThKIt5G0%pZ9d;e0K5Z_h_{% z_cwA^0%YxfKed%7_(h&isjk%Owu{dlu#PT4q5k?j2T+~O=X{JeUm8FEqx4K{kzd1h zey)D%=3!N5z9jlp=80zf&j5A!y7Vvi;n%vyxtIl(H>U!lhCx!!-9B4t3C-H_mPbz> zuP2ICowvJ-oK!sttd&^q=d2w&PVidXwfNXPlF)FRw|i^H;rsc-TaJ}~X>BXY{r(FU zLC1QJ?Qs3=ZyUb0`xg9N-27J5Op)7e+IY+IXG8>YmE?+n-<|~c|b#WXNDYJK&(i~pbWK&+8RNbL3ud!m!ibacZT| z@?kSvBd?Rw4G<)(n;UnqnY=Lb$^Oia^H0=T(N&{Ykj#X;Y_LnHm}{?k;E#05{5-eA zl6RNB0snkG1&L6f@1QD;MW{Ygk70uP?4jGz4mCJOPSRjnSP(tjixC^}G$h#lRmj~& zD=&>;0qfvTYaz#cZ^U8V0*x=F{iNW2R`}0o(r;*+Q?xpL=^_e6%#N~WVe6@3^`Dgu8pDmS;rX}1gEzxV z{~9^MBH}b6Uc8F1#73yWJfs|agED+k1LzR4uu!bBdt{i$jbEf@Z@A4s{y=SXc)Ays=T}I@mnTiE5K-3`KH%>X;E3 zom1pfJ{z9v=W>TRAisk&nUSi(*fac;Y*{Su!{?Y*GM6%VWV@TsB8vUlQkuzkW;PBW48p^(K`X8joH73dlU({E>coQ<8>;9+>W9QEF zmErucJgLR^2sbYmEia@go!?+q+wsSmTWg#k=P(rG28ze=oNj&*;K$WHFQ zeU^B07IA0rY5OdulJH$aX3{6)qz=ENaI$2rhNN3Jb4kh$$q%*@C0S6uTSoo^$sab7 zlQomMwNeBfQ+`Gy-sC67{Y}zl;d1((AcReR1W(-!O;+4WxmF5W^hwq)O}*|+)!0h? zM;ppDi~5#M4=UAF(Mn6bn|u?IHbomcmPWU01!_Xl|Iu_?WKIFlrF%97c+aKCMg@j4 zCJgzxmwa+M{7V*qfqb+lFL8KlYnm}(o%T92V>*p4w$xGZY2Zj2WjHut{%>Y#dS=!+ zdrnjaS0>$*4}Gj7v{o}P+y^zB=C+F`iEYZNjEetz8k5VCeT@qIlmS`A(sg!_2B7GA z9bDWHWYZfYi)1;SQEwvrQ~RO<%S+OG%E2&z9$#KMN=N? zcNQ^43QQ|s&nBPDDaW)lU)=G7MP?q7tbp6h(`YUq*qqES$Y)sk-ba9g_J>L6TtUh2 zg6OlnA&Ejic)oPjEx2sK?JQ)Yv54Sy;X_s?r8jA^GVkUb$iF*61M=b?`(`eu7d@#h z>Xpem9Z#RbQ&IW3gfmg(=Q;KHxb@hB5>Dfdql?jlDYxDPgTJMBlNCRErZovaqv~`l4do zqtb@FYMi@jMv!lVHEJ%p>O{JHO}oH^th!2|TH3^Aj5I%Fj-I#1Q!_D$3SM#A%&_yu zI7td~`J#W!6&hOI&2l)5IDa+@5*Zn{&A4wooms-|@T5i**`z zZZ>=N@|uz67l8sbG#WK-9c$9r-E3NGoBJD95?&y z^{7skmWmh^=+HrGi6TkElK><>wfz0Gs_y!upLCyzN>{tYYN+hPYy>)0*12fh9ac;g6!^ZvO&!Xt@+kFcbjCbGq0^cCS1j$T$rhqrmSz+ ztJ3y2zgq>kKfhaPx-9lMXTx0#*E6x?Ejq~o%nL|_nUtbGa19Gn?nOfOIv~wePbE6p zOgpVQ^Z%GN3>9=fEoHcFslOfDsmId=9O;aB)5&MfDkz*Ue8mWl?%)*u6xfnFBG>(9 zu)UGKTdKKR-n{!UMHf7~8!6BuIr2pv*rPDieNVVRZG@jrIDPq*UjHJ-d3Pq3iL-f=nn7(k|B$Uu)$MbEn=-gbq&f;x13&c^^B zWT*MUvIJ@%`4|fP&1JmakXtD3BTl=|w6iBUl~NrAc0k3*(6G|;yYDa>`Od})BvO_* ze~iL8oa4z$58EhW+ONlL>^z`Jt?kNky#%b87tuD64ousGpcfnnqk`~!iiteBKAJi_ zj)Ja_0)qe_igqzO0pkcc`b zkMbH%F~~)MN7C=(`vkeEobx~8Fa zA_SW^Vqib6k$oEb1@o`gCDbu#bo+VGz7FIP9O^y1+wr)~R&>BX`1(Rv{*@F{9PyOdq*O9P>!^ttf3fD6Y96k~Bm)7`i|V zRTZ8ZO#^;K1GX9m3-42eaX~(HP*~BBP9ngz_`ZES1doKOwb_`_P4CmpFLRAr+f5&g zQy+occif_aV<9GfJ-0f-4ZSRmemh^ z0!fblc!`&;y2P0tGtKaHzcLaa4%Ku!-A zs&i&8Iv|U=bPcYH`}mpNj!~t>pF?pKN*qf%|5mL})?upiwf9EDkPu8BIl)3!#(?#a z6xQP)9jj%vr`^*RT^C3&w1dPENpc@RW=fc+$fK+xsM7$l4JFjfILW$G7Zs3JT&Dtkz^&*2}zNKpv<8rC9L~1ivhoi0R?cB z8hBz6F@jhOgmsWzAR!BYeeK-&Pw~6>yxrCt%e5~-)Sb5>avXbOiwg@b)BSCG#*07I zI3P#JpNbFnzg1FqT1<~xFfDhiFQ!hBCp{5=a=aR}fAbjfoooK$aM=_NSmo3h}Qe^DZ+^`%qQ)nSI>oe%{YMj=jxs zYTT29vUiY4Jhcagm=*v&z!THlAWqZuKwuQHoQ1jbas-T`&?s?}j0;SVZ={i6Fy<^a z?=LA0I2Zqy1y6JvN6bM(^a((7T?O}}d6m>IW!y;PVGWF@7J-@@WCwSqkdd+}?_~uO zCn-8j6g2!vdwg39xnE#mD;BPFjUC zRL#@NdhW_6`!0X$a^>CcJBn1685DiS+=<~Y?2|ChV4&@4^djmc34f$Pg~e}tJ+Nr? zKly)LQTpn-SKl)~_MNh>#XT^sw(Gu#=YkcWQPkp4GnDo8;0p-QT6TZZqqBRLnibI0 za#Mf@Fe5Iy;ILJz-na;Jnnp6?E}p(v_IqNU=_CG{w)hTD=T{@eUJl}4)x3gITEut7 z+TNYmFD_1IO~fhhIjOCasy-|_!YH0 zzutX^oe(Lls3Nb|SAvH9$*C<$Jb{DAbi zB8I&vSENdP3jH4}g>Ii{eRz8^ld+<*&P|^aECY^dm+Dlm7fw5C->?OUTGW@P2wVC- zj(hNJki&Ox&-*7Szq~&&hmldfU6$nc0I#u!^`>e}0#l}&9d8)9(O-M?P}}!D3Y$^A zO0|~-au^{@iEl+Vs)C?pV*p}R5vyiERol{$x#pE!`eVOhFY|q!?#JveaSUU1qd~V` zw^}rvR}Q*=;jlNjRBIcY3h3@smiO3i^SJv2qt?!I^pxYUBY4R4I_7xn^6$-!QQ(2m zy;V+|$D2efHCC@phf%w+J_Hmh&$RCOw_l%%&;nctkRcjz12mgL6$e&2lU@A)@nS-> zV87mu?y|Kxc+%-E?z^TOE#0sBUJ`Qeu`WyU?e4v4xOQ9=-;b8}3rr;sSPq1&4_b_` z)cJ#fvmFdVdH|5qOPLWOy_n}eZASUM>c$uOjMKGZ_m*%GZ}E~E84-`kaxDXM&AS&U z7yrwomy{8(K|k@Zr#@ycOwXhh-kC<*>Mo2Rw-9PV8^1g)itO&WmNFBq#-c=JZ70jH zeM-{faW*tSP%2m%s+X8BB0OoDOfdU{$52QT-*`S~kd9*6%?<@=(%t;)ldr_LVB$K>v>7s_uS z+C)`o(KmbRl}Q)pE(T_`prp3+uQs8QZG(XeRzzc;ml;rjBF&mpA`=E=O`0Qsr&vId zfEAHp3Ia4OMy(psi#*l>-@Pb~alkygRe)EOU}u3CZ-wMk!B-VF)jqcG3w7`w0!!G!p`}5%fNWfZ##))F=AHbU=raxBC(Y` z9?<<}b!%!X3N=6pyQtWtVpe^$h@m6rs|)>`qSE?kW}JYos1~R98(SpZE8BKIilK z_0Ne9*?xr=tre&-E2|rtSv;|MyK|V;PO&&qAiw_ANP|PKZ9cFWY%*%x-E!yD zZtuS!fNKo6!L7~IF5hKo1N@HOllT^Gof;+l^x4#l&c$*?&}T0nvl{VR*2&LWj&F%y z4tQy4R(-C`nT(7TS5cmo3H0ytwxkfgWXU!vEcfS18pr4Vdi%9zxI z3mDdxSR;Wn_HTg^$af)zN(Q+ze}cP`_ym}DO};O-6T;P=riSi2sP^Zi&-`(?#B?w7 zo^M;rZs8ZaboLwY=)we@RcW^3+xrs6TtGICuW)F5XN1S$EHX;FaHf~XAgvw)&L+9(`(Oe29K&2aR$9Om7+bQ z>$0}KgWT&(lVLo5YF#yw#c8)Zd`Uj6H)$GwQRM^d_wO0W6fXj&eUauz&H>H0gQLuN zfH{l9$bI4Hhne3uEj7Kz486H}IMAu00zm?gT&@YGENusT?VS46?L&(p=dB304+a;R zwLd!D`TV2fjhLx=*%h@~y3-%?nQefo-b;HoFaM2e_~$gF23kgKoh({2{#MPLn;EHZ&koK%HG&G_2l=4l9MqNXx>e<^r!WL=i-U}sG0h2#JX@(y%EH(J3 z58he(#&7$yIPwpx?J4uyq9eZggXF=}Q~UGKuEB3dUsHS>?p!tfsr7#EXGQY5unJ{w z@`d}P2B`kUSJu351?iLF*|2q`pGoL8ZB1tLUX6ikj{chO>DnB_Y9M4yCbqVd7ivp$ zy)Z6<&uUAZvr;>q`lqXu?kidInW|qt_k7vxF!`xL1L%cJ;hxRz_2=syu*^wgG_mY9?d#hb%Wn5P#S+l z#N`yw)IFF#yBF{{Xgp5m6`Z4m?cjTPb#u@2yrBydlAVGhggRZ5pFA`XMfdmF%nHeG z->{eq>v`-8SlTlymp{3wdvVKy;{#BM)pwZU0a!ZFxoyvfuG6&p`^0{2IH-heFB97A zmh*1DM!`+%Ua}-#qCPl+KcKXrcH#v#LbvnHkh>@iSO!lw2Dn=%BoNc*Q8+d=e*JtH zJuFP$2oVLaibiL#>Wk-Jint2o!`4$++mIGb*!*;Q8C{EhHEQ|zL2Zw2%%HPp2$)Nnqg6;SY_>3n3mE&({WKn|oj7I0cq%lP zaOF)B2Q#*d-4&O-I;MIuW|bv|Ko&^~j`v!=AUh2-gaep;@$b_Cbjx~zESbt~nT5#^ zVT_z`JLJ|bVRnyjsU70j2Xa(`Uf(6?f9}P<68@P$;pEks3e&|)bbjiW^Tn{L9mJ3^ z@N6!kuM!Q762AOGdBr#YS$(}B+0+KF<3cq{q-!tYX&)U!sLj8=_U>~b8DP_XtMWq} zjgqkovp%gY0I`dzyba`&0j{am*V-%p$j8xh0hDkcFb?-?eo}>5sG-`#JOp&LA7qA( zreY>}ELdVL_7WB>>`TkG4i3*3G`eUsd014ERW!AhkQEO(8B45a;R+g0sNV&d;}RYp zXZgZJeL8fQL~){c({5NCc8vCYmMNniy;5>)pbZg2NwS9lTyR$#!?ZCtPhoE}qb|~P6svA+cBr6jcD|?VDD|#a|1a#|w zsOSn7#>U8EXn&Sp9^W#ttewJu@>XlbLr!iq#zS;InVgrP7YZqY)*&EBHzZibR0tp} z=qJX60_+O+22uslJ_apGuQWx=^43)PAQ~gu)Eg3qY>#d-X<|p?#M;3~6*IM3#Z|Fr zhF2MMHbBnYXf8ZJR+NTDw9R2Me?=L9J^%@g;h>@xay62|6{ zH0Ef0{!Lo7xmf9H){q2gK+WYd`h{lneB{Qk=t2!`KP%1a+~5)>@)$fn0(2J#KgnHy z1_ETU*^JtJ)QMfA;#xSl742o+cZ_+%Yi>M-2P@rtG=_gqj~4^bEFCa_+oO%=fXrx| zs%*KqWGvftheFCVFdK<+b;CJZO%ZN{MFZ12AwAY|biiHT*|n z1sWlQd#+G(8^n!WP_aMlVYy+0FH_is%uJHxk=DGSIB!U&oVP#!r+BzKdGSR@K_M-j zk`sLFFVACN0hLyu)b6z$e>@NsZ5fYa>oa;mA!1;0HdyOmzBk=Co$zCb3x!^B-IOIH zCW22Q=^=pgcnQb1tm+TQQCW^jxygqEZ1~y4KVF8DZD`i%lST3LR6(|igQCHjO3{qF zI5s8SAnKpm=Wym1IjD6MZOcRR^vIAY0&_%Ac^LhD^0?9ZlM~R zR#QP8Hs_r7c2Nl}UA-&UBOoTN9|63>+L1R@frFPAz#D3-5E=l0n_L^u6L#UJS*Cfy6?ruz+g6|rG>-cpqf-#Q39RfhrEK^go zJO%_MU%U(#wbBUY>Za<_Y!)O?wmljYg0tLZ5Z8z`1Q6t1Y3y>rZrE4}SAs-ejlL|8 zOA4Zxlvu0;r?ex&vUr}!X1O|Ks)n*oKTcI)#L7ozYT~(yV=f0LCIrP3bC8Lua3m~< zweA3#o|`+80FQJ9y>D+N1e0l|{`u~F1BcsC}~3@Erv>*fl)Mq03(1IW1&4Clc8jCh&$=qn_e zoRR%BE~1(%NRC2lfPuJ;xfLfq2$~_*V&LRB__H{;HyKZXS6 z=GMeNh~#n)Rr2;mCInIFB3+XMU7_JPuHe$N@Q|-BT%mg?_=}LQn&~^Y{={V`5Vc;$ z`p(5%zz{6w2=W-96E#1)3yL1`Aha0_<5<<_a9Ug-Yf_vVHr8;AMs5uB2upi^hQa6#uXBMDAt14_XtObb#4aK2fT)E7H|0sY?Gm&PV)o+_0^{TMins#b zeN{Aci0s=78uNbFLkv`6^Zy;!@H;MCi8)X-F`R2}1exe_9LMNJ+~DvJw1Sq6&}RU? zeN*t@cuDl9&F4zhS zj^u*6*)%I&Ajnh#<1<>c;HMNb8{P0 z==NtFLSrSTY{)=TovaxM|%y+%lvKe zsKzHp_9uGy+Ypw=ZP!pqFd;;lRpWcE68yvOgWPH?Z>k~dh*MT!?iUp^_&vu&*IkT! z#b_Ou?d-2#SC>A=xj(n2`@J2P8H{HQdQR<K!<;xeW=?Ox+87>KAFfvmKQa9+H!k zmcYw-TrV7w)Ei=Ib-a8pq_^#X2P8B%Ei|t12C@cRsL} zJzqadm!4QVg@t|mo>_cS8|)-cY-MFmuGdUxoINc&KdHE!Y?ImAe8a)THx5f7_TPAe zRf_1-e;3FX5zZA3Xr`_`NU9G0lZ!cRzpRHnkK>hzwpk}|`r7rihj&Y#eOrHgz)>z>ejB=1~Z~4;8uK z6P2qU+18u9rs>}j8|gxd+A_*Zhmzx(*C_(sTw-s^EUUfH1k?Q)+r1V`-< zqjp7Hx9&ijXX6&%o1Q#<{8r6w^z!LjaJ=U~2#bX40cs!y!5n3mBa^Qf_~lYt=H;}~ z?pSU`|NY(n-4$)#>P-Gu7&_s4L!>`MhM_iDq|ZX;VnmnkE9;j+b7XBIi==Iq(0s_d zo+nekC6~vmFS~HZh^Ck7C0jiA|FZXs+7(4vGT!@?QEQU&UP9gf_jJl&ibe{xE2?;9 zKEWt2-~K42cDWDH;5fXl*oDYpFz-l<44jAm3kq|n`8S5nZs}F z*Wdad;aqmp%}Q={^3v6Zjb5*Q?o`wVdkEioDf4Z8fJlt`8|L3nJ&im1>vr0KStBPf z9eITbJ=~*qMR#1)v++q?E;rgNzsd`U~W!Ccv3^~({ zvjgtoc+Ol!a{8~GCy>(|4VAaei%ge93~empFBNb`)s$%RaZdvOIr(13|--$L38GMzl}ci4c_o}E!K)?iPh`;;ZE&}9@LhlmOz8E zl3HJB+;6B^h&#`(x0~q{*=;guxQKCwU%lsw`>Ne_HPEMVj9H*0g3$Eni3;Qj*`R7G zqgeb*q}V8qM&+9Os$3q^?Csv2XXQM~nFQvN-ReMXtIWtYU;CZTHLVV^Dpun`ad)bQ z>zgNS9%|9bjTwILO_6UO(KY4|`B`|DzK@1FSd z-uYvY;^?ioRoYuMJI`0wqw=}o#XCQZCyVMTUz}^E6-_Uf{yW|m&T|M~e15~T;$`9y zquLJ(xQ|knkXe-CuFzT0-@!@!)Vtra1a7Dw3EkF=41U4$Uj5IzoiAGlRwK{q9B*9x z<9fI~**kaiBJ%v;_jOm~7QH}5s8h^UiSN<&$Ab(#b5ITnS|S>JklJ>}8kx6cKJLu*1Si&$2rU+t~oUWOR?b-wB>s(~EfZyMv|Jo^sQun}U5IG_WceIL}17=&@i zza~QlIL$948NRtIC|qL2(cS+kEai^?+&P^PxJ)5HzejV{?#BIV7$RLe)V~<>F_u@& zPb9bn%zX|Jy+9m_X4>_?E;Hq-rTt2d^SVqH@+}swjTE|_fu|Gj&zrOde*tyO6{{bw z$H|zbGfmOQar&oElW$w*x{k$i5xJV9B#F{<;#se6a*eYu-mvBp!e2!v#M%hYc{+rE zId-WtB0!dl1~$B;olc;!-QbDoqY)S+^FGdWh=;n_`txTaFbvPT9TOk7* zEu+4eq;QJpz_?WgZ$se_j>2IJ@kZTzOL-d0-}jiZZ6!HpV8c-D{`v8)itMX=ZVLNO z=P_o?LZsgmFduPOzqUD1Qi4o$21`e9!4`-R=S!xv7!>j(jwEkn_)hea@s`=);b?#VD zi{-=mBg#noxb|%9W3Ygc&1p|{Jd+@2z$=x2Njna!AhU$;19be%2o^wk>c74Lx&!Ns z9kI{SBEma;9CEc+f}UHt-7+|ZEWXV`OQf%cpL88W|jN~TNdZD1zPBeM7hUFeN&;yKqH#}aTaG$sKCW~KuBIRtg}fv@kX`GG z$8r6v-o7(&168)U`X2D_F z#P~aTQOZ+y|M`d8=&;q~4y)X2{Auv5Ye(Z;dCtW<4Mh-66uzk3ZsjEsDSQ&RZy~>! z|1V?ND|yeX_hgSHO$jga&`9?ZzfgpJE`CfpU9{? zPgURj)W~@8x%*pGuitI?rPf~7o&%k0e|)G(roo?)-&6I&HU*?Z1@)tTWS1fcW^h;9j z-&MihKMUVPknbJNzFOaidM|xm)Kq-*v-jM0BklZ*_3NqVjwaxD@sCzV00*l4xOndZ znI@X{M3M~3pA`<}_f<#Ha$BEWaHOtbzqwls3BnrqlA&?rU=(#(IvJ!uhKHdLm1IaG ziq48m*Ru|yrbVUxlNJS1)1nYE<5$%AFEZ1H021=yFM}X+Pcbw9dC7@L2}`~Jt3t`K zx*%InF`Jpw?^`A8RstLkoDRJNIThaDl_9LJyyqMs8^xD^vr7;~AGn;!+(js!$`3pb zuv~3|$J2tmj9~6c2l$5Iuh%8KCr`arD*QTa$h|9UMehpm(4$4vu}e>fnBH15qvmg`>M(yBWTf0=M%Z+*-1MEW*~fCTulLX+cSq=B zM9JwGMiFz43UhuDi%S(2QX-ZL6_y$zH?LRRG!waHRdLHf#OgtXmAA;PuxJta0SWST zv9`3Ptcu%3BDR$kwv8foZ54JsBK9K{_A?@P7Ax+&6LI)h;qX<&@wbSBw~h)q&akNb z&&r?%h1aRpQTG2?K1Qf{MQivcXa$FBdlR$+baZs71d^y1`ak$FDntK&3a^I2fkvKG z0!j6cQ6>+m_|ePMCD-gf{*j6wA6W#YSVU9(qras`jAdA|WfYY_{xAP{D?ZLPBHcFT ziEYY%31qOH|Nl~u4(TOMX`#-6RR5TDH-XxJy?5^(RYCr50-5$8F2*JDe^hIa z|0>7|&pa`&Ix2+B@JjmM5K_|bDHTFK@z10}$l8Zb{uhJ{Aa@4U{+|%?|5T7v|47Zj zQvG96czi~9YFT(eLwHGNcpcS3Hb+#nL{vvb;R~W3Q$^(ebYUz0>mo~I3jbS&jU8N-$-Xu%rZtU}HNAM!-1DsY`F8Wl{Iki3 zmQ6y-oBz7VthVXa=P#%_vb=qmN+YQ*^81VJl7l8GnW_1W zskc-k`DuFdzdEvE{>$q8e~e_!tE0hJZ#Q1O|BsGbeEWLw&GORP#_|T$MeeWc9d5A`)48>+wYM9q>)TWg`SQc(Pa8X%o7-PDKc8=&{nz^S2-Ohj&kR zK7IM|`PHkJPcKV3)MxDh4{-5%Z_38hge3a%&6^tkT z{r{1V8v?oMTs2LIE1Lg@e0-TPAX^d0E`F1w7HUz^`dPf)V_|0cG|2l+9|81Ky+VQg z3i{visb^=$f8?Xfea4%6*w>n#np)B2spPAAEwkrRa;NaemvsV|no`2M4vs7fmmS`p z7-nrn=2_;<^it&`x+&|1;(O%sw6f~$99zxudy2zB7*cdRsvM^M-tRhi0m6b=$I^;j zhv7kDE*M~Jy!NpyJn`}dDkdHiAUc#Fjd(fYX^HVG_E&^2Td4nu_-$dPS!+eakDf;;-sRGY5qN5!ZYZS|kTG7`fR-~9)3tv&A*_a; z9~VZKKb&M`5*ppa{)^aP)GX$D=B{prI3K^S{%DI~U?r&tewF1O{{olibyLzx+hLzOpnFDSpLj zEb<}ZhoL;#H{;ne6U8sZxTY9TbEETKy>aH=?!d>uPTji_`5)Wz9(JzeEsY3!Ww9iq z0@b3y?AHNJGjiXSW$BUD2X>{rwQI%$%;rOxHp zt_+t{)tOGCS6%f#M#af6!h}G>%t@#cx$B|7#7i4vzNWK)1p|4lrz|NlDY$nxzNW-{ zIsDeAc(kI}esIx5;(g)ZMC;$N(lpXkNRqMo8Rcf0Y|r}`sX}F;?-PCTxs(Ky-k2dm z-a3F~>dI3vXj=H&)2ngFShS^qSXx_iw!j(}Foo~w?vRY!ON46qAnYl6NYcBh=yGnN zL5(dz(;1(1{nZqo&F%>I581k$Ul%zBmU*Q*zr$hqV%+FSsFd?d7&)?3pxB01>LYU( z_o|G%gkX_uXMgg|xw*Sj$9hKR_sp+dj-0d_wx#_&b4}r^mka%Kv~Cx_Y|IKu3+dGd zWJ5a9{)TJAD%yuH)*@+zyXca_C<8R3D3~bBnLf;wz#eUmxPqcV_^Ay_ZVWbAmhADq zJs4GlWF*F5FSWWO#X@NS)$POXa5eAkKX>MRk}ui=d1 z8su7?A7)bj$aJ?{hkOl>Z&`)wT#^eD_4fPj~0ci*{& zoIFb-Ds9z@%5_G<#!C}&lcp-H+Zxy9(gxkrgpVmiSN$uibE|_b6}116kE@HFzgsCH za5p=TmDO`OhG##86AXJoSu>MkF3r|aPpn^%GWrP5+e{lDmCxJGs~r7r`FNeP_2+WF z|Hbgs&=AEo>fQB_QR8<%@{hW9O`nD>6*%lRbMPm8`AEthW{GwUej%<5)tGj-`g@|N z8LQ`MaOCHBK0s(bH~LRT4Rgq{QeAV#T#ur9rX@1c7?TNL0uG>Ni565PEaV z?DwG7?OGSCPzD3^{-9J3JOZznI>R5+n>E~&8a%bhe|kKMW^5)AO}2!1{)`!zHD{#p zt^r)c*ntfP50pQ@{hzk$Omp`0sck8{yq4Q>qsq-yR!@>Q8O8hvgy&f-5jLggod0rV z7bt#=A$@}r!M~e}j;3}rPXEl}7+c6t(_L*S_p{fyW=$@&`@dCAUJBR9sR}1#>XLvw zv+++gX9^#9l0GoHLcpl7gJkFSeuj>KMWwI2Oa?DbUQ<$A>s?Gemi86|mND{#EBo>h zLrNmSHrh3k%#LQKn~by6PeOqHM9k3u!)2{!&&Kc@NV_-UbwhFDrS+fmf=`1_jsuN& zlhbr5$}LhAjudOMdl3zzM0hzMj|3R@x^{W_0}+_%bkHkb1d*2vR+ z+w17tn-4t!9iLTiEA^huam*q!~!o+i9 zT3ch@F2+2+AJZBeV-fFoGoIBdB*4b?wrzXt#B1uwaO~gjG5Yaw_m*!yP>S*7;&ac9 z^;?cZ{fbMrCeD8FXk8?>Dlpx3C1%GG%c>qa+1$p9#s}!d4_n9FJg*`qiW()u5~gK| z&ISqTHaeLGVTQznJeXR6Ykb;q0ux7KY7T1HSE>lcmtc^1crUTxIqPl?Ydsor4~bC1 z6Z#ht8x4#o@%Wt|QO5wr^Br0sEo>Ix(v6`PBq#L_CUuJ@+}FnsJx?rq8MKTGy4d#FkP^b6JRY*RCo3s8OH`Tk#NhEm+Q+KOnbt~)w&OQdYO=)g9y?vI zxEuOd-7VYYPoh>wrel2YHDznXmF)9$YM3MIQB!E$gH(l@oFFl7`|%ju3a3}_gOUUM zuWBoVO)l9y2R|-AxE-6?!RfU`Hy_6&i%SyMf+*&CA7gzBAQ=T5E>Rc!A799el+6oG zNFS!8iS_6GL!~A|neHJY4=CVlG-SNZQ)pa*RFgl~pYO7pk3%~0*wBl*;{K6fB{He? zNCY>mV49_H;1llfA`iIOR5LqY0+{u?hPO4b4(NA7eYp*Bl zkVJC+WpDC*HlR4)=i4RGZjT#oXJhqCP!sHgPdQvFB6@#vE}y8{hlZ{imU_FCO6Rk4 zx|cb;EDfkBQ*>un7JnSOQ>JO_CuCbFKar)kC!v*JZrM>jHD7LXyA;D+;bWMqjR@7X ztuVsp7^qZSo2andsJM!#EEz|PbF%Xx3hl%z^|dO$C8W>R;IdJ^NgTL)D8eV@5^ru1 z-!QUQKD#54X_COemk?b5c@h`~T|bY{tM5x*_I(gvTZCV&LI+o5eM*f<^hM;tXrQ?I z^(WmF@bEfqpl#8=b=p?Zf-LtMnS`2)DisBZm0yl(Xm_wv*CD72B|-+cZX_ZoF~2b^ zhjLQk(cwC&Q|FdnE#4nB5EMNzQZO3|9U7||ToriKS!yvK^kuaAl517|Z+bg_mevFh zk5yiQum-#IhR0#-UPPt?jQcQ#{!2dRr`krPu!`@4@RfFyrl zO@sMBnQ7ot2p#)=eg)>3GRxcquB%{6dNOQVc~)C~;Y|^bDg_*x#*W) zEoLuTZq%vc@`JF!_9g{3)*dZoE6+6Pngr>pc@3LGj(pyT`04u*B;K?dGqd!=91{hPl@3T^^=kceUi97`Jbl8zn0nJj~zja6@2V(5^gJ3MFejRc^ zC3EPa2JX(%g69{PIz|;zOVAMi&%B{fST{PkN7Z|Nq?*>HYZn@w7S^SX%PTs~{k7U$ zR=_fg0?gu~sE)|t9NBez**hDF0P5j4+rY~x_oCnQX^7~`Q~Ft7=;k`@`;cy(50uXE z8tJ48RUqu?ANpk!U|k6}`55o}@qtnauCOCYC7z`#(f5Gj9eyHk@}gHOz1!_~%Jv)3 zMxHmcK7*SJq4B272;a+I+y6Jm*ch9PLxOt6_}YmB&VKz|UC+ASv?PDd3=AJMEXkA; zZ{|BK*C=eat}R9B58gHJF1t6V*Trg~GDLeiV6twibQc4ow_ZY*aLV(7m2Dckw~_)==2mFs^G* zi#f9Cls@ykwl#UG@^bwsT5C*RjIAh}MbW_1yRTptn?!Y!A`&9e5~CSi!&)y(-&eCN zlW~W8kP?#bRCW|(e@vZz-1PE@c7#;kREPS(_#Cshwt26ZQzvsGi$58^{jr_z6QQM^ zoqIpU*w=kqF^c@s@gMow13g9^=C0?tDU+j}FR;FF&KLFK^}3w5|M@aau2n=#u`c`4 z@Fzb|m+2DMV$?{&9?MWKlhG}aS!O8dyA(Q=CTh|a{_sDYU-;oV( z(o3=hEw(B9F>N6I5=58+C{ORp(zQ{>sAc!|pp3tr?eG;kb!_kaKI<+P(YMZYqDHrS z?#ud}j8IHxcu0oHr7*T(>BM9a&PZb=Ejm96)Rh9wp+-JY3#ayszBu?Q8XAd3uw3^M z6QnvK_^B_$m<+;p4tMda@^c|77}ZtAJ*Zkj?<<4&A%pNm!rIWU{sCUTw&!T2(E1@^ zc4T^Ia%2#vSdcyv zYKNh7LxOLUR<8qxXgo%5G%@+e03RTs_9Rd;3ev_v-$r55qEL(8@E#JFhYS)Sf%Sbs zE$d8fz5pZ=W~vTd@kR8YK*~6%%G|Omh7pg0ydgmhNg!zwy)&8ieFN6N0k-7@k|TlT zPzX0HNRj;PE5mTWU(+x;wnHz#0}KRe26H8?X)>(CF%XU-um}Yt(g)VZ09)7BnE=4Z zzSq8Jx-#DnDmbVH3Brd2zd?d8lITrPAg&^MEgX$l5f<+Yawfx1Ng!qvh!2Hu1OP=z z42ov+T+nAKo@}Q$C=?5MfTpqI2Pd9Wm?ZdjAh@lbJ}M-n;UR&w0Nekl4H=*+$dwts_JZ0Nj`jx1Nu|5yP<(pXDMR9^>wYQlq69$Pa4C7`;+{8v*$yKC?pO#j8RSC(6!h#WV*zg14<-~K3P2;X4n(g1rzxCQ1oh>I zI$|L*QhVi6pzQ;inw~vsrPa0Z<2w$A_-*2`6noFM-QVr)7w|f~KxnRH8 zqQQ3B2ZoZts%U^J8N!4G-Isw;A*8bJRuzd}6$gC7NW)J8#-NxSNuTcb!A>#MCjm19 zKpHq`SrlOZyoiRIyhn!w^58!50zUtH47q>-c76RUcL3-&JJ9gkPtV)e7i3bU08kVl z0{NX83ow*{Ws&GrWB_hxSicld;3-g;1n!xmr9A*>$-qtzXnFd6h+t?Uklzs$U`{?F5+l1P)-_;wg9~}%s8l_%>J`X_ zKv+l!7G^~L!h$=>{E9H509cD5rzD7n<{xe}OauU8p#XR&z-vB7ENGy{95CYB5i1E` z4>*uP1Fup*agPq;9pfXv_TKn#eB%+|Dj7oOd!%&Z7(|BnP(Y~l?@t9z%NRk-=LY~~ z68Og)t%oDvh7XJfa7vLr4P-iFCILInv2K)8EooqHFKFP#{&4ZJ$P@u{BMEMr4}d`$B#(SMjh{?(9KEE} zpR(HvA59CD1HW#qEbQDMD=wHAV6GP>!-RzPm($6#9Yx2{W)-%t_iokSZuQ;{V=ub- zX!)k$FtqKX+Os=n<8PYCy2eNu#!L3gm}wq*770vCwebDnBrGfoDdzME(oIM2gAFCo zQ1@w8r}9)S{@5;by0QV-K+XPiHvL3Rf8q3I<1aCnG< znky73aZ`eT_y|Mrdk%y_id_DNUa$Qoe%d&r9=kSieS0nZhWz;-@T~yz>z^-X^fr^^ znd<$reF^N+UA}`={#z3sMsWK2<`SvDiK0ToGRS8GGQ~U#0|?0&#!&^nNgPPoke;d7 zVPyQLSwztV{b9Dx@=Y&mVNXO=csDOH+;%N{oZWhsocyX%IIvkbMpa^^1^Ux{FYESO z?G#a(Ye6Uggk98Drc7 z9qAv$!k6YLHB%c!TtT@jeAr!P*YZpbmdz#MFEtj@VI5`AbF`AA6F#$OQgWNG@f~U) zr_969A^&sA?z?M$Y_U7`(l4ys3S;6rO4;uzaeH_DbV&JhvFYvchRUzMHM|@Y4Fg5# z&{Mjm=R(}Rx0}ry{_GcUVrJH8Mc1vrz4qkge$8Uk9L}hH^8piC43XE zD)__YR}QhoI>zyGH?sjLQH*CU>>y;md^Je}9UOqY5fLy;wS`7C*&C zDg|F$?R!g94#*kEAOE5rtsv5_5)F?b{*#M)Z`31%)V&c<_4)l$uk)vCBlQb3^gH*O zRN0*|{;Ht+lE$4s=d;7AxFA?8ErN_bjeFkPfO7);&|y74L(i$v$IS(t+3}hEc%JD+ zKZXYJrgrTHzYzQN^`6`sUpHfwAdMJGmy_+otsaUNvQXC)g#^NU{0I0i`MK42GpmG?k29C$!S$Wd{~2=|{w`rqh~T>s+m2fF zdvKeZ2mfFjC%O0;pJn%9rRTZyk=BpPt|kdW2@7K`H5S>)8N$CrFR+Pbqg)OLQ!c^B z^sz>$EcnnS=QVgO-%Ru6`kQ4Pq5$Lj*DW!v$a_*C5%LsVWM3-~H& zV|nb7-q)IP()?5ccD1!4@c@#)Uw%2N`nGx__NR(ye+sA8WgvSyAju}nSaDkUDq`3S z#ckuF?(u_`rh477!*WcGFYINvY?Du>@Y`F5pE|u3J%m_p_kE*L!4T6I$S2ya{I9EK zluRqQJW+$vz5@w%LZ5Avn$mR@=ce^+*~)aTO{+gVVU7IgT`((#Lu8=^GZ6tgPj2=z zIt=SKd&NgI*I~sU(J)Cz4AX7y4hzmOC+fy%-3X{2(NIcY;i4fTLJU>9OYm@JL*@GFZ2V)(uW1z*><{-_yLx0 z6U}}v;KCte$T;xOo0Xz5ATq%hq@nPOUe31^ zdO!kQk-(>@q8hk-r^h*k=4ffYoO6PYA9LYd=!$^)e=gBBCL|18Wt1b~*#$q3D;ONm z4rGHN2mnEpK4w`;S0AN{(bhBL1=9DSA$MGpz^~@OH0^s87yjiZGNi{a^wlJ5exlyp z|G|*2w#oSzPZSpiy-5^Px@;c;&_%T1fiid&FE#TbBjNj)VuP}Ux=UtZ{iPjorBK*d zvt}61o+Zm&XhOM{2dFJrk2kX(5jH8_*$Bo|`vvzpc7eR7ZEwCEdSvx{- zPL0R?!aXeHSF8~PWS}jH@+H{tr?b!Q>J@48-4{=Cv3by;<97r5UMdqnZ=~b^zK8j2 zmxEej=3;#s$v~JhAm2Y9lv1EgZ2*X5p=gAc`#8BqFhmi9yCRhQ__B_qZaRUUeuFLf01x#fovMZ4mHJ}5 z4B{B6_(LgL3k7CC0k0m@w6n$@PvX=>iMs>>Y7AmB7U#cAK$F0wwVFn`0G=_RR6K|g z1F= zV*q(-L63`;M;I@EOe3{SW4=z!O@U07p$}oy#h#%1%V;kW*f5v2lqSw!DfS$NBiM3* zmC!&p8KQ@8%+H5f7)#BDWg_*tA6aUm4_Fw|HG8A|Aa_#eat zsp%)L8N_#uhAivb^Ikh2PvFYZ3R~An$uiU!B1ZN>Bm0Qq%fyg);**xq5Q<@VxnV@S zL0+<9(V;=!zG0;rG@VzRWBO!nat4}O{ytpO9)QRnar-4zEd+EVlzE|)E}qv{lc{r0(a+8nnyk|!Hiw`SNHcUlE7u=(u21Z^KkR$= zvi=Mud@h{Ye`Th)I^nmA7ulsn#{)w?C-k!20P&g3Nz4|DGOK*gbNbE>nPx5ayHV_x z?uVUKhqLL`n4QLqtxVlGyD9WFE8Rf}D0e{QI!>Tb$8h|besL31?8}@FfP%y24@fWR z8t4~zp@)AN4-cU{Z!t?P38%VKe}ONNl23ZpnjMtPeZMELdzphw=Z4o1o&e$#|01Do zV`0;I~yqFaBs%ZbU&vb!4^HPeCbY5{rTAR#M#)!LKKL`IamO=^sun zdY!>9h{ZMIyA3~yK&x1zhrVq<23WPF$-m=#IwU{(azTa(?rfyBzPQV(r917>E1Bs4! z;wD?R`vKIakM;17J>(eTgXH)CW-07WNDN#m(&NTHHfLwBCA?m$mQlpjuvSQ}(s@m* zUEqK}AwEw@|B=hA0%U30w)M{?dW)<+eJfzZN95YYuXIk3CFq7s?T7E!k9gUSJedl` zy{z7i<%uN{I?O+)71$BF*U~+*1h(E?DS|EVreN5eTQ$ z1=zpozO!~`t*DSV7C3QUgSuUSVi^;r6Y9u*RcI5w3im`o!I=|-rfW;FZ*fnS@W0?_ zY^)#oPST&3B^xhyZ!LZjX-%0_MFKt)Cv>24&BkImpZ#idUKvX?`cQ*(VxRfHSi7&VCKs(?*FY*Y zp$Q^LuOdVQ0a3biFw#*<00rq)dI>EAq=b$%=^dmfT?M3fkg9<6CPFA80>X~dwdOz9 z+W+v!Pcx ztav$+U2dQ##h;e3#V9rF4Jy=v0PcZP^^m(^u?%Erd1h|Fdc+* z;~`qDrXm}}-}D~aqd-7e>nQ2CKAZ{K1Au2-_s~b^<4j~1=*Moyl~#u$(Kdc6p~cjX z2_IxIm9+*xCZU39*#hKt%htX)P4~Q7;%GHAt1zr`o-+;RB|&W8Q&ZeaC&3L+#|K}o zO=R;06HClom0dp|3v*GqcC(OlM#M&4A}Fy7Qq2=mrv;Slf;eIzqL_M9XMi|XSk~Dl z;|QX5v=Y2W^3ah|^pktKiS&;s-L!PwNYkDDFR38O9Zi{ z-w4D9Gxk`5z`I5?P7GIfpYl7E)xo@=VdY>3S)LH7)*EfBkvz#fr(I6ZM|bx!W4GU0 z2@{3y??c4VPJkjOquUUFBwpyM)Nw&{3B9=&oJh76EUXf0K)!w83V1Y0=ARu!IT@aj z;d1$vOGd_C=U^|z7a1q636D_`*oyjgWPmrQv}tF3j@jf$4FW1@r)s5+?c5 z?RK}@Z5a&V1$XM*F2x;)-aoKpJd|fW6k<5MBMdgmc9XmSiJKkRrb5be7ZUD@@fH>6 zPB^Aj)x2hVzQ3`0I?ot)gBL z1D`o%KQn|K8C^Uxu%5AH^LSVfeo~Jy-F=q)#ORTehdtWk``I(QdW`-LuoEL>{%tQ3 zvgZVQ#zvVDF?6_gglB$7y8YzgP<3C8ECOg5?uPU9mVx-b_w?)b^hyO8;W4@m34SoI zAXcwnVXqK_fe>qx$uP)#(u`U?*+n7crI1^mta6fq^pzj0O?+D+z8lBU%H%IVKN(WO zjE+IL;e`Yl?+(qM7^k1f-H;@+*;H%e*FAfbUm^#n5RtHWnyz%t?l~sdN&TV=Ovon> za^m0cGxK6XQ{0Jr2@<#fDS3HPQly%ety)%o7;dIizU$+!a#C^Mr*hY)X8l9<51+DG z=dvH+lm;gSyLb-LrTUk?4dHZBg}yE88Ck==?^31(^US^T;wcb=0Bn0H!A$A=i+SSmjA?iiZL_) zDc-8VK>wL9k&`cf&Ajse9O!>BJN#?ni~qd1|CbB@QCPs@uHTaI`G8EoN|E2HSwN3d zz`B_q*z;`T<>}_DfbI7I+pz)PzMQXy2kh?p;$asptbzMQz6UZF^}7Mzhy9P7ERFBzNTr|n`uvuU7Txi4sd~J_3C8_34quP1&*oUaI5NKSLukIm=Z8Q>^BbWr zt-%o5OJ6U zGtfFm^m&`aNF?KAgJpm?8JA_y9kPSj?OEW#+08JoDy} zB%inIrPsVU5x2V5WcPq2eEH75E^`{3-Se?AJ;3K#7sOhe*ccu#Ki-Ty9=Hj+Q&QR_ zP*#z3B2ZqP^+}+jw9n^j*_+A8Yn4r7eP1iyHIdnux7VoIS9g7iw6E+d?6a>Ol9wv0 z#cMpbeKVzR_wDs($LAIGUF{F!bHaVd1e#oo(uA6Q3&MtLruw9W-+uq(EBx+H+x6sB zxRuz<*HPJKkcO} z<#zF#RQ=bR&qM}p^#5+Ve)hXLB>A=F=J4IqvzsGwxbRa zQqMFHBPRZzDoTFRj=|Dy1WQ1G1O!EZx##t_B2ZCL!Knlg6hWw(=RY6;+WsGqz*XDs zZ%gn;5$NjbhU)re=tidKVgFJD|0ks6ZtNUp?DspTWEMwI1o?l3loB6D5(vTLC;um; z6k`=eAOv~;=?DJcfeeTEf3}o@odXDj;Ex}u`75OKzsCavGZ5w%QsI|V>sQp|SLW`I z`GW@v0x}7HAS5I-GbHVGNXZ{UK!_?4ib~k<=YQjYpr|AQ9>|N%j*Usc#U>E^KzVE- zfe^&TrT)9Fl-QHd{09;wC8dodxBpuaWR#{CHKo@QAVF0|Mc2PAL1tFobavlgmLM-W z|8;SGX?uS2Kz>JYL1BHtYXT?mF6>GvdgWI9F{R{necA7{Qh9lGd-=Pm^1-l*{-%m1 zLSTtt3395NJF45`YWfJ4fRI@Vsh#$Hy)ylJxUR0LtiGL~2nOqWa~rx|H@+oUf}rLd z0w*YI?j(qU@s?o%DrkHAVc>1oA5M_L;=APtc-mr`*=XG1mol5|FQ&ApJ%2%5g@_R z%+mJE=6_m(WdbDFTv(r5T%B6p{$mLUkbn?XT3g*BSc3QKzc$wK>l-_NL4u=i+dBkH zK*%Zm4G9P#rGHuiLP+W0`^o9||F#6L{@0d3+UEZ^OW^lUOK?fI^1m#BlOZJ=Ht6_2 zEP(}UY6QiLod322rHlDuiM;o*d=E$p-q`W|hb8!yf0V!{b@JbqK-&HqyS$PJlpfQQ?V)?~pXjDOLg z9>`BP4W-6*$RZvp^b}sLNcjLK(g730$#>DJqmKcs38{t_lrrds4vb9V^b+jpz*-0G z5x=Jn`uaq|u(j~&c%H=f2Hkuuy$Q}CSD|0)D+x$bJ$jir-R1jYJIL=Zq{nqFW0OLv zL)Aq(6cs4M%9vAig8R*OeVVnY?j?B5$QErvg`{^Fb$E4$uCa zF6}s2fj5n7ON}coiYAmUVF|9v8@G*%5mJ-L0lMC%T8riVhF?|{DVhAhg?l)8@v-~b zXvPyBu{mHKcT$#@{D9CB(2z^!-g$#@Vh>MQdGh&dH?kXZ+co_$s%i3rLJbS@4l+;P z#lyrJkjv3p_B34!>5nz`?{P8qwXxAXSXfZ!`p~n`|MmkN$spgR;vRtI<5QAoo@{s5 z{?^%sc&+R(L7k_+8384M5zq+4{P?yp{Oa3?fR<2}VuHGqKQ{0BoA1amEtw_cShvvV zLJio~%Awq~FWyUg_*x?Nqn&7$z5GFqBEy^+`W04T;Dw&{SD27`TKU?uCscN84R&Mp zjvi`vg1We#Mu}*!xys6S&?tGS?k5^_F9;y#`i;>OUsJXeiQnB_(A(_Z%cqqqvO0vsNgw=wl$k{ zE5QwDyNg5#)=&U6xkfbNhZtlw9`*3$9WV7g^mD!m6m{>(eallh5;p{|Varv&_BA@K zx+}{tM8>q5T&=a7MQ5Yy(soXPM{zl8W0kRx$0(&5w3qd9q|(qy5P8;j+hKT4!>G(T(uUcx9mqF()arry!1tSr94P00tT)t3a8I z#_~A}!(|x5gxH8dJaBUwO9h3ix!L3+))Ss*eY z*|Zqz41G%9mJ61#W#l0&>(b64f!qOlZO+X7f=502(k*Q;4sJ^Z;F7Ymb50pzu~Sg2 zH=oDBwOva-g0)u#+@RzoM^R}(-v!r}VVfcV0?x}*8;j2_9bV z@35b-kr*L)w|8hAzbp&oN3I>a2A4(QG z#2m=*FFt;n;iq?-SM7m&-9c_mx^@D5ML~Lk=vI|CwTiNu_B5g`pSv?oO{Z@xAuW+q z0~<_d1^)vGrnR-iZF|*i1y!U;x)k%C`8+7I&$deeVPbWzuPZW*f#aAx*OZMlDiy|wyhLPg1=ZU-LqUdY)c^Ytjv$O_DM~*c`vTLhs!) zs-pRkd%ExneIc~~mf~$-=GtQJLtaC* znMQW7L4AdnmYop^tLhu_DdKMoha%`v@TePK9y5EWs4`W$0QJ#rEHo1kpy$z#f++U*kP+OM@=G)ih2`c0A86xJ`Ng4 zm{rE@h>Z5IuW(46@(cTk2_%;<%cdh)#fDUG(Bv$0(uFXfj`m-)`2lY-A{i9QI+l^yA#idLA)FP=829gXe{C>ghM@HP&FSnL~I z^IjJGAu%euvyeJ`wtlC?J3i&k>x^dR57LmPF(+*|!`+)T*PJ9x&E~)43;S;#`F|HE zjE5;GnXLCOd52U4Jj=HJ#U#ES&b}e=ohH&`2_@XzIZWkb>HlkkJ+^t4dfwfu`8Kza zr_@BV`qA5jmd$cQ`!@jL=K2rDyBIU^rI!JkUEM=_df|R6nRkEEFL&(2S^FgN7hMJ~ zity>{zFo9VgPrN;s;Q8#>#-l^eFy$p|K#_gq z-DX9agR%-(peo0K_2FbD$zXA%KuQVE%Md4xOF=2(UeeX~JErV9R;dJ!xhM>SFHd^T zrqBp5`gmK1lzO`I89GSu`KcHLNL+S8^nl`Y~cwi2a1Xu&}PvYp-)(|j(Z zxmbf;X?R|v5H&TeI>Q%U|CGsT9TI_zz0%{Zk9*{SvO34bwl>7@@$9!hQ^Pj*NOANwagPjfJ$z0DUJte< z;;R)r@m}$<-SJ@?QF0sM2+}Z-i%qQP&v>2iFv$ob;EOnMRWGKW31`%aKc^DzK27ut zOT1N*NSIA%TxQYo#wuLKXiFvyFUIqbCRwH=J)B`S=1(*w^)xrqwY0$)@MBTl$@y`~ z@abfxBiH3t@-I9oBh~San_PM&G#V=566}=vND97gqLyTuVP3RAM2asdqkl{2BSZYdW8wiO? zQgcb@*i1C_56YZYvYaZM410z^9CSh@>-0tBFV!$Rn@CClsg27yiK$t%Tl8|?sW_XQ zOl;2OK6;=Hjmu_EYQanP+f4KilW)ApRjkboUQZCZjf0gY3q~f~OcO*11c{{OJ*dgM zHk~JZ!sYBudl4a+;g!pFJOBQJ{D8)Mv$*_}uw0Ek2CYvyPrNDLrh*5dFLO}oS&9XE zK3P(mFOggHPS%9Kg2{6bS-BeyD74jH3Ju?0+NnDwbEKff?LrHef}+hNs9I2ySL(Z? zfYv&vx6_3P1XcY-VJ1ai(ZynsG84B&csA&^{UmSX8U%cdc2&mtM&K!%)?kt&L6b8X z)?_8h>?I|A^hteE<*j7hYjGw@#x6`neAb{o9(2x#WpQcgd0T1EM!*hlSq#{VHp2eX zX4d2;q?3)(1_$;gq>{!7dn!0Yx@{*V(8jcgHR_`n#5HSmuiq>Mhtcav{Uvni&RHO)mPJK8|G;$@bSk7`#eYNg5JrLNGMY&^Rg?jm(1L)y3Y96|Lo8F!tWo~`Uf3o7N^ z_t4O83;8xOz;yNfbh-!6b=D${bv-G+m(ZHq$u~4&OqxrDPxE;tsd~lJ#}?vCCH+RUh->b&zJPLZJkM6aBe94Y#*S8PA0SNJ!-IAg&TlHx2REb5% zlSdR{Yj)=-NDg7tuWEm|QJ(DlvIPg=f02^ZT$j>MMmzcZ98Q+9#u`%}RZZvI!(jhW zxtY$(ak|6`a7-!b>}cK0y0KMn-&}RdluE)znKR-yqTF0Z9#G^{iY5eq*wCpwagFsE z85d<`T}3hDpPEd38;7BgdY9tspvMKwoKN`rPK3 zRL9yvXRMlwu*<#b*RC({%DXR=!;g;JxANv$m26+gkF9p!xDPernI!5T2vk7&%wPU? zhuMRU)aDN=%$N9QTjZEJG|O{H&Wa$Pb9FL0o|Lvbey)`r=rHoD(7RJ|Nxgk%#D=B5 z?St0`(nlTk8gvZ(nG4BjhtGAM87m7udIx9jT6~xXzEUOY5~J?rI8q9^{1gP3da`hF zTY5Do!o`z~Zq;%RTpKue%TZJIZ5)D|>G)R6mvj1WO4sh5h zlJsB!);=1btK{KsL)98XEyLpO+e2G zNDn_t1%_7Rq1DJaVI)wPjm$z8Adjw@XK{bzr}6(f$>uTn+O?5m_R@93v}t2wU`c==dA}kiGmC z_4}Ic6(sNu+sdyC2O=6I#KIKftVBdCm<{lh-2~%F)=(r&Rhy(l#7t~Ee46GKIAY1lt@3lCN`fMo58la& zz+VXUX;H((alfemG2DcuN zB1mo_fuY#|;Q&ZDdYiD3OI<}AMn$fKBRVq$)0lnteMKCKAQ6NUlcJAVVMmx(0M;rJ z>n|t^Hev`GBrr@u3kQfV?7PT}-Uw`b7I+}(L^!AoCdCm^6A>Gm0SWxT))~O&j8Bd| zP8=eE%N zX=F!m=J&V*skycC4M&&mMO_wiT$zr`Wh904b@&pq14FNfQ~J1e%kBE29XIM*@6M|k?icVOt~o9*xAM|$tr6J4jaHI@ zBCnB5`zL+vXrQA?|E(Q3xy!vvkKA225Bx|3?nVlJ+(<*7x$t&JFL_7uzu8ZSl)m}8 zhwNSDiMkv+@H&xsFL>ojRWLc7AzK@b93!%VKxaAS;oa5F@`PS`7t70cszR?AoR~(% zzST($G~fFA`arA4Lh)5&gnfB&kxPt92>rEk6-&+wx2!&a9_Y%I8iDKWHG{X_2%)uG zd1sAey-xP@8u6ZvmutjB!((MWv3p`QN5qEzpCkcvVX3v6XrNV zQ>wj)CH;^Re_+$@9d~Ul%{rvusbWxzW-HY6JG~bwD7>J&%hFe^BgXE|(_3bN14i-M z!@0)Sh_4&+WnXu6dkdRYea2m1=O*_yM=gx0y>;%L1eYOaz}=lK@FiWppH>+rqN!cd z>{R1qrrSMjFhyk*6q}}0^D#K@y+vQ$j|Izk?F%*KTPe2^8r2%-GTNTcn9-Y7HQLqm z59x?lOf;9@@#!DudzgRMl18-plh4UJHCi%*6}MMPQ)0koj%QD5*-sx%Q7bX}ervzt z*^-y}Ji2E%FPEj>qO`MyGBn2SWBNlIxdNs+p!W0~Vu(?IaW%Dg11cNTq~^CbVOMXG z*E3NEU5XMkfF6uDym0_HzGX@IOr)HAKDOpufgexXgTMLe!N4y zhV3-IQY2TQJa*RmaPIySCoOVVGD@G>%FT;5J=t|A9rC$W4GB6r1C6*eDljfv)kOd3 zf%q@w>h7hEzsNV&^wt9;CFX;Jgfi98Vl%84P;fjOJd_Acw>b~iEUv}x4H){*bb*gQ zyyGf}Wh)}r20g0ccTFmLpfRS4&nLM{nT6n)m`NsIT~4BmLSog&8Hl^PQ!bT;$()a| z7sMP&zO~uHq~9jc?&LcqHVXk7%u7U((+Y3wTZun&T3!iS?Vy(*4NHhmhZIPZR2uIE z-RfZ9tSppuTeSt4w7_4X=b&WhlaC5h~=|QMj#yNoZdhubY;3 zfAKv0#dF!MtE4wcGN^I1s1<&bpSdb0A+EG99^ZRdTnTn9blP23D-1qtWo$t_XZJP7 zQ;2jKJnRtstfp-s`?2q_lG~l?j3-)-7bU$KN7o;79_y1|J#H;Zv`eM?koQpAd0?Xx zD10d{{6}(QF{c_RZ7hG?z4%2{nz2sgOg?1*-l~bt>mcP9S)l}dO+C>A2jGU_W2G|` zL<&AAN!=FC8q5**unDW&Cn`%OR2Ae};F9&7%f@o2SH1>Kl#ns1ORS9wB_bYAhnyIb zIl{Tqu8KZ}kXXuXrwqjy11P9fLqyM`S7p6FwU4H*LIG&Kh>()n6v~P# zG=)_mGC~g+#OXeeMXq+{IC@ZCsPi2NG87YS$fJVeeDrE1iN7jZJQI$<%S#5xCMZ38 z3M3MX1W~KZ%8x~cz5&0kNGccv8#;%$U8Pjpd`|Q976N^Do0vF%|5{WfoLWdFuj)A} zOlGK+{2F5jeb>{cRq_wYBBQXN;|J(jniQkRg(ni}+`>EBe3C{M7={j;N|{J%v>nAD z*%e6#GP+j!OR};Mo1j)ZOWR3jAvFO(l$_ysO?FB3QT#g=B6jEv;wAkb9OXm+MvX;S zZXDTXr6I>GE6e)y0lrYSoNsPMK_fmcC!Ln zgVax|AtE+{hxv__hJ6ye7+3T*CIHdV~MH0X}j0gfoK;;?bp2+1}Up7U6 zCvR;&Jq23t^w}g3C-ghw=*5A0*C@!97P3 z@I!}CP)nL0H{F2xI1@dZ=Aeotf{gq+cgm63yD!$O#4=qGM0rORXjmM=w=)7Dh0D`f z-3TJJZw23Jk)?>*2;)0U54$?M2!2nn*fQ~5C0R@=)8bnVN>ct0otq^n-33iYTlIS69xQ9{T zgKsZ{YGlh&!wG2#5@9$;{S4bf`ZbqSP9yEDJg7Cs^+GO8GW~qMVY7qI*v}e|h^dd5Z*7 zOInY-k|D8{Y`9ksMwtk6e*uUh>Tn&wXdj0A^FbtzL%aw!;Ax2cw49a~(4H^c9~*WH zA8d#XmpBepnT2Q&UOzza0E%{SOl3RRT>>Lvs37l$@lOr+&TgN}QGC@TpH5ia9|2np z$a}Ft-0_ND_zr{6PO&J6D;vad7UGHy7gL0|taRPa=(b0P`=i6X;mYnK-L4(KX}}Y@ zZr|B%&wM4X)-JU>v9B-R)(CC&?rFD)Qi+&_T=-R~{I&r-%3jkwHlg9qGrA%>AYO?o zk)e>pM3qG2UN?A8Jc){jVQ+#)Z*&h|m@$XLK!;d<7dBt%xv{FBVlNih=gp?}a$ChK zQ8lIo@&c&lDiJPP#*5xo&J$EiZ|Qy9rwSeK&RtP`b*5HDpbb%sMuQ@)tB}-jC2MrN-V)5NxOOsUO`cH zw!lTrL3LcP&ezz6Gxfy${wDYQ=ER7W?Y?&unxh>9t)UT=q_hSPlD^mA7OUWsf-x>n z2bWsI_iPh%s|P$gG;p&6Qf{(&eAh2-e#8#1sErB^RdZ>+KE#?ndbK)&Yfpr~bWWm* z7`hQR)B+#4)CSo;4DavI7+e{=)z|CN6U4ayl0gSOrqx;!)jHzpe=n%n(^hSuI%t8_ zyzNU5FG(^e8NNvz*W#6QD@bd0d~gmpyuUw)z zb$XLgT6tvP0*Dw2vXLN>VHCJ*a-YfJ{uTe;*+VVXIl(;&koq)S3aS;AI?DZIn1{QB zC9|JzLXd5)?|Q}P4-GA0f9(r8%8&N16;-t_-j77}V+|e6yLvYJx_Tfz{a<|#q6@XJk3>!D8i8IOpg?<# z9d8XM9%Ujmo{bs)nlKonHP_1#f7_+;dcyKv&*QKR7buxvCX{;hs+oV3iRJ?V0PiMgOh^fUkann&+@Ec(7p68i!km3#oV#>I_d?-2*GDl~S`zvdR8N%2TMB_$^ zqa$m~eAHC&sQK-q=3naGUK8)*!ON*r&zf+bI~XjX#xeB9o;V2T?#&g$xatCI6gL&0 z<|FYmU76yspQWlTbH+p8W}EKyzP+oS;+}8a2zF(QNsap4STNg{6lHzym2DGL1~)Lk z!uVYGlTM%hO~lPF|I+^|cIDyV<(-20-NX4^6Y9jy7u22MQHRDq{LPM|&3=BHjVhl%xc(4x zX!1?$%buZG{JvTG!k1I}*u%FksK3n<2js8L-K25N0PuWChc5unV?Z7~o8GASnlGeQ zxn!4Gz>drmmAsV6q@?o;wWRvLuA5(KGy&c+7uiBtykWVNg>^xNNq@Z=3B4h8N|nO@ zfZoIWQP85>_p5?WK>EkE7Ap5ys!444N~t!HEThzBr!yOm)5k<&BKAkHI4v4qi*@{r zfAo~F7L^p^d^)4~1)H?d_7hWvJ)(_4X!ky8ZW{z4LBbpq^sxFj9=IkEY@3ZWZ3dgF z0J*y$+1{l3DxsoKrofS9EX@teT7W5(2~ODiPyr%}i^KTA@DO4@XTjBdfT@IqI&#HD zg;3^te2p<&TPs9IdW<=NFGF@&bpE5573$#$l?`8zf+R`3=IV0^67^$@oKU$%gAmMc zm6;I&UI@Ea1vD<6!*0B>MH4fkh|E4f)QLjKNkKffLglDH2oy*tH3Nw)=2-*15iD1P zzGhfmai|M@{Ja>MYN8LHzsJKgW)X(u8@?x0{*^-`Gkf(R&(fnh)PC_Y%|aNnGsNuZ zO++!`!lo(|dpnjB`8W_&s*ck@^bp$|g`2@2!y3Q}aZvp(gcUy+QH8-!uZZI?M>V1S z*XuawuY01b<%2d0gM;i)L_VsaipUXUc9qPP@OFW^9B@c3c!MioIgM>2_#F%T`5bI0 zfd(#sAWD;;(MMDPuN@=g_yuj?MC}8_`Up`eXc&B%gqpkpi2#8mNWciodpv2`qX3Z@ z=sic_yyO)-l@LYv=vw@Mh3u1;RRTtp#iCexiil#CJ%~OZ6=ejUUk|m>jjgL;Tg6tR zAx8@|74&{8K+_od0UW0DWJS@i$d2%6aW`13EkzUo6zqf~zXRWOw&fYy9t_C1D491S zndf_#I!__=We%+W(#yn{X8}7s8JigaFXWvQ+G*eXw&qWPkiDD@bR=dNR-ct=&qwUHD~4#m%F&0paZ863SkAV^P z=Z`^Fc)SZ@Z`F{>sTf1ih%sZ_LqRciY%a7g$kkmJm^fJG0Aqmwvl}3p*6|GYUAfKn zshnI{cU{;G_BbJXzQlVBufU$N_!mzHfUqS{ca%vp_@*g^9}09q^8s=^8Ml$Gomr*g zgaca^WAqR}1r$gpHN*@7)|m!bj)bTqz_PGI+4rIMWI+muu$fNK?QReu8+C`lUG6>b z_61165U3^|s(u_Mf^pYkb=A6XS9yP^F$FM2xGSLC?_%9JrUpb9R#wV_eR1CHxt|e}Zk02)|?&?)P#Iql=zFZ^+x+cBmO`<5-M+@!Qh}fmWPRWB-fSM0*JJjJ zIP-lME*nU6hAlqrH1qSHhGfM;-~I4?{T|!%-WN1{y3*x0WR^*?<2NGX6bSPld$}_z z>_0yIV)(xQB*V!^C;#cdys23KPwx{ZUir^@MqPX!_MhKmbk!+fqdQ_bHed^Odr)~}Yxw+nV8FNCfP zG8da>7Yj~-KX(0(V=rc32A;g~KYf2OJ>~SvEb#x^5^SfAvPcI_8HRN*#Aml8T>Ymd z_(_wm5`V67N#j2)!4xt{mw#k^^p7R@UfPwfo_^#W`7cZG%ggnv)+^*6OJJP$@I~P_ zrazWIe!Mh+SM8M_gjUG@;<(hTG6?qD5>yX#JY!HGSOO6%Ogu5nIQ{3%jSc8d z?}}1qe3reB*!FZyLEYNf;op@fZIB z8*#Q^Qb%Am!4fc1hrrY%7Uih5y%s|+Sv2GXKYU@49l#tpjnba*+xQg3S;~lt;9c{a zkG%12iUW)2^WyXt&1K|>xm#GY{QUH%#EPrzxe{0W=gZ#4@tV^0`EFWjs?3Swn%+;G z^$M}vDYZ5iy_PBF?MDO!m=;c3X}ec&~#_Im4yvlAA_VGf!J-MLqX> z#fn~j>rf!0G^xS=%@P>jsJ}*hOP%lD6@Sq&)oX7>KWa+-5*>e_ephTl?~%XQq>&s#}EnT0$H7#oCGviu`6$U+8`2PeG{C`Ide!~Pmd8hxf3ChYUe>`C>$i@SNQzWGBE z{`LqJ71e)}gg+i3x2EO4NWz=Cru=`C1cFD%ZtDLBN$4PugpQWZKPusGk5K!rv-y2T zd24@fYbQY^y#6rwJ8$q0mC({N(%Ccg2PTvZtPKnd{>dBE4}K=Vgn_}aKb?bt(aFDI z0wHxkunGS&Oc>fW*aSl7fB+MEx6Wq29ujy0!6vMI zBh(E3VH5r;9IPCi{D~a=4HLfpBXaP+hY9bV{{IFOd>sA}IjH+s@!v3EnvxwGcK9DK zVd-jWEMp1bp!$DA4kDY_3&fK6bz($quj_Cfv0bmvrTdVf|O+ zpt(1ZN8X+MPvk&5l@K{->P`56M-C`&{}nmNeazeGp@p@;vgRJk5h4dG@m)X|&2kJH*=T>%M3|UvM)3A*xW=G=RO#B|`X7{R*9>@U z-j}K%`WP+LdT2<0Cm#ujx?X4a8J1SDqM&)55IOirh#c@0UB-n{M_^pA+CX}}jS+%Q z7#Zn*_W@3#$+x9T9m@RCm}HPU(_X&6ZMG_xDkl^k!pFX4-#&PC1pBYZ0isp*TC_yH z3di8}Z+I82>n3#xDpJ3&oTRKxDmv;{2$6$ot{=0Uy_{LIA0xSz&IF>lUaZV+k7=Cp zqOL8W%fF`H{=BpzS@+tTC9QKmp|H_$EyK}ct$~e(Wi2~-K6KFZBSwzNNu|tzi^A+Vp=0FN z?7p={Q;+melmASq;t0R3gbibNt&aRI+NP_hrg!CRl*~jW*Xmn?ym$jLR;Z1WdL5o7 zbZ0bDAGu6TdM7~?JsJCuLX+nGRybj;{<-(zP8foMQXQQVlDsGEqjVEQa+6otP zAElB7Te6sxDqpvagE`?ps8|cYW%eJCo5qm}Ta`rcDcdA4rn#z}sVIpQw^cCv46ydf zf&>!f@&g`MvW(%BL@I+iz9M?$I$hFPndKz+GKwJgdj{wn(Jz)XavXA~ zmfS>l>ppr@{h8v&7oS865&rG8rKm8bZ5MvY58){YCaq{8e*Mku3FVZBv~jned9G`0 z*+@%LUSnMRKaqp)Wd?78VYYva0^>cqhre9(vl3U!PqAgj>uLstpWc-42YuD~!KC0` zozJ?Riunx_+L?~3u$tu-5Gj$8t4{=YjLKwyH|e}@tBZ=5m#NM7O%2`prg=NW+=$RS z7>lgUJ?0}s4y0mz66>y3`d_!RzVdnI;?q%G!(fG@i~3BR&ry9J$@RPZHg_agPVt%pCFrU!-GUy^_Jj#6lpx(ug$^SNXIxph0duk)-!SXRtg3PB*wAL{3fnw=-yM&*coQ~prk2@E zuL5lpy@GY6;CZZZ3a>?yZU`MQ=*A<}n$Lel4q_@Dz64Qi<w!Gymf2Rm-|!lkcmvpM?W=feFN2A_T}t?QSh{y-HO zw3Z$fLdE~!gIHoV*^L$j%F<~$QFsvaHuEc^>8b;lD}!75|B4(iuq@j#`_#lI?OSV> z)99U>)r2xPEza6lvByA;vprHh)WZRFPDpryhC^AyK2xEryDn3Us6U>Gw=)~4 z)q#vMDGr(r#CA1SqqZ&l61>bS!SMvz|Ui)ne_SQqP)9b z?NYox$5pxqKrME>UdGSyXB@To`tM#+zVs0wT+nvE0gn;(nXaX@blI8Pd}JWB!Wno_ zRYp=1|JHBr=F8bZw}90w*5=jAtlZta(}zV<&HZ{gJ{j07&&nUY61nX5Q3q5<)kXE| za!$UJ0KOjrq;F~X*ukciZy5Wt>_4Je&uohVHU%1g?cii$JV%Jd$JxLL@#iNK_xHccmH#qX52bOMC%)vkAHy;tN4ks#m1cvn+2G@BvP3kr6HjH) zDvDrlhnMslM^^y6bk*+GwtENS3 zHelbU!d#9Yy-Iz4|IPEa4Wg!Al-kU(Uxy>*E2 zc+`-}{gH-<8BaVKs?n1G1{V;|{~L<`15GMfZ{^Te#MM1oB)GEBN3fqK}ORE>@KZkS-k z@BV;4SzR^RR5cNql4vV=Uvv}e=)f(8Wy z1PRzE3ZaNJF-S*{fb<#=Dbf;pl`b7Z?;4sQiiTc=h@gO|!Gb6#0TlreCO*$QGygsB z?6vo|WaVBfU$Rzm|8kwz;hvD&rVgI%(Y;H!jXKyyL?$-0oS(oLqclh zop1xZE7Xe1YsuxKFlmp#rTRdw>2tvzu+VucdoYl%MzH8ve1IbWRZtE2;Oeu5hxOIT z4Y(KWQi_6Wi=M<;Jl)T~t#>wh_zroG#+l9DZ9XFBFjB1Wp}6IN++9~M;aGGjF%=c! zqf!f9qq|$t4aESimx6OyBXS%0`L`BtJtV_V=p)W0@Eun6Dy7<=OW@tFquQ>Qz`E2B zJK66UUZuoL4L`Ch1>W$v#C@);Yxqu(a;eSBT)8i0C+71Kwu41fE3Ro~8EqAxMdqj) zRH#~}Ni|2QhzMHES-(0^S-D=OfxL5Zw9Mf;PRo|^DvOeck4OhXx zROuqC?+RBr?(iGU#o-Jj^+zoY3#ucUs}+)}udP>y3e@Bu^c0 z|57F+$mivj3%h4{THxKstN?nbMhbPrK}1vkL7hC2UvMwL_2gdL(b1 zaF5NqyVA|NS);#GzJK%X2FWWMq*`n^zLP%I8vbA&^KTOYkPQUe%L+kKNv`oEI=lxcLB=mEa0O5jGEwwh>!xmYG zHo&oP6RB_$O1n+6h3zY%^}+iy-`mwfZ2jW{<&WL}rGH=eG|F2y(}Yt%Cp1$6)}H#( zS1ZUyy9{|)xXrJS|Hg{cdD&piA-}kSaAWhLuFVcTo=zz>lwzj~{!W-xdTL(?w?YVa zd_ysOtn-m_yY1`)!^Kw)n(*$MWbb@7Wf)w2*s7u1qg9vk}g%B&+ERYI)D=tuy#kW(yp$LyJBpAMx@ za<%njQKw5@zp6pag|2%dYI(Ykgu>@5$_^G-*bIbZRLOT%*>VY9D+;qQYF0lusC=>d z%6QAc?wVNo&Dp>{iiqwQo6EQ5relH1;T6x<@R&Q zM|t|$|C-tXhwKhku=(kSc%Px_o~){oJpk(dammwMBO2l(;d1Z>?vP0SvdyXR4~v zqq)IuuNOsMkB^%gbR)`d8xZbUVYt;WA}6b@mF}ZI;P~IC!)6g3Rl2B`MDE}8>mNNk zs6`f!%>_5fPst5W54wWnQry*Wohq6rl`)4c7E*bU^KZofaQ#gFTQNK#Abi;P0q!q; z&`V?N(GhI?APbKY4R;ilMEhczo!60%86`Vm{kulPzh@t<3QlP3XP}B$oO=MySr+m$ z8$2NXZ5VtQaFJqEFA2#85A4|ugE*%b4n|}TY%|~+Omq#6vBZQHQMr9_aD4IKgn_*y zJ%^nz5Vk&K;mj4L4&B=?BV)+hC>#a+fNd0&wwrA zI4fvS4cZGYdHyK5X5$_xo(4|_z|ToE5gso9v=tB4 zU~shB@e@*-&0g{Ura}1#Q1)>BgFhTqe>i(-XpMi&gGXeDC>bn4hTzjdElji%34mt6 z%)dhCaL7kkFrENYCP7^R&?N@UmB#IaUpzzNvS)C7x#SQI;7kQ@vgE<+jj&Wa^b8(y zsqpPN;J~}-YVGy6Py(A$TBHD=x5JUjdtf*TioFeyNC!)#L+}J(D|wMUeNH00AYnQ0 zVBRScVCV2qEDQXK1(qRk*_;3?lDIU;pp)tj;Y6@Kn?1mS4`IPr0Mdp9V6z8W#;+9i zyW80T!%Y%^-B%nXEoo5UzZvi~ZU_|r@lpC;_CS;j(V%}6jsWoCU}5U8AOh?T7VKKW zwgiBRH14AS&|N$TLj&Hp_KAKz@zDv-9gJmAItWer2Rr~QQ_~@EGU(F+U)w@i;-h6x z62Ohk43NQ|WI**@cm)leXAH%buxH{x;w;c17T^&RZH@mDME~SP<#49GZ`%8!MB`S( zuiXCzJc|D$4OloZ2<AQLy1H4IwjJ;Wf zYm6f=4_IAH={V zSRh_1pe*ux(Ej#007#zsi%%EIrmw8AKNQ%=K{{ABZR=GE%g~-p68wbWz;09k5)0(P z{nEn$+-Oi04CwIwPTATQg?$VV1AypZ(O2o49Dtv(bRZ4=TNL|y@-UEx3ha36&~{ycGa%V17=1ZG zuVF{Ws)b#0XFN7diMaO!@D~!Ovo|$d^X{8#x#&BkPP|6#gOy zn5QEDAP0GWkpmleIvY8VfpsIfZV*57x^SABu3t#LWAW8_{L}~@N4|cCYXFv~8e1^; z4{~sC6KNr5J?6%yoAzbV|Aicg4xji3Ibf#$gB)Cwlfhj12RV=o=u>V3^)=#&OMn=QZDcu6=s@HuC8`w_8sS|M1G>KKcLT z4m6=`?f{6=BlPqn2wMH+4y>q0{);;pmZ%N7E6!@L8+;&D;CWYZ@~}wqfnx>xO3&W` zIQ*r@A3xhzS=W=uGHa;;^obPBs?7c^wO+Rl&OJ5|Jyh|`*2{P2 zS>=kXLDYQQ@%x<)-VP7h_8(n~J^QbU&2@+zSNv}NdiInNMgE#JpgE)>XZV_BRntxT z<(=5?*gPeSa;t;F=4Xfe{GTd-OuGC0S)7$>wW*Y0l#DxQu0#i@ zWpzBkgdQ*Fs5t$5rttZMHSnWOy8+YQ@6<-exh&<@Gp{*g zniI5yA8wu$GqSXtD^=6uSTGG!yLp&hqy0q=^a7^X$U#V{Mf|NZjkc3#Hy4*u6QVo+5(jbcaj81G{Q*6w*V221Ac&QB=kKKco3(K+tpIND=`Ap}8E04nnCidKI zwut9~@~98`QAyMK!lqh!??g9DDxI7wg-3L$5*ZL-hM4W$=-yE4sZ3tR2Vi*aeYw%w zM|wS-FGEi1UA}_P8E|rWZrdvV;v?kF8GXm%Yx~ZIZIbCn+HAygU1yA9KUQ&7exzy67x}c-KTGUfF>iYw1l1X;5XrJ{-)QB<1N87{Z(ph}bnhGh^ zQ^i{I+r|l9$4aL9N6*@W90`{>T|X`>%X-y0=;N=yL)5)^IGnNJCFby1?TqqkiSnryk` zK8^x?6tSZwiex*$PU}=~2auyQq%~nikHE+i?X#z6ztDQHX*G2^5`?cw2g>Rt6ZNo~ z2zw@3UWE!6v-VIIV3lP_L+Vw-n0^E+^Zh$dD|n{kcg-H`$#X=)-y{H6X z*pY1A#5d(9L05^G2yKFWlK6fb`^=Y=#UsnC;n|XUikwt-Y)s0~42IZjv9*(QfIPWZ zGy1hw0OUwz(g#Tu;b02aeTE={>VSaM3Pj^bMYJkqjGmjKIZM%$4xB%{On&9#m&pOg zS89q1<9U$|x&@D-FK*@C%aRYj`esS6yL1)^c3e#p+j2U1lsKc4eS?gPY6^-ef|#P~a)j+OI} z8BeMmW@5^Cu1rraSHFG4C(np|#N1dV5+doHjB;i=enkuv%>1?g021 zH$iN501nsT+`p7=*j1O znJ^7fu;Lm3p6CjP!8`lpyjalGP}`M*@&0c`9te0dsVF!2L5MNgpTNXJq0&0y*}`W; z8^xFK0C2B3^_%dtI0mWNmxg8DppF4B$wV;5i<){t4g|kW>JwT;`UP{wK=63FoC`2s zH|F|EVPp%Ls&YQ*n&iP7_${b1fWqVCfTGrdF;W;f0low|Mh71Jh6O80M+s4B`!qo^ zAzrJ93<*CAfVemm@$V7^*}rfPM$ot}xoHbtCu={yiU_&s%Y-=L>C#S%ak>FT-``(O z`vl|C8h5HdF9Bj;?7Q%jqSsNa01nJ4K!S-}6zmX9^XnQ0e5N+WTN#RRQ^#WOa|=_H z7@+p#^B4wM4F_W{dsE(`crjzxw^qu_(E`AF&AeDGwr~K5k|RcQSwXFXqgh8aHoy;Z zTax|?2LK4BGn#)n+M5{t5gaARwg7}{lE=Xfh*n`h45>YA+)REL zgagFNF#uZWQzZ1*>&<-$L*zES)PUiTl=#rbfxF34*r|)R zhP6Y&^z#;AVN`uKau7-%4j$HLUr>-el;0m8AETe20;`D8uP`zQfa_Ct^n&z8%g-5< zb`E6omxuKyB^C|k7F{eb8cjYmn)}1x7RK=I!bp6KL2(D_ef|NPZ+!Zy|I(?J z3p0tQsLV@ayO-9v#+j$asl#W$C(}fDF7=2Tiy}BlTUlZ~JYic#5~D{6hB5 zG~!Q~(cbFi23viGr#?sD89utA@D>7MPB<`Q0Od{sZ6kl+(j4(=Em-~*t4mY-Xb|P; zA@M5(!Y0E-27KO9kNR8e=*|A?iNeJu2bxTp@-m?3#Uy@?^4eWNy)%BpOTL@{mD~c0 zW=*jwr}kw(8ZCMm#5Z0l{V_GaGkKW`Ian6`r9V-|{P}v@RO$Rwk9DnYMAZ=y5X7h%vSLm}r;!;(|Z7xw6JlrBvs33y}efvokMzep)=L z%O<6^*nbrcZ?w4a(a`lKgW3~+?h^XO=R!}4g^%+~K7sV0pIvtHFK=~QVjU;^7?y>3 zgaQJZb0BelRGB7ZmMO*J|34U-AC*=HWo zXpINZ0O|3C`pMkaFE`=O=J?Hd&8JfTT(K8>IgYowVLp2sk?jb8iJj)pAIO0Hj1yUh z`C>%B6QIv`&m7R?E$K$2a?dY_&ZlvopHaMWzREH~%rLWfRQC66UsGd!Q?&L0m^};T znRnSa;Z?&7EPxi*;XSjNe(9cMdGbI7f zd-L`6{^;q^r}9SCPLem+C4(}pCS_ry>h(N_W!j&vqOItcF z(x%i6C#gqEUcCBn^xD@Pi*Ki`($CKgbqj}KPf?ZLes`Yw;XJY#@^<6G!nSjPd+fp8 z)VBlEZ~uH{@7xvn$+CkO6FIICp~lR@?6<%rtLE5iz!z!Yy*kc`B;;*kVgZv|o%iRk zJ<6x*_SZMf92VUO2Y|&m&t?&?h5fF{Vrdjp@Xf@|C6kczVh3(Zi`-2@-*uP{cK98B zXhpyQ3zZNbbU5;6af1+R7yQoPI9kWe{#R$l{_^6{$7K@g=33o|W4EE^(onDfS}q}u z)?AywU~k{dY@)xD6SRp6e{*;#5k-Ah zjBlcKiiBanl2l${I9gRYE}RaMPOvUyaflpXC=SBpf-TMQke?fk`qj}IEXB9w(Z{O6 zIxG`OJVcHjZ))LuD4G(4Z`#<2wu4_czzhfMi0dfF_ACYWFgc#5`zI<%*sAV600HKUCVOtPI zVVEZ_R!J9f6%PrKiai+~e;Ma|(wG*+k_!*CRg{M6P$7!c82<{eU&b|axc&a+^~SeX zI1JL=>e-)F)FtN=PA*dA2bbRMlbrZwW5t5wJzktCOlWpfKAzhZXIZ^8dFztmEG6Jg ztmkYjsxyvIhj84Ce`Ox+h=~@N`)ub1##JM9I$x8HK7S+PM%~M^f#*Bjk1 zWX1x}9DZ7LE9TI5klEctJEk0z0P??&FnL^HM+2*2(Q5Dux&-jmS^oGz_tSVt3tqt- zD@fdgk*u2f?l_;OPkG{;A>ZQ}*XBI|E@Ak4RbsHocgXf@o}bv~|9p?%vGFmTJQwG( zR5z@A*z#($e}lf1srL4n(-=rb!=%Wwj~1ieufNS`o^e1*5j6(6wu%=4kH4Kles+~2 zt}S%lCB6%4@mUXa*a-A=bKzE$CYa-ZNt=ptWT4J{_G7k%2#3PQGp`k~z*vAJt0nXAL^^TA^I!M#VyXG z6MFa_)SeZ4pv+&=a>I`RwU=hUYUeEDFMSXCT{s?l`1?NgSDeyW^r^$~$1iWNdxk@n zaYgr`GQT)H6QI~*-#vn1yhBOroo{&8c#Iz2_r$L}&-2Fi#d8RuH)~DX=`h~}sB+HNKndudgdvD7mO~TEp^j(A{Q*WV156@s8et$hEDlW~#6}2W z#ELybx<}A>ZMlDwD0I{Q$xqu3@Kqd#VPve4Wt>|r)VFqQZsM~vDj@xg#@A|YS;OSR zr#a`DfnOYieJ8WMef7f_@nFLZiHoqCzn~pD-+igpr_z2&4Eg!eVm+Dh^7ipnw(-8o zu)xFqA-VIuwa}YEh5^{`(Px8C!Gc2$`^V?n>?gps;-AC?MFyR+4+^v&jk-5~`eJ-Y zUY%d=%k;PNzbXUu4*YPKTT4b<;8jRYi`))^zbUv7f3tSGpcIxCA0NWl4$0f_#m0JU z1*iSmx|tVWZXXX;qvdPhiZ0)(w%;kZd8_8FZGGBKo(8S_*iI1sR^h$vvYMUTi^=|L zHyQ{NBYA;Y8oWl}_yv${)gmlB;kSQj=vZp#!zaJ}XdG8ru_2xMPkf1V^zLYP=)+G* zxj*l<1xa}xBca~GI-lsjkqmoqEVL(Wm!2Cs61zLr{hPow(Es);pMum-P*^xKz5o{< zi4QLz?asJ{KezldefUo?aoedfaiSyKwlRFa6#wVh+3=SAU4$%=c{rkqC*qw(L<%DO zgMGxWYrEnu5z7h@AK78T6XEx4d^vLS z*WORx$StA$Uuls$XZN@7MebTgezJVGyB665NC?{6-G1oefqhJYASO&Z|4-y#b$R{h zaQcypnR4zM5(e2Igow^^`r=sjKghv%sfi-hppD80ElkZwg!q|N_aD+zl?J&=-lIQU z4a*dhRhvA1%D!l{>9`Xk60odYZ#$GJ@3|>wlXcCGH#MJ)9CZ4BlC?YDF8`X19Bh1j z`0T`Ntm7ZvzhMH)if;P)2s=zr{E(ltuKPDkSV|_CH*=3Ev%`e)KR(~&w!SY<*ITmh zU|*hGnQd{sdQ(hTiroMPy)WV_Jj-JCYV4?=-(`mhnB?~s-*&fsmiD09_k8Tyz7G5o zCKUVsV!h*x+&{l}Zs)M=6*+wK&+bm>@swMksu8~t%2b;_;Z=P$7(E7H}I{Z&1#Xq>M+R#$iDi$!g0 z{f=xT4|}6{Q?u5z2RlqC$gJah+I5_E?56?dZUHpZORsNAMY82-RHaw*O;t5--O)V* z`TK&J$35=9KJn>A`n6VRO**TbNxKgswjgd2!DK{omzwb6rtnC{4F|=XwKPE38zSK6QbfYN!0pjGj z)0&*7e@<9!Eu1^`H%vG^>yUi@%$##!_?dZjn6Sy%8-=_$UON1L4HJ|XV-H3sze_y+ zSowWS)&@fAF*bHZ?Y&im%2K}PW0g$S|8bp zx?*8}{sg;cxS`fJ1A+X1=M4Y042fDnY--`cg^T~GE&TtX79y_PBwq7z&ie4ZQ<(GtN-Q<|2hl**)seaGC2Q3EwC#F6}J?&vtZ^yj`9fm zS6k5YO84^es`AQb=M0(N$^WZm!21@kLk9f+q!wELp%(52P?Z8(0|P_Y=EAw4d-1_B zCqf?m+cKOExqmLC?R>~xIbMA(gUkWSp2}@*m4QXL1|C$SIaDkmO=tsBz z>ny~?#1zHk|4(WmiJdc~B&XCQmpw^ty`R#Uo|;i|yC^CxpN%ZIXWYA%^*Adlt1YYP zUu2;=r-I!wT4!oT=W3qz)pqCBwfodBMm9{aiG_!a50dYWG~I3e%PY`cuv>*{Cc4AWf`YhCaAAN9X` zG?&{w|Ehbs?(sOgVtDkpKZVZ9p}%K`4EOv0Rt%Hq=mLHBy{~TNGAAdeJKE*B?Ru~@|pRM#gU-xU@MrGl;`}1x)%zc>SnUft3k&a77d|h(ef$3wGO&3CcEYf*w7RtPWnlR? zyJcX946Cc()>qf2zV7`SGAw=jv9`9pwf1Z6zgmXh?3UqQWMO;rFS4+>yZ@g#L*3`G zi!^FaG@MV?c9>Sy7mqn=P^8yfK9DSY(qmz`xnd{{i+*!ZMd@v~3p;067;32+%f($E zEz-}b9xYV9@nvD8wPvyuAB_|df$(aBX*;Z|$AAC) zZFV$iMb@;M-=w@UY2~H4|EoLY4?Dg}KlbH3d}6obtBgg!>iVy_w(p-96^4`ZqP5dK z^%s72%2(-SD2MfO?Ju6VFoKc1QfXwu>lBp!>cLprF=P9YufOhAoicgT5%Tjh04mKS z1bxWD9@8h6CJ+OR^mt={4~};*z}ai5lonL zOL@|1fQcg?7F1TAg0D2W#xJuGltqyri2jQ$@PANQZ=1fHscJ4TsWSdRhna0=5n^us z+ZLRv!Jui+xNhT)a-W~t9nO^Nhi9eW#-r*cx3LDIYbN6TqPw&^ zu~PTsw82L!ocN$TTJS4|g4xqrebU*dRFkmTVMlZX?-8`3vDsgUDEUp9j0Jyf1o{+0vpR^O7M-T zh87(i%U#iHG1g$}wG7FR41qF@UZxnyL9H@u_r7ZUmjCTnYQY1=TVrFD(TA_d@RPn zSGDrTz7|quqJL^ka(KCrn3tGnBiZd4x+QwA0|Y=;a$N z6Q`RiGgI2%Zr->gKC)Xhdb(FH6M1Y`kJnJ#{$$hdZxi7!p347T$TT>+TBh8@0WLd5DPBdVHui`cCFxh*=*7A(5YgR?q^o*SE-Q@Q({1=Pg@Fpp3SeGd zIU~soSHYvZaj_tCu{C1&h+8JsMng3NX+0brgiCR7v)WK|w5_sAsj;nXx4nMBi)FLFC(V^og3Bpr2R>Q0=B z6-BTO-iNKll&DnpAfI4j1^6{N&Yn?38ZfQk&-}O}1K#7Su!1Ky*ZUM+gD(B4eWBXb zoMu=1-tb3ytQ@N>H5{8L+@Z%%XNhwjD&SBkZA3_ON{rqaW@THX7X>(CdEK4I%0UR$+nUx{KK|1l#q7bEl?01zz_zH>3c>tagEO(vW zC+o>fRZhbz9t2)X)9Bg$YJ?f7&d7CVs$i-OAyZywY?t&rcd8a)Osr5C zb<5Hnovt42uO!Tfsb17)T%J#ZTRp9}=op>3d+TQdaiAU(KmSXfN?4`-owPe9b{f`Rpqo)_&t*~bz&2nIprXuAxop?K=`8UsuoL$NoAC?X*<3v+#RdyZFzEc+l0f&)jvb8U@NYFMI#@x;VHb^fs{8K?xis$PXQ5be(dk*x=?@Dq+w`8pPQ!u9jZJO)QNQ0> z^PGL~#EW=fNxSE)A~fCHk&6wli~M56Xqfq-&1)&B#e|b$C|k)$@b3G|?j(ajyKl9m z-Pw_SK~k~ignu;+d|KjIu)&Xv1>qxC`;PlQm`K~$$S}2C+M{ldJS*PVTMGN6CuA@g zdueqDX%~04gY_)S_-Bb+_>`yEr{~_+eta|T{z4oYnTk(s{qWjp1(%{4^W@Ox{g*)> zs`8NPq;oF|YPwg(oI_vr>;+c8_c|P-{P6X9QqadQ;cI4Vq2pQRzsl4MzoOO8y~|MF zq`=f9!=I>4h-qx!NwX6$RZN^!nOx}oWwBBG>)d!`Lrs&`@=%|GnXbGM>oCqKMPJs(Y9f98fzqFE^jrjO7tdojlU1T4Db2bK2!tt<9 zQuGusO1YDmW9fhPS+vphuyYiz1G#?W>R9W}SkQ3HWo4p?UbtC;f1yyE+}XHu@HmJ+ z$u%MFa82B%d7Q!fxGO_(q*_~ly{KSmtc6d%US|0wBsOZrIvbI-&bQg6w`z zgt?XLlQW6gdc3c45>nviw-ZA0gvBD4Zx-hz{%lK}8M^5!oy1WaePt`5Y)iB>FQ_RY zNl7Ou-7PLiI=N2SUoDvYA}FbIi`XWdT)iH@i1ky^C^tuX zki5?>B6^iY#)eZWYLlidlXYOn{?s5>ah@_fs6$qWLE<@~W#H*fwO7NbwUxmd9T9VS zBF!}v{aM)PS%OF{?^BYus9Wk}P};_<+>g$rqOBC!XRrlVcmTl9=g#d;lK0rLRF05z zM`gk^A?=Y{(%D7s7fXn>THX>SiAxXaLF3qCzy{%I(7FtZ%=EXyS!E8fnEkoyBnyXx zPK)thu@aJ5K~=#Im2Yt&TvZdTZwh8>9Wd9aORuU82^!A6G?yZ3o&Cc#i@Kf^XK7|W zmtcv=VQvL$1X~+!=RCTQwHch<@+rqH#M)y!q zxfwM%;RvzI)>&RE#C5B@G5iIJmUj*oY;XwPfm?%ex|<2ZI$?fIibNI-s$x0 zp!U2%70F=h1g`_W^;C)?^ZJLHl+us_YDR&qX1r4(pFkb&Rc6?uIj*Pl%s)eRPnig5 z3hx`jolDAvZQDZk^Lab-t;1ZnAS!-bL*!3+zU;Z|%{U5s>buffvU-262)I$ShbgX# z=bNtM6@aC`5ccE!6v>sqDd7&E8Ig04)UN%dH!Mo zZ@EN=)s>Drmh9z|yWHUtDw#iA;jcfTrxAYdETi>USr(b4m{B#}Q8wie`V?Eb2jf3c z%PWt}mPE2Ousj1w`8CColRKiPk@?;aDx`LDvj@ZYY$WqWuBsv{t2DF9YYNos^OWl= z?VeRcZC70BI%QTL+7Vo3kX0qMoNPOvr)86W2ASaSMef>{XyUDEv#I9{8x~0m z0;m_tcfgLd@%2K9w+h3Mg6S_y28fh!me$h$ri&uv2AalsAN(X&G+*bqUdK34 zZ?9Otx)qU=p2Fo4c@={?k_dTjfzSx_R-+=Fu+*dV4fhN9J8zXR<^>+9`f1f7>7yug z{7DZ+@o!z%mvInHc;ncWhG#nh&uuErKq1>$zj_>J4z(#Qp?LHKYy+Ah=*~4a7};ji z^x1}g1xdTg6T0>*eAE4|7tDAN6b2Sk;&7{V@&A z8jE@NvKs>DbB?HqfkRsk6t+BTZaM5(eZn)3Z>8CMA6a$Mu=SQfwc^1Vl@(E3A*qwh zxwKU(V&SM~;Z+4!GmHD)r z*mOuUh#AJW9DhvDFS5Q+Xf_OU_JLNyNyDw0C_~8?zv`jTxG$l)}W-`@Wnix zTmF}9`3-CftczORMG`#?1{~H0f(uKo7PL9aHC?x(?8 zLQ8<{klNVbSqmh4Bv8V+2W^IQu< zhCcXA^{~k7oqJT#(Gy*RF=4SDc<3q>sYd9X%0N3KDCFvxg?P@dtTFyinM~`U zf(OA|$G8(99<hU z-x)QjYjR65d#mn)-!|~R!*<@eiEbkEJs@(+@^CL%q3%=pcIccLG$@OTzJo*W0k{Oe zq6=|o78CxCG$nC{z+yqgt_n8or*m$qGJ3BvoRtas37l#)jzQ{#x(TX~&bdcJjxvxR zNqlSU#=(!vlMI)%L($odLo?DDz@-A@^d`WFEZ7|~oW*V&s9bw^lqU@_%Yp_orv;@@ zwd_?r7{m^h>oE;!OXpB->Qa3g@(T|ePvN9O`G*+L8UQ+t28{r4*%b307YlG++zHI&UPEs{w${z(T#SP#3lb(2YzWbN4ZkE+p6_0qRUdh`1nL5Ug1w zjtD&JE&%Dp1RK*{dOT_k@?uy#gKDJ169Mp(7(}ZWBWHkPh=$C-qtXE&T|9_LL!Kl~ z2ko;X2Mj{S1p1hSd`yHml3;fDId42Fg8-XlKoePDb<8VY{42pt*efEUhKfGP0(%3X zcd<})>dW5L2mN*}gMavU=ukc!)SJvP@@L@@fNO^dPE1GSpb;64(EE%_~G30B{Y+~Wr80>EWh=t&aT zI+Url-rqNHSMwQ@gAFt={{{}l;YgitU^o#f?*oxc2TP_yGzh@Qgm>(~;U@m2Cli^* ze5Xu=ox?(pFu^lS@DUuB3ks}&<5DMs@O#7v9N01)v9k|g=MCT^Y!-`MIMBF_Ptd}< z?_VrK2NM4Z4HCFd>SXv18UE)Fm;%@arOdTtY}gRmep5y}F9dFjh#q`!>=D=aLlBvxN`hX;0F~)bIBq2Y|Do~(luG|3#sVH@g0L(=7u#sStOSvly%`+WNgui`l18^r-R-yzRK8sj`iZ-Nrym55EVQ?g#^Xmz%Bqd zm5J6M1HP$qsgQvidqC_y4M+i??Jz4Y>F^yal!pZ2VS>&PVGn%(I6R6y`PTawz(WTj zCs`ONs0i!h^J`x*bmXkhy1L2OPTlZDAX+bcR@Tv zm~Q&lSGU)P7KTPd1@snw65j%$_)Sg%NSXLg>41ZFL_pS00C^d}2A`jtgbf$k_i+0i zQ4Cy?3F4&zTGD^3hG#E%855Z3d3KNn2?)CKN1_yUwjP|kfC zfENRd@r8g%>_`WE81Vgx!taOQKy0}|g9u?UIl?0W4*PI1z%KnQuy^eb4+c1h#@ycJ zmat+lHDeG0C!A&(i`vnSQdk@q9S0HO_y2&WYl-Tli(j}cVLkOhKU>E9kW-K^_O$7V zwFh$2X-hqYM;1R?5z4_7QCC5^W%jXDi70rYC<6=ZgCTU(KImoefNo2q6T_5`2u#6X z!h&JTbjnP88IQ6X(ZT)W)lON-D{aE!Ix(qY8YjjNyj-)VQ#jCPW;dLTB2RM9r#x&u zHjh3LCwRW#2iHM%@_^5|72`EsX9v$-mIeC4o^l!mDHjIHbDE0RnH=4>Jy3|yW#nx<{Ae~wD=zcu ziRLA$wtiQ0eP(J6{a!IBZLz?fCm^+zD>x5TM5N3 zP!EI&+DftUg{y-tY#;Km;Ck1YrT{%$oxmN+- zZf^mfOI!-J6^babB>@^o6)h~qrTYpL>Ln)rY&m5ga}v@H;wvA)sMfAi--P}VA2KF3 zy?@@u@rbktn1)Netc#A6e`ysrcSD#_rkpT)?}(|f^oRYjiqRg9?#dUpJYQKD-=v!J z`QPNUU7jsVvoW;7H~y@DuL5gVBbqF4GPJgqV+%d<2or)NRdC{iLn&V}gb2X6Mh?p` zznn)C4CfDS-;WL3SXzZjuYBwOc5?cK*QmDt8dT7|JLekxkw`^39!x&~OJVsNN{jo& zdIbL2Y!dT5aKc~CQdo|tq0>}{UY6RM!2Gm3v-LC1U@`a*c<7J3v>F}X2rbVn-u(RV z*P#cd-C?^AGH+RO-(WsD+F6H!AKKQ9ve&VByL1$122zvBqk=v^(Ljuzc2JN#ocB7~ zmdKz z;2|UPXNMh3^#vz~?)5egC40US7ap=2EcT|Q>>>}@C}XtFsY~2;GO6%TWq)z#Udgha zI(pdj3b*{8?2W@L0t(?ijFuk*I@wym3|+OmGaA6U{EJd(r4f~gPnr2`&I;nwBgdm4 z*^+ep2KMA()4frj+HAmah1ql6Rm~Z^2_*_O`?>&?dPN<6x>IfA_R~cGpT7jqxr}^s z{E;(8cHo`ET_@Uwhp)YpzZ~b3=&?@MpOTTC{k(Mk&s;mJJ()t1Ii~bXMz10V5GfD8 zE-ZO;I9TNCg&srA^V>qafm{i(e*NYfDN~b?ai?(aBo3?8I1;|dt;!f%)4yM#6AmS< z7GuOlUrX(Xm7d!u$E-sROp~gkgpcIq_i_x=5-BM7R3=uy-E>iFs)K(zZ`yhic!d-r z^dP(JjExJ@pCqUK=Be%mU&&tJmvoYs1J<6ZE4hF{<<+$d_|ON=FO$#QTrB5(DdD2H z-)ZQpYEF})d@;bg$MDWFI8aum=95`7`>{&vmuptYmipU0>mNvs)tc#?s(2v0s9k(; zwm}0|hE&RP=lO-zK6#&*BFTKmxviY9NKTr3Mx=vMZ1Heo`g9L8S0Xk%QSpa%dU;$0 zTBO(^*tTCmNDm)aqej18SZ+R2-V8oLO%jadxMZRVP!p5JAKIV-+!F7IFJSxd3?f(C z0Y{-dhIV6$3398POXxy(70{N&4|OsQq@ULtNa?X%lH+XsJ8 zEW4FM8@qTYyf#L>mSTCcZvWl=trW75IzJP=_0kFMaM7f0U7q83UgzGHMP#ogRH-(~ z<$#o?kRYd^kTjLE5pHs`n{lYrNJcha1`V|ZfE8FeAXg#?nDSGcE9IikNmLAvMa`Qy z!ch?|4}sGk7SqD``y}B|p*!d(4mgfOM@$%Ru_|4Oecd-@jrw-S&%qWE>Ig#sS~UV0 z=^p7+%gc&sz%C53bNkoR-7f&t1TkLF$~^akG(~KKNJh~|CZSfB5qLtBfDQn{0nou_ z5=&1fOmpFcqXV`%qJhE`0d%J(5#f(EKLr-bKH5&|2ut&N9fKM@t?4eryK+Lb=N1o{ z(&T3cvb#vWyx+ao&KYqONcHZR9jYd`2#{iUb?C?JSW!Sc4yXqKak4omPLkJCwb`B# zI04RPSdVBrRDhg_yc`Wh~riVaF7l?&AWh7?i}S2d}t>; z+k;};WJO3Kz(TkOAVCHS&H})<(G?6)76q;TZA=Z|_(8502>QlMI`D|{Q6X~sj!6`^ z=5Eth(e0eserWL7{QNm;4@r*V8mf%$krc_8l+d+mCOq%SHCF?IKtz-)x%Yi zk)X57M0%2<^|ZfnB(^TY;H22&FPI6wG`pX%iQ8M{%9*ay;_pS5+5ILtRyC#L_(O7=eXh@eB^0|3Tb+1~t_vYTr*tr-qIK(yM@>Ns%hO z7pY1Ylx}F!A&@{qFVdt52m%69LmODA-YVn9S}5EKLz;f=R@@Ap3YoadbL;hA~9 zWipw`%*sqw%KBaZ0#}X@7l>#~8Bha|piKfI3*y!~u=Hi8>l*gA{Y(g_)Cq{9v5C3($iD=Aj5aU9V}G^5PZ| ze`W@wFN(Ex(Xt!FjeP~hk`k2L;?I&HVHiB89Z1ty$*BwKI|$Yw;FQS_3T-$GfT*{{ zt2cq8$#{JNSX&ftvXJO^2vT4X6SL~Oj=}36Vr^Ko)%LUwJ2YXkgmPuLrZ$*u5J$-+ z_-TNh7I4NSh!q#i7o!_X#0P|dR4_0~uR&!YQDzjZJ*X9Jmmm+oT4N~p-~y3-`h(z* z<-|Zjzb62i)sh%UPVnv1(KCns&NOWGa_#BFQfc2J!os?s9(H=sVXy#Eyn7VheP+O~ zSUU^}I|)GPM>2&oC|KN4 ze=ky$a3Rb=`RN9G8`!sY%dpL`wFSKpA zP8**`Tbt_(t1mXJH`Yny7%0r)kC#Zw*n4?r?`3)4a8~E=o#2t2Bg4nW!)Zr`mG$_> zV50yH*wFXtTor@%VuKb5BOm3F678WJE29Bl64fgR3x1UrBE9 z=#YeQ?~^k|1jGW0d&AVQlM&ac2+eO-}R&X8Seg0pH39 zDK#zcu_cF_z0n|oXZ6?JhoK4WMZQhN5@J`)6_`C6InZ$0S#v&Xqn~obguxmcucVZA z89{5y*sg+;t~`+v%bR4VNO>a4!hE8Y8`?0rq-iYOoA9kAKM_8~$2!HYgE%pCRT$5) z*xQ@xcAJRnf&j_5YZ~!to{ciO6SA{JIh`aaAy&y>#)_=7?3Y?Vk}T6^r#EIITV~fsXJaF*r$()uf6dy53|aSEyY+KlwH|k0neli# zY_KwQ{aLkR0>P=o<|Wt$&17RUHrERt;G)yF)UmnoYtGwx_S9R;KplP>3rKM*|BJ1; z5TU7?pJ#l8X2SNX!W-sqPY+!kvz-CkKIcH*rpas$w&_9IhW(mnq_#WZdNkkGWsB9Z zOV}FEL#s;&5mV|qhlAv8>S zns|F6TX-hys%WB!A9UwP=<+`P7PnE3Nts_XJax=AEt-DVE0I4g=Y(Ycs;S_3Awy?6 z?-~&%n8os9CeJr1Q#@_*n&0IOIolK++cDhbkc7qdy;1rQxP?(FD2QdJa=d&DKFVEwi;@bvHRiW#+Mkdq$Y>utSaYIK;-Hdj!+#e_>ti>i z>a=0vM0_?p-7wmKBRp?IY-O$n)j5fTvwI`)sb7Z2e>srooN`(1%nS)?<_WDo3d)bh zoO+C#k5&VtlX7$0cUc$VxlI{EuwbOvQt;~=6?Wg#%CV@#G3)%u!Pl9uoR1+3WRJz~ z9$ZJW&O;_H50Y#e;uPR&N$@<9^ZjKgWtv69Ws4jBA;jL*-OeKJ3GJK zzD;vIRqA^Bf$N5(A@WQTi_O}4*sEL3B+#ns85{PKkY`LcUH2bVaj_xz&bVRXop=4* z5Ww}=%Wfih^N?fb_?6S*-$c%q7MvX~kvQ+RZ19?f{>_PkxEojT8CfZUxa@-vW?kzh z%XNMFH-~O=Y_rl%Z?-j2LcI{PE{GN!DMQ9dqFJ_F9z>$eHm7RTa#l}jz=-LZ#Y#lJ zEUgyDqwKCXD#vH!>2;}gF+eBy<#0r+tE3>uEsiY)WfU}eAzlar#V$Y$fg4M1FhMeh z0}-n>cuvbRQEdw=YayjvQ_xXpB2xysT#HjXd~4X{(c#UiEPBlvN$O}h>oI;Q_#;TU zYjfrz6^{|ZbbCW>^{V;f)mNTS<}y}6;J_zLxqGPl;CIuwVx3WH8AX;AT5By=!M-*AOp7IPlUHBYxm(ENt) zs9?AD^qgt&%%X>xp*HLoWn*i=OP7~Na@+zp1%uRVsrW#GD4@dv&|wvLUJ{P-Ni=M$ z%h#ad{t8Q0YdE(AjJw8Ut&eeApv){!9dBWEwy=)8AaBn^4o|4GPog~s+?cn;|7OFn z3;xjCv*|hB5a7*FR(x%BGCM}{>wdGExtG@Y#Ex$;GhRs(;iP~E@6SDZ|3uZT#|6e* z21N;Q+Lz18)ZipNH*I&DuOR^o6!j1$uS^EF{fN&LCfK7OX8Hii_om1Wn7lbiE|ao= zIqh%mUH%DsXSiVY*hjwLiOi{ulkmr$BllQkn%q6uT<(@!yGio9ssE(Ken!(t!CTZL zhr_q$TCv%{`wQC{ktkfqbD1p-pV?!N(zl!3V{eDLE#-N^;JOw!^8_Kd-$vMtJk(mB zIb65oMzF5!&vgI7QvY0O-w_?(HPo#aD3bU!;;+pcIW^n8=jjhpcXGDYBeVU%cU(?N zoePDr)YcH@u8*3l@f;i;*%&lBn+z&MTUwA$9$Ymu_l-1o>+TPg=~{-Ft())%Fgv@7 zUL%3@2(3MkN3W=mRjl%4@+tK=gYb4L4I2+G7~it^TvMWL4un23onBd8%Gs) zzEYTyB5Y4aFMHW4NJSx7{)S1gzS*4W7ZtZPtiFPG)9WscCx$h3Zc@x=b*yql4ZTI7 z=64{*T{y>r1RdT)w}J#mQA+p^Vq5^R5DB@Yw{NGnZ|%Hq$q{n3 z3w(6>y|)wY(%D2uRHBE1)b$(R+|W1QB;WMnd3F5&?AEw%SsikT=an0}^_z#=f{MJ} ze75Armg3B$qtex%*A^nnod7lmOv1ydQ;Ggahsb%T_ZHNX2=yXDJ+~4UyF$A^hx(aA zJO}ZP3y=odu*la3C$T(-u{#HtgI8!`Xg3|+bC3-)pV(KD7MGEjz7v`S3->ga^X3hY z<_U|R4}CEj=3Vm@4S)6BCbY2Wd*O}NRI$*a=N6LZ;a?kMy2~4G!!O_6aSS$xRoX_J z)5C|MBPeXOCLdeozhmrK6Pj+25V`KPjqPOnEe8{7S zh8XE@;W7g;+v=y@Q8~W};S8~EZ;?D|rm+XrnO|dLzh|Tz-iiHbmh|IA z>@S`NyRTzUVDMNf7?Xr2xlHrs0oYRZ5qb4u{1<-yde2?{fz;Cqf&YOs4Cja&h`VnQ zdHUj+ZKvwJ{=peOy?^L#6idfr$)fmG zn_u4FBwn?8&&Q`JhJ5O(^L;nf;B&A&(WLE>*Z=W=vS1L8_)s-`5{g>yOJ)z1q@DM4 z9>^BC^uTv2z`8w8A!z&4?WQZuw*_LQ{C>zejp8jH`hTXViI&Fe(+^gx?%#jb;`ep? zbCIzBN`S$Ml>d=p4=FKJ;KufH`!Unfq-hEO^Sgqhe;x-j1O^9_2Al+MCJo>5QS0dE3pL~B{X zDQ{24M9zpqS3FO$rz=6AaDkFoxG(CGeD>$LrqEIo0GGh-@zBAC-DbV?|9L;m(_oV9n-tDGwlC$*(lsuYJ-^F2)2a^&3H zzE|G%D?MdVcvWUgxFoc^_Fl02T>Euz^tu?&ow(zW>f-p*-qm*!&O8;pf_qRaayQHW zt!HVFVZ?jO9I9lo>SLiFHB}|a_ix<;P&x~iRi_E!bt;fYX4>Ct_5z8_yd-XB!{nbk6&cHwh^hjbm!qeX9)&-Je&ii#ht#9Y|c zSf(jUm&;c(C?Yn zz^5;hHKq*Sksp5f^zeo?^QF{!6_|;{N7XNbz4SvuMNu-t{B38PYBsD{f>NsVTk9z48}lkO~(o zb!jo8Y|=5)|2t=B9-$nWM@y7L(f;xIg`HuuSx?Biz~qv{=p5pxQ;)v;qR3ON}?exJv%c! zgCZO1GwxAj!{0*R8(}osJgxAp=loY5Ctn4S$HkpHRb} zN<+=PT8eL|t*-vlYRIc?t*fhlSpV=vedm1rSVF@{O=J6S+|WE%PN_OK_hhvU|Hn`R zkrHb7!x}2u1}LEh3Tue#*v{&BRoBr^sWkL=_Dy$Aq&?gCd!?cCd2fB!*gq=`qyMTj z3=E7?d;_J@KuI+84-rd8c7{i${w>r%Ni_6LEDlf3J(&9Rr_w-4G*FJPAFGXzpyKm6k zZ5!(&WGO@sAWzmzi{O6376sr%?v0zaD|8g`3&i;bxM3ov${H0d zl-qw&^D6u(JoVlmUwSH|U>AXk?rbJ7TChxNDG#@T@F-RD?nd4-if{U9Yb#GE>p;ah zR3;KVTv0oBn=3C-KOZJ$ChDk;=ad6eMyq4txv$8*HHxF&yucWQ*&*y ztWonl*3gM8aJkQ4}?kaE5LF7?s^mFiO#2CaIK=My4M+=?$vmxF9PLAFjr@ty=8} z`llI;ofztigFcL!Woe8*T%eqCamY(ZXC4e0aYf=HwJEAcfOsuY*|?kSG5I1-ArW?N zrknQqQ6CF@5~q+3Wc~X7uUrG=ms~E0On*~lbH%VV@$+(W!4{I2ZJ=bcu@H0%j3mB;2TWH?%<7lqJjsyU5Xv7<7*hzo%5>=|7=joXPyQ_$@%GUAF9teHRm$^2ra{>cbI4KSYAo8BcV=WuUS#T=t9g53SR74vq0TD}%_MMV zNo5W3K+{w6&DA>z59%%|vFOLk`G)iC6)8f$ zJYjO*hUfp~8%Aui6CR3rnHacrEAeJ*zpM>OlTdl>o@bej6MUDAzqX^9F&>e3ruf$< z{f&UdslsoqH71l?L*(K_#N*cNw9iwboD-2JO_}vUvv1Y(-LkXwb;KcJ4Vs4hOmn9X z+Ui3P_FvcNZw!BHxBT(h%kiJNh6gvFEZL8_(LGht#9vdm@ahZyLFbl9W5oPFa}75< z9V0J?7C*8Tkgqb|*>xnZg1Nz`^z8#bzNXrNv|O|HR{P=O5{g{tLQ0LfNphyc>jb&J zQ?k(tpYjn`gkD6RA{dBwuAx)GPq<72obJ1J`YW@Gc*s*<=$OjJ4uZI}_@t8p++Hsy zU|S*G4T;vq8x@!Zo*5)$T)3VgJN4l2zQOz^UYY2s-Ty(5D^P#vlsN5Bjy@Ip@m9dp zeMb7ww#5@}yYz>}?~LCmFa0yua9wO#>tWfxu)J~e#?Jxk=LFrou=e6xT2XvlW1XV&N zp#H^bp#U4hpIY>#$NOS3X(_VBf}>+hFEdj{eXHwRPTv&`wxXqc+>JTafERsup#_yK zVI?r#dmPfdBTefrOVc}MdSG43?PqWHGl6DvNbF)mwy8TGOJuoY%VDmh~Q&Y>*4WY<~@1#<{PdH2M zmAz4!d)a}Qx>B>pB>U{Wysd0~bvy&tSCtKe{Px(m^!AOAYmSui6u(&^f@E@vy79 zeb*{N1t)OsJMPkIf9gT|?1gi|eP>sR*!hyp$iNKQK~07kdf0AMYWNiM_pd1?(c3nS z+2OARxvrC6@`W|P*4y780~ekMx-`m-FFjvu(~JIm_d=jU@pp)F+tA~pfW*Mib=uy6 zgcB~oNrVAzi8LL1oOqY#N7L7^*T-96L#vk0T7um?28#W+v9D6QkZ&$1o1W zD0JVvuMk**id59}3Pe-m&12TeVA*5{9zzp>hLh(d#`Q4bi9u(sd&1iyWnck@p$zRa z2v4@y-Y%gwBEo1o?#!So?_i*qbo}h*O`;H1*3(tKEl4~L%V-;>NSqkpiS>?WHW!j_Lv1qnhZHk6cR#}Z)!d8N+eNL88)|P0FwSJDNy`i~SwB;h+%0BnkR;p%gQd(QC z!{SBT?}-Tgq^q}+^-krwAi_m&=S^B!^rF^Z-HUGm7F*v+eWIKEi2wm7Q0SmC4_bDRkoL(w^tyuP5J zV@;547g!rF10PXx>q*Hnq99qUU~CgfBBlQJ;@=;rn< z{Eo$XNyL!E!*F;6x_onv`LKp*L?oSox*W(~PHJbb3$?#E>BEbtaKC-Wq98Z1rs63m zcTKT8{AF3Q^=;G#E~fUd+lzTc3KdE}SouFx;7?T=%2uik-_nh!l(?Uuahl`2xV_@j z%8Izk;P-h}uOw_D@`?(oR@(C<3oDJcsz#U!TqCN~4evRBNJA0e;gttYw~5~vD!eH!6!z+_Z3M%LC0*aiVHWci1M<*sNi?P!o$8wx zg}YpnkGL29DsOz~#<2)u@3CJs$?xoKaBn80;sd>FUhKocIJ5h;CIK}~Ln(JoS8poZ zKg=`gpO0Q^ipnSipWCWtXRm8{%FU>F{#?Da?~=4oDBAeu6^P8(^6Zi=Yq z8?Ge`S8*v*zsZk_iEy6n5)vu5bLhEtd$?gbtNwNStuH9LUh~Fiulnr>mbmZqCCT>; z3mbQy=G9f!yIoEIa5nkgzXMsq!_IP(4ezGwRfot|(T%V&q%=Br=PM*Pv(m7z8&w{> zYM$6_R+OgQBV;j-xNf;5j4RPjh_{$)wmd3el0fi!oJcb<8QBWoOgx>;w2f&&{bZ4; zV>)YBsE4!B?{N3eZq<)$HS`HE8)-E?`)KlOiPMwNG1f=Nm5)p~>F*vs)bwH1Dq<4$ zNo9G8yGl_D0n}*2de@Zt)ysAMOzD?;B1QF|DA(azzdhEMetgUB5gtw56zY7sE$tPo zHIh?^W#kDp`x9_SD~ou*oCxe~XvtnaWDOH_3yPg3rCsB^eLzHnEtPSNw29nqx=#H- zJRr_9v5-B{cjW+5!VCMQ;M=cP_EZdEk9vC2+;)%VNzGEDQUEpUw}{;XNashcy7^4V zJmSKp&l~&=y6-o7MPl2K^vWn-r7NeO|Lov=*S33dpLvWIun+-_;7xhJ!CR*nqd1Lt zmIr=)50*Dao2wkfzCgRoPQN+iGd%TdwXTuWk-)B$I?D@K3X8o|gYmq{kT_D#sQ<8Q zlU@{9f3!(oa-k;q%G1@4PsAsqvo&IryGm(pcPUxW(TE~6E;L8{e9`sOTj_h7(j=li z2fTa_b`DkSA$s#P?dju@9#Qr#^N#$bI;-6FUi;*H74av>%JUMj^6n4B!Vychs~ppg1K%qDyJfiB~K(fz@A zE|$DJCf_1I0RDwD8RB`*OH4%wpE_7w7g$h$%PVF%ZS$a4WeQ(=}q* zR}&RFRTlF}3G*5mpiqWpS`K^qM}JXo3!QqL>Cc?=m>MBmHv?YB5G? z2NI3aF0~gD=179&l>Ighl^Ehi8MFvP=hp<&edY?to3hbB{BWV`LsHw2lcoJwzNgv* zVmjN(d^7@R{WYk`l$=Bt>^bkOm?|Q`nyrZl@#=y(qG=sS)0AtTPB$UM)?jl)YBC1y zih;UnKm*EV8!+$%bJ|7?XfTG(1pxK%bG_w4=MG_T=z?tkXv#5AHNbqpuU_B6KGY`` zFEYgyz+=rp1OOE0$l&e)nI}@`Xwc^pfqEz^M9F5CxeudR;&T4Jth{NSsW4jD*6-fT*TfZ!}$bCXF;16odx3 zYd{?}=%X~Ci%94xCs2PE#B0noib$PIq~7BO=^;U-NT@sttg`ev>FD)1q*+^&1m%Ug zx~yS{kZcobm2D7011b~)7R3CnLr_dZ6Y+Pn!M|+IpG=+WvaW!FT|h#4NT5X$NZg#( z=?n;E{@XO*p1DSugB&o3A4m{462wD7{Ejx9py_ngSY*>!exP75UZ@+2%4ZuyC}T)Q zy;gSt*p<@g^HPa*0rf~Am(?{G3K#&`qFi_rWR8$-+EnC)G6O)1C@P*NYC!;y6a6mS zbm7^fL6xkwD_0T|t_8R0z{JS_cL0MlFA%ql(9Z;jnvd5%*;0PrQ>T&+jsbZ576l;B zOh9cqyu6H|=nPaS9n1xw;w4gXlL74{23z!pV8E7F8N`kJrb+6fbS51N{jq%&D1dnv z@xU%Hj7-jTZ4-j>lzkfA{*-X$vjmB5?hH#>49gD;7={5WY5)|?p-6L(I~i6^kqw!E zEhk#VOyDPaDsBuA17Ns(g8tx6kqt;nLITW4q@wKTHpc*@DYBsn*hY~JO+awt45u)Z z1O1kP2ZRKCMxb`pCWkeZ=XHS$icJ7s3Vk5&GP(ft$go^Gj z3 z8yd{^a4&vbAOj_u4jI{?%%r`s)!(u~5w)N9f;T^7U#EQEfzpNG1$i_9Xea@P6TqP! z3gCf(Dgvk^Ui@s}`6x*VIFLbl00z6v12}OX+Xd{L_{l~3xkL##V1T_7t`y&Z80<>n zD~CY16q%Zk?DLXyfS4=?Ges$?0YFg=8Wh#=+|aC^T6A%+m20ALgF(Xg;U^2#&@w6PCT{C*;WZ1_k;MF~l@9BP~1EulE+O(D!$nFURukx84;LKn-`g$*$aV2ppLm9A1Z~ z%Vpq=#bMYi6^FIHuF5fVuz!@BaB)lXFkU>b$RAjs3-N&t z`WC(4T$>y17d5C~(4s~J$g_oS1WYEFJ0{yGYo~i(B!sRi1Vuj>pJ3~%fPgRlJXop# z53nvfGf16VQwd=*!Y1zD7rvT(cD>+wCEC;V!O6Y4$3OIM>4Xrhl1;~`*p-5bz1B=@ zgUKrIya&pC>GhWvI~$?US1uLE?T0OpbW`QVkfNAZZy+{=xDRzS3Y|~t1&qJ*g{J15 z7l@dMp&#Eu(WDtyNF3R0J76C~Zb6>=FxI+fsTDtY(Jd4Q?m7G6XYj(+>s&KuStn9f z;~R(fdx!+8HNV$uqfJh3p(1A0Eb-L=Hx~B|v$3=--hkTKD>sfKK1myLd2C$lajd=_ zdXg_nf4qO#A8SVYboGtE;iY(m->PBrq25^onJPVM@Ek+%N(`XKpVBNCsY7B)$c(8` zKWUs2#~%x?ch{P{cA&*Q$=RGs6nxtN`?c%I7TvIoXEIsq|z~ zP$#(QxF+Wo?Rf=q+V)vSB+Ennwr=`(-m_6uad2(B`#i#v4#LZqsg<(n=m|A(%zf6h zZ*KCrDRn_YPM==chKPJ|fq_+T-(kodYycjfP44wsVw^bCO_QGFaWJA`aSl7zm0O*B zji$6d_+qJKU_jVKpYp>miJFQP7HO_rbg(m|7uven4uO>dmp>8eh7h~y>Q|;&8>yaa zT(gLG=(JsV-VfCDFwbULBk|+&OZ2?Gb06lg2$i%kie~eIdW~o!T@+Dfl#v`AC8w1x zQ8k1_MjrcO>RBU$I6J9Jg_m01u4|l7>8QWGpC61RSwy|nvmeq(4!Bjs(m%+mZ5qVi zP(MnpU^WREkkyf}Ij~xQ@3uMN zd19&l5kb|NVD^w(=X_n2599j*t;bz*xQ}M`LIVya4PA_O>w4z zYe@Fu>g;6|^?Ts^7h8ElT|8$`CIB^*a}xmETA1ak*u!^Av7fz=k6P7AfM)iPN-7(b zDu}-8RgKQmR;)3i$q5AVD|VaiMl3ztniW(JELJaOrB`hO37BigCvDGC-O7`sg7ZpP z6htg6JmlYOvScVqxKizM*une5{g_NCk8|gtmxd$Fjk+8 z^T9!Fy+Fmxdx|_56~Qe4LU8zyoPx+@Qoy8-Ed6d0{$9nH#3QU8y>%F1@)TGNmO27l` zT>+8cDg&J`*MNB+5aSq{T>7Ugd%5B}&5&Gtz==5w>pi-x0cpu4D&Zy_fbU!L{34M~ zdhAn58B4m1FO^){OII8Z?lM(?1{L%I&u0pQxLjEE6uaPVXoy^28D-lCQmQ}#@klrn z1|RnJ8U$m(L?D~IXK%kkObGX{J$KE1n)CiByi6+{mB^OH&iJT9LXI|!|3nplCAhT%9%zM+@b zRD zkkT;`C>e#J?I(aFRCYnMM|>t?U1_zt#?S>& z=7kyaf)vPcJ_|S>UKr)@aIT4|V-hqmnA3-GXZ1mJiix(KpdFApnfXOQJp8v~IK(oP zfmlgcUw!PGpFlPeC=3qizC>{hP+xPPLK`#;1EJlDSM0(WqPrR4Aj!6PDKhSC7vPU$ zP$Pik6`_besG2$0W=qV818+zMDqs@S(I7UL#DFH~iSD5q^XU0qS(<21OLCx62!L)YJ3RN_EeYIqLP9`)JRn7WfaN)qs(CI zh{6z^P<3)oDN~Os%SCOD{=kCX^HEx(TAEn}TG}o^V^LUG8&rpsVA2J4BK8GzB|7cF zqB-#A7eHY|e4shjr{iJ70!!42NpqQ&VeF++h_*1{KSFDf*gODgxoONeS*R zbKPI&3l8JChI3~OGaU@;>xZxohK2R`su{xo4g6|+P1?+G2H2n`b=a%WFcYJHGs>uL z)aco=(eqCuoxw&G!LUc4;DAd>88l@nVB>~Vqjm@3r$_J(u)&LB1{Y}U;!`xoTx*~X z1#%}p+h7h&8A(}rT8!f)u$+PBSd#hJi2LZAgOHt|$#gw|vTXBebo^QCSobmoQ<}`7 zS-g_+uEFtK?HN@-If6k>Bym*KYhqJwa27Ydm0DR#3**+OqFlSoj#Nk`7=NZEKHo4s z2$MT%DWmX&hgYOy95F@dYDW0bjC#IRW zsw}K@E}U_HO3-?AX=X60*i5d!?tT4;K<@M+_|oIf>35^k9T8*cgiGpGCK@I+kGZTa zzO7YF7*#W|8mXM#);839M$}7~;d!gvsbOW2(#IC6=KX&(~@Zo`Ag*$N)W&|rAD&~U^f+mqhz`Jm68 z!H(9k+~%Iq^FPUqARn`t4P&ldtn%!Mwx{I@ZJT90|>j<9W#PG8(_E0Lo~Ue`M`lwRyf_!8^46k} zu56wb&rXb+i!dy!r4S?Z1EWmzgXPO;i3li0t?b&~w zn;E@Q_-L^~2L>vd>oO6vo&}xvLq#MwylQY<@>?!1cIZ|aPKDc_q+UtNFhZ}NS=-<-xT<0TI@2*L++ZVDm?LEPoptrr+fKs@0>p?4%t=`j zvMY_B+{vvbOAZnA(_Iypv)W<%X`yJx^oqy%t^LTdpC!NcW;sxNq z>B}WffMGm(5KmY?4{;*ZiMiC3lL|T=>9<`Nj$M$CSE4duKxh*6V^X-c%L#-R;PjeV z*EKubnK$kAf|u)&i3^7s_o;6)pPF3>;%i)U=Etng6IgB@Q&HY;1a^A2zEf_8{bxSw zxClQs6Df5SRddT~$oSAVDQLJZW;!jtx%Nrg#32*+y&rPI6A4!$VjI^pOv{|pNTaRf z^>f>cs8w4i0;u?aU?ZK>+>Sq|PbC!|_cIggO1>{>ewM&7j#qju`cqDt8>-}jyM|Oa zp9|KSV^qz=rc7cClA@^cHS42mAQ)DRv)LgLDt2Ol%}E zPECzQ`N7rhXIEkOTwha|f@iKE%HjMyf?y`jU*ipTQKKt7u5l_3EeddO0UH!RK7|nC zAb5FH96Kf{H@Q*WDBjTygwDj89>!lflsl)CAn$bDFAER70&*b6Iij3ZyAs#|ocIOz zFxLhNb5`+NE#8XY_%mCwXuK9?Q_0EAc{}HXd*CVr;m+K4Jydb?b^<)_{)YVdB*8H0 zSpE1%Evx5X3b$7b$Q=<5599PYjG`r;1wYYv!Jyjs!ncBgDsqd zC)76=*BBmmJKp1r62!Xwy*Eb@Nf}b{{JlR%(IpP(`RFaeJxdoSSJzFtP!w?LM|`7w z?uR3)%A3+wi@%M+_)Of*Z?F)0e2d|mlIQQKGQrIHZz2b&R2Qf^)WDi^FlOX5+gCG7 zHEd!YRu=9ZtBCV*!I^w(fS$GVYWHv$^e#O&Im2*L3eZ_&d|{w%0rZt{L!Pt)%#bo+lv^u!;= zAFDu^7o^$0;w84O@2#$ST)q+Eu@lLCIrT0;Smev8>&s{j*cL6*F?1Kghw{1b zcBSUL!J!G{fa$d3bSuZ2Cmebr%aiD+|CIs}T+F|^P#^*-Na;?Hh09lE{MYlgU+oVm ze=H|B9zryBzN%ydsf2!2eGQRg2$qEfs~>!Ib=lL44c0gb(mqMhvkg)|7p!`c)HhxfSA1NOXP& z^+zVSWWp4mgt(a9^d=;F%^r{RcMARHdHtJ{^G(m{o7bGbIllYm;CvJPdY|&J zE9~FUnRqj^{a*_VAWSuVL6p`c5S-Je2de^K7=4>1{djKVj2 z0L(2P7Uvw6$Q~Ag4m$}BJEYv|E)Gk15te##5Tk$!ZVYfef(u@_B9e9>%GV_P*<|r{ zFWsh#2!04%kYL}HkmrerpyV1}z=|fqi(ZBo&wnqfhLxUtFSSLKor@^FzFct-zNC|q zRL+rIeJ|XMKicm5EBU~JJy;ZjE5qil;EgW=?;`SSmqTKIZ0;`d7#g_N@77M>Ywu`L zP(u9#KDyxNlRLk24NqT0wpT}X;v=8Gi0o+m`D7yU*^|iD(8v~sfUY*XFQ!p1Z|u~> zMh(3<^YBj8$m_h}7g1yR2mL#*2VO@J&)ptmh@N8K85dcfGW%t4I(qg-^f*uYt7f

C{ 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

1&4cG>eTu<~G8DxoT0|=cA&)3T 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

AiRRh442XlhTU9Xl@RY0$>4l8}T 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%0AE34(JWXq~tEB?%<8w`vmS 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

SQWY0>Q+n_1b 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 literal 0 HcmV?d00001 diff --git a/docs/canvas/images/specify_variable_syntax.png b/docs/canvas/images/specify_variable_syntax.png new file mode 100644 index 0000000000000000000000000000000000000000..98168c3d62ee52a8d20d20fd4a2551fde280ae87 GIT binary patch literal 17885 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. See -{kibana-ref}/create-canvas-workpad.html[Create a workpad]. +{kibana-ref}/canvas.html[Create a workpad]. // end::workpad-def[] diff --git a/docs/user/canvas.asciidoc b/docs/user/canvas.asciidoc index 355684f7448a1..317ec67dd7c0a 100644 --- a/docs/user/canvas.asciidoc +++ b/docs/user/canvas.asciidoc @@ -18,16 +18,170 @@ With Canvas, you can: * Focus the data you want to display with filters. [role="screenshot"] -image::images/canvas-gs-example.png[] +image::images/canvas-gs-example.png[Getting started example] For a quick overview of Canvas, watch link:https://www.youtube.com/watch?v=ZqvF_5-1xjQ[Stand out with Canvas]. -//When https://github.com/elastic/Video/issues/358 is resolved, update this link. + +[float] +[[create-workpads]] +== Create workpads + +A _workpad_ provides you with a space where you can build presentations of your live data. + +[float] +[[start-with-a-blank-workpad]] +=== Start with a blank workpad + +To use the background colors, images, and data of your choice, start with a blank workpad. + +. Open the menu, then go to *Canvas*. + +. On the *Canvas workpads* view, click *Create workpad*. + +. Add a *Name* to your workpad. + +. In the *Width* and *Height* fields, specify the size. + +. Select the layout. ++ +For example, click *720p* for a traditional presentation layout. + +. Click the *Background color* picker, then select the background color for your workpad. ++ +[role="screenshot"] +image::images/canvas-background-color-picker.png[Canvas color picker] + +[float] +[[create-workpads-from-templates]] +=== Create workpads from templates + +If you're unsure about where to start, you can use one of the preconfigured templates that come with Canvas. + +. Open the menu, then go to *Canvas*. + +. On the *Canvas workpads* view, select *Templates*. + +. Click the preconfigured template that you want to use. + +. Add your own *Name* to the workpad. + +[float] +[[import-existing-workpads]] +=== Import existing workpads + +When you want to use a workpad that someone else has already started, import the JSON file into Canvas. + +. Open the menu, then go to *Canvas*. + +. On the *Canvas workpads* view, click and drag the file to the *Import workpad JSON file* field. + +[float] +[[use-sample-data-workpads]] +=== Use sample data workpads + +Each of the sample data sets comes with a Canvas workpad that you can use for your own workpad inspiration. + +. Add a {kibana-ref}/add-sample-data.html[sample data set]. + +. On the *Add Data* page, click *View data*, then select *Canvas*. + +[float] +[[add-canvas-elements]] +== Add elements + +Create a story about your data by adding elements to your workpad that include images, text, charts, and more. + +[float] +[[create-elements]] +=== Create elements + +Choose the type of element you want to use, then use the preconfigured demo data to familiarize yourself with the element. When you're ready, connect the element to your own data. By default, most of the elements you create use +demo data until you change the data source. The demo data includes a small data set that you can use to experiment with your element. + +To begin, click *Add element*, then select the element you want to use. + +[role="screenshot"] +image::images/canvas-element-select.gif[Canvas elements] + +When you're ready to connect the element to your data, select *Data*, then select one of the following data sources: + +* *{es} SQL* — Access your data in {es} using {ref}/sql-spec.html[SQL syntax]. + +* *{es} documents* — Access your data in {es} without using aggregations. To use, select an index and fields, and optionally enter a query using the <>. Use the *{es} documents* data source when you have low volume datasets, to view raw documents, or to plot exact, non-aggregated values on a chart. + +* *Timelion* — Access your time series data using <> queries. To use Timelion queries, you can enter a query using the <>. + +Each element can display a different data source, and pages and workpads often contain multiple data sources. + +When you're ready to save your element, select the element, then click *Edit > Save as new element*. + +[role="screenshot"] +image::images/canvas_save_element.png[] + +To save a group of elements, press and hold Shift, select the elements you want to save, then click *Edit > Save as new element*. + +Elements are saved in *Add element > My elements*. + +[float] +[[add-existing-visuualizations]] +=== Add existing visualizations + +Add <> to your workpad, such as maps and visualizations. + +. Click *Add element > Add from Visualize Library*. + +. Select the saved object you want to add. ++ +[role="screenshot"] +image::images/canvas-map-embed.gif[] + +. To use the customization options, click the panel menu, then select one of the following options: + +* *Edit map* — Opens <> or <> so that you can edit the original saved object. + +* *Edit panel title* — Adds a title to the saved object. + +* *Customize time range* — Exposes a time filter dedicated to the saved object. + +* *Inspect* — Allows you to drill down into the element data. + +[float] +[[add-your-own-images]] +=== Add your own images + +To personalize your workpad, add your own logos and graphics. + +. Click *Add element > Manage assets*. + +. On the *Manage workpad assets* window, drag and drop your images. + +. To add the image to the workpad, click the *Create image element* icon. ++ +[role="screenshot"] +image::images/canvas-add-image.gif[Add image to Canvas] + +[float] +[[add-more-pages]] +== Add pages + +Organize and separate your ideas by adding more pages. + +. Click *Page 1*, then click *+*. + +. On the *Page* editor panel, select the page transition from the *Transition* dropdown. ++ +[role="screenshot"] +image::images/canvas-add-pages.gif[Add pages] -- -include::{kib-repo-dir}/canvas/canvas-tutorial.asciidoc[] +include::{kib-repo-dir}/canvas/canvas-edit-workpads.asciidoc[] + +include::{kib-repo-dir}/canvas/canvas-present-workpad.asciidoc[] -include::{kib-repo-dir}/canvas/canvas-workpad.asciidoc[] +include::{kib-repo-dir}/canvas/canvas-share-workpad.asciidoc[] + +include::{kib-repo-dir}/canvas/canvas-tutorial.asciidoc[] include::{kib-repo-dir}/canvas/canvas-expression-lifecycle.asciidoc[] From 6ee2460ebc0ccb673a13368cc05af861df19cd2e Mon Sep 17 00:00:00 2001 From: Constance Date: Wed, 12 Aug 2020 09:33:10 -0700 Subject: [PATCH 12/27] [Enterprise Search] Add solution-level side navigation (#74705) * Add basic layout/sidebar blocking - note: we should *not* set left: 0 / top: 0 etc., as this can interfere with Kibana's existing UI (e.g. docked navigation, telemetry callout) * Add sidebar styles + static links * Refactor SideNav to be a reusable component - So that Workplace Search can reuse the same layout but pass in their own custom nav + Refactor AppSearch to use Layout in router * Refactor all views to account for in-router Layout * Fix root redirects not working as expected - If enterpriseSearchUrl hasn't been set, all pages should redirect to SetupGuide, not just root - The engines redirect simply wasn't working at all - it would always show a blank page when '/' was clicked in the Kibana breadcrumbs. Not sure if this is a Kibana issue - had to change to a component load to fix + Simplify index.test.tsx (probably unreasonable and not super helpful to add assertions for each new route) * Implement active styling for links * Fix failing location tests - By adding a new useLocation mock + add SideNavLink active class test TODO: I should probably rename react_router_history.mock to just react_router.mock * Add responsive toggle + styling * Add navigation accessibility attributes/controls * [Feedback] Update mobile UX to close menu on link click/navigation - This requires updating our EUI/React Router components to accept and run custom onClick events - Also requires adding a new ReactContext to pass down closeNavigation, but that's not too onerous thanks to useContext --- .../public/applications/__mocks__/index.ts | 2 +- .../__mocks__/react_router_history.mock.ts | 10 +- .../components/empty_states/empty_state.tsx | 73 ++++++------ .../components/empty_states/error_state.tsx | 16 ++- .../components/empty_states/loading_state.tsx | 21 ++-- .../engine_overview/engine_overview.scss | 13 +- .../engine_overview/engine_overview.tsx | 111 +++++++++--------- .../applications/app_search/index.test.tsx | 54 ++++----- .../public/applications/app_search/index.tsx | 70 +++++++++-- .../applications/shared/layout/index.ts | 8 ++ .../applications/shared/layout/layout.scss | 81 +++++++++++++ .../shared/layout/layout.test.tsx | 61 ++++++++++ .../applications/shared/layout/layout.tsx | 60 ++++++++++ .../applications/shared/layout/side_nav.scss | 75 ++++++++++++ .../shared/layout/side_nav.test.tsx | 92 +++++++++++++++ .../applications/shared/layout/side_nav.tsx | 107 +++++++++++++++++ .../shared/layout/side_nav_bg.svg | 25 ++++ .../react_router_helpers/eui_link.test.tsx | 9 ++ .../shared/react_router_helpers/eui_link.tsx | 26 ++-- 19 files changed, 741 insertions(+), 173 deletions(-) create mode 100644 x-pack/plugins/enterprise_search/public/applications/shared/layout/index.ts create mode 100644 x-pack/plugins/enterprise_search/public/applications/shared/layout/layout.scss create mode 100644 x-pack/plugins/enterprise_search/public/applications/shared/layout/layout.test.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/shared/layout/layout.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/shared/layout/side_nav.scss create mode 100644 x-pack/plugins/enterprise_search/public/applications/shared/layout/side_nav.test.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/shared/layout/side_nav.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/shared/layout/side_nav_bg.svg diff --git a/x-pack/plugins/enterprise_search/public/applications/__mocks__/index.ts b/x-pack/plugins/enterprise_search/public/applications/__mocks__/index.ts index 6f82946c0ea14..e999d40a3f8e6 100644 --- a/x-pack/plugins/enterprise_search/public/applications/__mocks__/index.ts +++ b/x-pack/plugins/enterprise_search/public/applications/__mocks__/index.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -export { mockHistory } from './react_router_history.mock'; +export { mockHistory, mockLocation } from './react_router_history.mock'; export { mockKibanaContext } from './kibana_context.mock'; export { mockLicenseContext } from './license_context.mock'; export { diff --git a/x-pack/plugins/enterprise_search/public/applications/__mocks__/react_router_history.mock.ts b/x-pack/plugins/enterprise_search/public/applications/__mocks__/react_router_history.mock.ts index fd422465d87f1..779eb1a043e8c 100644 --- a/x-pack/plugins/enterprise_search/public/applications/__mocks__/react_router_history.mock.ts +++ b/x-pack/plugins/enterprise_search/public/applications/__mocks__/react_router_history.mock.ts @@ -5,7 +5,7 @@ */ /** - * NOTE: This variable name MUST start with 'mock*' in order for + * NOTE: These variable names MUST start with 'mock*' in order for * Jest to accept its use within a jest.mock() */ export const mockHistory = { @@ -15,9 +15,17 @@ export const mockHistory = { pathname: '/current-path', }, }; +export const mockLocation = { + key: 'someKey', + pathname: '/current-path', + search: '?query=something', + hash: '#hash', + state: {}, +}; jest.mock('react-router-dom', () => ({ useHistory: jest.fn(() => mockHistory), + useLocation: jest.fn(() => mockLocation), })); /** diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/empty_states/empty_state.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/empty_states/empty_state.tsx index d6c38629d8143..4d2b790e7fb97 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/empty_states/empty_state.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/empty_states/empty_state.tsx @@ -5,7 +5,7 @@ */ import React, { useContext } from 'react'; -import { EuiPage, EuiPageBody, EuiPageContent, EuiEmptyPrompt, EuiButton } from '@elastic/eui'; +import { EuiPageContent, EuiEmptyPrompt, EuiButton } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import { sendTelemetry } from '../../../shared/telemetry'; @@ -32,43 +32,40 @@ export const EmptyState: React.FC = () => { }; return ( - + <> - - - - - - - - } - titleSize="l" - body={ -

- -

- } - actions={ - - - - } - /> - - - + + + + + + } + titleSize="l" + body={ +

+ +

+ } + actions={ + + + + } + /> +
+ ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/empty_states/error_state.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/empty_states/error_state.tsx index 3753ad5433e8f..c5a5f1fbb921f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/empty_states/error_state.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/empty_states/error_state.tsx @@ -5,7 +5,7 @@ */ import React from 'react'; -import { EuiPage, EuiPageBody, EuiPageContent } from '@elastic/eui'; +import { EuiPageContent } from '@elastic/eui'; import { ErrorStatePrompt } from '../../../shared/error_state'; import { SetAppSearchChrome as SetPageChrome } from '../../../shared/kibana_chrome'; @@ -16,16 +16,14 @@ import './empty_states.scss'; export const ErrorState: React.FC = () => { return ( - + <> - - - - - - - + + + + + ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/empty_states/loading_state.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/empty_states/loading_state.tsx index 533dca7d0ab79..221091b79dc54 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/empty_states/loading_state.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/empty_states/loading_state.tsx @@ -5,7 +5,7 @@ */ import React from 'react'; -import { EuiPage, EuiPageBody, EuiPageContent, EuiSpacer, EuiLoadingContent } from '@elastic/eui'; +import { EuiPageContent, EuiSpacer, EuiLoadingContent } from '@elastic/eui'; import { SetAppSearchChrome as SetPageChrome } from '../../../shared/kibana_chrome'; import { EngineOverviewHeader } from '../engine_overview_header'; @@ -14,17 +14,14 @@ import './empty_states.scss'; export const LoadingState: React.FC = () => { return ( - + <> - - - - - - - - - - + + + + + + + ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview.scss b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview.scss index 2c7f7de6458e2..e39bbbc95564b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview.scss +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview.scss @@ -4,18 +4,11 @@ * you may not use this file except in compliance with the Elastic License. */ -/** - * Engine Overview - */ .engineOverview { - width: 100%; - - &__body { - padding: $euiSize; + padding: $euiSize; - @include euiBreakpoint('m', 'l', 'xl') { - padding: $euiSizeXL; - } + @include euiBreakpoint('m', 'l', 'xl') { + padding: $euiSizeXL; } } diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview.tsx index 286c32b2a443b..acac5d17665b7 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview.tsx @@ -6,8 +6,6 @@ import React, { useContext, useEffect, useState } from 'react'; import { - EuiPage, - EuiPageBody, EuiPageContent, EuiPageContentHeader, EuiPageContentBody, @@ -92,64 +90,61 @@ export const EngineOverview: React.FC = () => { if (!engines.length) return ; return ( - + <> - - - - - - -

- - -

-
-
- - - - - {metaEngines.length > 0 && ( - <> - - - -

- - -

-
-
- - - - - )} -
-
-
+ + + + +

+ + +

+
+
+ + + + + {metaEngines.length > 0 && ( + <> + + + +

+ + +

+
+
+ + + + + )} +
+ ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/index.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/index.test.tsx index 45e318ca0f9d9..9e660d10053ec 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/index.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/index.test.tsx @@ -10,37 +10,33 @@ import React, { useContext } from 'react'; import { Redirect } from 'react-router-dom'; import { shallow } from 'enzyme'; -import { SetupGuide } from './components/setup_guide'; -import { EngineOverview } from './components/engine_overview'; - -import { AppSearch } from './'; - -describe('App Search Routes', () => { - describe('/', () => { - it('redirects to Setup Guide when enterpriseSearchUrl is not set', () => { - (useContext as jest.Mock).mockImplementationOnce(() => ({ enterpriseSearchUrl: '' })); - const wrapper = shallow(); - - expect(wrapper.find(Redirect)).toHaveLength(1); - expect(wrapper.find(EngineOverview)).toHaveLength(0); - }); - - it('renders Engine Overview when enterpriseSearchUrl is set', () => { - (useContext as jest.Mock).mockImplementationOnce(() => ({ - enterpriseSearchUrl: 'https://foo.bar', - })); - const wrapper = shallow(); - - expect(wrapper.find(EngineOverview)).toHaveLength(1); - expect(wrapper.find(Redirect)).toHaveLength(0); - }); +import { Layout, SideNav, SideNavLink } from '../shared/layout'; +import { AppSearch, AppSearchNav } from './'; + +describe('AppSearch', () => { + it('renders', () => { + const wrapper = shallow(); + + expect(wrapper.find(Layout)).toHaveLength(1); + }); + + it('redirects to Setup Guide when enterpriseSearchUrl is not set', () => { + (useContext as jest.Mock).mockImplementationOnce(() => ({ enterpriseSearchUrl: '' })); + const wrapper = shallow(); + + expect(wrapper.find(Redirect)).toHaveLength(1); + expect(wrapper.find(Layout)).toHaveLength(0); }); +}); - describe('/setup_guide', () => { - it('renders', () => { - const wrapper = shallow(); +describe('AppSearchNav', () => { + it('renders', () => { + const wrapper = shallow(); - expect(wrapper.find(SetupGuide)).toHaveLength(1); - }); + expect(wrapper.find(SideNav)).toHaveLength(1); + expect(wrapper.find(SideNavLink).first().prop('to')).toEqual('/engines'); + expect(wrapper.find(SideNavLink).last().prop('to')).toEqual( + 'http://localhost:3002/as#/role-mappings' + ); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/index.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/index.tsx index 8f7142f1631a9..d69b3ba29b0ca 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/index.tsx @@ -5,24 +5,80 @@ */ import React, { useContext } from 'react'; -import { Route, Redirect } from 'react-router-dom'; +import { Route, Redirect, Switch } from 'react-router-dom'; +import { i18n } from '@kbn/i18n'; + +import { APP_SEARCH_PLUGIN } from '../../../common/constants'; import { KibanaContext, IKibanaContext } from '../index'; +import { Layout, SideNav, SideNavLink } from '../shared/layout'; import { SetupGuide } from './components/setup_guide'; import { EngineOverview } from './components/engine_overview'; export const AppSearch: React.FC = () => { const { enterpriseSearchUrl } = useContext(KibanaContext) as IKibanaContext; + if (!enterpriseSearchUrl) + return ( + + + + + + + {/* Kibana displays a blank page on redirect if this isn't included */} + + + ); return ( - <> - - {!enterpriseSearchUrl ? : } - - + + - + + }> + + + {/* For some reason a Redirect to /engines just doesn't work here - it shows a blank page */} + + + + + + + + + + ); +}; + +export const AppSearchNav: React.FC = () => { + const { enterpriseSearchUrl } = useContext(KibanaContext) as IKibanaContext; + const externalUrl = `${enterpriseSearchUrl}/as#`; + + return ( + + + {i18n.translate('xpack.enterpriseSearch.appSearch.nav.engines', { + defaultMessage: 'Engines', + })} + + + {i18n.translate('xpack.enterpriseSearch.appSearch.nav.settings', { + defaultMessage: 'Account Settings', + })} + + + {i18n.translate('xpack.enterpriseSearch.appSearch.nav.credentials', { + defaultMessage: 'Credentials', + })} + + + {i18n.translate('xpack.enterpriseSearch.appSearch.nav.roleMappings', { + defaultMessage: 'Role Mappings', + })} + + ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/layout/index.ts b/x-pack/plugins/enterprise_search/public/applications/shared/layout/index.ts new file mode 100644 index 0000000000000..2211cdee6c730 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/layout/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +export { Layout } from './layout'; +export { SideNav, SideNavLink } from './side_nav'; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/layout/layout.scss b/x-pack/plugins/enterprise_search/public/applications/shared/layout/layout.scss new file mode 100644 index 0000000000000..c73a527147961 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/layout/layout.scss @@ -0,0 +1,81 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +.enterpriseSearchLayout { + $sideBarWidth: $euiSize * 15; + $sideBarMobileHeight: $euiSize * 4.75; + + display: block; + position: relative; + left: $sideBarWidth; + width: calc(100% - #{$sideBarWidth}); + padding: 0; + + @include euiBreakpoint('xs', 's', 'm') { + left: auto; + width: 100%; + } + + &__sideBarToggle { + display: none; + + @include euiBreakpoint('xs', 's', 'm') { + display: block; + + position: absolute; + right: $euiSize; + top: $sideBarMobileHeight / 2; + transform: translateY(-50%) scale(0.9); + + .euiButton { + min-width: 0; + } + } + } + + &__sideBar { + z-index: $euiZNavigation; + position: fixed; + margin-left: -1 * $sideBarWidth; + margin-right: 0; + overflow-y: auto; + overflow-x: hidden; + + $kibanaHeader: 49px; // NOTE: Keep an eye on this for changes + height: calc(100vh - #{$kibanaHeader}); + width: $sideBarWidth; + + background-color: $euiColorLightestShade; + box-shadow: inset (-1 * $euiSizeXS) 0 $euiSizeS (-1 * $euiSizeXS) rgba($euiShadowColor, 0.25); + + @include euiBreakpoint('xs', 's', 'm') { + position: relative; + width: 100%; + height: $sideBarMobileHeight; + margin-left: 0; + overflow-y: hidden; + + border-bottom: $euiBorderThin; + box-shadow: none; + + &--isOpen { + height: auto; + overflow-y: auto; + } + } + } + + &__body { + padding: $euiSizeXXL; + + @include euiBreakpoint('m') { + padding: $euiSizeL; + } + @include euiBreakpoint('xs', 's') { + padding: $euiSize; + } + } +} diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/layout/layout.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/layout/layout.test.tsx new file mode 100644 index 0000000000000..4053f2f4bb613 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/layout/layout.test.tsx @@ -0,0 +1,61 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import React from 'react'; +import { shallow } from 'enzyme'; +import { EuiPageSideBar, EuiButton } from '@elastic/eui'; + +import { Layout, INavContext } from './layout'; + +describe('Layout', () => { + it('renders', () => { + const wrapper = shallow(); + + expect(wrapper.find('.enterpriseSearchLayout')).toHaveLength(1); + }); + + it('renders navigation', () => { + const wrapper = shallow(Hello World} />); + + expect(wrapper.find('.enterpriseSearchLayout__sideBar')).toHaveLength(1); + expect(wrapper.find('.nav-test')).toHaveLength(1); + }); + + it('renders navigation toggle state', () => { + const wrapper = shallow(Hello World} />); + expect(wrapper.find(EuiPageSideBar).prop('className')).not.toContain('--isOpen'); + expect(wrapper.find(EuiButton).prop('iconType')).toEqual('arrowRight'); + + const toggle = wrapper.find('[data-test-subj="enterpriseSearchNavToggle"]'); + toggle.simulate('click'); + + expect(wrapper.find(EuiPageSideBar).prop('className')).toContain('--isOpen'); + expect(wrapper.find(EuiButton).prop('iconType')).toEqual('arrowDown'); + }); + + it('passes down NavContext to navigation links', () => { + const wrapper = shallow(} />); + + const toggle = wrapper.find('[data-test-subj="enterpriseSearchNavToggle"]'); + toggle.simulate('click'); + expect(wrapper.find(EuiPageSideBar).prop('className')).toContain('--isOpen'); + + const context = (wrapper.find('ContextProvider').prop('value') as unknown) as INavContext; + context.closeNavigation(); + expect(wrapper.find(EuiPageSideBar).prop('className')).not.toContain('--isOpen'); + }); + + it('renders children', () => { + const wrapper = shallow( + +
Test
+
+ ); + + expect(wrapper.find('.enterpriseSearchLayout__body')).toHaveLength(1); + expect(wrapper.find('.testing')).toHaveLength(1); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/layout/layout.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/layout/layout.tsx new file mode 100644 index 0000000000000..b4497140b65b7 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/layout/layout.tsx @@ -0,0 +1,60 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import React, { useState } from 'react'; +import classNames from 'classnames'; + +import { EuiPage, EuiPageSideBar, EuiPageBody, EuiButton } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + +import './layout.scss'; + +interface ILayoutProps { + navigation: React.ReactNode; +} + +export interface INavContext { + closeNavigation(): void; +} +export const NavContext = React.createContext({}); + +export const Layout: React.FC = ({ children, navigation }) => { + const [isNavOpen, setIsNavOpen] = useState(false); + const toggleNavigation = () => setIsNavOpen(!isNavOpen); + const closeNavigation = () => setIsNavOpen(false); + + const navClasses = classNames('enterpriseSearchLayout__sideBar', { + 'enterpriseSearchLayout__sideBar--isOpen': isNavOpen, // eslint-disable-line @typescript-eslint/naming-convention + }); + + return ( + + +
+ + {i18n.translate('xpack.enterpriseSearch.nav.menu', { + defaultMessage: 'Menu', + })} + +
+ {navigation} +
+ {children} +
+ ); +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/layout/side_nav.scss b/x-pack/plugins/enterprise_search/public/applications/shared/layout/side_nav.scss new file mode 100644 index 0000000000000..d673542ba1983 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/layout/side_nav.scss @@ -0,0 +1,75 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +$euiSizeML: $euiSize * 1.25; // 20px - between medium and large ¯\_(ツ)_/¯ + +.enterpriseSearchProduct { + display: flex; + align-items: center; + padding: $euiSizeML; + + background-image: url('./side_nav_bg.svg'); + background-repeat: no-repeat; + + @include euiBreakpoint('xs', 's', 'm') { + padding: $euiSize $euiSizeML; + } + + &__icon { + display: flex; + align-items: center; + justify-content: center; + + width: $euiSizeXXL; + height: $euiSizeXXL; + margin-right: $euiSizeS; + + background-color: $euiColorEmptyShade; + border-radius: 50%; + @include euiSlightShadow(); + + .euiIcon { + width: $euiSizeML; + height: $euiSizeML; + } + } + + &__title { + .euiText { + font-weight: $euiFontWeightMedium; + } + } +} + +.enterpriseSearchNavLinks { + &__item { + display: block; + padding: $euiSizeM $euiSizeML; + font-size: $euiFontSizeS; + font-weight: $euiFontWeightMedium; + line-height: $euiFontSizeM; + + $activeBgColor: rgba($euiColorFullShade, 0.05); + + &--isActive { + background-color: $activeBgColor; + } + + &.euiLink { + color: $euiTextColor; + font-weight: $euiFontWeightMedium; + + &:hover { + color: $euiTextColor; + } + + &:focus { + outline: solid 0 $activeBgColor; + background-color: $activeBgColor; + } + } + } +} diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/layout/side_nav.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/layout/side_nav.test.tsx new file mode 100644 index 0000000000000..c117fa404a16b --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/layout/side_nav.test.tsx @@ -0,0 +1,92 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import '../../__mocks__/react_router_history.mock'; + +import React from 'react'; +import { useLocation } from 'react-router-dom'; +import { shallow } from 'enzyme'; + +import { EuiLink as EuiLinkExternal } from '@elastic/eui'; +import { EuiLink } from '../react_router_helpers'; +import { ENTERPRISE_SEARCH_PLUGIN, APP_SEARCH_PLUGIN } from '../../../../common/constants'; + +import { SideNav, SideNavLink } from './'; + +describe('SideNav', () => { + it('renders link children', () => { + const wrapper = shallow( + +
Hello World
+
+ ); + + expect(wrapper.type()).toEqual('nav'); + expect(wrapper.find('.enterpriseSearchNavLinks')).toHaveLength(1); + expect(wrapper.find('.testing')).toHaveLength(1); + }); + + it('renders a custom product', () => { + const wrapper = shallow(); + + expect(wrapper.find('h3').text()).toEqual('App Search'); + expect(wrapper.find('.enterpriseSearchProduct--appSearch')).toHaveLength(1); + }); +}); + +describe('SideNavLink', () => { + it('renders', () => { + const wrapper = shallow(Link); + + expect(wrapper.type()).toEqual('li'); + expect(wrapper.find(EuiLink)).toHaveLength(1); + expect(wrapper.find('.enterpriseSearchNavLinks__item')).toHaveLength(1); + }); + + it('renders an external link if isExternal is true', () => { + const wrapper = shallow( + + Link + + ); + const externalLink = wrapper.find(EuiLinkExternal); + + expect(externalLink).toHaveLength(1); + expect(externalLink.prop('href')).toEqual('http://website.com'); + expect(externalLink.prop('target')).toEqual('_blank'); + }); + + it('sets an active class if the current path matches the nav link', () => { + (useLocation as jest.Mock).mockImplementationOnce(() => ({ pathname: '/test/' })); + + const wrapper = shallow(Link); + + expect(wrapper.find('.enterpriseSearchNavLinks__item--isActive')).toHaveLength(1); + }); + + it('sets an active class if the current path is / and the link isRoot', () => { + (useLocation as jest.Mock).mockImplementationOnce(() => ({ pathname: '/' })); + + const wrapper = shallow( + + Link + + ); + + expect(wrapper.find('.enterpriseSearchNavLinks__item--isActive')).toHaveLength(1); + }); + + it('passes down custom classes and props', () => { + const wrapper = shallow( + + Link + + ); + + expect(wrapper.find('.testing')).toHaveLength(1); + expect(wrapper.find('[data-test-subj="testing"]')).toHaveLength(1); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/layout/side_nav.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/layout/side_nav.tsx new file mode 100644 index 0000000000000..5969fa7806a44 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/layout/side_nav.tsx @@ -0,0 +1,107 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import React, { useContext } from 'react'; +import { useLocation } from 'react-router-dom'; +import classNames from 'classnames'; + +import { i18n } from '@kbn/i18n'; +import { EuiIcon, EuiTitle, EuiText, EuiLink as EuiLinkExternal } from '@elastic/eui'; // TODO: Remove EuiLinkExternal after full Kibana transition +import { EuiLink } from '../react_router_helpers'; + +import { ENTERPRISE_SEARCH_PLUGIN } from '../../../../common/constants'; + +import { NavContext, INavContext } from './layout'; + +import './side_nav.scss'; + +/** + * Side navigation - product & icon + links wrapper + */ + +interface ISideNavProps { + // Expects product plugin constants (@see common/constants.ts) + product: { + NAME: string; + ID: string; + }; +} + +export const SideNav: React.FC = ({ product, children }) => { + return ( + + ); +}; + +/** + * Side navigation link item + */ + +interface ISideNavLinkProps { + to: string; + isExternal?: boolean; + className?: string; + isRoot?: boolean; +} + +export const SideNavLink: React.FC = ({ + isExternal, + to, + children, + className, + isRoot, + ...rest +}) => { + const { closeNavigation } = useContext(NavContext) as INavContext; + + const { pathname } = useLocation(); + const currentPath = pathname.endsWith('/') ? pathname.slice(0, -1) : pathname; + const isActive = currentPath === to || (isRoot && currentPath === ''); + + const classes = classNames('enterpriseSearchNavLinks__item', className, { + 'enterpriseSearchNavLinks__item--isActive': !isExternal && isActive, // eslint-disable-line @typescript-eslint/naming-convention + }); + + return ( +
  • + {isExternal ? ( + + {children} + + ) : ( + + {children} + + )} +
  • + ); +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/layout/side_nav_bg.svg b/x-pack/plugins/enterprise_search/public/applications/shared/layout/side_nav_bg.svg new file mode 100644 index 0000000000000..a19227ab7b7eb --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/layout/side_nav_bg.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/react_router_helpers/eui_link.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/react_router_helpers/eui_link.test.tsx index 7d4c068b21155..76ee8293f2c8b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/react_router_helpers/eui_link.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/react_router_helpers/eui_link.test.tsx @@ -73,5 +73,14 @@ describe('EUI & React Router Component Helpers', () => { expect(mockHistory.push).not.toHaveBeenCalled(); }); + + it('calls inherited onClick actions in addition to default navigation', () => { + const customOnClick = jest.fn(); // Can be anything from telemetry to a state reset + const wrapper = mount(); + + wrapper.find(EuiLink).simulate('click', { shiftKey: true }); + + expect(customOnClick).toHaveBeenCalled(); + }); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/react_router_helpers/eui_link.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/react_router_helpers/eui_link.tsx index f486e432bae76..b53b2f2b3b650 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/react_router_helpers/eui_link.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/react_router_helpers/eui_link.tsx @@ -19,13 +19,15 @@ import { letBrowserHandleEvent } from './link_events'; interface IEuiReactRouterProps { to: string; + onClick?(): void; } -export const EuiReactRouterHelper: React.FC = ({ to, children }) => { +export const EuiReactRouterHelper: React.FC = ({ to, onClick, children }) => { const history = useHistory(); - const onClick = (event: React.MouseEvent) => { - if (letBrowserHandleEvent(event)) return; + const reactRouterLinkClick = (event: React.MouseEvent) => { + if (onClick) onClick(); // Run any passed click events (e.g. telemetry) + if (letBrowserHandleEvent(event)) return; // Return early if the link behavior shouldn't be handled by React Router // Prevent regular link behavior, which causes a browser refresh. event.preventDefault(); @@ -37,21 +39,29 @@ export const EuiReactRouterHelper: React.FC = ({ to, child // Generate the correct link href (with basename etc. accounted for) const href = history.createHref({ pathname: to }); - const reactRouterProps = { href, onClick }; + const reactRouterProps = { href, onClick: reactRouterLinkClick }; return React.cloneElement(children as React.ReactElement, reactRouterProps); }; type TEuiReactRouterLinkProps = EuiLinkAnchorProps & IEuiReactRouterProps; type TEuiReactRouterButtonProps = EuiButtonProps & IEuiReactRouterProps; -export const EuiReactRouterLink: React.FC = ({ to, ...rest }) => ( - +export const EuiReactRouterLink: React.FC = ({ + to, + onClick, + ...rest +}) => ( + ); -export const EuiReactRouterButton: React.FC = ({ to, ...rest }) => ( - +export const EuiReactRouterButton: React.FC = ({ + to, + onClick, + ...rest +}) => ( + ); From c8b63c0b1b53266d9ccec52ae97006f73baba293 Mon Sep 17 00:00:00 2001 From: Spencer Date: Wed, 12 Aug 2020 11:09:46 -0700 Subject: [PATCH 13/27] [src/dev/build] implement a getBuildNumber() mock (#74881) Co-authored-by: spalger --- .../build/lib/__mocks__/get_build_number.ts | 22 ++++++++++++ src/dev/build/lib/get_build_number.ts | 34 +++++++++++++++++++ src/dev/build/lib/version_info.test.ts | 2 ++ src/dev/build/lib/version_info.ts | 16 +-------- .../nodejs/download_node_builds_task.test.ts | 5 +-- .../nodejs/extract_node_builds_task.test.ts | 1 + .../verify_existing_node_builds_task.test.ts | 1 + 7 files changed, 62 insertions(+), 19 deletions(-) create mode 100644 src/dev/build/lib/__mocks__/get_build_number.ts create mode 100644 src/dev/build/lib/get_build_number.ts diff --git a/src/dev/build/lib/__mocks__/get_build_number.ts b/src/dev/build/lib/__mocks__/get_build_number.ts new file mode 100644 index 0000000000000..60cfd3d82557a --- /dev/null +++ b/src/dev/build/lib/__mocks__/get_build_number.ts @@ -0,0 +1,22 @@ +/* + * 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 function getBuildNumber() { + return 12345; +} diff --git a/src/dev/build/lib/get_build_number.ts b/src/dev/build/lib/get_build_number.ts new file mode 100644 index 0000000000000..c512042592002 --- /dev/null +++ b/src/dev/build/lib/get_build_number.ts @@ -0,0 +1,34 @@ +/* + * 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 os from 'os'; +import execa from 'execa'; + +export async function getBuildNumber() { + if (/^win/.test(os.platform())) { + // Windows does not have the wc process and `find /C /V ""` does not consistently work + const log = await execa('git', ['log', '--format="%h"']); + return log.stdout.split('\n').length; + } + + const wc = await execa.command('git log --format="%h" | wc -l', { + shell: true, + }); + return parseFloat(wc.stdout.trim()); +} diff --git a/src/dev/build/lib/version_info.test.ts b/src/dev/build/lib/version_info.test.ts index 1b0c71bf9220e..ec8c363ddaccf 100644 --- a/src/dev/build/lib/version_info.test.ts +++ b/src/dev/build/lib/version_info.test.ts @@ -20,6 +20,8 @@ import pkg from '../../../../package.json'; import { getVersionInfo } from './version_info'; +jest.mock('./get_build_number'); + describe('isRelease = true', () => { it('returns unchanged package.version, build sha, and build number', async () => { const versionInfo = await getVersionInfo({ diff --git a/src/dev/build/lib/version_info.ts b/src/dev/build/lib/version_info.ts index 958112c524bac..fb3530b4c4edf 100644 --- a/src/dev/build/lib/version_info.ts +++ b/src/dev/build/lib/version_info.ts @@ -17,22 +17,8 @@ * under the License. */ -import os from 'os'; - import execa from 'execa'; - -async function getBuildNumber() { - if (/^win/.test(os.platform())) { - // Windows does not have the wc process and `find /C /V ""` does not consistently work - const log = await execa('git', ['log', '--format="%h"']); - return log.stdout.split('\n').length; - } - - const wc = await execa.command('git log --format="%h" | wc -l', { - shell: true, - }); - return parseFloat(wc.stdout.trim()); -} +import { getBuildNumber } from './get_build_number'; interface Options { isRelease: boolean; diff --git a/src/dev/build/tasks/nodejs/download_node_builds_task.test.ts b/src/dev/build/tasks/nodejs/download_node_builds_task.test.ts index 6f08c8aa69750..413bf95cde877 100644 --- a/src/dev/build/tasks/nodejs/download_node_builds_task.test.ts +++ b/src/dev/build/tasks/nodejs/download_node_builds_task.test.ts @@ -26,13 +26,10 @@ import { import { Config, Platform } from '../../lib'; import { DownloadNodeBuilds } from './download_node_builds_task'; -// import * as NodeShasumsNS from '../node_shasums'; -// import * as NodeDownloadInfoNS from '../node_download_info'; -// import * as DownloadNS from '../../../lib/download'; -// import { DownloadNodeBuilds } from '../download_node_builds_task'; jest.mock('./node_shasums'); jest.mock('./node_download_info'); jest.mock('../../lib/download'); +jest.mock('../../lib/get_build_number'); expect.addSnapshotSerializer(createAnyInstanceSerializer(ToolingLog)); diff --git a/src/dev/build/tasks/nodejs/extract_node_builds_task.test.ts b/src/dev/build/tasks/nodejs/extract_node_builds_task.test.ts index 94c421f7c9a62..f1700ef7b578c 100644 --- a/src/dev/build/tasks/nodejs/extract_node_builds_task.test.ts +++ b/src/dev/build/tasks/nodejs/extract_node_builds_task.test.ts @@ -27,6 +27,7 @@ import { Config } from '../../lib'; import { ExtractNodeBuilds } from './extract_node_builds_task'; jest.mock('../../lib/fs'); +jest.mock('../../lib/get_build_number'); const Fs = jest.requireMock('../../lib/fs'); diff --git a/src/dev/build/tasks/nodejs/verify_existing_node_builds_task.test.ts b/src/dev/build/tasks/nodejs/verify_existing_node_builds_task.test.ts index f24b7ffc59c14..19416963d5edd 100644 --- a/src/dev/build/tasks/nodejs/verify_existing_node_builds_task.test.ts +++ b/src/dev/build/tasks/nodejs/verify_existing_node_builds_task.test.ts @@ -29,6 +29,7 @@ import { VerifyExistingNodeBuilds } from './verify_existing_node_builds_task'; jest.mock('./node_shasums'); jest.mock('./node_download_info'); jest.mock('../../lib/fs'); +jest.mock('../../lib/get_build_number'); const { getNodeShasums } = jest.requireMock('./node_shasums'); const { getNodeDownloadInfo } = jest.requireMock('./node_download_info'); From 041b78cec1f3acc76f25eef4fd88bba0cd231451 Mon Sep 17 00:00:00 2001 From: Josh Dover Date: Wed, 12 Aug 2020 12:45:38 -0600 Subject: [PATCH 14/27] [reporting] Pass along generic parameters in high-order route handler (#74879) --- x-pack/plugins/reporting/server/routes/jobs.ts | 14 +++++--------- .../routes/lib/authorized_user_pre_routing.ts | 4 ++-- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/x-pack/plugins/reporting/server/routes/jobs.ts b/x-pack/plugins/reporting/server/routes/jobs.ts index e8eac9e577beb..510df119c2c47 100644 --- a/x-pack/plugins/reporting/server/routes/jobs.ts +++ b/x-pack/plugins/reporting/server/routes/jobs.ts @@ -52,11 +52,7 @@ export function registerJobInfoRoutes(reporting: ReportingCore) { const { management: { jobTypes = [] }, } = await reporting.getLicenseInfo(); - const { - page: queryPage = '0', - size: querySize = '10', - ids: queryIds = null, - } = req.query as ListQuery; // NOTE: type inference is not working here. userHandler breaks it? + const { page: queryPage = '0', size: querySize = '10', ids: queryIds = null } = req.query; const page = parseInt(queryPage, 10) || 0; const size = Math.min(100, parseInt(querySize, 10) || 10); const jobIds = queryIds ? queryIds.split(',') : null; @@ -116,7 +112,7 @@ export function registerJobInfoRoutes(reporting: ReportingCore) { return handleUnavailable(res); } - const { docId } = req.params as { docId: string }; + const { docId } = req.params; const { management: { jobTypes = [] }, } = await reporting.getLicenseInfo(); @@ -161,7 +157,7 @@ export function registerJobInfoRoutes(reporting: ReportingCore) { return res.custom({ statusCode: 503 }); } - const { docId } = req.params as { docId: string }; + const { docId } = req.params; const { management: { jobTypes = [] }, } = await reporting.getLicenseInfo(); @@ -213,7 +209,7 @@ export function registerJobInfoRoutes(reporting: ReportingCore) { return handleUnavailable(res); } - const { docId } = req.params as { docId: string }; + const { docId } = req.params; const { management: { jobTypes = [] }, } = await reporting.getLicenseInfo(); @@ -239,7 +235,7 @@ export function registerJobInfoRoutes(reporting: ReportingCore) { return handleUnavailable(res); } - const { docId } = req.params as { docId: string }; + const { docId } = req.params; const { management: { jobTypes = [] }, } = await reporting.getLicenseInfo(); diff --git a/x-pack/plugins/reporting/server/routes/lib/authorized_user_pre_routing.ts b/x-pack/plugins/reporting/server/routes/lib/authorized_user_pre_routing.ts index 3758eafc6d718..e2f393aad57d2 100644 --- a/x-pack/plugins/reporting/server/routes/lib/authorized_user_pre_routing.ts +++ b/x-pack/plugins/reporting/server/routes/lib/authorized_user_pre_routing.ts @@ -12,7 +12,7 @@ import { getUserFactory } from './get_user'; type ReportingUser = AuthenticatedUser | null; const superuserRole = 'superuser'; -export type RequestHandlerUser = RequestHandler extends (...a: infer U) => infer R +export type RequestHandlerUser = RequestHandler extends (...a: infer U) => infer R ? (user: ReportingUser, ...a: U) => R : never; @@ -21,7 +21,7 @@ export const authorizedUserPreRoutingFactory = function authorizedUserPreRouting ) { const setupDeps = reporting.getPluginSetupDeps(); const getUser = getUserFactory(setupDeps.security); - return (handler: RequestHandlerUser): RequestHandler => { + return (handler: RequestHandlerUser): RequestHandler => { return (context, req, res) => { let user: ReportingUser = null; if (setupDeps.security && setupDeps.security.license.isEnabled()) { From 5d82ac15cb3206f8a54eaef6dd940a19a55986cb Mon Sep 17 00:00:00 2001 From: Josh Dover Date: Wed, 12 Aug 2020 12:46:13 -0600 Subject: [PATCH 15/27] Revert "[reporting] Pass along generic parameters in high-order route handler" (#74891) This reverts commit 041b78cec1f3acc76f25eef4fd88bba0cd231451. --- x-pack/plugins/reporting/server/routes/jobs.ts | 14 +++++++++----- .../routes/lib/authorized_user_pre_routing.ts | 4 ++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/x-pack/plugins/reporting/server/routes/jobs.ts b/x-pack/plugins/reporting/server/routes/jobs.ts index 510df119c2c47..e8eac9e577beb 100644 --- a/x-pack/plugins/reporting/server/routes/jobs.ts +++ b/x-pack/plugins/reporting/server/routes/jobs.ts @@ -52,7 +52,11 @@ export function registerJobInfoRoutes(reporting: ReportingCore) { const { management: { jobTypes = [] }, } = await reporting.getLicenseInfo(); - const { page: queryPage = '0', size: querySize = '10', ids: queryIds = null } = req.query; + const { + page: queryPage = '0', + size: querySize = '10', + ids: queryIds = null, + } = req.query as ListQuery; // NOTE: type inference is not working here. userHandler breaks it? const page = parseInt(queryPage, 10) || 0; const size = Math.min(100, parseInt(querySize, 10) || 10); const jobIds = queryIds ? queryIds.split(',') : null; @@ -112,7 +116,7 @@ export function registerJobInfoRoutes(reporting: ReportingCore) { return handleUnavailable(res); } - const { docId } = req.params; + const { docId } = req.params as { docId: string }; const { management: { jobTypes = [] }, } = await reporting.getLicenseInfo(); @@ -157,7 +161,7 @@ export function registerJobInfoRoutes(reporting: ReportingCore) { return res.custom({ statusCode: 503 }); } - const { docId } = req.params; + const { docId } = req.params as { docId: string }; const { management: { jobTypes = [] }, } = await reporting.getLicenseInfo(); @@ -209,7 +213,7 @@ export function registerJobInfoRoutes(reporting: ReportingCore) { return handleUnavailable(res); } - const { docId } = req.params; + const { docId } = req.params as { docId: string }; const { management: { jobTypes = [] }, } = await reporting.getLicenseInfo(); @@ -235,7 +239,7 @@ export function registerJobInfoRoutes(reporting: ReportingCore) { return handleUnavailable(res); } - const { docId } = req.params; + const { docId } = req.params as { docId: string }; const { management: { jobTypes = [] }, } = await reporting.getLicenseInfo(); diff --git a/x-pack/plugins/reporting/server/routes/lib/authorized_user_pre_routing.ts b/x-pack/plugins/reporting/server/routes/lib/authorized_user_pre_routing.ts index e2f393aad57d2..3758eafc6d718 100644 --- a/x-pack/plugins/reporting/server/routes/lib/authorized_user_pre_routing.ts +++ b/x-pack/plugins/reporting/server/routes/lib/authorized_user_pre_routing.ts @@ -12,7 +12,7 @@ import { getUserFactory } from './get_user'; type ReportingUser = AuthenticatedUser | null; const superuserRole = 'superuser'; -export type RequestHandlerUser = RequestHandler extends (...a: infer U) => infer R +export type RequestHandlerUser = RequestHandler extends (...a: infer U) => infer R ? (user: ReportingUser, ...a: U) => R : never; @@ -21,7 +21,7 @@ export const authorizedUserPreRoutingFactory = function authorizedUserPreRouting ) { const setupDeps = reporting.getPluginSetupDeps(); const getUser = getUserFactory(setupDeps.security); - return (handler: RequestHandlerUser): RequestHandler => { + return (handler: RequestHandlerUser): RequestHandler => { return (context, req, res) => { let user: ReportingUser = null; if (setupDeps.security && setupDeps.security.license.isEnabled()) { From 2e5140d67b58ffd7220e4417ccafe06bc812ff47 Mon Sep 17 00:00:00 2001 From: Devon Thomson Date: Wed, 12 Aug 2020 15:31:44 -0400 Subject: [PATCH 16/27] [Dashboard First] Decouple Attribute Service and By Value Embeddables (#74302) * Added an interface that determines if an embeddable can be treated as either by reference or by value --- examples/embeddable_examples/kibana.json | 2 +- .../book/add_book_to_library_action.tsx | 55 ++++++ .../public/book/book_component.tsx | 32 +++- .../public/book/book_embeddable.tsx | 22 ++- .../public/book/book_embeddable_factory.tsx | 17 +- .../public/book/edit_book_action.tsx | 9 +- .../book/unlink_book_from_library_action.tsx | 55 ++++++ examples/embeddable_examples/public/plugin.ts | 24 ++- .../attribute_service/attribute_service.tsx | 156 ++++++++++++++++++ src/plugins/dashboard/public/index.ts | 1 + src/plugins/dashboard/public/plugin.tsx | 23 ++- src/plugins/embeddable/public/index.ts | 3 +- .../lib/embeddables/attribute_service.ts | 68 -------- .../public/lib/embeddables/index.ts | 1 - src/plugins/embeddable/public/lib/index.ts | 1 + .../reference_or_value_embeddable/index.ts | 20 +++ .../reference_or_value_embeddable/types.ts | 56 +++++++ src/plugins/embeddable/public/mocks.tsx | 1 - src/plugins/embeddable/public/plugin.tsx | 11 -- 19 files changed, 453 insertions(+), 104 deletions(-) create mode 100644 examples/embeddable_examples/public/book/add_book_to_library_action.tsx create mode 100644 examples/embeddable_examples/public/book/unlink_book_from_library_action.tsx create mode 100644 src/plugins/dashboard/public/attribute_service/attribute_service.tsx delete mode 100644 src/plugins/embeddable/public/lib/embeddables/attribute_service.ts create mode 100644 src/plugins/embeddable/public/lib/reference_or_value_embeddable/index.ts create mode 100644 src/plugins/embeddable/public/lib/reference_or_value_embeddable/types.ts diff --git a/examples/embeddable_examples/kibana.json b/examples/embeddable_examples/kibana.json index 771c19cfdbd3d..0ac40ae1889de 100644 --- a/examples/embeddable_examples/kibana.json +++ b/examples/embeddable_examples/kibana.json @@ -4,7 +4,7 @@ "kibanaVersion": "kibana", "server": true, "ui": true, - "requiredPlugins": ["embeddable", "uiActions"], + "requiredPlugins": ["embeddable", "uiActions", "dashboard"], "optionalPlugins": [], "extraPublicDirs": ["public/todo", "public/hello_world", "public/todo/todo_ref_embeddable"], "requiredBundles": ["kibanaReact"] diff --git a/examples/embeddable_examples/public/book/add_book_to_library_action.tsx b/examples/embeddable_examples/public/book/add_book_to_library_action.tsx new file mode 100644 index 0000000000000..b74a1d5642982 --- /dev/null +++ b/examples/embeddable_examples/public/book/add_book_to_library_action.tsx @@ -0,0 +1,55 @@ +/* + * 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 { i18n } from '@kbn/i18n'; +import { createAction, IncompatibleActionError } from '../../../../src/plugins/ui_actions/public'; +import { BookEmbeddable, BOOK_EMBEDDABLE } from './book_embeddable'; +import { ViewMode, isReferenceOrValueEmbeddable } from '../../../../src/plugins/embeddable/public'; + +interface ActionContext { + embeddable: BookEmbeddable; +} + +export const ACTION_ADD_BOOK_TO_LIBRARY = 'ACTION_ADD_BOOK_TO_LIBRARY'; + +export const createAddBookToLibraryAction = () => + createAction({ + getDisplayName: () => + i18n.translate('embeddableExamples.book.addToLibrary', { + defaultMessage: 'Add Book To Library', + }), + type: ACTION_ADD_BOOK_TO_LIBRARY, + order: 100, + getIconType: () => 'folderCheck', + isCompatible: async ({ embeddable }: ActionContext) => { + return ( + embeddable.type === BOOK_EMBEDDABLE && + embeddable.getInput().viewMode === ViewMode.EDIT && + isReferenceOrValueEmbeddable(embeddable) && + !embeddable.inputIsRefType(embeddable.getInput()) + ); + }, + execute: async ({ embeddable }: ActionContext) => { + if (!isReferenceOrValueEmbeddable(embeddable)) { + throw new IncompatibleActionError(); + } + const newInput = await embeddable.getInputAsRefType(); + embeddable.updateInput(newInput); + }, + }); diff --git a/examples/embeddable_examples/public/book/book_component.tsx b/examples/embeddable_examples/public/book/book_component.tsx index 064e13c131a0a..e46487641b913 100644 --- a/examples/embeddable_examples/public/book/book_component.tsx +++ b/examples/embeddable_examples/public/book/book_component.tsx @@ -20,7 +20,7 @@ import React from 'react'; import { EuiFlexItem, EuiFlexGroup, EuiIcon } from '@elastic/eui'; import { EuiText } from '@elastic/eui'; -import { EuiFlexGrid } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; import { withEmbeddableSubscription } from '../../../../src/plugins/embeddable/public'; import { BookEmbeddableInput, BookEmbeddableOutput, BookEmbeddable } from './book_embeddable'; @@ -44,26 +44,32 @@ function wrapSearchTerms(task?: string, search?: string) { ); } -export function BookEmbeddableComponentInner({ input: { search }, output: { attributes } }: Props) { +export function BookEmbeddableComponentInner({ + input: { search }, + output: { attributes }, + embeddable, +}: Props) { const title = attributes?.title; const author = attributes?.author; const readIt = attributes?.readIt; + const byReference = embeddable.inputIsRefType(embeddable.getInput()); + return ( - + {title ? ( -

    {wrapSearchTerms(title, search)},

    +

    {wrapSearchTerms(title, search)}

    ) : null} {author ? ( -
    -{wrapSearchTerms(author, search)}
    + -{wrapSearchTerms(author, search)}
    ) : null} @@ -76,7 +82,21 @@ export function BookEmbeddableComponentInner({ input: { search }, output: { attr
    )} - +
    + + + + {' '} + + {byReference + ? i18n.translate('embeddableExamples.book.byReferenceLabel', { + defaultMessage: 'Book is By Reference', + }) + : i18n.translate('embeddableExamples.book.byValueLabel', { + defaultMessage: 'Book is By Value', + })} + + ); diff --git a/examples/embeddable_examples/public/book/book_embeddable.tsx b/examples/embeddable_examples/public/book/book_embeddable.tsx index d49bd3280d97d..dd9418c0e8596 100644 --- a/examples/embeddable_examples/public/book/book_embeddable.tsx +++ b/examples/embeddable_examples/public/book/book_embeddable.tsx @@ -25,10 +25,11 @@ import { IContainer, EmbeddableOutput, SavedObjectEmbeddableInput, - AttributeService, + ReferenceOrValueEmbeddable, } from '../../../../src/plugins/embeddable/public'; import { BookSavedObjectAttributes } from '../../common'; import { BookEmbeddableComponent } from './book_component'; +import { AttributeService } from '../../../../src/plugins/dashboard/public'; export const BOOK_EMBEDDABLE = 'book'; export type BookEmbeddableInput = BookByValueInput | BookByReferenceInput; @@ -59,7 +60,8 @@ function getHasMatch(search?: string, savedAttributes?: BookSavedObjectAttribute ); } -export class BookEmbeddable extends Embeddable { +export class BookEmbeddable extends Embeddable + implements ReferenceOrValueEmbeddable { public readonly type = BOOK_EMBEDDABLE; private subscription: Subscription; private node?: HTMLElement; @@ -96,6 +98,18 @@ export class BookEmbeddable extends Embeddable { + return this.attributeService.inputIsRefType(input); + }; + + getInputAsValueType = async (): Promise => { + return this.attributeService.getInputAsValueType(this.input); + }; + + getInputAsRefType = async (): Promise => { + return this.attributeService.getInputAsRefType(this.input, { showSaveModal: true }); + }; + public render(node: HTMLElement) { if (this.node) { ReactDOM.unmountComponentAtNode(this.node); @@ -113,6 +127,10 @@ export class BookEmbeddable extends Embeddable(this.type); } - return this.attributeService; + return this.attributeService!; } } diff --git a/examples/embeddable_examples/public/book/edit_book_action.tsx b/examples/embeddable_examples/public/book/edit_book_action.tsx index 222f70e0be60f..b31d69696598e 100644 --- a/examples/embeddable_examples/public/book/edit_book_action.tsx +++ b/examples/embeddable_examples/public/book/edit_book_action.tsx @@ -22,11 +22,7 @@ import { i18n } from '@kbn/i18n'; import { BookSavedObjectAttributes, BOOK_SAVED_OBJECT } from '../../common'; import { createAction } from '../../../../src/plugins/ui_actions/public'; import { toMountPoint } from '../../../../src/plugins/kibana_react/public'; -import { - ViewMode, - EmbeddableStart, - SavedObjectEmbeddableInput, -} from '../../../../src/plugins/embeddable/public'; +import { ViewMode, SavedObjectEmbeddableInput } from '../../../../src/plugins/embeddable/public'; import { BookEmbeddable, BOOK_EMBEDDABLE, @@ -34,10 +30,11 @@ import { BookByValueInput, } from './book_embeddable'; import { CreateEditBookComponent } from './create_edit_book_component'; +import { DashboardStart } from '../../../../src/plugins/dashboard/public'; interface StartServices { openModal: OverlayStart['openModal']; - getAttributeService: EmbeddableStart['getAttributeService']; + getAttributeService: DashboardStart['getAttributeService']; } interface ActionContext { diff --git a/examples/embeddable_examples/public/book/unlink_book_from_library_action.tsx b/examples/embeddable_examples/public/book/unlink_book_from_library_action.tsx new file mode 100644 index 0000000000000..cef77092a642a --- /dev/null +++ b/examples/embeddable_examples/public/book/unlink_book_from_library_action.tsx @@ -0,0 +1,55 @@ +/* + * 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 { i18n } from '@kbn/i18n'; +import { createAction, IncompatibleActionError } from '../../../../src/plugins/ui_actions/public'; +import { BookEmbeddable, BOOK_EMBEDDABLE } from './book_embeddable'; +import { ViewMode, isReferenceOrValueEmbeddable } from '../../../../src/plugins/embeddable/public'; + +interface ActionContext { + embeddable: BookEmbeddable; +} + +export const ACTION_UNLINK_BOOK_FROM_LIBRARY = 'ACTION_UNLINK_BOOK_FROM_LIBRARY'; + +export const createUnlinkBookFromLibraryAction = () => + createAction({ + getDisplayName: () => + i18n.translate('embeddableExamples.book.unlinkFromLibrary', { + defaultMessage: 'Unlink Book from Library Item', + }), + type: ACTION_UNLINK_BOOK_FROM_LIBRARY, + order: 100, + getIconType: () => 'folderExclamation', + isCompatible: async ({ embeddable }: ActionContext) => { + return ( + embeddable.type === BOOK_EMBEDDABLE && + embeddable.getInput().viewMode === ViewMode.EDIT && + isReferenceOrValueEmbeddable(embeddable) && + embeddable.inputIsRefType(embeddable.getInput()) + ); + }, + execute: async ({ embeddable }: ActionContext) => { + if (!isReferenceOrValueEmbeddable(embeddable)) { + throw new IncompatibleActionError(); + } + const newInput = await embeddable.getInputAsValueType(); + embeddable.updateInput(newInput); + }, + }); diff --git a/examples/embeddable_examples/public/plugin.ts b/examples/embeddable_examples/public/plugin.ts index 95f4f5b41e198..0c6ed1eb3be48 100644 --- a/examples/embeddable_examples/public/plugin.ts +++ b/examples/embeddable_examples/public/plugin.ts @@ -58,6 +58,15 @@ import { BookEmbeddableFactoryDefinition, } from './book/book_embeddable_factory'; import { UiActionsStart } from '../../../src/plugins/ui_actions/public'; +import { + ACTION_ADD_BOOK_TO_LIBRARY, + createAddBookToLibraryAction, +} from './book/add_book_to_library_action'; +import { DashboardStart } from '../../../src/plugins/dashboard/public'; +import { + ACTION_UNLINK_BOOK_FROM_LIBRARY, + createUnlinkBookFromLibraryAction, +} from './book/unlink_book_from_library_action'; export interface EmbeddableExamplesSetupDependencies { embeddable: EmbeddableSetup; @@ -66,6 +75,7 @@ export interface EmbeddableExamplesSetupDependencies { export interface EmbeddableExamplesStartDependencies { embeddable: EmbeddableStart; + dashboard: DashboardStart; } interface ExampleEmbeddableFactories { @@ -86,6 +96,8 @@ export interface EmbeddableExamplesStart { declare module '../../../src/plugins/ui_actions/public' { export interface ActionContextMapping { [ACTION_EDIT_BOOK]: { embeddable: BookEmbeddable }; + [ACTION_ADD_BOOK_TO_LIBRARY]: { embeddable: BookEmbeddable }; + [ACTION_UNLINK_BOOK_FROM_LIBRARY]: { embeddable: BookEmbeddable }; } } @@ -144,17 +156,25 @@ export class EmbeddableExamplesPlugin this.exampleEmbeddableFactories.getBookEmbeddableFactory = deps.embeddable.registerEmbeddableFactory( BOOK_EMBEDDABLE, new BookEmbeddableFactoryDefinition(async () => ({ - getAttributeService: (await core.getStartServices())[1].embeddable.getAttributeService, + getAttributeService: (await core.getStartServices())[1].dashboard.getAttributeService, openModal: (await core.getStartServices())[0].overlays.openModal, })) ); const editBookAction = createEditBookAction(async () => ({ - getAttributeService: (await core.getStartServices())[1].embeddable.getAttributeService, + getAttributeService: (await core.getStartServices())[1].dashboard.getAttributeService, openModal: (await core.getStartServices())[0].overlays.openModal, })); deps.uiActions.registerAction(editBookAction); deps.uiActions.attachAction(CONTEXT_MENU_TRIGGER, editBookAction.id); + + const addBookToLibraryAction = createAddBookToLibraryAction(); + deps.uiActions.registerAction(addBookToLibraryAction); + deps.uiActions.attachAction(CONTEXT_MENU_TRIGGER, addBookToLibraryAction.id); + + const unlinkBookFromLibraryAction = createUnlinkBookFromLibraryAction(); + deps.uiActions.registerAction(unlinkBookFromLibraryAction); + deps.uiActions.attachAction(CONTEXT_MENU_TRIGGER, unlinkBookFromLibraryAction.id); } public start( diff --git a/src/plugins/dashboard/public/attribute_service/attribute_service.tsx b/src/plugins/dashboard/public/attribute_service/attribute_service.tsx new file mode 100644 index 0000000000000..c2f529fe399f3 --- /dev/null +++ b/src/plugins/dashboard/public/attribute_service/attribute_service.tsx @@ -0,0 +1,156 @@ +/* + * 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 React from 'react'; +import { i18n } from '@kbn/i18n'; +import { + EmbeddableInput, + SavedObjectEmbeddableInput, + isSavedObjectEmbeddableInput, + IEmbeddable, +} from '../embeddable_plugin'; +import { + SavedObjectsClientContract, + SimpleSavedObject, + I18nStart, + NotificationsStart, +} from '../../../../core/public'; +import { + SavedObjectSaveModal, + showSaveModal, + OnSaveProps, + SaveResult, +} from '../../../saved_objects/public'; + +/** + * The attribute service is a shared, generic service that embeddables can use to provide the functionality + * required to fulfill the requirements of the ReferenceOrValueEmbeddable interface. The attribute_service + * can also be used as a higher level wrapper to transform an embeddable input shape that references a saved object + * into an embeddable input shape that contains that saved object's attributes by value. + */ +export class AttributeService< + SavedObjectAttributes extends { title: string }, + ValType extends EmbeddableInput & { attributes: SavedObjectAttributes }, + RefType extends SavedObjectEmbeddableInput +> { + constructor( + private type: string, + private savedObjectsClient: SavedObjectsClientContract, + private i18nContext: I18nStart['Context'], + private toasts: NotificationsStart['toasts'] + ) {} + + public async unwrapAttributes(input: RefType | ValType): Promise { + if (this.inputIsRefType(input)) { + const savedObject: SimpleSavedObject = await this.savedObjectsClient.get< + SavedObjectAttributes + >(this.type, input.savedObjectId); + return savedObject.attributes; + } + return input.attributes; + } + + public async wrapAttributes( + newAttributes: SavedObjectAttributes, + useRefType: boolean, + embeddable?: IEmbeddable + ): Promise> { + const savedObjectId = + embeddable && isSavedObjectEmbeddableInput(embeddable.getInput()) + ? (embeddable.getInput() as SavedObjectEmbeddableInput).savedObjectId + : undefined; + if (!useRefType) { + return { attributes: newAttributes } as ValType; + } else { + try { + if (savedObjectId) { + await this.savedObjectsClient.update(this.type, savedObjectId, newAttributes); + return { savedObjectId } as RefType; + } else { + const savedItem = await this.savedObjectsClient.create(this.type, newAttributes); + return { savedObjectId: savedItem.id } as RefType; + } + } catch (error) { + this.toasts.addDanger({ + title: i18n.translate('dashboard.attributeService.saveToLibraryError', { + defaultMessage: `Panel was not saved to the library. Error: {errorMessage}`, + values: { + errorMessage: error.message, + }, + }), + 'data-test-subj': 'saveDashboardFailure', + }); + return Promise.reject({ error }); + } + } + } + + inputIsRefType = (input: ValType | RefType): input is RefType => { + return isSavedObjectEmbeddableInput(input); + }; + + getInputAsValueType = async (input: ValType | RefType): Promise => { + if (!this.inputIsRefType(input)) { + return input; + } + const attributes = await this.unwrapAttributes(input); + return { + ...input, + savedObjectId: undefined, + attributes, + }; + }; + + getInputAsRefType = async ( + input: ValType | RefType, + saveOptions?: { showSaveModal: boolean } | { title: string } + ): Promise => { + if (this.inputIsRefType(input)) { + return input; + } + + return new Promise((resolve, reject) => { + const onSave = async (props: OnSaveProps): Promise => { + try { + input.attributes.title = props.newTitle; + const wrappedInput = (await this.wrapAttributes(input.attributes, true)) as RefType; + resolve(wrappedInput); + return { id: wrappedInput.savedObjectId }; + } catch (error) { + reject(); + return { error }; + } + }; + + if (saveOptions && (saveOptions as { showSaveModal: boolean }).showSaveModal) { + showSaveModal( + reject()} + title={input.attributes.title} + showCopyOnSave={false} + objectType={this.type} + showDescription={false} + />, + this.i18nContext + ); + } + }); + }; +} diff --git a/src/plugins/dashboard/public/index.ts b/src/plugins/dashboard/public/index.ts index dcfde67cd9f13..8a9954cc77a2e 100644 --- a/src/plugins/dashboard/public/index.ts +++ b/src/plugins/dashboard/public/index.ts @@ -40,6 +40,7 @@ export { export { addEmbeddableToDashboardUrl } from './url_utils/url_helper'; export { SavedObjectDashboard } from './saved_dashboards'; export { SavedDashboardPanel } from './types'; +export { AttributeService } from './attribute_service/attribute_service'; export function plugin(initializerContext: PluginInitializerContext) { return new DashboardPlugin(initializerContext); diff --git a/src/plugins/dashboard/public/plugin.tsx b/src/plugins/dashboard/public/plugin.tsx index f1319665d258b..3b0863a9f4651 100644 --- a/src/plugins/dashboard/public/plugin.tsx +++ b/src/plugins/dashboard/public/plugin.tsx @@ -34,7 +34,13 @@ import { ScopedHistory, } from 'src/core/public'; import { UsageCollectionSetup } from '../../usage_collection/public'; -import { CONTEXT_MENU_TRIGGER, EmbeddableSetup, EmbeddableStart } from '../../embeddable/public'; +import { + CONTEXT_MENU_TRIGGER, + EmbeddableSetup, + EmbeddableStart, + SavedObjectEmbeddableInput, + EmbeddableInput, +} from '../../embeddable/public'; import { DataPublicPluginSetup, DataPublicPluginStart, esFilters } from '../../data/public'; import { SharePluginSetup, SharePluginStart, UrlGeneratorContract } from '../../share/public'; import { UiActionsSetup, UiActionsStart } from '../../ui_actions/public'; @@ -85,6 +91,7 @@ import { DashboardConstants } from './dashboard_constants'; import { addEmbeddableToDashboardUrl } from './url_utils/url_helper'; import { PlaceholderEmbeddableFactory } from './application/embeddable/placeholder'; import { UrlGeneratorState } from '../../share/public'; +import { AttributeService } from '.'; declare module '../../share/public' { export interface UrlGeneratorStateMapping { @@ -131,6 +138,13 @@ export interface DashboardStart { dashboardUrlGenerator?: DashboardUrlGenerator; dashboardFeatureFlagConfig: DashboardFeatureFlagConfig; DashboardContainerByValueRenderer: ReturnType; + getAttributeService: < + A extends { title: string }, + V extends EmbeddableInput & { attributes: A }, + R extends SavedObjectEmbeddableInput + >( + type: string + ) => AttributeService; } declare module '../../../plugins/ui_actions/public' { @@ -420,6 +434,13 @@ export class DashboardPlugin DashboardContainerByValueRenderer: createDashboardContainerByValueRenderer({ factory: dashboardContainerFactory, }), + getAttributeService: (type: string) => + new AttributeService( + type, + core.savedObjects.client, + core.i18n.Context, + core.notifications.toasts + ), }; } diff --git a/src/plugins/embeddable/public/index.ts b/src/plugins/embeddable/public/index.ts index fafbdda148de8..57253c1f741ab 100644 --- a/src/plugins/embeddable/public/index.ts +++ b/src/plugins/embeddable/public/index.ts @@ -28,7 +28,8 @@ export { ACTION_EDIT_PANEL, Adapters, AddPanelAction, - AttributeService, + ReferenceOrValueEmbeddable, + isReferenceOrValueEmbeddable, ChartActionContext, Container, ContainerInput, diff --git a/src/plugins/embeddable/public/lib/embeddables/attribute_service.ts b/src/plugins/embeddable/public/lib/embeddables/attribute_service.ts deleted file mode 100644 index a33f592350d9a..0000000000000 --- a/src/plugins/embeddable/public/lib/embeddables/attribute_service.ts +++ /dev/null @@ -1,68 +0,0 @@ -/* - * 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 { SavedObjectsClientContract } from '../../../../../core/public'; -import { - SavedObjectEmbeddableInput, - isSavedObjectEmbeddableInput, - EmbeddableInput, - IEmbeddable, -} from '.'; -import { SimpleSavedObject } from '../../../../../core/public'; - -export class AttributeService< - SavedObjectAttributes, - ValType extends EmbeddableInput & { attributes: SavedObjectAttributes }, - RefType extends SavedObjectEmbeddableInput -> { - constructor(private type: string, private savedObjectsClient: SavedObjectsClientContract) {} - - public async unwrapAttributes(input: RefType | ValType): Promise { - if (isSavedObjectEmbeddableInput(input)) { - const savedObject: SimpleSavedObject = await this.savedObjectsClient.get< - SavedObjectAttributes - >(this.type, input.savedObjectId); - return savedObject.attributes; - } - return input.attributes; - } - - public async wrapAttributes( - newAttributes: SavedObjectAttributes, - useRefType: boolean, - embeddable?: IEmbeddable - ): Promise> { - const savedObjectId = - embeddable && isSavedObjectEmbeddableInput(embeddable.getInput()) - ? (embeddable.getInput() as SavedObjectEmbeddableInput).savedObjectId - : undefined; - - if (useRefType) { - if (savedObjectId) { - await this.savedObjectsClient.update(this.type, savedObjectId, newAttributes); - return { savedObjectId } as RefType; - } else { - const savedItem = await this.savedObjectsClient.create(this.type, newAttributes); - return { savedObjectId: savedItem.id } as RefType; - } - } else { - return { attributes: newAttributes } as ValType; - } - } -} diff --git a/src/plugins/embeddable/public/lib/embeddables/index.ts b/src/plugins/embeddable/public/lib/embeddables/index.ts index 06cb6e322acf3..5bab5ac27f3cc 100644 --- a/src/plugins/embeddable/public/lib/embeddables/index.ts +++ b/src/plugins/embeddable/public/lib/embeddables/index.ts @@ -25,5 +25,4 @@ export { ErrorEmbeddable, isErrorEmbeddable } from './error_embeddable'; export { withEmbeddableSubscription } from './with_subscription'; export { EmbeddableRoot } from './embeddable_root'; export * from './saved_object_embeddable'; -export { AttributeService } from './attribute_service'; export { EmbeddableRenderer, EmbeddableRendererProps } from './embeddable_renderer'; diff --git a/src/plugins/embeddable/public/lib/index.ts b/src/plugins/embeddable/public/lib/index.ts index b757fa59a7f3a..aef4c33ee1078 100644 --- a/src/plugins/embeddable/public/lib/index.ts +++ b/src/plugins/embeddable/public/lib/index.ts @@ -25,3 +25,4 @@ export * from './triggers'; export * from './containers'; export * from './panel'; export * from './state_transfer'; +export * from './reference_or_value_embeddable'; diff --git a/src/plugins/embeddable/public/lib/reference_or_value_embeddable/index.ts b/src/plugins/embeddable/public/lib/reference_or_value_embeddable/index.ts new file mode 100644 index 0000000000000..e9b8521a35ba5 --- /dev/null +++ b/src/plugins/embeddable/public/lib/reference_or_value_embeddable/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 { ReferenceOrValueEmbeddable, isReferenceOrValueEmbeddable } from './types'; diff --git a/src/plugins/embeddable/public/lib/reference_or_value_embeddable/types.ts b/src/plugins/embeddable/public/lib/reference_or_value_embeddable/types.ts new file mode 100644 index 0000000000000..eaf5c94a09138 --- /dev/null +++ b/src/plugins/embeddable/public/lib/reference_or_value_embeddable/types.ts @@ -0,0 +1,56 @@ +/* + * 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 { EmbeddableInput, SavedObjectEmbeddableInput } from '..'; + +/** + * Any embeddable that implements this interface will be able to use input that is + * either by reference (backed by a saved object) OR by value, (provided + * by the container). + * @public + */ +export interface ReferenceOrValueEmbeddable< + ValTypeInput extends EmbeddableInput = EmbeddableInput, + RefTypeInput extends SavedObjectEmbeddableInput = SavedObjectEmbeddableInput +> { + /** + * determines whether the input is by value or by reference. + */ + inputIsRefType: (input: ValTypeInput | RefTypeInput) => input is RefTypeInput; + + /** + * Gets the embeddable's current input as its Value type + */ + getInputAsValueType: () => Promise; + + /** + * Gets the embeddable's current input as its Reference type + */ + getInputAsRefType: () => Promise; +} + +export function isReferenceOrValueEmbeddable( + incoming: unknown +): incoming is ReferenceOrValueEmbeddable { + return ( + !!(incoming as ReferenceOrValueEmbeddable).inputIsRefType && + !!(incoming as ReferenceOrValueEmbeddable).getInputAsValueType && + !!(incoming as ReferenceOrValueEmbeddable).getInputAsRefType + ); +} diff --git a/src/plugins/embeddable/public/mocks.tsx b/src/plugins/embeddable/public/mocks.tsx index 94aa980e446ca..fa79af909a427 100644 --- a/src/plugins/embeddable/public/mocks.tsx +++ b/src/plugins/embeddable/public/mocks.tsx @@ -97,7 +97,6 @@ const createStartContract = (): Start => { getEmbeddableFactories: jest.fn(), getEmbeddableFactory: jest.fn(), EmbeddablePanel: jest.fn(), - getAttributeService: jest.fn(), getEmbeddablePanel: jest.fn(), getStateTransfer: jest.fn(() => createEmbeddableStateTransferMock() as EmbeddableStateTransfer), }; diff --git a/src/plugins/embeddable/public/plugin.tsx b/src/plugins/embeddable/public/plugin.tsx index 319cbf8ec44b4..3cbd49279564f 100644 --- a/src/plugins/embeddable/public/plugin.tsx +++ b/src/plugins/embeddable/public/plugin.tsx @@ -37,10 +37,8 @@ import { defaultEmbeddableFactoryProvider, IEmbeddable, EmbeddablePanel, - SavedObjectEmbeddableInput, } from './lib'; import { EmbeddableFactoryDefinition } from './lib/embeddables/embeddable_factory_definition'; -import { AttributeService } from './lib/embeddables/attribute_service'; import { EmbeddableStateTransfer } from './lib/state_transfer'; export interface EmbeddableSetupDependencies { @@ -75,14 +73,6 @@ export interface EmbeddableStart { embeddableFactoryId: string ) => EmbeddableFactory | undefined; getEmbeddableFactories: () => IterableIterator; - getAttributeService: < - A, - V extends EmbeddableInput & { attributes: A }, - R extends SavedObjectEmbeddableInput - >( - type: string - ) => AttributeService; - EmbeddablePanel: EmbeddablePanelHOC; getEmbeddablePanel: (stateTransfer?: EmbeddableStateTransfer) => EmbeddablePanelHOC; getStateTransfer: (history?: ScopedHistory) => EmbeddableStateTransfer; @@ -159,7 +149,6 @@ export class EmbeddablePublicPlugin implements Plugin new AttributeService(type, core.savedObjects.client), getStateTransfer: (history?: ScopedHistory) => { return history ? new EmbeddableStateTransfer(core.application.navigateToApp, history) From c97916ea81c47cf33b58c2c2dcce6912a86c1de6 Mon Sep 17 00:00:00 2001 From: Spencer Date: Wed, 12 Aug 2020 12:45:49 -0700 Subject: [PATCH 17/27] [babel] coalese some versions to prevent breaking yarn install (#74864) Co-authored-by: spalger Co-authored-by: Elastic Machine --- packages/kbn-pm/dist/index.js | 4 +- yarn.lock | 987 ++-------------------------------- 2 files changed, 53 insertions(+), 938 deletions(-) diff --git a/packages/kbn-pm/dist/index.js b/packages/kbn-pm/dist/index.js index ee141e1d8ab7a..9427cc57805e6 100644 --- a/packages/kbn-pm/dist/index.js +++ b/packages/kbn-pm/dist/index.js @@ -15108,7 +15108,7 @@ function getMarkerLines(loc, source, opts) { column: 0, line: -1 }, loc.start); - const endLoc = Object.assign({}, startLoc, {}, loc.end); + const endLoc = Object.assign({}, startLoc, loc.end); const { linesAbove = 2, linesBelow = 3 @@ -15530,7 +15530,7 @@ function isIdentifierName(name) { } } - return true; + return !isFirst; } /***/ }), diff --git a/yarn.lock b/yarn.lock index 7731d2f7a8ea1..4eac262ddfd2f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -25,14 +25,7 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== - dependencies: - "@babel/highlight" "^7.8.3" - -"@babel/code-frame@^7.10.4": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== @@ -48,38 +41,7 @@ invariant "^2.2.4" semver "^5.5.0" -"@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c" - integrity sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g== - dependencies: - browserslist "^4.9.1" - invariant "^2.2.4" - semver "^5.5.0" - -"@babel/core@^7.0.1", "@babel/core@^7.1.0", "@babel/core@^7.4.3", "@babel/core@^7.7.5": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" - integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.0" - "@babel/parser" "^7.9.0" - "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.11.1": +"@babel/core@^7.0.1", "@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.4.3", "@babel/core@^7.7.5": version "7.11.1" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.1.tgz#2c55b604e73a40dc21b0e52650b11c65cf276643" integrity sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ== @@ -101,17 +63,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.0.0", "@babel/generator@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.4.tgz#12441e90c3b3c4159cdecf312075bf1a8ce2dbce" - integrity sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA== - dependencies: - "@babel/types" "^7.9.0" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/generator@^7.11.0": +"@babel/generator@^7.0.0", "@babel/generator@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.0.tgz#4b90c78d8c12825024568cbe83ee6c9af193585c" integrity sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ== @@ -120,24 +72,7 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.5.tgz#27f0917741acc41e6eaaced6d68f96c3fa9afaf9" - integrity sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ== - dependencies: - "@babel/types" "^7.9.5" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" - integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-annotate-as-pure@^7.10.4": +"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== @@ -152,14 +87,6 @@ "@babel/helper-explode-assignable-expression" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" - integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.8.3" - "@babel/types" "^7.8.3" - "@babel/helper-builder-react-jsx-experimental@^7.10.4": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz#f35e956a19955ff08c1258e44a515a6d6248646b" @@ -169,15 +96,6 @@ "@babel/helper-module-imports" "^7.10.4" "@babel/types" "^7.10.5" -"@babel/helper-builder-react-jsx-experimental@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.0.tgz#066d80262ade488f9c1b1823ce5db88a4cedaa43" - integrity sha512-3xJEiyuYU4Q/Ar9BsHisgdxZsRlsShMe90URZ0e6przL26CCs8NJbDoxH94kKT17PcxlMhsCAwZd90evCo26VQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-module-imports" "^7.8.3" - "@babel/types" "^7.9.0" - "@babel/helper-builder-react-jsx@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d" @@ -186,14 +104,6 @@ "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-builder-react-jsx@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz#16bf391990b57732700a3278d4d9a81231ea8d32" - integrity sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/types" "^7.9.0" - "@babel/helper-compilation-targets@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2" @@ -205,17 +115,6 @@ levenary "^1.1.1" semver "^5.5.0" -"@babel/helper-compilation-targets@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz#dac1eea159c0e4bd46e309b5a1b04a66b53c1dde" - integrity sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw== - dependencies: - "@babel/compat-data" "^7.8.6" - browserslist "^4.9.1" - invariant "^2.2.4" - levenary "^1.1.1" - semver "^5.5.0" - "@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.10.5": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" @@ -228,18 +127,6 @@ "@babel/helper-replace-supers" "^7.10.4" "@babel/helper-split-export-declaration" "^7.10.4" -"@babel/helper-create-class-features-plugin@^7.8.3": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.6.tgz#243a5b46e2f8f0f674dc1387631eb6b28b851de0" - integrity sha512-klTBDdsr+VFFqaDHm5rR69OpEQtO2Qv8ECxHS1mNhJJvaHArR6a1xTf5K/eZW7eZpJbhCx3NW1Yt/sKsLXLblg== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/helper-create-regexp-features-plugin@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" @@ -249,15 +136,6 @@ "@babel/helper-regex" "^7.10.4" regexpu-core "^4.7.0" -"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" - integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - regexpu-core "^4.7.0" - "@babel/helper-define-map@^7.10.4": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" @@ -267,15 +145,6 @@ "@babel/types" "^7.10.5" lodash "^4.17.19" -"@babel/helper-define-map@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" - integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/types" "^7.8.3" - lodash "^4.17.13" - "@babel/helper-explode-assignable-expression@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz#40a1cd917bff1288f699a94a75b37a1a2dbd8c7c" @@ -284,14 +153,6 @@ "@babel/traverse" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-explode-assignable-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" - integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== - dependencies: - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - "@babel/helper-function-name@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" @@ -301,24 +162,6 @@ "@babel/template" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" - integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-function-name@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" - integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.9.5" - "@babel/helper-get-function-arity@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" @@ -326,13 +169,6 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== - dependencies: - "@babel/types" "^7.8.3" - "@babel/helper-hoist-variables@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" @@ -340,13 +176,6 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-hoist-variables@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" - integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== - dependencies: - "@babel/types" "^7.8.3" - "@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" @@ -354,21 +183,7 @@ dependencies: "@babel/types" "^7.11.0" -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-imports@^7.10.4": +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== @@ -388,19 +203,6 @@ "@babel/types" "^7.11.0" lodash "^4.17.19" -"@babel/helper-module-transforms@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" - integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-simple-access" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.6" - "@babel/types" "^7.9.0" - lodash "^4.17.13" - "@babel/helper-optimise-call-expression@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" @@ -408,19 +210,7 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" - integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== - -"@babel/helper-plugin-utils@^7.10.4": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== @@ -432,13 +222,6 @@ dependencies: lodash "^4.17.19" -"@babel/helper-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" - integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== - dependencies: - lodash "^4.17.13" - "@babel/helper-remap-async-to-generator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz#fce8bea4e9690bbe923056ded21e54b4e8b68ed5" @@ -450,17 +233,6 @@ "@babel/traverse" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-remap-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" - integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-wrap-function" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - "@babel/helper-replace-supers@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" @@ -471,16 +243,6 @@ "@babel/traverse" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" - integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.6" - "@babel/types" "^7.8.6" - "@babel/helper-simple-access@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" @@ -489,14 +251,6 @@ "@babel/template" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-simple-access@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" - integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== - dependencies: - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - "@babel/helper-skip-transparent-expression-wrappers@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" @@ -511,28 +265,11 @@ dependencies: "@babel/types" "^7.11.0" -"@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== - dependencies: - "@babel/types" "^7.8.3" - "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== -"@babel/helper-validator-identifier@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed" - integrity sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw== - -"@babel/helper-validator-identifier@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" - integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== - "@babel/helper-wrap-function@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" @@ -543,16 +280,6 @@ "@babel/traverse" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-wrap-function@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" - integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - "@babel/helpers@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" @@ -562,25 +289,7 @@ "@babel/traverse" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helpers@^7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" - integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== - dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - -"@babel/highlight@^7.0.0", "@babel/highlight@^7.8.3": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" - integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== - dependencies: - "@babel/helper-validator-identifier" "^7.9.0" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/highlight@^7.10.4": +"@babel/highlight@^7.0.0", "@babel/highlight@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== @@ -589,15 +298,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.2.0", "@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" - integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== - -"@babel/parser@^7.10.4", "@babel/parser@^7.11.0", "@babel/parser@^7.11.1", "@babel/parser@^7.11.2": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.2.tgz#0882ab8a455df3065ea2dcb4c753b2460a24bead" - integrity sha512-Vuj/+7vLo6l1Vi7uuO+1ngCDNeVmNbTngcJFKCR/oEtz8tKz0CJxZEGmPt9KcIloZhOZ3Zit6xbpXT2MDlS9Vw== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.11.0", "@babel/parser@^7.11.1", "@babel/parser@^7.11.2", "@babel/parser@^7.2.0", "@babel/parser@^7.7.5": + version "7.11.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.3.tgz#9e1eae46738bcd08e23e867bab43e7b95299a8f9" + integrity sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA== "@babel/plugin-proposal-async-generator-functions@^7.10.4": version "7.10.5" @@ -608,16 +312,7 @@ "@babel/helper-remap-async-to-generator" "^7.10.4" "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/plugin-proposal-async-generator-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" - integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" - -"@babel/plugin-proposal-class-properties@^7.10.4": +"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.7.0": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg== @@ -625,14 +320,6 @@ "@babel/helper-create-class-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-class-properties@^7.7.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e" - integrity sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-proposal-dynamic-import@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" @@ -641,14 +328,6 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-dynamic-import" "^7.8.0" -"@babel/plugin-proposal-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" - integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-proposal-export-namespace-from@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54" @@ -665,14 +344,6 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.0" -"@babel/plugin-proposal-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" - integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-proposal-logical-assignment-operators@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8" @@ -689,14 +360,6 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" - integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-proposal-numeric-separator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06" @@ -705,15 +368,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" - integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - -"@babel/plugin-proposal-object-rest-spread@^7.11.0": +"@babel/plugin-proposal-object-rest-spread@^7.11.0", "@babel/plugin-proposal-object-rest-spread@^7.6.2": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== @@ -722,14 +377,6 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-transform-parameters" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.6.2", "@babel/plugin-proposal-object-rest-spread@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz#a28993699fc13df165995362693962ba6b061d6f" - integrity sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-proposal-optional-catch-binding@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" @@ -738,14 +385,6 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" - integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-proposal-optional-chaining@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" @@ -755,14 +394,6 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" - integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-proposal-private-methods@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909" @@ -771,7 +402,7 @@ "@babel/helper-create-class-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-unicode-property-regex@^7.10.4": +"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== @@ -779,14 +410,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" - integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.8" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -801,20 +424,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.10.4": +"@babel/plugin-syntax-class-properties@^7.10.4", "@babel/plugin-syntax-class-properties@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c" integrity sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-class-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz#6cb933a8872c8d359bfde69bbeaae5162fd1e8f7" - integrity sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" @@ -829,12 +445,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz#f2c883bd61a6316f2c89380ae5122f923ba4527f" - integrity sha512-innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg== +"@babel/plugin-syntax-flow@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz#53351dd7ae01995e567d04ce42af1a6e0ba846a6" + integrity sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" @@ -850,27 +466,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-jsx@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz#521b06c83c40480f1e58b4fd33b92eceb1d6ea94" - integrity sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz#3995d7d7ffff432f6ddc742b47e730c054599897" - integrity sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" @@ -878,20 +480,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4": +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" - integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" @@ -920,13 +515,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" - integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-typescript@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz#2f55e770d3501e83af217d782cb7517d7bb34d25" @@ -941,13 +529,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-arrow-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" - integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-async-to-generator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" @@ -957,15 +538,6 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-remap-async-to-generator" "^7.10.4" -"@babel/plugin-transform-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" - integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" - "@babel/plugin-transform-block-scoped-functions@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" @@ -973,13 +545,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-block-scoped-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" - integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-block-scoping@^7.10.4": version "7.11.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215" @@ -987,14 +552,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-block-scoping@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" - integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - lodash "^4.17.13" - "@babel/plugin-transform-classes@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" @@ -1009,20 +566,6 @@ "@babel/helper-split-export-declaration" "^7.10.4" globals "^11.1.0" -"@babel/plugin-transform-classes@^7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz#8603fc3cc449e31fdbdbc257f67717536a11af8d" - integrity sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-define-map" "^7.8.3" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-split-export-declaration" "^7.8.3" - globals "^11.1.0" - "@babel/plugin-transform-computed-properties@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" @@ -1030,13 +573,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-computed-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" - integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-destructuring@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" @@ -1044,14 +580,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-destructuring@^7.8.3": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz#fadb2bc8e90ccaf5658de6f8d4d22ff6272a2f4b" - integrity sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-dotall-regex@^7.10.4": +"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== @@ -1059,14 +588,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" - integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-duplicate-keys@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" @@ -1074,13 +595,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-duplicate-keys@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" - integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-exponentiation-operator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" @@ -1089,21 +603,13 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-exponentiation-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" - integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-flow-strip-types@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz#8a3538aa40434e000b8f44a3c5c9ac7229bd2392" - integrity sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg== +"@babel/plugin-transform-flow-strip-types@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz#c497957f09e86e3df7296271e9eb642876bf7788" + integrity sha512-XTadyuqNst88UWBTdLjM+wEY7BFnY2sYtPyAidfC7M/QaZnSuIZpMvLxqGT7phAcnGyWh/XQFLKcGf04CnvxSQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-flow" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-flow" "^7.10.4" "@babel/plugin-transform-for-of@^7.10.4": version "7.10.4" @@ -1112,13 +618,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-for-of@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" - integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-function-name@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" @@ -1127,14 +626,6 @@ "@babel/helper-function-name" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" - integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-literals@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" @@ -1142,13 +633,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" - integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-member-expression-literals@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" @@ -1156,13 +640,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" - integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-modules-amd@^7.10.4": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" @@ -1172,15 +649,6 @@ "@babel/helper-plugin-utils" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-amd@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz#19755ee721912cf5bb04c07d50280af3484efef4" - integrity sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" - "@babel/plugin-transform-modules-commonjs@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" @@ -1191,16 +659,6 @@ "@babel/helper-simple-access" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940" - integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-simple-access" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" - "@babel/plugin-transform-modules-systemjs@^7.10.4": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" @@ -1211,16 +669,6 @@ "@babel/helper-plugin-utils" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz#e9fd46a296fc91e009b64e07ddaa86d6f0edeb90" - integrity sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ== - dependencies: - "@babel/helper-hoist-variables" "^7.8.3" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" - "@babel/plugin-transform-modules-umd@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" @@ -1229,14 +677,6 @@ "@babel/helper-module-transforms" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-modules-umd@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697" - integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-named-capturing-groups-regex@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" @@ -1244,13 +684,6 @@ dependencies: "@babel/helper-create-regexp-features-plugin" "^7.10.4" -"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" - integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/plugin-transform-new-target@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" @@ -1258,13 +691,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-new-target@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" - integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-object-super@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" @@ -1273,14 +699,6 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-replace-supers" "^7.10.4" -"@babel/plugin-transform-object-super@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" - integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.3" - "@babel/plugin-transform-parameters@^7.10.4": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" @@ -1289,14 +707,6 @@ "@babel/helper-get-function-arity" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-parameters@^7.8.7": - version "7.9.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.3.tgz#3028d0cc20ddc733166c6e9c8534559cee09f54a" - integrity sha512-fzrQFQhp7mIhOzmOtPiKffvCYQSK10NR8t6BBz2yPbeUHb9OLW8RZGtgDRBn8z2hGcwvKDL3vC7ojPTLNxmqEg== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-property-literals@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" @@ -1304,19 +714,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-property-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" - integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-react-constant-elements@^7.0.0", "@babel/plugin-transform-react-constant-elements@^7.2.0", "@babel/plugin-transform-react-constant-elements@^7.6.3": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.9.0.tgz#a75abc936a3819edec42d3386d9f1c93f28d9d9e" - integrity sha512-wXMXsToAUOxJuBBEHajqKLFWcCkOSLshTI2ChCFFj1zDd7od4IOxiwLCOObNUvOpkxLpjIuaIdBMmNt6ocCPAw== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz#0f485260bf1c29012bb973e7e404749eaac12c9e" + integrity sha512-cYmQBW1pXrqBte1raMkAulXmi7rjg3VI6ZLg9QIic8Hq7BtYXaWuZSxsr2siOMI6SWwpxjWfnwhTUrd7JlAV7g== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-react-display-name@^7.10.4": version "7.10.4" @@ -1325,13 +728,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-react-display-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz#70ded987c91609f78353dd76d2fb2a0bb991e8e5" - integrity sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-react-jsx-development@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz#6ec90f244394604623880e15ebc3c34c356258ba" @@ -1341,15 +737,6 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-jsx" "^7.10.4" -"@babel/plugin-transform-react-jsx-development@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.9.0.tgz#3c2a130727caf00c2a293f0aed24520825dbf754" - integrity sha512-tK8hWKrQncVvrhvtOiPpKrQjfNX3DtkNLSX4ObuGcpS9p0QrGetKmlySIGR07y48Zft8WVgPakqd/bk46JrMSw== - dependencies: - "@babel/helper-builder-react-jsx-experimental" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" - "@babel/plugin-transform-react-jsx-self@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz#cd301a5fed8988c182ed0b9d55e9bd6db0bd9369" @@ -1358,14 +745,6 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-jsx" "^7.10.4" -"@babel/plugin-transform-react-jsx-self@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz#f4f26a325820205239bb915bad8e06fcadabb49b" - integrity sha512-K2ObbWPKT7KUTAoyjCsFilOkEgMvFG+y0FqOl6Lezd0/13kMkkjHskVsZvblRPj1PHA44PrToaZANrryppzTvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" - "@babel/plugin-transform-react-jsx-source@^7.10.4": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz#34f1779117520a779c054f2cdd9680435b9222b4" @@ -1374,14 +753,6 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-jsx" "^7.10.4" -"@babel/plugin-transform-react-jsx-source@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz#89ef93025240dd5d17d3122294a093e5e0183de0" - integrity sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" - "@babel/plugin-transform-react-jsx@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz#673c9f913948764a4421683b2bef2936968fddf2" @@ -1392,16 +763,6 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-jsx" "^7.10.4" -"@babel/plugin-transform-react-jsx@^7.9.4": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz#86f576c8540bd06d0e95e0b61ea76d55f6cbd03f" - integrity sha512-Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw== - dependencies: - "@babel/helper-builder-react-jsx" "^7.9.0" - "@babel/helper-builder-react-jsx-experimental" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" - "@babel/plugin-transform-react-pure-annotations@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz#3eefbb73db94afbc075f097523e445354a1c6501" @@ -1417,13 +778,6 @@ dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-regenerator@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8" - integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA== - dependencies: - regenerator-transform "^0.14.2" - "@babel/plugin-transform-reserved-words@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" @@ -1431,13 +785,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-reserved-words@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" - integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-runtime@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz#e27f78eb36f19448636e05c33c90fd9ad9b8bccf" @@ -1455,13 +802,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-shorthand-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" - integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-spread@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" @@ -1470,13 +810,6 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" -"@babel/plugin-transform-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" - integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-sticky-regex@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" @@ -1485,14 +818,6 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-regex" "^7.10.4" -"@babel/plugin-transform-sticky-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" - integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - "@babel/plugin-transform-template-literals@^7.10.4": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" @@ -1501,14 +826,6 @@ "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-template-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" - integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-typeof-symbol@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" @@ -1516,13 +833,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-typeof-symbol@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412" - integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-typescript@^7.10.4": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz#2b4879676af37342ebb278216dd090ac67f13abb" @@ -1547,81 +857,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-unicode-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" - integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/preset-env@^7.0.0", "@babel/preset-env@^7.4.3", "@babel/preset-env@^7.4.5": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.0.tgz#a5fc42480e950ae8f5d9f8f2bbc03f52722df3a8" - integrity sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ== - dependencies: - "@babel/compat-data" "^7.9.0" - "@babel/helper-compilation-targets" "^7.8.7" - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-proposal-async-generator-functions" "^7.8.3" - "@babel/plugin-proposal-dynamic-import" "^7.8.3" - "@babel/plugin-proposal-json-strings" "^7.8.3" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-proposal-numeric-separator" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.9.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" - "@babel/plugin-proposal-optional-chaining" "^7.9.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-syntax-numeric-separator" "^7.8.0" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - "@babel/plugin-transform-arrow-functions" "^7.8.3" - "@babel/plugin-transform-async-to-generator" "^7.8.3" - "@babel/plugin-transform-block-scoped-functions" "^7.8.3" - "@babel/plugin-transform-block-scoping" "^7.8.3" - "@babel/plugin-transform-classes" "^7.9.0" - "@babel/plugin-transform-computed-properties" "^7.8.3" - "@babel/plugin-transform-destructuring" "^7.8.3" - "@babel/plugin-transform-dotall-regex" "^7.8.3" - "@babel/plugin-transform-duplicate-keys" "^7.8.3" - "@babel/plugin-transform-exponentiation-operator" "^7.8.3" - "@babel/plugin-transform-for-of" "^7.9.0" - "@babel/plugin-transform-function-name" "^7.8.3" - "@babel/plugin-transform-literals" "^7.8.3" - "@babel/plugin-transform-member-expression-literals" "^7.8.3" - "@babel/plugin-transform-modules-amd" "^7.9.0" - "@babel/plugin-transform-modules-commonjs" "^7.9.0" - "@babel/plugin-transform-modules-systemjs" "^7.9.0" - "@babel/plugin-transform-modules-umd" "^7.9.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" - "@babel/plugin-transform-new-target" "^7.8.3" - "@babel/plugin-transform-object-super" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.8.7" - "@babel/plugin-transform-property-literals" "^7.8.3" - "@babel/plugin-transform-regenerator" "^7.8.7" - "@babel/plugin-transform-reserved-words" "^7.8.3" - "@babel/plugin-transform-shorthand-properties" "^7.8.3" - "@babel/plugin-transform-spread" "^7.8.3" - "@babel/plugin-transform-sticky-regex" "^7.8.3" - "@babel/plugin-transform-template-literals" "^7.8.3" - "@babel/plugin-transform-typeof-symbol" "^7.8.4" - "@babel/plugin-transform-unicode-regex" "^7.8.3" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.9.0" - browserslist "^4.9.1" - core-js-compat "^3.6.2" - invariant "^2.2.2" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/preset-env@^7.11.0": +"@babel/preset-env@^7.0.0", "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.4.3", "@babel/preset-env@^7.4.5": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796" integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg== @@ -1696,12 +932,12 @@ semver "^5.5.0" "@babel/preset-flow@^7.0.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.9.0.tgz#fee847c3e090b0b2d9227c1949e4da1d1379280d" - integrity sha512-88uSmlshIrlmPkNkEcx3UpSZ6b8n0UGBq0/0ZMZCF/uxAW0XIAUuDHBhIOAh0pvweafH4RxOwi/H3rWhtqOYPA== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.10.4.tgz#e0d9c72f8cb02d1633f6a5b7b16763aa2edf659f" + integrity sha512-XI6l1CptQCOBv+ZKYwynyswhtOKwpZZp5n0LG1QKCo8erRhqjoQV6nvx61Eg30JHpysWQSBwA2AWRU3pBbSY5g== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-flow-strip-types" "^7.9.0" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-flow-strip-types" "^7.10.4" "@babel/preset-modules@^0.1.3": version "0.1.3" @@ -1714,19 +950,7 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.0.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.9.4.tgz#c6c97693ac65b6b9c0b4f25b948a8f665463014d" - integrity sha512-AxylVB3FXeOTQXNXyiuAQJSvss62FEotbX2Pzx3K/7c+MKJMdSg6Ose6QYllkdCFA8EInCJVw7M/o5QbLuA4ZQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-react-display-name" "^7.8.3" - "@babel/plugin-transform-react-jsx" "^7.9.4" - "@babel/plugin-transform-react-jsx-development" "^7.9.0" - "@babel/plugin-transform-react-jsx-self" "^7.9.0" - "@babel/plugin-transform-react-jsx-source" "^7.9.0" - -"@babel/preset-react@^7.10.4": +"@babel/preset-react@^7.0.0", "@babel/preset-react@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.10.4.tgz#92e8a66d816f9911d11d4cc935be67adfc82dbcf" integrity sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw== @@ -1759,9 +983,9 @@ source-map-support "^0.5.16" "@babel/runtime-corejs2@^7.2.0", "@babel/runtime-corejs2@^7.6.3": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.9.2.tgz#f11d074ff99b9b4319b5ecf0501f12202bf2bf4d" - integrity sha512-ayjSOxuK2GaSDJFCtLgHnYjuMyIpViNujWrZo8GUpN60/n7juzJKK5yOo6RFVb0zdU9ACJFK+MsZrUnj3OmXMw== + version "7.11.2" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.11.2.tgz#700a03945ebad0d31ba6690fc8a6bcc9040faa47" + integrity sha512-AC/ciV28adSSpEkBglONBWq4/Lvm6GAZuxIoyVtsnUpZMl0bxLtoChEnYAkP+47KyOCayZanojtflUEUJtR/6Q== dependencies: core-js "^2.6.5" regenerator-runtime "^0.13.4" @@ -1773,42 +997,19 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" - integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.11.2": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.11.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.3.1", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.7": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.5.tgz#303d8bd440ecd5a491eae6117fd3367698674c5c" - integrity sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg== - dependencies: - regenerator-runtime "^0.13.4" - "@babel/standalone@^7.4.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.10.5.tgz#4ee38dc79fda10a2a0da0897f09e270310151314" - integrity sha512-PERGHqhQ7H3TrdglvSW4pEHULywMJEdytnzaR0VPF1HN45aS+3FcE62efb90XPKS9TlgrEUkYDvYMt+0m6G0YA== - -"@babel/template@^7.0.0", "@babel/template@^7.3.3", "@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" - integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.6" - "@babel/types" "^7.8.6" + version "7.11.3" + resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.11.3.tgz#043e6ff3b12226e41ed2013418b9a4c055d9c21e" + integrity sha512-rcoT32Hw0faYhmCDR0P84ODKL5kpEdhYPgdzlTKs7+v9oJaVLsGvq0xlkmLRj01F6LrItH3tY9eEoRsPLie4RQ== -"@babel/template@^7.10.4": +"@babel/template@^7.0.0", "@babel/template@^7.10.4", "@babel/template@^7.3.3", "@babel/template@^7.7.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== @@ -1817,22 +1018,7 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.6", "@babel/traverse@^7.4.5", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892" - integrity sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.0" - "@babel/types" "^7.9.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0": +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.6", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.4": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24" integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== @@ -1847,31 +1033,7 @@ globals "^11.1.0" lodash "^4.17.19" -"@babel/traverse@^7.7.4": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.5.tgz#6e7c56b44e2ac7011a948c21e283ddd9d9db97a2" - integrity sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.5" - "@babel/helper-function-name" "^7.9.5" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.0" - "@babel/types" "^7.9.5" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5" - integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng== - dependencies: - "@babel/helper-validator-identifier" "^7.9.0" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0": +"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4", "@babel/types@^7.4.0", "@babel/types@^7.4.4": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== @@ -1880,24 +1042,6 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" -"@babel/types@^7.3.3": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7" - integrity sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA== - dependencies: - "@babel/helper-validator-identifier" "^7.9.5" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.4", "@babel/types@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.5.tgz#89231f82915a8a566a703b3b20133f73da6b9444" - integrity sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg== - dependencies: - "@babel/helper-validator-identifier" "^7.9.5" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -7695,13 +6839,6 @@ babel-plugin-add-react-displayname@^0.0.5: resolved "https://registry.yarnpkg.com/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz#339d4cddb7b65fd62d1df9db9fe04de134122bd5" integrity sha1-M51M3be2X9YtHfnbn+BN4TQSK9U= -babel-plugin-dynamic-import-node@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== - dependencies: - object.assign "^4.1.0" - babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" @@ -8653,16 +7790,6 @@ browserslist@^4.8.3: electron-to-chromium "^1.3.338" node-releases "^1.1.46" -browserslist@^4.9.1: - version "4.11.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.0.tgz#aef4357b10a8abda00f97aac7cd587b2082ba1ad" - integrity sha512-WqEC7Yr5wUH5sg6ruR++v2SGOQYpyUdYYd4tZoAq1F7y+QXoLoYGXVbxhtaIqWmAJjtNTRjVD3HuJc1OXTel2A== - dependencies: - caniuse-lite "^1.0.30001035" - electron-to-chromium "^1.3.380" - node-releases "^1.1.52" - pkg-up "^3.1.0" - bser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" @@ -9089,7 +8216,7 @@ can-use-dom@^0.1.0: resolved "https://registry.yarnpkg.com/can-use-dom/-/can-use-dom-0.1.0.tgz#22cc4a34a0abc43950f42c6411024a3f6366b45a" integrity sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo= -caniuse-lite@^1.0.30000984, caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001022, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001043: +caniuse-lite@^1.0.30000984, caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001022, caniuse-lite@^1.0.30001043: version "1.0.30001094" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001094.tgz#0b11d02e1cdc201348dbd8e3e57bd9b6ce82b175" integrity sha512-ufHZNtMaDEuRBpTbqD93tIQnngmJ+oBknjvr0IbFympSdtFpAUFmNv4mVKbb53qltxFx0nK3iy32S9AqkLzUNA== @@ -12470,11 +11597,6 @@ electron-to-chromium@^1.3.191, electron-to-chromium@^1.3.338: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.340.tgz#5d4fe78e984d4211194cf5a52e08069543da146f" integrity sha512-hRFBAglhcj5iVYH+o8QU0+XId1WGoc0VGowJB1cuJAt3exHGrivZvWeAO5BRgBZqwZtwxjm8a5MQeGoT/Su3ww== -electron-to-chromium@^1.3.380: - version "1.3.382" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.382.tgz#cad02da655c33f7a3d6ca7525bd35c17e90f3a8f" - integrity sha512-gJfxOcgnBlXhfnUUObsq3n3ReU8CT6S8je97HndYRkKsNZMJJ38zO/pI5aqO7L3Myfq+E3pqPyKK/ynyLEQfBA== - electron-to-chromium@^1.3.413: version "1.3.465" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.465.tgz#d692e5c383317570c2bd82092a24a0308c6ccf29" @@ -22121,13 +21243,6 @@ node-releases@^1.1.25, node-releases@^1.1.46: dependencies: semver "^6.3.0" -node-releases@^1.1.52: - version "1.1.52" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.52.tgz#bcffee3e0a758e92e44ecfaecd0a47554b0bcba9" - integrity sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ== - dependencies: - semver "^6.3.0" - node-releases@^1.1.53: version "1.1.58" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.58.tgz#8ee20eef30fa60e52755fcc0942def5a734fe935" From 5b64a4cdfea92639ddf9e23c86c43dda5ea3ac68 Mon Sep 17 00:00:00 2001 From: Caroline Horn <549577+cchaos@users.noreply.github.com> Date: Wed, 12 Aug 2020 16:58:16 -0400 Subject: [PATCH 18/27] Empty index patterns page re-design (#68819) Empty index patterns page re-design --- .sass-lint.yml | 1 + ...-plugin-core-public.doclinksstart.links.md | 1 + docs/setup/connect-to-elasticsearch.asciidoc | 2 +- .../public/doc_links/doc_links_service.ts | 2 + src/core/public/public.api.md | 1 + .../redirect_no_index_pattern.tsx | 2 +- .../public/_templates.scss | 11 + .../public/_variables.scss | 1 + .../create_index_pattern_prompt/index.tsx | 108 ---- .../create_index_pattern_wizard.test.tsx.snap | 76 ++- .../__snapshots__/empty_state.test.tsx.snap | 66 --- .../components/empty_state/empty_state.tsx | 90 --- .../header/__snapshots__/header.test.tsx.snap | 4 +- .../components/header/header.tsx | 3 +- .../__snapshots__/indices_list.test.tsx.snap | 25 +- .../components/indices_list/indices_list.tsx | 2 +- .../loading_indices.test.tsx.snap | 46 +- .../loading_indices/loading_indices.tsx | 34 +- .../status_message/status_message.tsx | 2 +- .../step_index_pattern/step_index_pattern.tsx | 14 +- .../advanced_options.test.tsx.snap | 4 +- .../advanced_options/advanced_options.tsx | 4 +- .../header/__snapshots__/header.test.tsx.snap | 15 +- .../components/header/header.tsx | 9 +- .../components/time_field/time_field.scss | 7 - .../components/time_field/time_field.tsx | 2 - .../create_index_pattern_wizard.test.tsx | 1 - .../create_index_pattern_wizard.tsx | 44 +- .../lib/extract_time_fields.test.ts | 2 +- .../lib/extract_time_fields.ts | 2 +- .../lib/get_indices.test.ts | 25 +- .../lib/get_indices.ts | 8 +- .../edit_index_pattern/edit_index_pattern.tsx | 106 ++-- .../index_header/index_header.tsx | 28 +- .../edit_index_pattern/tabs/tabs.tsx | 1 + .../scripting_help/test_script.scss | 2 +- .../empty_index_pattern_prompt.test.tsx.snap | 99 ++++ .../assets/index_pattern_illustration.scss | 9 + .../assets/index_pattern_illustration.tsx | 551 ++++++++++++++++++ .../empty_index_pattern_prompt.scss | 31 + .../empty_index_pattern_prompt.test.tsx} | 32 +- .../empty_index_pattern_prompt.tsx | 111 ++++ .../empty_index_pattern_prompt/index.tsx | 20 + .../__snapshots__/empty_state.test.tsx.snap | 216 +++++++ .../empty_state/empty_state.scss | 23 + .../empty_state/empty_state.test.tsx | 74 +++ .../empty_state/empty_state.tsx | 234 ++++++++ .../empty_state/index.ts | 0 .../index_pattern_table.tsx | 114 +++- .../index_pattern_management/public/index.ts | 2 + .../mount_management_section.tsx | 6 +- .../index_pattern_management/public/mocks.ts | 3 + .../index_pattern_management/public/plugin.ts | 4 +- .../service/environment/environment.mock.ts | 44 ++ .../service/environment/environment.test.ts | 49 ++ .../public/service/environment/environment.ts | 52 ++ .../public/service/environment/index.ts | 20 + .../index_pattern_management_service.ts | 4 + .../index_pattern_management/public/types.ts | 7 + .../apps/management/_index_patterns_empty.ts | 66 +++ .../apps/management/_kibana_settings.js | 2 +- test/functional/apps/management/index.js | 1 + test/functional/page_objects/settings_page.ts | 13 +- x-pack/plugins/ml/kibana.json | 3 +- x-pack/plugins/ml/public/application/app.tsx | 3 +- x-pack/plugins/ml/public/plugin.ts | 14 +- .../translations/translations/ja-JP.json | 15 - .../translations/translations/zh-CN.json | 15 - .../index_patterns_security.ts | 2 +- 69 files changed, 2006 insertions(+), 584 deletions(-) create mode 100644 src/plugins/index_pattern_management/public/_templates.scss create mode 100644 src/plugins/index_pattern_management/public/_variables.scss delete mode 100644 src/plugins/index_pattern_management/public/components/create_index_pattern_prompt/index.tsx delete mode 100644 src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/empty_state/__snapshots__/empty_state.test.tsx.snap delete mode 100644 src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/empty_state/empty_state.tsx delete mode 100644 src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/time_field/time_field.scss create mode 100644 src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/__snapshots__/empty_index_pattern_prompt.test.tsx.snap create mode 100644 src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/assets/index_pattern_illustration.scss create mode 100644 src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/assets/index_pattern_illustration.tsx create mode 100644 src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/empty_index_pattern_prompt.scss rename src/plugins/index_pattern_management/public/components/{create_index_pattern_wizard/components/empty_state/empty_state.test.tsx => index_pattern_table/empty_index_pattern_prompt/empty_index_pattern_prompt.test.tsx} (57%) create mode 100644 src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/empty_index_pattern_prompt.tsx create mode 100644 src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/index.tsx create mode 100644 src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/__snapshots__/empty_state.test.tsx.snap create mode 100644 src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/empty_state.scss create mode 100644 src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/empty_state.test.tsx create mode 100644 src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/empty_state.tsx rename src/plugins/index_pattern_management/public/components/{create_index_pattern_wizard/components => index_pattern_table}/empty_state/index.ts (100%) create mode 100644 src/plugins/index_pattern_management/public/service/environment/environment.mock.ts create mode 100644 src/plugins/index_pattern_management/public/service/environment/environment.test.ts create mode 100644 src/plugins/index_pattern_management/public/service/environment/environment.ts create mode 100644 src/plugins/index_pattern_management/public/service/environment/index.ts create mode 100644 test/functional/apps/management/_index_patterns_empty.ts diff --git a/.sass-lint.yml b/.sass-lint.yml index d6eaaf391de1a..9eed50602f520 100644 --- a/.sass-lint.yml +++ b/.sass-lint.yml @@ -1,6 +1,7 @@ files: include: - 'src/legacy/core_plugins/metrics/**/*.s+(a|c)ss' + - 'src/plugins/index_pattern_management/**/*.s+(a|c)ss' - 'src/plugins/timelion/**/*.s+(a|c)ss' - 'src/plugins/vis_type_vislib/**/*.s+(a|c)ss' - 'src/plugins/vis_type_vega/**/*.s+(a|c)ss' diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md index a03b1b74fc1ac..842f90b7047c8 100644 --- a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md +++ b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md @@ -81,6 +81,7 @@ readonly links: { readonly loadingData: string; readonly introduction: string; }; + readonly addData: string; readonly kibana: string; readonly siem: { readonly guide: string; diff --git a/docs/setup/connect-to-elasticsearch.asciidoc b/docs/setup/connect-to-elasticsearch.asciidoc index bffb3f97cd1b9..f750784c47043 100644 --- a/docs/setup/connect-to-elasticsearch.asciidoc +++ b/docs/setup/connect-to-elasticsearch.asciidoc @@ -97,7 +97,7 @@ Using a wildcard is the more popular approach. comparisons. + Kibana reads the index mapping and lists all fields that contain a timestamp. If your -index doesn't have time-based data, choose *I don't want to use the Time Filter*. +index doesn't have time-based data, choose *I don't want to use the time filter*. + You must select a time field to use global time filters on your dashboards. diff --git a/src/core/public/doc_links/doc_links_service.ts b/src/core/public/doc_links/doc_links_service.ts index eb54983d0be13..8853d95181994 100644 --- a/src/core/public/doc_links/doc_links_service.ts +++ b/src/core/public/doc_links/doc_links_service.ts @@ -109,6 +109,7 @@ export class DocLinksService { loadingData: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/tutorial-load-dataset.html`, introduction: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/index-patterns.html`, }, + addData: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/connect-to-elasticsearch.html`, kibana: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/index.html`, siem: { guide: `${ELASTIC_WEBSITE_URL}guide/en/security/${DOC_LINK_VERSION}/index.html`, @@ -209,6 +210,7 @@ export interface DocLinksStart { readonly loadingData: string; readonly introduction: string; }; + readonly addData: string; readonly kibana: string; readonly siem: { readonly guide: string; diff --git a/src/core/public/public.api.md b/src/core/public/public.api.md index 9b421e0172df0..0e879d16b4637 100644 --- a/src/core/public/public.api.md +++ b/src/core/public/public.api.md @@ -576,6 +576,7 @@ export interface DocLinksStart { readonly loadingData: string; readonly introduction: string; }; + readonly addData: string; readonly kibana: string; readonly siem: { readonly guide: string; diff --git a/src/plugins/data/public/index_patterns/index_patterns/redirect_no_index_pattern.tsx b/src/plugins/data/public/index_patterns/index_patterns/redirect_no_index_pattern.tsx index 7ed6525db6350..ac015f8dd33af 100644 --- a/src/plugins/data/public/index_patterns/index_patterns/redirect_no_index_pattern.tsx +++ b/src/plugins/data/public/index_patterns/index_patterns/redirect_no_index_pattern.tsx @@ -40,7 +40,7 @@ export const onRedirectNoIndexPattern = ( const bannerMessage = i18n.translate('data.indexPatterns.ensureDefaultIndexPattern.bannerLabel', { defaultMessage: - "In order to visualize and explore data in Kibana, you'll need to create an index pattern to retrieve data from Elasticsearch.", + 'To visualize and explore data in Kibana, you must create an index pattern to retrieve data from Elasticsearch.', }); // Avoid being hostile to new users who don't have an index pattern setup yet diff --git a/src/plugins/index_pattern_management/public/_templates.scss b/src/plugins/index_pattern_management/public/_templates.scss new file mode 100644 index 0000000000000..5303537bddabc --- /dev/null +++ b/src/plugins/index_pattern_management/public/_templates.scss @@ -0,0 +1,11 @@ +%inp-empty-state-footer { + background: $euiColorLightestShade; + margin: 0 (-$euiSizeL) (-$euiSizeL); + padding: $euiSizeL; + border-radius: 0 0 $euiBorderRadius $euiBorderRadius; + + // sass-lint:disable-block mixins-before-declarations + @include euiBreakpoint('xs', 's') { + text-align: center; + } +} diff --git a/src/plugins/index_pattern_management/public/_variables.scss b/src/plugins/index_pattern_management/public/_variables.scss new file mode 100644 index 0000000000000..5da25a91bd77c --- /dev/null +++ b/src/plugins/index_pattern_management/public/_variables.scss @@ -0,0 +1 @@ +$inpEmptyStateMaxWidth: $euiSizeXXL * 19; diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_prompt/index.tsx b/src/plugins/index_pattern_management/public/components/create_index_pattern_prompt/index.tsx deleted file mode 100644 index ab3b90177bcfd..0000000000000 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_prompt/index.tsx +++ /dev/null @@ -1,108 +0,0 @@ -/* - * 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 { - EuiDescriptionList, - EuiDescriptionListDescription, - EuiDescriptionListTitle, - EuiFlyout, - EuiFlyoutBody, - EuiFlyoutHeader, - EuiHorizontalRule, - EuiSpacer, - EuiText, -} from '@elastic/eui'; -import { FormattedMessage } from '@kbn/i18n/react'; -import React from 'react'; - -export const CreateIndexPatternPrompt = ({ onClose }: { onClose: () => void }) => ( - - - -

    - -

    -
    -
    - - -

    - -

    -
    - - -

    - -

    -
    - - - - - - - - - - - - - - - - - - - - - -
    -
    -); diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/__snapshots__/create_index_pattern_wizard.test.tsx.snap b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/__snapshots__/create_index_pattern_wizard.test.tsx.snap index 6d79515c172fe..0e5fc0582f72c 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/__snapshots__/create_index_pattern_wizard.test.tsx.snap +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/__snapshots__/create_index_pattern_wizard.test.tsx.snap @@ -62,10 +62,37 @@ exports[`CreateIndexPatternWizard renders index pattern step when there are indi exports[`CreateIndexPatternWizard renders the empty state when there are no indices 1`] = ` - + +
    + + + - + +
    + + + - - } - > -

    - - - , - "learnHowLink": - - , - "needToIndex": - - , - } - } - /> -

    - - - -
    -

    Zr6m>wDLxAJ7?>lW7< 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

    -`; diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/empty_state/empty_state.tsx b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/empty_state/empty_state.tsx deleted file mode 100644 index 43c3bf79026fe..0000000000000 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/empty_state/empty_state.tsx +++ /dev/null @@ -1,90 +0,0 @@ -/* - * 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 React from 'react'; - -import { EuiCallOut, EuiTextColor, EuiLink, EuiButton } from '@elastic/eui'; - -import { FormattedMessage } from '@kbn/i18n/react'; -import { IBasePath } from 'kibana/public'; - -export const EmptyState = ({ - onRefresh, - prependBasePath, -}: { - onRefresh: () => void; - prependBasePath: IBasePath['prepend']; -}) => ( -
    - - } - > -

    - - - - ), - learnHowLink: ( - - - - ), - getStartedLink: ( - - - - ), - }} - /> -

    - - - - -
    -
    -); diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/header/__snapshots__/header.test.tsx.snap b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/header/__snapshots__/header.test.tsx.snap index c4f735558b1f2..851e5cc4c2a76 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/header/__snapshots__/header.test.tsx.snap +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/header/__snapshots__/header.test.tsx.snap @@ -7,7 +7,7 @@ exports[`Header should mark the input as invalid 1`] = ` >

    @@ -119,7 +119,7 @@ exports[`Header should render normally 1`] = ` >

    diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/header/header.tsx b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/header/header.tsx index f1bf0d54a1cbf..8efa44decf3c6 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/header/header.tsx +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/header/header.tsx @@ -66,7 +66,7 @@ export const Header: React.FC = ({

    @@ -127,6 +127,7 @@ export const Header: React.FC = ({ id="checkboxShowSystemIndices" checked={isIncludingSystemIndices} onChange={onChangeIncludingSystemIndices} + data-test-subj="showSystemAndHiddenIndices" /> ) : null} diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/indices_list/__snapshots__/indices_list.test.tsx.snap b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/indices_list/__snapshots__/indices_list.test.tsx.snap index 598de4d90e893..6631a9bbd1d02 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/indices_list/__snapshots__/indices_list.test.tsx.snap +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/indices_list/__snapshots__/indices_list.test.tsx.snap @@ -2,7 +2,10 @@ exports[`IndicesList should change pages 1`] = `
    - + - + - + - + - + - + {rows} diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/loading_indices/__snapshots__/loading_indices.test.tsx.snap b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/loading_indices/__snapshots__/loading_indices.test.tsx.snap index 9d67ca913d415..a5517f6d4b616 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/loading_indices/__snapshots__/loading_indices.test.tsx.snap +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/loading_indices/__snapshots__/loading_indices.test.tsx.snap @@ -3,47 +3,33 @@ exports[`LoadingIndices should render normally 1`] = ` - - - - - - - - - - - - +

    + + + + `; diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/loading_indices/loading_indices.tsx b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/loading_indices/loading_indices.tsx index 16e8d1a9f3e98..82603fd598596 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/loading_indices/loading_indices.tsx +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/loading_indices/loading_indices.tsx @@ -19,34 +19,30 @@ import React from 'react'; -import { EuiFlexGroup, EuiFlexItem, EuiText, EuiTextColor, EuiLoadingSpinner } from '@elastic/eui'; +import { EuiFlexGroup, EuiFlexItem, EuiTitle, EuiLoadingSpinner } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; export const LoadingIndices = ({ ...rest }) => ( - + - - - - - - + +

    - - - - - - - - +

    +
    +
    + +
    ); diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/status_message/status_message.tsx b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/status_message/status_message.tsx index 22b75071b93bb..c2c4c84b51683 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/status_message/status_message.tsx +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/components/status_message/status_message.tsx @@ -132,7 +132,7 @@ export const StatusMessage: React.FC = ({ /> ); - } else if (allIndicesLength) { + } else { statusIcon = undefined; statusColor = 'warning'; statusMessage = ( diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/step_index_pattern.tsx b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/step_index_pattern.tsx index fab638509313d..d8555d71d6ec0 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/step_index_pattern.tsx +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_index_pattern/step_index_pattern.tsx @@ -159,7 +159,7 @@ export class StepIndexPattern extends Component indexPatternCreationType.getIndexTags(indexName), query, this.state.isIncludingSystemIndices ) @@ -175,13 +175,13 @@ export class StepIndexPattern extends Component indexPatternCreationType.getIndexTags(indexName), `${query}*`, this.state.isIncludingSystemIndices ), getIndices( this.context.services.http, - indexPatternCreationType, + (indexName: string) => indexPatternCreationType.getIndexTags(indexName), query, this.state.isIncludingSystemIndices ), @@ -227,7 +227,13 @@ export class StepIndexPattern extends Component; + return ( + <> + + + + + ); } renderStatusMessage(matchedIndices: { diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/advanced_options/__snapshots__/advanced_options.test.tsx.snap b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/advanced_options/__snapshots__/advanced_options.test.tsx.snap index d1b10fb532020..a2d2023ea0601 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/advanced_options/__snapshots__/advanced_options.test.tsx.snap +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/advanced_options/__snapshots__/advanced_options.test.tsx.snap @@ -7,7 +7,7 @@ exports[`AdvancedOptions should hide if not showing 1`] = ` onClick={[Function]} > @@ -25,7 +25,7 @@ exports[`AdvancedOptions should render normally 1`] = ` onClick={[Function]} > diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/advanced_options/advanced_options.tsx b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/advanced_options/advanced_options.tsx index b8f34095743ba..752fcbcd42b5c 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/advanced_options/advanced_options.tsx +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/advanced_options/advanced_options.tsx @@ -45,12 +45,12 @@ export const AdvancedOptions: React.FC = ({ {isVisible ? ( ) : ( )} diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/header/__snapshots__/header.test.tsx.snap b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/header/__snapshots__/header.test.tsx.snap index 2ac243780b31d..9efda4fdac7f9 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/header/__snapshots__/header.test.tsx.snap +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/header/__snapshots__/header.test.tsx.snap @@ -17,9 +17,18 @@ exports[`Header should render normally 1`] = ` size="m" /> - - ki* - + + ki* + , + "indexPatternName": "ki*", + } + } + /> `; diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/header/header.tsx b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/header/header.tsx index c17b356e159f6..530d0688b61ca 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/header/header.tsx +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/header/header.tsx @@ -40,7 +40,14 @@ export const Header: React.FC = ({ indexPattern, indexPatternName } - {indexPattern} + {indexPattern}, + indexPatternName, + }} + /> ); diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/time_field/time_field.scss b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/time_field/time_field.scss deleted file mode 100644 index 5bd60e8b76afc..0000000000000 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/time_field/time_field.scss +++ /dev/null @@ -1,7 +0,0 @@ -/** - * 1. Bring the line-height down or else this link expands its container when it becomes visible. - */ - -.timeFieldRefreshButton { - line-height: 1 !important; /* 1 */ -} diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/time_field/time_field.tsx b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/time_field/time_field.tsx index 7a3d72551f464..1eae1055ac5ef 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/time_field/time_field.tsx +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/components/time_field/time_field.tsx @@ -17,8 +17,6 @@ * under the License. */ -import './time_field.scss'; - import React from 'react'; import { diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/create_index_pattern_wizard.test.tsx b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/create_index_pattern_wizard.test.tsx index b14cd526d7e27..af5618424bbc0 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/create_index_pattern_wizard.test.tsx +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/create_index_pattern_wizard.test.tsx @@ -27,7 +27,6 @@ jest.mock('./components/step_index_pattern', () => ({ StepIndexPattern: 'StepInd jest.mock('./components/step_time_field', () => ({ StepTimeField: 'StepTimeField' })); jest.mock('./components/header', () => ({ Header: 'Header' })); jest.mock('./components/loading_state', () => ({ LoadingState: 'LoadingState' })); -jest.mock('./components/empty_state', () => ({ EmptyState: 'EmptyState' })); jest.mock('./lib/get_indices', () => ({ getIndices: () => { return [{ name: 'kibana' }]; diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/create_index_pattern_wizard.tsx b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/create_index_pattern_wizard.tsx index cd76ca09ccb74..a789ebbfadbce 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/create_index_pattern_wizard.tsx +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/create_index_pattern_wizard.tsx @@ -33,7 +33,6 @@ import { StepIndexPattern } from './components/step_index_pattern'; import { StepTimeField } from './components/step_time_field'; import { Header } from './components/header'; import { LoadingState } from './components/loading_state'; -import { EmptyState } from './components/empty_state'; import { context as contextType } from '../../../../kibana_react/public'; import { getCreateBreadcrumbs } from '../breadcrumbs'; @@ -125,7 +124,13 @@ export class CreateIndexPatternWizard extends Component< // query local and remote indices, updating state independently ensureMinimumTime( this.catchAndWarn( - getIndices(this.context.services.http, this.state.indexPatternCreationType, `*`, false), + getIndices( + this.context.services.http, + (indexName: string) => this.state.indexPatternCreationType.getIndexTags(indexName), + `*`, + false + ), + [], indicesFailMsg ) @@ -136,7 +141,13 @@ export class CreateIndexPatternWizard extends Component< this.catchAndWarn( // if we get an error from remote cluster query, supply fallback value that allows user entry. // ['a'] is fallback value - getIndices(this.context.services.http, this.state.indexPatternCreationType, `*:*`, false), + getIndices( + this.context.services.http, + (indexName: string) => this.state.indexPatternCreationType.getIndexTags(indexName), + `*:*`, + false + ), + ['a'], clustersFailMsg ).then((remoteIndices: string[] | MatchedItem[]) => @@ -200,39 +211,24 @@ export class CreateIndexPatternWizard extends Component< }; renderHeader() { + const { docLinks, indexPatternCreationType } = this.state; return (
    ); } renderContent() { - const { - allIndices, - isInitiallyLoadingIndices, - step, - indexPattern, - remoteClustersExist, - } = this.state; + const { allIndices, isInitiallyLoadingIndices, step, indexPattern } = this.state; if (isInitiallyLoadingIndices) { return ; } - const hasDataIndices = allIndices.some(({ name }: MatchedItem) => !name.startsWith('.')); - if (!hasDataIndices && !remoteClustersExist) { - return ( - - ); - } - const header = this.renderHeader(); if (step === 1) { diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.test.ts b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.test.ts index 4cd28090420a7..8f3765b7b5dcc 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.test.ts +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.test.ts @@ -37,7 +37,7 @@ describe('extractTimeFields', () => { expect(extractTimeFields(fields)).toEqual([ { display: '@timestamp', fieldName: '@timestamp' }, { isDisabled: true, display: '───', fieldName: '' }, - { display: `I don't want to use the Time Filter`, fieldName: undefined }, + { display: `I don't want to use the time filter`, fieldName: undefined }, ]); }); }); diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.ts b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.ts index b7056ad17343a..efac21245c257 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.ts +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.ts @@ -45,7 +45,7 @@ export function extractTimeFields(fields: IFieldType[]) { const noTimeFieldLabel = i18n.translate( 'indexPatternManagement.createIndexPattern.stepTime.noTimeFieldOptionLabel', { - defaultMessage: "I don't want to use the Time Filter", + defaultMessage: "I don't want to use the time filter", } ); const noTimeFieldOption = { diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/get_indices.test.ts b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/get_indices.test.ts index 8e4dd37284333..44a2d1a3be0d0 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/get_indices.test.ts +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/get_indices.test.ts @@ -18,7 +18,6 @@ */ import { getIndices, responseToItemArray } from './get_indices'; -import { IndexPatternCreationConfig } from '../../../../../index_pattern_management/public'; import { httpServiceMock } from '../../../../../../core/public/mocks'; import { ResolveIndexResponseItemIndexAttrs } from '../types'; @@ -44,33 +43,27 @@ export const successfulResponse = { ], }; -const mockIndexPatternCreationType = new IndexPatternCreationConfig({ - type: 'default', - name: 'name', - showSystemIndices: false, - httpClient: {}, - isBeta: false, -}); +const mockGetTags = () => []; const http = httpServiceMock.createStartContract(); http.get.mockResolvedValue(successfulResponse); describe('getIndices', () => { it('should work in a basic case', async () => { - const result = await getIndices(http, mockIndexPatternCreationType, 'kibana', false); + const result = await getIndices(http, mockGetTags, 'kibana', false); expect(result.length).toBe(3); expect(result[0].name).toBe('f-alias'); expect(result[1].name).toBe('foo'); }); it('should ignore ccs query-all', async () => { - expect((await getIndices(http, mockIndexPatternCreationType, '*:', false)).length).toBe(0); + expect((await getIndices(http, mockGetTags, '*:', false)).length).toBe(0); }); it('should ignore a single comma', async () => { - expect((await getIndices(http, mockIndexPatternCreationType, ',', false)).length).toBe(0); - expect((await getIndices(http, mockIndexPatternCreationType, ',*', false)).length).toBe(0); - expect((await getIndices(http, mockIndexPatternCreationType, ',foobar', false)).length).toBe(0); + expect((await getIndices(http, mockGetTags, ',', false)).length).toBe(0); + expect((await getIndices(http, mockGetTags, ',*', false)).length).toBe(0); + expect((await getIndices(http, mockGetTags, ',foobar', false)).length).toBe(0); }); it('response object to item array', () => { @@ -98,8 +91,8 @@ describe('getIndices', () => { }, ], }; - expect(responseToItemArray(result, mockIndexPatternCreationType)).toMatchSnapshot(); - expect(responseToItemArray({}, mockIndexPatternCreationType)).toEqual([]); + expect(responseToItemArray(result, mockGetTags)).toMatchSnapshot(); + expect(responseToItemArray({}, mockGetTags)).toEqual([]); }); describe('errors', () => { @@ -107,7 +100,7 @@ describe('getIndices', () => { http.get.mockImplementationOnce(() => { throw new Error('Test error'); }); - const result = await getIndices(http, mockIndexPatternCreationType, 'kibana', false); + const result = await getIndices(http, mockGetTags, 'kibana', false); expect(result.length).toBe(0); }); }); diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/get_indices.ts b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/get_indices.ts index c6a11de1bc4fc..6844e90316e22 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/get_indices.ts +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/get_indices.ts @@ -38,7 +38,7 @@ const frozenLabel = i18n.translate('indexPatternManagement.frozenLabel', { export async function getIndices( http: HttpStart, - indexPatternCreationType: IndexPatternCreationConfig, + getIndexTags: IndexPatternCreationConfig['getIndexTags'], rawPattern: string, showAllIndices: boolean ): Promise { @@ -73,7 +73,7 @@ export async function getIndices( return []; } - return responseToItemArray(response, indexPatternCreationType); + return responseToItemArray(response, getIndexTags); } catch { return []; } @@ -81,7 +81,7 @@ export async function getIndices( export const responseToItemArray = ( response: ResolveIndexResponse, - indexPatternCreationType: IndexPatternCreationConfig + getIndexTags: IndexPatternCreationConfig['getIndexTags'] ): MatchedItem[] => { const source: MatchedItem[] = []; @@ -89,7 +89,7 @@ export const responseToItemArray = ( const tags: MatchedItem['tags'] = [{ key: 'index', name: indexLabel, color: 'default' }]; const isFrozen = (index.attributes || []).includes(ResolveIndexResponseItemIndexAttrs.FROZEN); - tags.push(...indexPatternCreationType.getIndexTags(index.name)); + tags.push(...getIndexTags(index.name)); if (isFrozen) { tags.push({ name: frozenLabel, key: 'frozen', color: 'danger' }); } diff --git a/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx b/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx index 4b538af7c5fe7..987e8f0dae3a0 100644 --- a/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx +++ b/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx @@ -27,7 +27,6 @@ import { EuiBadge, EuiText, EuiLink, - EuiIcon, EuiCallOut, EuiPanel, } from '@elastic/eui'; @@ -162,7 +161,7 @@ export const EditIndexPattern = withRouter( const timeFilterHeader = i18n.translate( 'indexPatternManagement.editIndexPattern.timeFilterHeader', { - defaultMessage: "Time Filter field name: '{timeFieldName}'", + defaultMessage: "Time field: '{timeFieldName}'", values: { timeFieldName: indexPattern.timeFieldName }, } ); @@ -187,62 +186,55 @@ export const EditIndexPattern = withRouter( return (
    - - - - - {showTagsSection && ( - - {Boolean(indexPattern.timeFieldName) && ( - - {timeFilterHeader} - - )} - {tags.map((tag: any) => ( - - {tag.name} - - ))} - + + + {showTagsSection && ( + + {Boolean(indexPattern.timeFieldName) && ( + + {timeFilterHeader} + )} - - -

    - {indexPattern.title} }} - />{' '} - - {mappingAPILink} - - -

    -
    - {conflictedFields.length > 0 && ( - -

    {mappingConflictLabel}

    -
    - )} -
    - - - -
    + {tags.map((tag: any) => ( + + {tag.name} + + ))} + + )} + + +

    + {indexPattern.title} }} + />{' '} + + {mappingAPILink} + +

    +
    + {conflictedFields.length > 0 && ( + <> + + +

    {mappingConflictLabel}

    +
    + + )} + +
    ); diff --git a/src/plugins/index_pattern_management/public/components/edit_index_pattern/index_header/index_header.tsx b/src/plugins/index_pattern_management/public/components/edit_index_pattern/index_header/index_header.tsx index 4cf43d63d5839..8ca8c6453c7e9 100644 --- a/src/plugins/index_pattern_management/public/components/edit_index_pattern/index_header/index_header.tsx +++ b/src/plugins/index_pattern_management/public/components/edit_index_pattern/index_header/index_header.tsx @@ -19,14 +19,7 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; -import { - EuiFlexGroup, - EuiToolTip, - EuiFlexItem, - EuiIcon, - EuiTitle, - EuiButtonIcon, -} from '@elastic/eui'; +import { EuiFlexGroup, EuiToolTip, EuiFlexItem, EuiTitle, EuiButtonIcon } from '@elastic/eui'; import { IIndexPattern } from 'src/plugins/data/public'; interface IndexHeaderProps { @@ -77,22 +70,13 @@ export function IndexHeader({ return ( - - {defaultIndex === indexPattern.id && ( - - - - )} - - -

    {indexPattern.title}

    -
    -
    -
    + +

    {indexPattern.title}

    +
    - - {setDefault && ( + + {defaultIndex !== indexPattern.id && setDefault && ( setFieldFilter(e.target.value)} diff --git a/src/plugins/index_pattern_management/public/components/field_editor/components/scripting_help/test_script.scss b/src/plugins/index_pattern_management/public/components/field_editor/components/scripting_help/test_script.scss index 34e8a60d07074..ca230711827dc 100644 --- a/src/plugins/index_pattern_management/public/components/field_editor/components/scripting_help/test_script.scss +++ b/src/plugins/index_pattern_management/public/components/field_editor/components/scripting_help/test_script.scss @@ -1,5 +1,5 @@ .testScript__searchBar { - .globalQueryBar { + .globalQueryBar { padding: $euiSize 0 0; } } diff --git a/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/__snapshots__/empty_index_pattern_prompt.test.tsx.snap b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/__snapshots__/empty_index_pattern_prompt.test.tsx.snap new file mode 100644 index 0000000000000..c5e6d1220d8bf --- /dev/null +++ b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/__snapshots__/empty_index_pattern_prompt.test.tsx.snap @@ -0,0 +1,99 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`EmptyIndexPatternPrompt should render normally 1`] = ` + + + + + + + +

    + +
    + +

    +

    + +

    + + + +
    +
    +
    + + + + + + + + + + + +
    +`; diff --git a/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/assets/index_pattern_illustration.scss b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/assets/index_pattern_illustration.scss new file mode 100644 index 0000000000000..cd0477aba7adf --- /dev/null +++ b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/assets/index_pattern_illustration.scss @@ -0,0 +1,9 @@ +.indexPatternIllustration { + &__verticalStripes { + fill: $euiColorFullShade; + } + + &__dots { + fill: $euiColorLightShade; + } +} diff --git a/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/assets/index_pattern_illustration.tsx b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/assets/index_pattern_illustration.tsx new file mode 100644 index 0000000000000..2461c0f5df919 --- /dev/null +++ b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/assets/index_pattern_illustration.tsx @@ -0,0 +1,551 @@ +/* + * 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 './index_pattern_illustration.scss'; +import React from 'react'; + +const IndexPatternIllustration = () => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); + +export const Illustration = IndexPatternIllustration; diff --git a/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/empty_index_pattern_prompt.scss b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/empty_index_pattern_prompt.scss new file mode 100644 index 0000000000000..11ac55b098a57 --- /dev/null +++ b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/empty_index_pattern_prompt.scss @@ -0,0 +1,31 @@ +@import '../../../variables'; +@import '../../../templates'; + +.inpEmptyIndexPatternPrompt { + // override EUI specificity + max-width: $inpEmptyStateMaxWidth !important; // sass-lint:disable-line no-important +} + +.inpEmptyIndexPatternPrompt__footer { + @extend %inp-empty-state-footer; + // override EUI specificity + align-items: baseline !important; // sass-lint:disable-line no-important +} + +.inpEmptyIndexPatternPrompt__title { + // override EUI specificity + width: auto !important; // sass-lint:disable-line no-important +} + +@include euiBreakpoint('xs', 's') { + .inpEmptyIndexPatternPrompt__illustration > svg { + width: $euiSize * 12; + height: auto; + margin: 0 auto; + } + + .inpEmptyIndexPatternPrompt__text { + text-align: center; + align-items: center; + } +} diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/empty_state/empty_state.test.tsx b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/empty_index_pattern_prompt.test.tsx similarity index 57% rename from src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/empty_state/empty_state.test.tsx rename to src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/empty_index_pattern_prompt.test.tsx index 7fa39363e3ef7..83eb803333afc 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/empty_state/empty_state.test.tsx +++ b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/empty_index_pattern_prompt.test.tsx @@ -18,30 +18,20 @@ */ import React from 'react'; -import { EmptyState } from '../empty_state'; -import { shallow } from 'enzyme'; -import sinon from 'sinon'; +import { EmptyIndexPatternPrompt } from '../empty_index_pattern_prompt'; +import { shallowWithI18nProvider } from 'test_utils/enzyme_helpers'; -describe('EmptyState', () => { +describe('EmptyIndexPatternPrompt', () => { it('should render normally', () => { - const component = shallow( {}} prependBasePath={(x) => x} />); + const component = shallowWithI18nProvider( + {} }]} + docLinksIndexPatternIntro={'testUrl'} + setBreadcrumbs={() => {}} + /> + ); expect(component).toMatchSnapshot(); }); - - describe('props', () => { - describe('onRefresh', () => { - it('is called when refresh button is clicked', () => { - const onRefreshHandler = sinon.stub(); - - const component = shallow( - x} /> - ); - - component.find('[data-test-subj="refreshIndicesButton"]').simulate('click'); - - sinon.assert.calledOnce(onRefreshHandler); - }); - }); - }); }); diff --git a/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/empty_index_pattern_prompt.tsx b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/empty_index_pattern_prompt.tsx new file mode 100644 index 0000000000000..de389097fd4ba --- /dev/null +++ b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/empty_index_pattern_prompt.tsx @@ -0,0 +1,111 @@ +/* + * 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 './empty_index_pattern_prompt.scss'; + +import React from 'react'; +import { FormattedMessage } from '@kbn/i18n/react'; + +import { EuiPageContent, EuiSpacer, EuiText, EuiFlexItem, EuiFlexGroup } from '@elastic/eui'; +import { EuiDescriptionListTitle } from '@elastic/eui'; +import { EuiDescriptionListDescription, EuiDescriptionList } from '@elastic/eui'; +import { EuiLink } from '@elastic/eui'; +import { getListBreadcrumbs } from '../../breadcrumbs'; +import { IndexPatternCreationOption } from '../../types'; +import { CreateButton } from '../../create_button'; +import { Illustration } from './assets/index_pattern_illustration'; +import { ManagementAppMountParams } from '../../../../../management/public'; + +interface Props { + canSave: boolean; + creationOptions: IndexPatternCreationOption[]; + docLinksIndexPatternIntro: string; + setBreadcrumbs: ManagementAppMountParams['setBreadcrumbs']; +} + +export const EmptyIndexPatternPrompt = ({ + canSave, + creationOptions, + docLinksIndexPatternIntro, + setBreadcrumbs, +}: Props) => { + setBreadcrumbs(getListBreadcrumbs()); + + return ( + + + + + + + +

    + +
    + +

    +

    + +

    + {canSave && ( + + + + )} +
    +
    +
    + + + + + + + + + + + +
    + ); +}; diff --git a/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/index.tsx b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/index.tsx new file mode 100644 index 0000000000000..239bb272b23ab --- /dev/null +++ b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_index_pattern_prompt/index.tsx @@ -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 { EmptyIndexPatternPrompt } from './empty_index_pattern_prompt'; diff --git a/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/__snapshots__/empty_state.test.tsx.snap b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/__snapshots__/empty_state.test.tsx.snap new file mode 100644 index 0000000000000..645694371f905 --- /dev/null +++ b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/__snapshots__/empty_state.test.tsx.snap @@ -0,0 +1,216 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`EmptyState should render normally 1`] = ` + + + + + +

    + +

    +
    +
    +
    + + + + + + } + icon={ + + } + onClick={[Function]} + title={ + + } + /> + + + + } + icon={ + + } + isDisabled={false} + onClick={[Function]} + title={ + + } + /> + + + + } + icon={ + + } + onClick={[Function]} + title={ + + } + /> + + + +
    + + + + + , + "title": , + }, + ] + } + /> + + + + + + + , + "title": , + }, + ] + } + /> + + +
    +
    +
    + + + + + , + } + } + /> + +
    +`; diff --git a/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/empty_state.scss b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/empty_state.scss new file mode 100644 index 0000000000000..37889b9d7c483 --- /dev/null +++ b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/empty_state.scss @@ -0,0 +1,23 @@ +@import '../../../variables'; +@import '../../../templates'; + +.inpEmptyState { + // override EUI specificity + max-width: $inpEmptyStateMaxWidth !important; // sass-lint:disable-line no-important +} + +.inpEmptyState__cardGrid { + justify-content: center; +} + +.inpEmptyState__card { + min-width: $euiSizeXL * 6; +} + +.inpEmptyState__footer { + @extend %inp-empty-state-footer; +} + +.inpEmptyState__footerFlexItem { + min-width: $euiSizeXL * 7; +} diff --git a/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/empty_state.test.tsx b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/empty_state.test.tsx new file mode 100644 index 0000000000000..7b2cc0f4c3c60 --- /dev/null +++ b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/empty_state.test.tsx @@ -0,0 +1,74 @@ +/* + * 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 React from 'react'; +import { EmptyState } from '../empty_state'; +import { shallow } from 'enzyme'; +import sinon from 'sinon'; +// @ts-expect-error +import { findTestSubject } from '@elastic/eui/lib/test'; +import { mountWithIntl } from 'test_utils/enzyme_helpers'; +import { docLinksServiceMock } from '../../../../../../core/public/mocks'; +import { MlCardState } from '../../../types'; + +const docLinks = docLinksServiceMock.createStartContract(); + +jest.mock('react-router-dom', () => ({ + useHistory: () => ({ + createHref: jest.fn(), + }), +})); + +describe('EmptyState', () => { + it('should render normally', () => { + const component = shallow( + {}} + navigateToApp={async () => {}} + getMlCardState={() => MlCardState.ENABLED} + canSave={true} + /> + ); + + expect(component).toMatchSnapshot(); + }); + + describe('props', () => { + describe('onRefresh', () => { + it('is called when refresh button is clicked', () => { + const onRefreshHandler = sinon.stub(); + + const component = mountWithIntl( + {}} + getMlCardState={() => MlCardState.ENABLED} + canSave={true} + /> + ); + + findTestSubject(component, 'refreshIndicesButton').simulate('click'); + + sinon.assert.calledOnce(onRefreshHandler); + }); + }); + }); +}); diff --git a/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/empty_state.tsx b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/empty_state.tsx new file mode 100644 index 0000000000000..e758184f0f14b --- /dev/null +++ b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/empty_state.tsx @@ -0,0 +1,234 @@ +/* + * 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 './empty_state.scss'; +import React from 'react'; +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { DocLinksStart, ApplicationStart } from 'kibana/public'; +import { + EuiPageContentHeader, + EuiPageContentHeaderSection, + EuiTitle, + EuiPageContentBody, + EuiPageContent, + EuiIcon, + EuiSpacer, + EuiFlexItem, + EuiDescriptionList, + EuiFlexGrid, + EuiCard, + EuiLink, + EuiText, +} from '@elastic/eui'; +import { useHistory } from 'react-router-dom'; +import { reactRouterNavigate } from '../../../../../../plugins/kibana_react/public'; +import { MlCardState } from '../../../types'; + +export const EmptyState = ({ + onRefresh, + navigateToApp, + docLinks, + getMlCardState, + canSave, +}: { + onRefresh: () => void; + navigateToApp: ApplicationStart['navigateToApp']; + docLinks: DocLinksStart; + getMlCardState: () => MlCardState; + canSave: boolean; +}) => { + const mlCard = ( + + navigateToApp('ml', { path: '#/filedatavisualizer' })} + className="inpEmptyState__card" + betaBadgeLabel={ + getMlCardState() === MlCardState.ENABLED + ? undefined + : i18n.translate( + 'indexPatternManagement.createIndexPattern.emptyState.basicLicenseLabel', + { + defaultMessage: 'Basic', + } + ) + } + betaBadgeTooltipContent={i18n.translate( + 'indexPatternManagement.createIndexPattern.emptyState.basicLicenseDescription', + { + defaultMessage: 'This feature requires a Basic license.', + } + )} + isDisabled={getMlCardState() === MlCardState.DISABLED} + icon={} + title={ + + } + description={ + + } + /> + + ); + + const createAnyway = ( + + + + + ), + }} + /> + + ); + + return ( + <> + + + + +

    + +

    +
    +
    +
    + + + + + navigateToApp('home', { path: '#/tutorial_directory' })} + icon={} + title={ + + } + description={ + + } + /> + + {getMlCardState() !== MlCardState.HIDDEN ? mlCard : <>} + + navigateToApp('home', { path: '#/tutorial_directory/sampleData' })} + icon={} + title={ + + } + description={ + + } + /> + + + +
    + + + + ), + description: ( + + + + ), + }, + ]} + /> + + + + ), + description: ( + + {' '} + + + ), + }, + ]} + /> + + +
    +
    +
    + + {canSave && createAnyway} + + ); +}; diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/empty_state/index.ts b/src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/index.ts similarity index 100% rename from src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/empty_state/index.ts rename to src/plugins/index_pattern_management/public/components/index_pattern_table/empty_state/index.ts diff --git a/src/plugins/index_pattern_management/public/components/index_pattern_table/index_pattern_table.tsx b/src/plugins/index_pattern_management/public/components/index_pattern_table/index_pattern_table.tsx index 947882b8df495..2768314a75860 100644 --- a/src/plugins/index_pattern_management/public/components/index_pattern_table/index_pattern_table.tsx +++ b/src/plugins/index_pattern_management/public/components/index_pattern_table/index_pattern_table.tsx @@ -20,14 +20,14 @@ import { EuiBadge, EuiButtonEmpty, - EuiButtonIcon, EuiFlexGroup, EuiFlexItem, EuiInMemoryTable, - EuiPanel, EuiSpacer, EuiText, EuiBadgeGroup, + EuiPageContent, + EuiTitle, } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import { withRouter, RouteComponentProps } from 'react-router-dom'; @@ -36,10 +36,13 @@ import { i18n } from '@kbn/i18n'; import { reactRouterNavigate, useKibana } from '../../../../../plugins/kibana_react/public'; import { IndexPatternManagmentContext } from '../../types'; import { CreateButton } from '../create_button'; -import { CreateIndexPatternPrompt } from '../create_index_pattern_prompt'; import { IndexPatternTableItem, IndexPatternCreationOption } from '../types'; import { getIndexPatterns } from '../utils'; import { getListBreadcrumbs } from '../breadcrumbs'; +import { EmptyState } from './empty_state'; +import { MatchedItem, ResolveIndexResponseItemAlias } from '../create_index_pattern_wizard/types'; +import { EmptyIndexPatternPrompt } from './empty_index_pattern_prompt'; +import { getIndices } from '../create_index_pattern_wizard/lib'; const pagination = { initialPageSize: 10, @@ -81,13 +84,19 @@ export const IndexPatternTable = ({ canSave, history }: Props) => { uiSettings, indexPatternManagementStart, chrome, + docLinks, + application, + http, + getMlCardState, } = useKibana().services; - const [showFlyout, setShowFlyout] = useState(false); const [indexPatterns, setIndexPatterns] = useState([]); const [creationOptions, setCreationOptions] = useState([]); + const [sources, setSources] = useState([]); + const [remoteClustersExist, setRemoteClustersExist] = useState(false); + const [isLoadingSources, setIsLoadingSources] = useState(true); + const [isLoadingIndexPatterns, setIsLoadingIndexPatterns] = useState(true); setBreadcrumbs(getListBreadcrumbs()); - useEffect(() => { (async function () { const options = await indexPatternManagementStart.creation.getIndexPatternCreationOptions( @@ -98,9 +107,9 @@ export const IndexPatternTable = ({ canSave, history }: Props) => { uiSettings.get('defaultIndex'), indexPatternManagementStart ); + setIsLoadingIndexPatterns(false); setCreationOptions(options); setIndexPatterns(gettedIndexPatterns); - setShowFlyout(gettedIndexPatterns.length === 0); })(); }, [ history.push, @@ -110,6 +119,28 @@ export const IndexPatternTable = ({ canSave, history }: Props) => { savedObjects.client, ]); + const removeAliases = (item: MatchedItem) => + !((item as unknown) as ResolveIndexResponseItemAlias).indices; + + const loadSources = () => { + getIndices(http, () => [], '*', false).then((dataSources) => + setSources(dataSources.filter(removeAliases)) + ); + getIndices(http, () => [], '*:*', false).then((dataSources) => + setRemoteClustersExist(!!dataSources.filter(removeAliases).length) + ); + }; + + useEffect(() => { + getIndices(http, () => [], '*', false).then((dataSources) => { + setSources(dataSources.filter(removeAliases)); + setIsLoadingSources(false); + }); + getIndices(http, () => [], '*:*', false).then((dataSources) => + setRemoteClustersExist(!!dataSources.filter(removeAliases).length) + ); + }, [http, creationOptions]); + chrome.docTitle.change(title); const columns = [ @@ -130,12 +161,11 @@ export const IndexPatternTable = ({ canSave, history }: Props) => { {name} +   {index.tags && index.tags.map(({ key: tagKey, name: tagName }) => ( - - {tagName} - + {tagName} ))} @@ -156,31 +186,51 @@ export const IndexPatternTable = ({ canSave, history }: Props) => { <> ); + if (isLoadingSources || isLoadingIndexPatterns) { + return <>; + } + + const hasDataIndices = sources.some(({ name }: MatchedItem) => !name.startsWith('.')); + + if (!indexPatterns.length) { + if (!hasDataIndices && !remoteClustersExist) { + return ( + + ); + } else { + return ( + + ); + } + } + return ( - - {showFlyout && setShowFlyout(false)} />} + - - - - -

    {title}

    -
    -
    - - setShowFlyout(true)} - aria-label="Help" + + +

    {title}

    +
    + + +

    + - - +

    +
    {createButton}
    @@ -195,7 +245,7 @@ export const IndexPatternTable = ({ canSave, history }: Props) => { sorting={sorting} search={search} /> -
    + ); }; diff --git a/src/plugins/index_pattern_management/public/index.ts b/src/plugins/index_pattern_management/public/index.ts index 2d6db13757eea..9a0fd39fb4fd9 100644 --- a/src/plugins/index_pattern_management/public/index.ts +++ b/src/plugins/index_pattern_management/public/index.ts @@ -41,3 +41,5 @@ export { IndexPatternCreationOption, IndexPatternListConfig, } from './service'; + +export { MlCardState } from './types'; diff --git a/src/plugins/index_pattern_management/public/management_app/mount_management_section.tsx b/src/plugins/index_pattern_management/public/management_app/mount_management_section.tsx index bcabd55c87975..add45a07e0c5f 100644 --- a/src/plugins/index_pattern_management/public/management_app/mount_management_section.tsx +++ b/src/plugins/index_pattern_management/public/management_app/mount_management_section.tsx @@ -34,7 +34,7 @@ import { CreateIndexPatternWizardWithRouter, } from '../components'; import { IndexPatternManagementStartDependencies, IndexPatternManagementStart } from '../plugin'; -import { IndexPatternManagmentContext } from '../types'; +import { IndexPatternManagmentContext, MlCardState } from '../types'; const readOnlyBadge = { text: i18n.translate('indexPatternManagement.indexPatterns.badge.readOnly.text', { @@ -48,7 +48,8 @@ const readOnlyBadge = { export async function mountManagementSection( getStartServices: StartServicesAccessor, - params: ManagementAppMountParams + params: ManagementAppMountParams, + getMlCardState: () => MlCardState ) { const [ { chrome, application, savedObjects, uiSettings, notifications, overlays, http, docLinks }, @@ -73,6 +74,7 @@ export async function mountManagementSection( data, indexPatternManagementStart: indexPatternManagementStart as IndexPatternManagementStart, setBreadcrumbs: params.setBreadcrumbs, + getMlCardState, }; ReactDOM.render( diff --git a/src/plugins/index_pattern_management/public/mocks.ts b/src/plugins/index_pattern_management/public/mocks.ts index ec8100db42085..6a9ef23e3732e 100644 --- a/src/plugins/index_pattern_management/public/mocks.ts +++ b/src/plugins/index_pattern_management/public/mocks.ts @@ -39,6 +39,9 @@ const createSetupContract = (): IndexPatternManagementSetup => ({ getAll: jest.fn(), getById: jest.fn(), } as any, + environment: { + update: jest.fn(), + }, }); const createStartContract = (): IndexPatternManagementStart => ({ diff --git a/src/plugins/index_pattern_management/public/plugin.ts b/src/plugins/index_pattern_management/public/plugin.ts index fe680eff8657e..ee1e00fcafd98 100644 --- a/src/plugins/index_pattern_management/public/plugin.ts +++ b/src/plugins/index_pattern_management/public/plugin.ts @@ -86,7 +86,9 @@ export class IndexPatternManagementPlugin mount: async (params) => { const { mountManagementSection } = await import('./management_app'); - return mountManagementSection(core.getStartServices, params); + return mountManagementSection(core.getStartServices, params, () => + this.indexPatternManagementService.environmentService.getEnvironment().ml() + ); }, }); diff --git a/src/plugins/index_pattern_management/public/service/environment/environment.mock.ts b/src/plugins/index_pattern_management/public/service/environment/environment.mock.ts new file mode 100644 index 0000000000000..2c2c68b8ead2d --- /dev/null +++ b/src/plugins/index_pattern_management/public/service/environment/environment.mock.ts @@ -0,0 +1,44 @@ +/* + * 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 { EnvironmentService, EnvironmentServiceSetup } from './environment'; +import { MlCardState } from '../../types'; + +const createSetupMock = (): jest.Mocked => { + const setup = { + update: jest.fn(), + }; + return setup; +}; + +const createMock = (): jest.Mocked> => { + const service = { + setup: jest.fn(), + getEnvironment: jest.fn(() => ({ + ml: () => MlCardState.ENABLED, + })), + }; + service.setup.mockImplementation(createSetupMock); + return service; +}; + +export const environmentServiceMock = { + createSetup: createSetupMock, + create: createMock, +}; diff --git a/src/plugins/index_pattern_management/public/service/environment/environment.test.ts b/src/plugins/index_pattern_management/public/service/environment/environment.test.ts new file mode 100644 index 0000000000000..1aa67ba751b81 --- /dev/null +++ b/src/plugins/index_pattern_management/public/service/environment/environment.test.ts @@ -0,0 +1,49 @@ +/* + * 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 { EnvironmentService } from './environment'; +import { MlCardState } from '../../types'; + +describe('EnvironmentService', () => { + describe('setup', () => { + test('allows multiple update calls', () => { + const setup = new EnvironmentService().setup(); + expect(() => { + setup.update({ ml: () => MlCardState.ENABLED }); + }).not.toThrow(); + }); + }); + + describe('getEnvironment', () => { + test('returns default values', () => { + const service = new EnvironmentService(); + expect(service.getEnvironment().ml()).toEqual(MlCardState.DISABLED); + }); + + test('returns last state of update calls', () => { + let cardState = MlCardState.DISABLED; + const service = new EnvironmentService(); + const setup = service.setup(); + setup.update({ ml: () => cardState }); + expect(service.getEnvironment().ml()).toEqual(MlCardState.DISABLED); + cardState = MlCardState.ENABLED; + expect(service.getEnvironment().ml()).toEqual(MlCardState.ENABLED); + }); + }); +}); diff --git a/src/plugins/index_pattern_management/public/service/environment/environment.ts b/src/plugins/index_pattern_management/public/service/environment/environment.ts new file mode 100644 index 0000000000000..f40ce3589fa76 --- /dev/null +++ b/src/plugins/index_pattern_management/public/service/environment/environment.ts @@ -0,0 +1,52 @@ +/* + * 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 { MlCardState } from '../../types'; + +/** @public */ +export interface Environment { + /** + * Flag whether ml features should be advertised + */ + readonly ml: () => MlCardState; +} + +export class EnvironmentService { + private environment = { + ml: () => MlCardState.DISABLED, + }; + + public setup() { + return { + /** + * Update the environment to influence how available features are presented. + * @param update + */ + update: (update: Partial) => { + this.environment = Object.assign({}, this.environment, update); + }, + }; + } + + public getEnvironment() { + return this.environment; + } +} + +export type EnvironmentServiceSetup = ReturnType; diff --git a/src/plugins/index_pattern_management/public/service/environment/index.ts b/src/plugins/index_pattern_management/public/service/environment/index.ts new file mode 100644 index 0000000000000..91d14c358e7db --- /dev/null +++ b/src/plugins/index_pattern_management/public/service/environment/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 { EnvironmentService, Environment, EnvironmentServiceSetup } from './environment'; diff --git a/src/plugins/index_pattern_management/public/service/index_pattern_management_service.ts b/src/plugins/index_pattern_management/public/service/index_pattern_management_service.ts index d4cc9c95e76a7..06b9b83b1b601 100644 --- a/src/plugins/index_pattern_management/public/service/index_pattern_management_service.ts +++ b/src/plugins/index_pattern_management/public/service/index_pattern_management_service.ts @@ -21,6 +21,7 @@ import { HttpSetup } from '../../../../core/public'; import { IndexPatternCreationManager, IndexPatternCreationConfig } from './creation'; import { IndexPatternListManager, IndexPatternListConfig } from './list'; import { FieldFormatEditors } from './field_format_editors'; +import { EnvironmentService } from './environment'; import { BytesFormatEditor, @@ -49,11 +50,13 @@ export class IndexPatternManagementService { indexPatternCreationManager: IndexPatternCreationManager; indexPatternListConfig: IndexPatternListManager; fieldFormatEditors: FieldFormatEditors; + environmentService: EnvironmentService; constructor() { this.indexPatternCreationManager = new IndexPatternCreationManager(); this.indexPatternListConfig = new IndexPatternListManager(); this.fieldFormatEditors = new FieldFormatEditors(); + this.environmentService = new EnvironmentService(); } public setup({ httpClient }: SetupDependencies) { @@ -83,6 +86,7 @@ export class IndexPatternManagementService { creation: creationManagerSetup, list: indexPatternListConfigSetup, fieldFormatEditors: fieldFormatEditorsSetup, + environment: this.environmentService.setup(), }; } diff --git a/src/plugins/index_pattern_management/public/types.ts b/src/plugins/index_pattern_management/public/types.ts index 97941687e652d..2876bd6227350 100644 --- a/src/plugins/index_pattern_management/public/types.ts +++ b/src/plugins/index_pattern_management/public/types.ts @@ -44,8 +44,15 @@ export interface IndexPatternManagmentContext { data: DataPublicPluginStart; indexPatternManagementStart: IndexPatternManagementStart; setBreadcrumbs: ManagementAppMountParams['setBreadcrumbs']; + getMlCardState: () => MlCardState; } export type IndexPatternManagmentContextValue = KibanaReactContextValue< IndexPatternManagmentContext >; + +export enum MlCardState { + HIDDEN, + DISABLED, + ENABLED, +} diff --git a/test/functional/apps/management/_index_patterns_empty.ts b/test/functional/apps/management/_index_patterns_empty.ts new file mode 100644 index 0000000000000..4ae2e7836ac37 --- /dev/null +++ b/test/functional/apps/management/_index_patterns_empty.ts @@ -0,0 +1,66 @@ +/* + * 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 { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getPageObjects, getService }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const kibanaServer = getService('kibanaServer'); + const PageObjects = getPageObjects(['common', 'settings']); + const testSubjects = getService('testSubjects'); + const globalNav = getService('globalNav'); + const es = getService('legacyEs'); + + describe('index pattern empty view', () => { + before(async () => { + await esArchiver.load('empty_kibana'); + await kibanaServer.uiSettings.replace({}); + await PageObjects.settings.navigateTo(); + }); + + after(async () => { + await esArchiver.unload('empty_kibana'); + await esArchiver.loadIfNeeded('makelogs'); + }); + + // create index pattern and return to verify list + it(`shows empty views`, async () => { + // @ts-expect-error + await es.transport.request({ + path: '/_all', + method: 'DELETE', + }); + await PageObjects.settings.clickKibanaIndexPatterns(); + await testSubjects.existOrFail('createAnyway'); + // @ts-expect-error + await es.transport.request({ + path: '/logstash-a/_doc', + method: 'POST', + body: { user: 'matt', message: 20 }, + }); + await testSubjects.click('refreshIndicesButton'); + await testSubjects.existOrFail('createIndexPatternButton', { timeout: 5000 }); + await PageObjects.settings.createIndexPattern('logstash-*', ''); + }); + + it(`doesn't show read-only badge`, async () => { + await globalNav.badgeMissingOrFail(); + }); + }); +} diff --git a/test/functional/apps/management/_kibana_settings.js b/test/functional/apps/management/_kibana_settings.js index 2a488a94c6889..e2b20bacc0b39 100644 --- a/test/functional/apps/management/_kibana_settings.js +++ b/test/functional/apps/management/_kibana_settings.js @@ -28,7 +28,7 @@ export default function ({ getService, getPageObjects }) { before(async function () { // delete .kibana index and then wait for Kibana to re-create it await kibanaServer.uiSettings.replace({}); - await PageObjects.settings.createIndexPattern(); + await PageObjects.settings.createIndexPattern('logstash-*'); await PageObjects.settings.navigateTo(); }); diff --git a/test/functional/apps/management/index.js b/test/functional/apps/management/index.js index 97e7314f9678e..d5f0c286af7a5 100644 --- a/test/functional/apps/management/index.js +++ b/test/functional/apps/management/index.js @@ -43,6 +43,7 @@ export default function ({ getService, loadTestFile }) { loadTestFile(require.resolve('./_scripted_fields')); loadTestFile(require.resolve('./_scripted_fields_preview')); loadTestFile(require.resolve('./_mgmt_import_saved_objects')); + loadTestFile(require.resolve('./_index_patterns_empty')); }); describe('', function () { diff --git a/test/functional/page_objects/settings_page.ts b/test/functional/page_objects/settings_page.ts index 4b80647c8749d..a4285a5f94d51 100644 --- a/test/functional/page_objects/settings_page.ts +++ b/test/functional/page_objects/settings_page.ts @@ -55,15 +55,6 @@ export function SettingsPageProvider({ getService, getPageObjects }: FtrProvider await testSubjects.click('indexPatterns'); await PageObjects.header.waitUntilLoadingHasFinished(); - - // check for the index pattern info flyout that covers the - // create index pattern button on smaller screens - // @ts-ignore - await retry.waitFor('index pattern info flyout', async () => { - if (await testSubjects.exists('CreateIndexPatternPrompt')) { - await testSubjects.click('CreateIndexPatternPrompt > euiFlyoutCloseButton'); - } else return true; - }); } async getAdvancedSettings(propertyName: string) { @@ -311,9 +302,7 @@ export function SettingsPageProvider({ getService, getPageObjects }: FtrProvider } async isIndexPatternListEmpty() { - await testSubjects.existOrFail('indexPatternTable', { timeout: 5000 }); - const indexPatternList = await this.getIndexPatternList(); - return indexPatternList.length === 0; + return !(await testSubjects.exists('indexPatternTable', { timeout: 5000 })); } async removeLogstashIndexPatternIfExist() { diff --git a/x-pack/plugins/ml/kibana.json b/x-pack/plugins/ml/kibana.json index c61db9fb1ad8d..7b4ea5458f4a6 100644 --- a/x-pack/plugins/ml/kibana.json +++ b/x-pack/plugins/ml/kibana.json @@ -16,7 +16,8 @@ "share", "embeddable", "uiActions", - "kibanaLegacy" + "kibanaLegacy", + "indexPatternManagement" ], "optionalPlugins": [ "security", diff --git a/x-pack/plugins/ml/public/application/app.tsx b/x-pack/plugins/ml/public/application/app.tsx index 42c462fa9d869..c281dc4e9ae05 100644 --- a/x-pack/plugins/ml/public/application/app.tsx +++ b/x-pack/plugins/ml/public/application/app.tsx @@ -21,7 +21,8 @@ import { MlRouter } from './routing'; import { mlApiServicesProvider } from './services/ml_api_service'; import { HttpService } from './services/http_service'; -export type MlDependencies = Omit & MlStartDependencies; +export type MlDependencies = Omit & + MlStartDependencies; interface AppProps { coreStart: CoreStart; diff --git a/x-pack/plugins/ml/public/plugin.ts b/x-pack/plugins/ml/public/plugin.ts index aa6163379f9c0..ff59d46de758d 100644 --- a/x-pack/plugins/ml/public/plugin.ts +++ b/x-pack/plugins/ml/public/plugin.ts @@ -20,8 +20,10 @@ import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; import { DataPublicPluginStart } from 'src/plugins/data/public'; import { HomePublicPluginSetup } from 'src/plugins/home/public'; +import { IndexPatternManagementSetup } from 'src/plugins/index_pattern_management/public'; import { EmbeddableSetup } from 'src/plugins/embeddable/public'; import { AppStatus, AppUpdater, DEFAULT_APP_CATEGORIES } from '../../../../src/core/public'; +import { MlCardState } from '../../../../src/plugins/index_pattern_management/public'; import { SecurityPluginSetup } from '../../security/public'; import { LicensingPluginSetup } from '../../licensing/public'; import { registerManagementSection } from './application/management'; @@ -53,6 +55,7 @@ export interface MlSetupDependencies { uiActions: UiActionsSetup; kibanaVersion: string; share: SharePluginSetup; + indexPatternManagement: IndexPatternManagementSetup; } export type MlCoreSetup = CoreSetup; @@ -104,11 +107,20 @@ export class MlPlugin implements Plugin { }); const licensing = pluginsSetup.licensing.license$.pipe(take(1)); - licensing.subscribe((license) => { + licensing.subscribe(async (license) => { + const [coreStart] = await core.getStartServices(); if (isMlEnabled(license)) { // add ML to home page registerFeature(pluginsSetup.home); + // register ML for the index pattern management no data screen. + pluginsSetup.indexPatternManagement.environment.update({ + ml: () => + coreStart.application.capabilities.ml.canFindFileStructure + ? MlCardState.ENABLED + : MlCardState.HIDDEN, + }); + // register various ML plugin features which require a full license if (isFullLicense(license)) { registerManagementSection(pluginsSetup.management, core); diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index e5cd46b330ca8..55d1953247a93 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -2388,11 +2388,6 @@ "indexPatternManagement.createIndexPattern.description": "インデックスパターンは、{single}または{multiple}データソース、{star}と一致します。", "indexPatternManagement.createIndexPattern.documentation": "ドキュメンテーションを表示", "indexPatternManagement.createIndexPattern.emptyState.checkDataButton": "新規データを確認", - "indexPatternManagement.createIndexPattern.emptyStateHeader": "Elasticsearchデータが見つかりませんでした", - "indexPatternManagement.createIndexPattern.emptyStateLabel.emptyStateDetail": "{needToIndex} {learnHowLink}または{getStartedLink}", - "indexPatternManagement.createIndexPattern.emptyStateLabel.getStartedLink": "サンプルデータで始めましょう。", - "indexPatternManagement.createIndexPattern.emptyStateLabel.learnHowLink": "方法を学習", - "indexPatternManagement.createIndexPattern.emptyStateLabel.needToIndexLabel": "インデックスパターンを作成する前に、Elasticsearchへのデータのインデックスが必要です。", "indexPatternManagement.createIndexPattern.includeSystemIndicesToggleSwitchLabel": "システムと非表示のインデックスを含める", "indexPatternManagement.createIndexPattern.loadClustersFailMsg": "リモートクラスターの読み込みに失敗", "indexPatternManagement.createIndexPattern.loadIndicesFailMsg": "インデックスの読み込みに失敗", @@ -2403,7 +2398,6 @@ "indexPatternManagement.createIndexPattern.step.indexPatternPlaceholder": "index-name-*", "indexPatternManagement.createIndexPattern.step.invalidCharactersErrorMessage": "{indexPatternName}にはスペースや{characterList}は使えません。", "indexPatternManagement.createIndexPattern.step.loadingHeader": "一致するインデックスを検索中…", - "indexPatternManagement.createIndexPattern.step.loadingLabel": "お待ちください…", "indexPatternManagement.createIndexPattern.step.nextStepButton": "次のステップ", "indexPatternManagement.createIndexPattern.step.pagingLabel": "ページごとの行数: {perPage}", "indexPatternManagement.createIndexPattern.step.status.matchAnyLabel.matchAnyDetail": "インデックスパターンは、{sourceCount, plural, one {個のソース} other {個のソース} }と一致します。", @@ -2553,15 +2547,6 @@ "indexPatternManagement.indexPattern.sectionsHeader": "インデックスパターン", "indexPatternManagement.indexPattern.titleExistsLabel": "「{title}」というタイトルのインデックスパターンがすでに存在します。", "indexPatternManagement.indexPatternList.createButton.betaLabel": "ベータ", - "indexPatternManagement.indexPatternPrompt.exampleOne": "チャートを作成したりコンテンツを素早くクエリできるように log-west-001 という名前の単一のデータソースをインデックスします。", - "indexPatternManagement.indexPatternPrompt.exampleOneTitle": "単一のデータソース", - "indexPatternManagement.indexPatternPrompt.examplesTitle": "インデックスパターンの例", - "indexPatternManagement.indexPatternPrompt.exampleThree": "比較目的に履歴の動向を集約できるよう、これらのログのアーカイブされた月々のロールアップメトリックスを指定どおりに別々のインデックスパターンにグループ分けします。", - "indexPatternManagement.indexPatternPrompt.exampleThreeTitle": "カスタムグルーピング", - "indexPatternManagement.indexPatternPrompt.exampleTwo": "すべての西海岸のサーバーログに対してクエリを実行できるように、頭に「log-west」の付いたすべての受信データソースをグループ化します。", - "indexPatternManagement.indexPatternPrompt.exampleTwoTitle": "複数データソース", - "indexPatternManagement.indexPatternPrompt.subtitle": "インデックスパターンは、Kibanaで共有フィールドにクエリを実行できるよう、種類の異なるデータソースをバケットにまとめることができます。", - "indexPatternManagement.indexPatternPrompt.title": "インデックスパターンについて", "indexPatternManagement.indexPatterns.badge.readOnly.text": "読み取り専用", "indexPatternManagement.indexPatterns.badge.readOnly.tooltip": "インデックスパターンを保存できません", "indexPatternManagement.indexPatterns.createBreadcrumb": "インデックスパターンを作成", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index b273f6cc81baf..40f4c9c5897d8 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -2389,11 +2389,6 @@ "indexPatternManagement.createIndexPattern.description": "索引模式可以匹配单个源,例如 {single} 或 {multiple} 个数据源、{star}。", "indexPatternManagement.createIndexPattern.documentation": "阅读文档", "indexPatternManagement.createIndexPattern.emptyState.checkDataButton": "检查新数据", - "indexPatternManagement.createIndexPattern.emptyStateHeader": "找不到任何 Elasticsearch 数据", - "indexPatternManagement.createIndexPattern.emptyStateLabel.emptyStateDetail": "{needToIndex}{learnHowLink}或{getStartedLink}", - "indexPatternManagement.createIndexPattern.emptyStateLabel.getStartedLink": "开始使用一些样例数据集。", - "indexPatternManagement.createIndexPattern.emptyStateLabel.learnHowLink": "了解操作方法", - "indexPatternManagement.createIndexPattern.emptyStateLabel.needToIndexLabel": "您需要在 Elasticsearch 中索引一些数据后,才能创建索引模式。", "indexPatternManagement.createIndexPattern.includeSystemIndicesToggleSwitchLabel": "包括系统和隐藏索引", "indexPatternManagement.createIndexPattern.loadClustersFailMsg": "无法加载远程集群", "indexPatternManagement.createIndexPattern.loadIndicesFailMsg": "无法加载索引", @@ -2404,7 +2399,6 @@ "indexPatternManagement.createIndexPattern.step.indexPatternPlaceholder": "index-name-*", "indexPatternManagement.createIndexPattern.step.invalidCharactersErrorMessage": "{indexPatternName} 不能包含空格或字符:{characterList}", "indexPatternManagement.createIndexPattern.step.loadingHeader": "正在寻找匹配的索引......", - "indexPatternManagement.createIndexPattern.step.loadingLabel": "请稍候......", "indexPatternManagement.createIndexPattern.step.nextStepButton": "下一步", "indexPatternManagement.createIndexPattern.step.pagingLabel": "每页行数:{perPage}", "indexPatternManagement.createIndexPattern.step.status.matchAnyLabel.matchAnyDetail": "您的索引模式可以匹配{sourceCount, plural, one {您的 # 个源} other {您的 # 个源中的任何一个} }。", @@ -2554,15 +2548,6 @@ "indexPatternManagement.indexPattern.sectionsHeader": "索引模式", "indexPatternManagement.indexPattern.titleExistsLabel": "具有标题“{title}”的索引模式已存在。", "indexPatternManagement.indexPatternList.createButton.betaLabel": "公测版", - "indexPatternManagement.indexPatternPrompt.exampleOne": "索引单个称作 log-west-001 的数据源,以便可以快速地构建图表或查询其内容。", - "indexPatternManagement.indexPatternPrompt.exampleOneTitle": "单数据源", - "indexPatternManagement.indexPatternPrompt.examplesTitle": "索引模式示例", - "indexPatternManagement.indexPatternPrompt.exampleThree": "具体而言,将这些日志每月存档的汇总/打包指标分组成不同的索引模式,从而可以聚合历史趋势以进行比较。", - "indexPatternManagement.indexPatternPrompt.exampleThreeTitle": "定制分组", - "indexPatternManagement.indexPatternPrompt.exampleTwo": "分组以 log-west* 开头的所有传入数据源,以便可以查询所有西海岸服务器日志。", - "indexPatternManagement.indexPatternPrompt.exampleTwoTitle": "多数据源", - "indexPatternManagement.indexPatternPrompt.subtitle": "索引模式允许您将异类的数据源一起装入存储桶,从而可以在 Kibana 中查询它们共享的字段。", - "indexPatternManagement.indexPatternPrompt.title": "关于索引模式", "indexPatternManagement.indexPatterns.badge.readOnly.text": "只读", "indexPatternManagement.indexPatterns.badge.readOnly.tooltip": "无法保存索引模式", "indexPatternManagement.indexPatterns.createBreadcrumb": "创建索引模式", diff --git a/x-pack/test/functional/apps/index_patterns/feature_controls/index_patterns_security.ts b/x-pack/test/functional/apps/index_patterns/feature_controls/index_patterns_security.ts index bc36f70df3641..cedd96f147c2b 100644 --- a/x-pack/test/functional/apps/index_patterns/feature_controls/index_patterns_security.ts +++ b/x-pack/test/functional/apps/index_patterns/feature_controls/index_patterns_security.ts @@ -130,7 +130,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { it(`index pattern listing doesn't show create button`, async () => { await PageObjects.settings.clickKibanaIndexPatterns(); - await testSubjects.existOrFail('indexPatternTable'); + await testSubjects.existOrFail('emptyIndexPatternPrompt'); await testSubjects.missingOrFail('createIndexPatternButton'); }); From 124bd126f88b6ebb785ee7ef37d4e4c93e1f61c0 Mon Sep 17 00:00:00 2001 From: Yuliia Naumenko Date: Wed, 12 Aug 2020 14:08:02 -0700 Subject: [PATCH 19/27] Migrated last pieces of legacy fixture code (#74470) * Migrated last pieces of legacy fixture code * Implemented own server for webhook simulator * Fixed type checks. Moved slack simulator to own server * close server after tests run * Fixed due to comments * fixed failing tests --- x-pack/package.json | 4 +- .../actions/builtin_action_types/slack.ts | 25 ++-- .../actions/builtin_action_types/webhook.ts | 25 ++-- .../actions_simulators/server/plugin.ts | 11 ++ .../server/slack_simulation.ts | 69 +++++++++++ .../server/webhook_simulation.ts | 88 ++++++++++++++ .../actions_simulators_legacy/index.ts | 26 ---- .../actions_simulators_legacy/package.json | 7 -- .../slack_simulation.ts | 74 ------------ .../webhook_simulation.ts | 112 ------------------ .../actions/builtin_action_types/slack.ts | 25 ++-- .../actions/builtin_action_types/webhook.ts | 53 +++++++-- .../actions/builtin_action_types/webhook.ts | 30 ++--- yarn.lock | 2 +- 14 files changed, 269 insertions(+), 282 deletions(-) create mode 100644 x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators/server/slack_simulation.ts create mode 100644 x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators/server/webhook_simulation.ts delete mode 100644 x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators_legacy/index.ts delete mode 100644 x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators_legacy/package.json delete mode 100644 x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators_legacy/slack_simulation.ts delete mode 100644 x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators_legacy/webhook_simulation.ts diff --git a/x-pack/package.json b/x-pack/package.json index b426e790c2d47..2b52646e0f748 100644 --- a/x-pack/package.json +++ b/x-pack/package.json @@ -255,8 +255,8 @@ "cronstrue": "^1.51.0", "cytoscape": "^3.10.0", "d3": "3.5.17", - "d3-scale": "1.0.7", "d3-array": "1.2.4", + "d3-scale": "1.0.7", "dedent": "^0.7.0", "del": "^5.1.0", "dragselect": "1.13.1", @@ -267,7 +267,7 @@ "font-awesome": "4.7.0", "formsy-react": "^1.1.5", "fp-ts": "^2.3.1", - "get-port": "4.2.0", + "get-port": "^4.2.0", "getos": "^3.1.0", "git-url-parse": "11.1.2", "github-markdown-css": "^2.10.0", diff --git a/x-pack/test/alerting_api_integration/basic/tests/actions/builtin_action_types/slack.ts b/x-pack/test/alerting_api_integration/basic/tests/actions/builtin_action_types/slack.ts index 90660cc99507d..91511b508aca6 100644 --- a/x-pack/test/alerting_api_integration/basic/tests/actions/builtin_action_types/slack.ts +++ b/x-pack/test/alerting_api_integration/basic/tests/actions/builtin_action_types/slack.ts @@ -4,26 +4,25 @@ * you may not use this file except in compliance with the Elastic License. */ +import http from 'http'; +import getPort from 'get-port'; import { FtrProviderContext } from '../../../../common/ftr_provider_context'; -import { - getExternalServiceSimulatorPath, - ExternalServiceSimulator, -} from '../../../../common/fixtures/plugins/actions_simulators/server/plugin'; +import { getSlackServer } from '../../../../common/fixtures/plugins/actions_simulators/server/plugin'; // eslint-disable-next-line import/no-default-export export default function slackTest({ getService }: FtrProviderContext) { const supertest = getService('supertest'); - const kibanaServer = getService('kibanaServer'); describe('slack action', () => { - let slackSimulatorURL: string = ''; + let slackSimulatorURL: string = ''; + let slackServer: http.Server; - // need to wait for kibanaServer to settle ... - before(() => { - slackSimulatorURL = kibanaServer.resolveUrl( - getExternalServiceSimulatorPath(ExternalServiceSimulator.SLACK) - ); + before(async () => { + slackServer = await getSlackServer(); + const availablePort = await getPort({ port: 9000 }); + slackServer.listen(availablePort); + slackSimulatorURL = `http://localhost:${availablePort}`; }); it('should return 403 when creating a slack action', async () => { @@ -44,5 +43,9 @@ export default function slackTest({ getService }: FtrProviderContext) { 'Action type .slack is disabled because your basic license does not support it. Please upgrade your license.', }); }); + + after(() => { + slackServer.close(); + }); }); } diff --git a/x-pack/test/alerting_api_integration/basic/tests/actions/builtin_action_types/webhook.ts b/x-pack/test/alerting_api_integration/basic/tests/actions/builtin_action_types/webhook.ts index af1d413ff3c46..039f1d4dd3275 100644 --- a/x-pack/test/alerting_api_integration/basic/tests/actions/builtin_action_types/webhook.ts +++ b/x-pack/test/alerting_api_integration/basic/tests/actions/builtin_action_types/webhook.ts @@ -4,25 +4,24 @@ * you may not use this file except in compliance with the Elastic License. */ +import http from 'http'; +import getPort from 'get-port'; import { FtrProviderContext } from '../../../../common/ftr_provider_context'; -import { - getExternalServiceSimulatorPath, - ExternalServiceSimulator, -} from '../../../../common/fixtures/plugins/actions_simulators/server/plugin'; +import { getWebhookServer } from '../../../../common/fixtures/plugins/actions_simulators/server/plugin'; // eslint-disable-next-line import/no-default-export export default function webhookTest({ getService }: FtrProviderContext) { const supertest = getService('supertest'); - const kibanaServer = getService('kibanaServer'); describe('webhook action', () => { - let webhookSimulatorURL: string = ''; - + let webhookSimulatorURL: string = ''; + let webhookServer: http.Server; // need to wait for kibanaServer to settle ... - before(() => { - webhookSimulatorURL = kibanaServer.resolveUrl( - getExternalServiceSimulatorPath(ExternalServiceSimulator.WEBHOOK) - ); + before(async () => { + webhookServer = await getWebhookServer(); + const availablePort = await getPort({ port: 9000 }); + webhookServer.listen(availablePort); + webhookSimulatorURL = `http://localhost:${availablePort}`; }); it('should return 403 when creating a webhook action', async () => { @@ -47,5 +46,9 @@ export default function webhookTest({ getService }: FtrProviderContext) { 'Action type .webhook is disabled because your basic license does not support it. Please upgrade your license.', }); }); + + after(() => { + webhookServer.close(); + }); }); } diff --git a/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators/server/plugin.ts b/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators/server/plugin.ts index cb1271494c294..0f7acf5ead1a1 100644 --- a/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators/server/plugin.ts +++ b/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators/server/plugin.ts @@ -4,6 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ +import http from 'http'; import { Plugin, CoreSetup, IRouter } from 'kibana/server'; import { EncryptedSavedObjectsPluginStart } from '../../../../../../../plugins/encrypted_saved_objects/server'; import { PluginSetupContract as FeaturesPluginSetup } from '../../../../../../../plugins/features/server'; @@ -13,6 +14,8 @@ import { initPlugin as initPagerduty } from './pagerduty_simulation'; import { initPlugin as initServiceNow } from './servicenow_simulation'; import { initPlugin as initJira } from './jira_simulation'; import { initPlugin as initResilient } from './resilient_simulation'; +import { initPlugin as initSlack } from './slack_simulation'; +import { initPlugin as initWebhook } from './webhook_simulation'; export const NAME = 'actions-FTS-external-service-simulators'; @@ -39,6 +42,14 @@ export function getAllExternalServiceSimulatorPaths(): string[] { return allPaths; } +export async function getWebhookServer(): Promise { + return await initWebhook(); +} + +export async function getSlackServer(): Promise { + return await initSlack(); +} + interface FixtureSetupDeps { actions: ActionsPluginSetupContract; features: FeaturesPluginSetup; diff --git a/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators/server/slack_simulation.ts b/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators/server/slack_simulation.ts new file mode 100644 index 0000000000000..5032112e702e2 --- /dev/null +++ b/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators/server/slack_simulation.ts @@ -0,0 +1,69 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import http from 'http'; + +export async function initPlugin() { + return http.createServer((request, response) => { + if (request.method === 'POST') { + let data = ''; + request.on('data', (chunk) => { + data += chunk; + }); + request.on('end', () => { + const body = JSON.parse(data); + const text = body && body.text; + + if (text == null) { + response.statusCode = 400; + response.end('bad request to slack simulator'); + return; + } + + switch (text) { + case 'success': { + response.statusCode = 200; + response.end('ok'); + return; + } + case 'no_text': + response.statusCode = 400; + response.end('no_text'); + return; + + case 'invalid_payload': + response.statusCode = 400; + response.end('invalid_payload'); + return; + + case 'invalid_token': + response.statusCode = 403; + response.end('invalid_token'); + return; + + case 'status_500': + response.statusCode = 500; + response.end('simulated slack 500 response'); + return; + + case 'rate_limit': + const res = { + retry_after: 1, + ok: false, + error: 'rate_limited', + }; + + response.writeHead(429, { 'Content-Type': 'application/json', 'Retry-After': '1' }); + response.write(JSON.stringify(res)); + response.end(); + return; + } + response.statusCode = 400; + response.end('unknown request to slack simulator'); + }); + } + }); +} diff --git a/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators/server/webhook_simulation.ts b/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators/server/webhook_simulation.ts new file mode 100644 index 0000000000000..44d8ea0c2da20 --- /dev/null +++ b/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators/server/webhook_simulation.ts @@ -0,0 +1,88 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +import expect from '@kbn/expect'; +import http from 'http'; +import { fromNullable, map, filter, getOrElse } from 'fp-ts/lib/Option'; +import { pipe } from 'fp-ts/lib/pipeable'; +import { constant } from 'fp-ts/lib/function'; + +export async function initPlugin() { + return http.createServer((request, response) => { + const credentials = pipe( + fromNullable(request.headers.authorization), + map((authorization) => authorization.split(/\s+/)), + filter((parts) => parts.length > 1), + map((parts) => Buffer.from(parts[1], 'base64').toString()), + filter((credentialsPart) => credentialsPart.indexOf(':') !== -1), + map((credentialsPart) => { + const [username, password] = credentialsPart.split(':'); + return { username, password }; + }), + getOrElse(constant({ username: '', password: '' })) + ); + + if (request.method === 'POST' || request.method === 'PUT') { + let data = ''; + request.on('data', (chunk) => { + data += chunk; + }); + request.on('end', () => { + switch (data) { + case 'success': + response.statusCode = 200; + response.end('OK'); + return; + case 'authenticate': + return validateAuthentication(credentials, response); + case 'success_post_method': + return validateRequestUsesMethod(request.method ?? '', 'post', response); + case 'success_put_method': + return validateRequestUsesMethod(request.method ?? '', 'put', response); + case 'failure': + response.statusCode = 500; + response.end('Error'); + return; + } + response.statusCode = 400; + response.end( + `unknown request to webhook simulator [${data ? `content: ${data}` : `no content`}]` + ); + return; + }); + } else { + request.on('end', () => { + response.statusCode = 400; + response.end('unknown request to webhook simulator [no content]'); + return; + }); + } + }); +} + +function validateAuthentication(credentials: any, res: any) { + try { + expect(credentials).to.eql({ + username: 'elastic', + password: 'changeme', + }); + res.statusCode = 200; + res.end('OK'); + } catch (ex) { + res.statusCode = 403; + res.end(`the validateAuthentication operation failed. ${ex.message}`); + } +} + +function validateRequestUsesMethod(requestMethod: string, method: string, res: any) { + try { + expect(requestMethod.toLowerCase()).to.eql(method); + res.statusCode = 200; + res.end('OK'); + } catch (ex) { + res.statusCode = 403; + res.end(`the validateAuthentication operation failed. ${ex.message}`); + } +} diff --git a/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators_legacy/index.ts b/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators_legacy/index.ts deleted file mode 100644 index 43e6a73673556..0000000000000 --- a/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators_legacy/index.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ -import Hapi from 'hapi'; -import { - getExternalServiceSimulatorPath, - NAME, - ExternalServiceSimulator, -} from '../actions_simulators/server/plugin'; - -import { initPlugin as initWebhook } from './webhook_simulation'; -import { initPlugin as initSlack } from './slack_simulation'; - -// eslint-disable-next-line import/no-default-export -export default function (kibana: any) { - return new kibana.Plugin({ - require: ['xpack_main'], - name: `${NAME}-legacy`, - init: (server: Hapi.Server) => { - initWebhook(server, getExternalServiceSimulatorPath(ExternalServiceSimulator.WEBHOOK)); - initSlack(server, getExternalServiceSimulatorPath(ExternalServiceSimulator.SLACK)); - }, - }); -} diff --git a/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators_legacy/package.json b/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators_legacy/package.json deleted file mode 100644 index 644cd77d3be75..0000000000000 --- a/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators_legacy/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "actions-fixtures-legacy", - "version": "0.0.0", - "kibana": { - "version": "kibana" - } -} diff --git a/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators_legacy/slack_simulation.ts b/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators_legacy/slack_simulation.ts deleted file mode 100644 index b914386b136cc..0000000000000 --- a/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators_legacy/slack_simulation.ts +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import Joi from 'joi'; -import Hapi from 'hapi'; - -interface SlackRequest extends Hapi.Request { - payload: { - text: string; - }; -} -export function initPlugin(server: Hapi.Server, path: string) { - server.route({ - method: 'POST', - path, - options: { - auth: false, - validate: { - options: { abortEarly: false }, - payload: Joi.object().keys({ - text: Joi.string(), - }), - }, - }, - handler: slackHandler as Hapi.Lifecycle.Method, - }); -} -// Slack simulator: create a slack action pointing here, and you can get -// different responses based on the message posted. See the README.md for -// more info. - -function slackHandler(request: SlackRequest, h: any) { - const body = request.payload; - const text = body && body.text; - - if (text == null) { - return htmlResponse(h, 400, 'bad request to slack simulator'); - } - - switch (text) { - case 'success': - return htmlResponse(h, 200, 'ok'); - - case 'no_text': - return htmlResponse(h, 400, 'no_text'); - - case 'invalid_payload': - return htmlResponse(h, 400, 'invalid_payload'); - - case 'invalid_token': - return htmlResponse(h, 403, 'invalid_token'); - - case 'status_500': - return htmlResponse(h, 500, 'simulated slack 500 response'); - - case 'rate_limit': - const response = { - retry_after: 1, - ok: false, - error: 'rate_limited', - }; - - return h.response(response).type('application/json').header('retry-after', '1').code(429); - } - - return htmlResponse(h, 400, 'unknown request to slack simulator'); -} - -function htmlResponse(h: any, code: number, text: string) { - return h.response(text).type('text/html').code(code); -} diff --git a/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators_legacy/webhook_simulation.ts b/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators_legacy/webhook_simulation.ts deleted file mode 100644 index 44e1aff162c92..0000000000000 --- a/x-pack/test/alerting_api_integration/common/fixtures/plugins/actions_simulators_legacy/webhook_simulation.ts +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ -import expect from '@kbn/expect'; -import Joi from 'joi'; -import Hapi, { Util } from 'hapi'; -import { fromNullable, map, filter, getOrElse } from 'fp-ts/lib/Option'; -import { pipe } from 'fp-ts/lib/pipeable'; -import { constant } from 'fp-ts/lib/function'; - -interface WebhookRequest extends Hapi.Request { - payload: string; -} - -export async function initPlugin(server: Hapi.Server, path: string) { - server.auth.scheme('identifyCredentialsIfPresent', function identifyCredentialsIfPresent( - s: Hapi.Server, - options?: Hapi.ServerAuthSchemeOptions - ) { - const scheme = { - async authenticate(request: Hapi.Request, h: Hapi.ResponseToolkit) { - const credentials = pipe( - fromNullable(request.headers.authorization), - map((authorization) => authorization.split(/\s+/)), - filter((parts) => parts.length > 1), - map((parts) => Buffer.from(parts[1], 'base64').toString()), - filter((credentialsPart) => credentialsPart.indexOf(':') !== -1), - map((credentialsPart) => { - const [username, password] = credentialsPart.split(':'); - return { username, password }; - }), - getOrElse(constant({ username: '', password: '' })) - ); - - return h.authenticated({ credentials }); - }, - }; - - return scheme; - }); - server.auth.strategy('simple', 'identifyCredentialsIfPresent'); - - server.route({ - method: ['POST', 'PUT'], - path, - options: { - auth: 'simple', - validate: { - options: { abortEarly: false }, - payload: Joi.string(), - }, - }, - handler: webhookHandler as Hapi.Lifecycle.Method, - }); -} - -function webhookHandler(request: WebhookRequest, h: any) { - const body = request.payload; - - switch (body) { - case 'success': - return htmlResponse(h, 200, `OK`); - case 'authenticate': - return validateAuthentication(request, h); - case 'success_post_method': - return validateRequestUsesMethod(request, h, 'post'); - case 'success_put_method': - return validateRequestUsesMethod(request, h, 'put'); - case 'failure': - return htmlResponse(h, 500, `Error`); - } - - return htmlResponse( - h, - 400, - `unknown request to webhook simulator [${body ? `content: ${body}` : `no content`}]` - ); -} - -function validateAuthentication(request: WebhookRequest, h: any) { - const { - auth: { credentials }, - } = request; - try { - expect(credentials).to.eql({ - username: 'elastic', - password: 'changeme', - }); - return htmlResponse(h, 200, `OK`); - } catch (ex) { - return htmlResponse(h, 403, `the validateAuthentication operation failed. ${ex.message}`); - } -} - -function validateRequestUsesMethod( - request: WebhookRequest, - h: any, - method: Util.HTTP_METHODS_PARTIAL -) { - try { - expect(request.method).to.eql(method); - return htmlResponse(h, 200, `OK`); - } catch (ex) { - return htmlResponse(h, 403, `the validateAuthentication operation failed. ${ex.message}`); - } -} - -function htmlResponse(h: any, code: number, text: string) { - return h.response(text).type('text/html').code(code); -} diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/tests/actions/builtin_action_types/slack.ts b/x-pack/test/alerting_api_integration/security_and_spaces/tests/actions/builtin_action_types/slack.ts index f21bc8edeef1e..c68bcaa0ad4e8 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/tests/actions/builtin_action_types/slack.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/tests/actions/builtin_action_types/slack.ts @@ -5,28 +5,27 @@ */ import expect from '@kbn/expect'; - +import http from 'http'; +import getPort from 'get-port'; import { FtrProviderContext } from '../../../../common/ftr_provider_context'; -import { - getExternalServiceSimulatorPath, - ExternalServiceSimulator, -} from '../../../../common/fixtures/plugins/actions_simulators/server/plugin'; +import { getSlackServer } from '../../../../common/fixtures/plugins/actions_simulators/server/plugin'; // eslint-disable-next-line import/no-default-export export default function slackTest({ getService }: FtrProviderContext) { const supertest = getService('supertest'); - const kibanaServer = getService('kibanaServer'); describe('slack action', () => { let simulatedActionId = ''; - let slackSimulatorURL: string = ''; + let slackSimulatorURL: string = ''; + let slackServer: http.Server; // need to wait for kibanaServer to settle ... - before(() => { - slackSimulatorURL = kibanaServer.resolveUrl( - getExternalServiceSimulatorPath(ExternalServiceSimulator.SLACK) - ); + before(async () => { + slackServer = await getSlackServer(); + const availablePort = await getPort({ port: 9000 }); + slackServer.listen(availablePort); + slackSimulatorURL = `http://localhost:${availablePort}`; }); it('should return 200 when creating a slack action successfully', async () => { @@ -220,5 +219,9 @@ export default function slackTest({ getService }: FtrProviderContext) { expect(result.message).to.match(/error posting a slack message, retry later/); expect(result.retry).to.equal(true); }); + + after(() => { + slackServer.close(); + }); }); } diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/tests/actions/builtin_action_types/webhook.ts b/x-pack/test/alerting_api_integration/security_and_spaces/tests/actions/builtin_action_types/webhook.ts index 7eba753d7e98b..8f17ab54184b5 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/tests/actions/builtin_action_types/webhook.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/tests/actions/builtin_action_types/webhook.ts @@ -4,12 +4,15 @@ * you may not use this file except in compliance with the Elastic License. */ +import http from 'http'; +import getPort from 'get-port'; import expect from '@kbn/expect'; import { URL, format as formatUrl } from 'url'; import { FtrProviderContext } from '../../../../common/ftr_provider_context'; import { getExternalServiceSimulatorPath, ExternalServiceSimulator, + getWebhookServer, } from '../../../../common/fixtures/plugins/actions_simulators/server/plugin'; const defaultValues: Record = { @@ -30,11 +33,13 @@ export default function webhookTest({ getService }: FtrProviderContext) { const kibanaServer = getService('kibanaServer'); async function createWebhookAction( - urlWithCreds: string, - config: Record> = {} + webhookSimulatorURL: string, + config: Record> = {}, + kibanaUrlWithCreds: string ): Promise { - const { url: fullUrl, user, password } = extractCredentialsFromUrl(urlWithCreds); - const url = config.url && typeof config.url === 'object' ? parsePort(config.url) : fullUrl; + const { user, password } = extractCredentialsFromUrl(kibanaUrlWithCreds); + const url = + config.url && typeof config.url === 'object' ? parsePort(config.url) : webhookSimulatorURL; const composedConfig = { headers: { 'Content-Type': 'text/plain', @@ -61,11 +66,17 @@ export default function webhookTest({ getService }: FtrProviderContext) { } describe('webhook action', () => { - let webhookSimulatorURL: string = ''; - + let webhookSimulatorURL: string = ''; + let webhookServer: http.Server; + let kibanaURL: string = ''; // need to wait for kibanaServer to settle ... - before(() => { - webhookSimulatorURL = kibanaServer.resolveUrl( + before(async () => { + webhookServer = await getWebhookServer(); + const availablePort = await getPort({ port: 9000 }); + webhookServer.listen(availablePort); + webhookSimulatorURL = `http://localhost:${availablePort}`; + + kibanaURL = kibanaServer.resolveUrl( getExternalServiceSimulatorPath(ExternalServiceSimulator.WEBHOOK) ); }); @@ -117,7 +128,7 @@ export default function webhookTest({ getService }: FtrProviderContext) { }); it('should send authentication to the webhook target', async () => { - const webhookActionId = await createWebhookAction(webhookSimulatorURL); + const webhookActionId = await createWebhookAction(webhookSimulatorURL, {}, kibanaURL); const { body: result } = await supertest .post(`/api/actions/action/${webhookActionId}/_execute`) .set('kbn-xsrf', 'test') @@ -132,7 +143,11 @@ export default function webhookTest({ getService }: FtrProviderContext) { }); it('should support the POST method against webhook target', async () => { - const webhookActionId = await createWebhookAction(webhookSimulatorURL, { method: 'post' }); + const webhookActionId = await createWebhookAction( + webhookSimulatorURL, + { method: 'post' }, + kibanaURL + ); const { body: result } = await supertest .post(`/api/actions/action/${webhookActionId}/_execute`) .set('kbn-xsrf', 'test') @@ -147,7 +162,11 @@ export default function webhookTest({ getService }: FtrProviderContext) { }); it('should support the PUT method against webhook target', async () => { - const webhookActionId = await createWebhookAction(webhookSimulatorURL, { method: 'put' }); + const webhookActionId = await createWebhookAction( + webhookSimulatorURL, + { method: 'put' }, + kibanaURL + ); const { body: result } = await supertest .post(`/api/actions/action/${webhookActionId}/_execute`) .set('kbn-xsrf', 'test') @@ -183,7 +202,11 @@ export default function webhookTest({ getService }: FtrProviderContext) { }); it('should handle unreachable webhook targets', async () => { - const webhookActionId = await createWebhookAction('http://some.non.existent.com/endpoint'); + const webhookActionId = await createWebhookAction( + 'http://some.non.existent.com/endpoint', + {}, + kibanaURL + ); const { body: result } = await supertest .post(`/api/actions/action/${webhookActionId}/_execute`) .set('kbn-xsrf', 'test') @@ -199,7 +222,7 @@ export default function webhookTest({ getService }: FtrProviderContext) { }); it('should handle failing webhook targets', async () => { - const webhookActionId = await createWebhookAction(webhookSimulatorURL); + const webhookActionId = await createWebhookAction(webhookSimulatorURL, {}, kibanaURL); const { body: result } = await supertest .post(`/api/actions/action/${webhookActionId}/_execute`) .set('kbn-xsrf', 'test') @@ -214,6 +237,10 @@ export default function webhookTest({ getService }: FtrProviderContext) { expect(result.message).to.match(/error calling webhook, retry later/); expect(result.serviceMessage).to.eql('[500] Internal Server Error'); }); + + after(() => { + webhookServer.close(); + }); }); } diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/actions/builtin_action_types/webhook.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/actions/builtin_action_types/webhook.ts index b3572978cee70..acfbad007d722 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/actions/builtin_action_types/webhook.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/actions/builtin_action_types/webhook.ts @@ -4,24 +4,22 @@ * you may not use this file except in compliance with the Elastic License. */ +import http from 'http'; +import getPort from 'get-port'; import expect from '@kbn/expect'; import { URL, format as formatUrl } from 'url'; import { FtrProviderContext } from '../../../../common/ftr_provider_context'; -import { - getExternalServiceSimulatorPath, - ExternalServiceSimulator, -} from '../../../../common/fixtures/plugins/actions_simulators/server/plugin'; +import { getWebhookServer } from '../../../../common/fixtures/plugins/actions_simulators/server/plugin'; // eslint-disable-next-line import/no-default-export export default function webhookTest({ getService }: FtrProviderContext) { const supertest = getService('supertest'); - const kibanaServer = getService('kibanaServer'); async function createWebhookAction( - urlWithCreds: string, + webhookSimulatorURL: string, config: Record> = {} ): Promise { - const url = formatUrl(new URL(urlWithCreds), { auth: false }); + const url = formatUrl(new URL(webhookSimulatorURL), { auth: false }); const composedConfig = { headers: { 'Content-Type': 'text/plain', @@ -45,13 +43,13 @@ export default function webhookTest({ getService }: FtrProviderContext) { } describe('webhook action', () => { - let webhookSimulatorURL: string = ''; - - // need to wait for kibanaServer to settle ... - before(() => { - webhookSimulatorURL = kibanaServer.resolveUrl( - getExternalServiceSimulatorPath(ExternalServiceSimulator.WEBHOOK) - ); + let webhookSimulatorURL: string = ''; + let webhookServer: http.Server; + before(async () => { + webhookServer = await getWebhookServer(); + const availablePort = await getPort({ port: 9000 }); + webhookServer.listen(availablePort); + webhookSimulatorURL = `http://localhost:${availablePort}`; }); it('webhook can be executed without username and password', async () => { @@ -68,5 +66,9 @@ export default function webhookTest({ getService }: FtrProviderContext) { expect(result.status).to.eql('ok'); }); + + after(() => { + webhookServer.close(); + }); }); } diff --git a/yarn.lock b/yarn.lock index 4eac262ddfd2f..332215a59e788 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14099,7 +14099,7 @@ get-own-enumerable-property-symbols@^3.0.0: resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" integrity sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg== -get-port@4.2.0: +get-port@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119" integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw== From 0eee111cf3969d706812f3e00d123a8dcf091e1a Mon Sep 17 00:00:00 2001 From: Josh Dover Date: Wed, 12 Aug 2020 15:24:29 -0600 Subject: [PATCH 20/27] [reporting] Pass along generic parameters in high-order route handler (#74892) --- .../plugins/reporting/server/routes/jobs.ts | 19 +++++-------------- .../routes/lib/authorized_user_pre_routing.ts | 4 ++-- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/x-pack/plugins/reporting/server/routes/jobs.ts b/x-pack/plugins/reporting/server/routes/jobs.ts index e8eac9e577beb..db62c0cc403fc 100644 --- a/x-pack/plugins/reporting/server/routes/jobs.ts +++ b/x-pack/plugins/reporting/server/routes/jobs.ts @@ -15,11 +15,6 @@ import { downloadJobResponseHandlerFactory, } from './lib/job_response_handler'; -interface ListQuery { - page: string; - size: string; - ids?: string; // optional field forbids us from extending RequestQuery -} const MAIN_ENTRY = `${API_BASE_URL}/jobs`; const handleUnavailable = (res: any) => { @@ -52,11 +47,7 @@ export function registerJobInfoRoutes(reporting: ReportingCore) { const { management: { jobTypes = [] }, } = await reporting.getLicenseInfo(); - const { - page: queryPage = '0', - size: querySize = '10', - ids: queryIds = null, - } = req.query as ListQuery; // NOTE: type inference is not working here. userHandler breaks it? + const { page: queryPage = '0', size: querySize = '10', ids: queryIds = null } = req.query; const page = parseInt(queryPage, 10) || 0; const size = Math.min(100, parseInt(querySize, 10) || 10); const jobIds = queryIds ? queryIds.split(',') : null; @@ -116,7 +107,7 @@ export function registerJobInfoRoutes(reporting: ReportingCore) { return handleUnavailable(res); } - const { docId } = req.params as { docId: string }; + const { docId } = req.params; const { management: { jobTypes = [] }, } = await reporting.getLicenseInfo(); @@ -161,7 +152,7 @@ export function registerJobInfoRoutes(reporting: ReportingCore) { return res.custom({ statusCode: 503 }); } - const { docId } = req.params as { docId: string }; + const { docId } = req.params; const { management: { jobTypes = [] }, } = await reporting.getLicenseInfo(); @@ -213,7 +204,7 @@ export function registerJobInfoRoutes(reporting: ReportingCore) { return handleUnavailable(res); } - const { docId } = req.params as { docId: string }; + const { docId } = req.params; const { management: { jobTypes = [] }, } = await reporting.getLicenseInfo(); @@ -239,7 +230,7 @@ export function registerJobInfoRoutes(reporting: ReportingCore) { return handleUnavailable(res); } - const { docId } = req.params as { docId: string }; + const { docId } = req.params; const { management: { jobTypes = [] }, } = await reporting.getLicenseInfo(); diff --git a/x-pack/plugins/reporting/server/routes/lib/authorized_user_pre_routing.ts b/x-pack/plugins/reporting/server/routes/lib/authorized_user_pre_routing.ts index 3758eafc6d718..e2f393aad57d2 100644 --- a/x-pack/plugins/reporting/server/routes/lib/authorized_user_pre_routing.ts +++ b/x-pack/plugins/reporting/server/routes/lib/authorized_user_pre_routing.ts @@ -12,7 +12,7 @@ import { getUserFactory } from './get_user'; type ReportingUser = AuthenticatedUser | null; const superuserRole = 'superuser'; -export type RequestHandlerUser = RequestHandler extends (...a: infer U) => infer R +export type RequestHandlerUser = RequestHandler extends (...a: infer U) => infer R ? (user: ReportingUser, ...a: U) => R : never; @@ -21,7 +21,7 @@ export const authorizedUserPreRoutingFactory = function authorizedUserPreRouting ) { const setupDeps = reporting.getPluginSetupDeps(); const getUser = getUserFactory(setupDeps.security); - return (handler: RequestHandlerUser): RequestHandler => { + return (handler: RequestHandlerUser): RequestHandler => { return (context, req, res) => { let user: ReportingUser = null; if (setupDeps.security && setupDeps.security.license.isEnabled()) { From 981fdda966d55295893e0cdf7cbe9384fab1fedb Mon Sep 17 00:00:00 2001 From: Matthew Kime Date: Wed, 12 Aug 2020 18:31:30 -0500 Subject: [PATCH 21/27] Reduce number of indexed fields in index pattern saved object (#74817) * reduce number of indexed fields in index pattern saved object --- src/plugins/data/server/saved_objects/index_patterns.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/plugins/data/server/saved_objects/index_patterns.ts b/src/plugins/data/server/saved_objects/index_patterns.ts index 44d2813f6e3e8..6aabcdf7c1c01 100644 --- a/src/plugins/data/server/saved_objects/index_patterns.ts +++ b/src/plugins/data/server/saved_objects/index_patterns.ts @@ -42,16 +42,10 @@ export const indexPatternSavedObjectType: SavedObjectsType = { }, }, mappings: { + dynamic: false, properties: { - fieldFormatMap: { type: 'text' }, - fields: { type: 'text' }, - intervalName: { type: 'keyword' }, - notExpandable: { type: 'boolean' }, - sourceFilters: { type: 'text' }, - timeFieldName: { type: 'keyword' }, title: { type: 'text' }, type: { type: 'keyword' }, - typeMeta: { type: 'keyword' }, }, }, migrations: indexPatternSavedObjectTypeMigrations as any, From a735a9f8259a30a790d07936caaf279e922ceb3b Mon Sep 17 00:00:00 2001 From: Spencer Date: Wed, 12 Aug 2020 16:38:08 -0700 Subject: [PATCH 22/27] [bin/kibana-plugin] support KP plugins instead (#74604) * [cli/kibana-plugin] support KP plugins instead * fix some Logger imports from cli/kibana_keystore Co-authored-by: spalger Co-authored-by: Elastic Machine --- package.json | 1 - packages/kbn-pm/dist/index.js | 72 ----- packages/kbn-pm/src/index.ts | 2 +- packages/kbn-pm/src/production/index.ts | 1 - .../prepare_project_dependencies.test.ts | 40 --- .../prepare_project_dependencies.ts | 59 ---- src/cli_keystore/add.js | 2 +- src/cli_keystore/add.test.js | 2 +- src/cli_keystore/create.js | 2 +- src/cli_keystore/create.test.js | 2 +- src/cli_keystore/get_keystore.js | 2 +- src/cli_keystore/get_keystore.test.js | 2 +- src/cli_keystore/list.js | 2 +- src/cli_keystore/list.test.js | 2 +- src/cli_plugin/cli.js | 15 +- .../__fixtures__/replies/invalid_name.zip | Bin 2333 -> 1295 bytes .../replies/package.no_version.json | 3 - .../__fixtures__/replies/test_plugin.zip | Bin 2988 -> 5382 bytes .../replies/test_plugin_different_version.zip | Bin 2326 -> 2951 bytes .../__fixtures__/replies/test_plugin_many.zip | Bin 421587 -> 413276 bytes src/cli_plugin/install/cleanup.js | 1 - src/cli_plugin/install/cleanup.test.js | 2 +- src/cli_plugin/install/download.js | 7 +- src/cli_plugin/install/download.test.js | 10 +- src/cli_plugin/install/downloaders/file.js | 5 +- src/cli_plugin/install/downloaders/http.js | 8 +- src/cli_plugin/install/index.js | 18 +- src/cli_plugin/install/index.test.js | 13 +- src/cli_plugin/install/install.js | 16 +- src/cli_plugin/install/kibana.js | 11 +- src/cli_plugin/install/kibana.test.js | 27 +- src/cli_plugin/install/pack.js | 19 +- src/cli_plugin/install/pack.test.js | 202 ++++++-------- src/cli_plugin/install/progress.js | 2 +- src/cli_plugin/install/progress.test.js | 5 +- src/cli_plugin/install/rename.js | 9 +- src/cli_plugin/install/rename.test.js | 3 +- src/cli_plugin/install/settings.js | 13 +- src/cli_plugin/install/settings.test.js | 261 +++++------------- src/cli_plugin/install/zip.js | 89 +++--- src/cli_plugin/install/zip.test.js | 106 +++---- src/cli_plugin/lib/error_if_x_pack.js | 6 +- src/cli_plugin/lib/is_oss.js | 2 +- src/cli_plugin/lib/is_oss.test.js | 4 +- src/cli_plugin/lib/log_warnings.js | 2 +- src/cli_plugin/lib/logger.js | 2 +- src/cli_plugin/lib/logger.test.js | 3 +- .../lib/warn_if_plugin_dir_option.js | 27 -- src/cli_plugin/list/index.js | 39 +-- src/cli_plugin/list/list.js | 17 +- src/cli_plugin/list/list.test.js | 91 +++--- src/cli_plugin/list/settings.js | 26 -- src/cli_plugin/list/settings.test.js | 50 ---- src/cli_plugin/remove/index.js | 24 +- src/cli_plugin/remove/remove.js | 5 +- src/cli_plugin/remove/remove.test.js | 10 +- src/cli_plugin/remove/settings.js | 4 +- src/cli_plugin/remove/settings.test.js | 116 +++----- yarn.lock | 12 - 59 files changed, 481 insertions(+), 995 deletions(-) delete mode 100644 packages/kbn-pm/src/production/prepare_project_dependencies.test.ts delete mode 100644 packages/kbn-pm/src/production/prepare_project_dependencies.ts delete mode 100644 src/cli_plugin/install/__fixtures__/replies/package.no_version.json delete mode 100644 src/cli_plugin/lib/warn_if_plugin_dir_option.js delete mode 100644 src/cli_plugin/list/settings.js delete mode 100644 src/cli_plugin/list/settings.test.js diff --git a/package.json b/package.json index becd670e4ddcf..200aa41743f51 100644 --- a/package.json +++ b/package.json @@ -276,7 +276,6 @@ "url-loader": "2.2.0", "uuid": "3.3.2", "val-loader": "^1.1.1", - "validate-npm-package-name": "2.2.2", "vega": "^5.13.0", "vega-lite": "^4.13.1", "vega-schema-url-parser": "^1.1.0", diff --git a/packages/kbn-pm/dist/index.js b/packages/kbn-pm/dist/index.js index 9427cc57805e6..e411dcd472768 100644 --- a/packages/kbn-pm/dist/index.js +++ b/packages/kbn-pm/dist/index.js @@ -97,8 +97,6 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _production__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(511); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildProductionProjects", function() { return _production__WEBPACK_IMPORTED_MODULE_1__["buildProductionProjects"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "prepareExternalProjectDependencies", function() { return _production__WEBPACK_IMPORTED_MODULE_1__["prepareExternalProjectDependencies"]; }); - /* harmony import */ var _utils_projects__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(145); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getProjects", function() { return _utils_projects__WEBPACK_IMPORTED_MODULE_2__["getProjects"]; }); @@ -59477,9 +59475,6 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _build_production_projects__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(512); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildProductionProjects", function() { return _build_production_projects__WEBPACK_IMPORTED_MODULE_0__["buildProductionProjects"]; }); -/* harmony import */ var _prepare_project_dependencies__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(748); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "prepareExternalProjectDependencies", function() { return _prepare_project_dependencies__WEBPACK_IMPORTED_MODULE_1__["prepareExternalProjectDependencies"]; }); - /* * Licensed to Elasticsearch B.V. under one or more contributor * license agreements. See the NOTICE file distributed with @@ -59500,7 +59495,6 @@ __webpack_require__.r(__webpack_exports__); */ - /***/ }), /* 512 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -90331,71 +90325,5 @@ NestedError.prototype.name = 'NestedError'; module.exports = NestedError; -/***/ }), -/* 748 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prepareExternalProjectDependencies", function() { return prepareExternalProjectDependencies; }); -/* harmony import */ var _utils_package_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(164); -/* harmony import */ var _utils_project__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(163); -/* - * 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. - */ - - -/** - * All external projects are located within `./plugins/{plugin}` relative - * to the Kibana root directory or `../kibana-extra/{plugin}` relative - * to Kibana itself. - */ - -const isKibanaDep = depVersion => // For ../kibana-extra/ directory (legacy only) -depVersion.includes('../../kibana/packages/') || // For plugins/ directory -depVersion.includes('../../packages/'); -/** - * This prepares the dependencies for an _external_ project. - */ - - -async function prepareExternalProjectDependencies(projectPath) { - const project = await _utils_project__WEBPACK_IMPORTED_MODULE_1__["Project"].fromPath(projectPath); - - if (!project.hasDependencies()) { - return; - } - - const deps = project.allDependencies; - - for (const depName of Object.keys(deps)) { - const depVersion = deps[depName]; // Kibana currently only supports `link:` dependencies on Kibana's own - // packages, as these are packaged into the `node_modules` folder when - // Kibana is built, so we don't need to take any action to enable - // `require(...)` to resolve for these packages. - - if (Object(_utils_package_json__WEBPACK_IMPORTED_MODULE_0__["isLinkDependency"])(depVersion) && !isKibanaDep(depVersion)) { - // For non-Kibana packages we need to set up symlinks during the - // installation process, but this is not something we support yet. - throw new Error('This plugin is using `link:` dependencies for non-Kibana packages'); - } - } -} - /***/ }) /******/ ]); \ No newline at end of file diff --git a/packages/kbn-pm/src/index.ts b/packages/kbn-pm/src/index.ts index 0aa58adb4382f..27ce0a417fdeb 100644 --- a/packages/kbn-pm/src/index.ts +++ b/packages/kbn-pm/src/index.ts @@ -18,7 +18,7 @@ */ export { run } from './cli'; -export { buildProductionProjects, prepareExternalProjectDependencies } from './production'; +export { buildProductionProjects } from './production'; export { getProjects } from './utils/projects'; export { Project } from './utils/project'; export { copyWorkspacePackages } from './utils/workspaces'; diff --git a/packages/kbn-pm/src/production/index.ts b/packages/kbn-pm/src/production/index.ts index 493af2beb648d..f74ab8a4484f1 100644 --- a/packages/kbn-pm/src/production/index.ts +++ b/packages/kbn-pm/src/production/index.ts @@ -18,4 +18,3 @@ */ export { buildProductionProjects } from './build_production_projects'; -export { prepareExternalProjectDependencies } from './prepare_project_dependencies'; diff --git a/packages/kbn-pm/src/production/prepare_project_dependencies.test.ts b/packages/kbn-pm/src/production/prepare_project_dependencies.test.ts deleted file mode 100644 index 13ab8d56e0190..0000000000000 --- a/packages/kbn-pm/src/production/prepare_project_dependencies.test.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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 { join, resolve } from 'path'; - -import { prepareExternalProjectDependencies } from './prepare_project_dependencies'; - -const packagesFixtures = resolve(__dirname, '__fixtures__/external_packages'); - -test('does nothing when Kibana `link:` dependencies', async () => { - const projectPath = join(packagesFixtures, 'with_kibana_link_deps'); - - // We're checking for undefined, but we don't really care about what's - // returned, we only care about it resolving. - await expect(prepareExternalProjectDependencies(projectPath)).resolves.toBeUndefined(); -}); - -test('throws if non-Kibana `link` dependencies', async () => { - const projectPath = join(packagesFixtures, 'with_other_link_deps'); - - await expect(prepareExternalProjectDependencies(projectPath)).rejects.toThrow( - 'This plugin is using `link:` dependencies for non-Kibana packages' - ); -}); diff --git a/packages/kbn-pm/src/production/prepare_project_dependencies.ts b/packages/kbn-pm/src/production/prepare_project_dependencies.ts deleted file mode 100644 index 9817770166480..0000000000000 --- a/packages/kbn-pm/src/production/prepare_project_dependencies.ts +++ /dev/null @@ -1,59 +0,0 @@ -/* - * 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 { isLinkDependency } from '../utils/package_json'; -import { Project } from '../utils/project'; - -/** - * All external projects are located within `./plugins/{plugin}` relative - * to the Kibana root directory or `../kibana-extra/{plugin}` relative - * to Kibana itself. - */ -const isKibanaDep = (depVersion: string) => - // For ../kibana-extra/ directory (legacy only) - depVersion.includes('../../kibana/packages/') || - // For plugins/ directory - depVersion.includes('../../packages/'); - -/** - * This prepares the dependencies for an _external_ project. - */ -export async function prepareExternalProjectDependencies(projectPath: string) { - const project = await Project.fromPath(projectPath); - - if (!project.hasDependencies()) { - return; - } - - const deps = project.allDependencies; - - for (const depName of Object.keys(deps)) { - const depVersion = deps[depName]; - - // Kibana currently only supports `link:` dependencies on Kibana's own - // packages, as these are packaged into the `node_modules` folder when - // Kibana is built, so we don't need to take any action to enable - // `require(...)` to resolve for these packages. - if (isLinkDependency(depVersion) && !isKibanaDep(depVersion)) { - // For non-Kibana packages we need to set up symlinks during the - // installation process, but this is not something we support yet. - throw new Error('This plugin is using `link:` dependencies for non-Kibana packages'); - } - } -} diff --git a/src/cli_keystore/add.js b/src/cli_keystore/add.js index 87266702a26cc..44737e387c2d2 100644 --- a/src/cli_keystore/add.js +++ b/src/cli_keystore/add.js @@ -17,7 +17,7 @@ * under the License. */ -import Logger from '../cli_plugin/lib/logger'; +import { Logger } from '../cli_plugin/lib/logger'; import { confirm, question } from '../legacy/server/utils'; import { createPromiseFromStreams, createConcatStream } from '../legacy/utils'; diff --git a/src/cli_keystore/add.test.js b/src/cli_keystore/add.test.js index 320581b470c2b..b5d5009667eb4 100644 --- a/src/cli_keystore/add.test.js +++ b/src/cli_keystore/add.test.js @@ -41,7 +41,7 @@ import { PassThrough } from 'stream'; import { Keystore } from '../legacy/server/keystore'; import { add } from './add'; -import Logger from '../cli_plugin/lib/logger'; +import { Logger } from '../cli_plugin/lib/logger'; import * as prompt from '../legacy/server/utils/prompt'; describe('Kibana keystore', () => { diff --git a/src/cli_keystore/create.js b/src/cli_keystore/create.js index 1af0959821f80..8be1eb36882f1 100644 --- a/src/cli_keystore/create.js +++ b/src/cli_keystore/create.js @@ -17,7 +17,7 @@ * under the License. */ -import Logger from '../cli_plugin/lib/logger'; +import { Logger } from '../cli_plugin/lib/logger'; import { confirm } from '../legacy/server/utils'; export async function create(keystore, command, options) { diff --git a/src/cli_keystore/create.test.js b/src/cli_keystore/create.test.js index 33b5aa4bd07d8..f48b3775ddfff 100644 --- a/src/cli_keystore/create.test.js +++ b/src/cli_keystore/create.test.js @@ -40,7 +40,7 @@ import sinon from 'sinon'; import { Keystore } from '../legacy/server/keystore'; import { create } from './create'; -import Logger from '../cli_plugin/lib/logger'; +import { Logger } from '../cli_plugin/lib/logger'; import * as prompt from '../legacy/server/utils/prompt'; describe('Kibana keystore', () => { diff --git a/src/cli_keystore/get_keystore.js b/src/cli_keystore/get_keystore.js index c8ff2555563ad..e181efe9196b8 100644 --- a/src/cli_keystore/get_keystore.js +++ b/src/cli_keystore/get_keystore.js @@ -20,7 +20,7 @@ import { existsSync } from 'fs'; import { join } from 'path'; -import Logger from '../cli_plugin/lib/logger'; +import { Logger } from '../cli_plugin/lib/logger'; import { getConfigDirectory, getDataPath } from '../core/server/path'; export function getKeystore() { diff --git a/src/cli_keystore/get_keystore.test.js b/src/cli_keystore/get_keystore.test.js index 88102b8f51d57..b1c42fca2f73c 100644 --- a/src/cli_keystore/get_keystore.test.js +++ b/src/cli_keystore/get_keystore.test.js @@ -18,7 +18,7 @@ */ import { getKeystore } from './get_keystore'; -import Logger from '../cli_plugin/lib/logger'; +import { Logger } from '../cli_plugin/lib/logger'; import fs from 'fs'; import sinon from 'sinon'; diff --git a/src/cli_keystore/list.js b/src/cli_keystore/list.js index e9158735a214f..4a99de271bc6a 100644 --- a/src/cli_keystore/list.js +++ b/src/cli_keystore/list.js @@ -17,7 +17,7 @@ * under the License. */ -import Logger from '../cli_plugin/lib/logger'; +import { Logger } from '../cli_plugin/lib/logger'; export function list(keystore, command, options = {}) { const logger = new Logger(options); diff --git a/src/cli_keystore/list.test.js b/src/cli_keystore/list.test.js index 857991b5ae3b9..11c474f908216 100644 --- a/src/cli_keystore/list.test.js +++ b/src/cli_keystore/list.test.js @@ -38,7 +38,7 @@ jest.mock('fs', () => ({ import sinon from 'sinon'; import { Keystore } from '../legacy/server/keystore'; import { list } from './list'; -import Logger from '../cli_plugin/lib/logger'; +import { Logger } from '../cli_plugin/lib/logger'; describe('Kibana keystore', () => { describe('list', () => { diff --git a/src/cli_plugin/cli.js b/src/cli_plugin/cli.js index da1068b54b4b5..e483385b5b9e8 100644 --- a/src/cli_plugin/cli.js +++ b/src/cli_plugin/cli.js @@ -17,12 +17,11 @@ * under the License. */ -import _ from 'lodash'; import { pkg } from '../core/server/utils'; import Command from '../cli/command'; -import listCommand from './list'; -import installCommand from './install'; -import removeCommand from './remove'; +import { listCommand } from './list'; +import { installCommand } from './install'; +import { removeCommand } from './remove'; const argv = process.env.kbnWorkerArgv ? JSON.parse(process.env.kbnWorkerArgv) @@ -44,8 +43,12 @@ program .command('help ') .description('get the help for a specific command') .action(function (cmdName) { - const cmd = _.find(program.commands, { _name: cmdName }); - if (!cmd) return program.error(`unknown command ${cmdName}`); + const cmd = program.commands.find((c) => c._name === cmdName); + + if (!cmd) { + return program.error(`unknown command ${cmdName}`); + } + cmd.help(); }); diff --git a/src/cli_plugin/install/__fixtures__/replies/invalid_name.zip b/src/cli_plugin/install/__fixtures__/replies/invalid_name.zip index 5de9a0677b6cb6681b890ca59cae3988cca1afd4..4d77ba0d389a699887e9706c134b82e7e98f1bba 100644 GIT binary patch literal 1295 zcmWIWW@Zs#0D*>Bwm>igO0Y91Fl1*YCFUjShlcPnuowF4#8(0_h%T+*W?*Fb%E-U~ z)*Jvgq!-N)5riR`d1Z+?nJKz?iMgo|6T5&W!7x@6IT$!loW&x+z#xDyQO_kfKDZ>m zC>8ELklV1h@9hk0zC#8AF6qu)9sxU+d|}nt(b)QcC8oh&V*-;1$E%Pz-HRulIPA{F zvBJT?KWeYi?y^f2dl?g&WACxcH1J%sc%Ub_*wHDvC##pq`^k&M-j{#3N?qAHcU4wz zZD?`y{zFRl&voBS3%=3a&8gTT@JKUfb>#2O>lIsmIKBFO@N%Qx;@n8nK$ZDzat&8*cN+i!ZpSGxxC^z%dc$VSczTGaeWB)?Yr?39mA3FRqp5x=;2rC(W z_8mMdyszS3ubyG>yh5+0K+xk6|6#p#l_33VPd5n6f4~yp&Ca2Fvx@H_Fz!Hs1c?yz z;Hv=2N&|y0KHk^S**`c!9~!-S@t7ew2N;qdj217+38KmA2}ubbe0{<`@P~B-G%!t& zU{)89X51(((ELNx;S59YLxlqk%oc4eERHip4Psw_T*J=6-EqLe6lg!l4G7mwL`p7( zKpA;N@MdHZVaA;wfJ(sNts{scI(Hxp z#g;!HMlvwGb#z4-isF5+pJ6!#M5Fl`=4@DmBPRt=eu04{jnfe}V8%I)+=Fg9a#Vtn z6AUbAyvE2tN#a7b2$V9AV+NEmU|>mO2@^c@Q38sDbQ0jr$_6r!6$oDg-Oa}g;sF3w CgHP1} literal 2333 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 O10N7d0^L>%<^cdfumkS^ diff --git a/src/cli_plugin/install/__fixtures__/replies/test_plugin_different_version.zip b/src/cli_plugin/install/__fixtures__/replies/test_plugin_different_version.zip index 12baa165fdb566d22237d72a9b0afb7d9c965219..b84473cebf954a4f5b186b8d92db55d7ad9da975 100644 GIT binary patch literal 2951 zcmWIWW@Zs#0D;Z1Y=K|~l#pXkU?@o~E{QM5DNWDJi%-c+OG_AzvQnIe;J4m1?t3?R&X;gvV3J^U;vvL05+S0frH^d9KviC2?hprf@bTv1jh%L zc{{_9>yU$h>;EGPjI(uhzjNJ75VUO+H^@?E3+|}ZI{);d&yDqL zlN!Rh{;?m{HrhPf#M+uM;q&J_HVX#HMTL&~l8c?4qI;@(l|S9hjLtc==|%i%=V0q& zjMX_4w!eORl(j{`iQ}VK&c>ThHm_G~`QbF{^TErF>lXE%7q-g1YHA1N%C!m zKl`q(XA4th?0T%F)kTW8EI%AQU+2hugRUaq|M5u$|HPgC7);X(>$a3*c5GjE{g>6X zGdu5bv+FT={zkd*Mj*C*@)e^^IA1JeWvW_1B+#*NYf%|ApP z&M*W&R5;MUY|+-j;y6>(Aoc~wk?b7Y9S1B-fzARs4dQ4Z10?}~_^JdGKz3$QVqPL7 zjlrTGM5DPAd$@o?OpjPAFvA39ADUfnXV`+0TI>BIBH*OPBnC-q0=*pqApyTb=AB+V zbHjQ0j>ZVhUv@KUT+`G%H}4i^FtdBAe1P$UK(BG!Btt2cEk{>W@oaQ&6ux$2&%3J& z*1dh)A(08_^3#qcZP#9ttgQ%4b0rPZ+1LKR$>vbpH=(NbL&<{E8IS+A_|4Cf zdHd2~`o&{=TKr!2lxp%J}KN5B3o>5D_!`{U9 zHSYE58OG0xv~w&uR6e#pWazg6CfS~Ai4Gn91+1XhbN*GDb{`l&_>-I^@ktIEjRTkR z)}s|`hQuZdP*&1~lzos?cp6yBT_;r19YQMUynz8}LymQjK-0@A&d&oEe`lb@ABaXv zldGQv1q7V(3EUJEpyjEn$9Y22_xzdQON^bI7aoO0H)ncwR(2+G zSOzbcvrs5pR~(#Mvl}+qTLYa5aw;M#A$wv2P{y6)_(l#qy?AW?A-UWslm(VM(h?m^ zeTs^X0csw{nH0nvf)8~FO!qo>{;Ic*#tF}>r#*G_GE~5#4cEEh+MXVYC{-U z(g<=Le!GY+uwWj9S&CdXgQ^V}SkkzHk%0!42+V$vJ;+S}5Fb>xT#9B#};06_$FtDUinuX}#CcOYf4s~p$AIuql9j^nOfj_B1ZAZ?| z;FONHEJVZrs31WuVnC%K3~Xt1Vd bAIKp>QUMp>%?h-Pfq@eUOM&742h0NiMn!Wx literal 2326 zcmWIWW@Zs#0D)}@J|18Ol;8u>sX2+oC7H>^sfk6&8TtWmwTji6p2%w1ft>8jq{O^L zBt_C_ii8o0N>YnUbPIAy(=+qH8o0oQeagP!wv=su2M>@3!m`*k=%r_tWTxlk7p3Oq zr=-T`=BJeAq!xo52QkLGt z%%2<#AQxF2dulruXv8}pmd0*WW?o8agQ=!+K3^&dkqu-EN!D>OYtO^;0$Wn^Gr zWny5E$L_0w#N_P6^i-g~^7CQ??&cj*5ZO1+|KN^7Z;|?4Gtcba+aBrk($hQD!J@=B zx#qj4&bW1R=k1QI5&apgE1JH2JhVmD zO)b)BbM@!I>6g5M=A`NON6w$J_2ClB^hAdD0q){$DrzkoEPmLmyf*QY(G}Lo6V%-H z$FHr@ILX|^5`1X~_i_oYzFSFC)T-C6ZqRK!J9YC59*)Pawlgn}mQ8untIMIh-b-76#23#i@?h!ybaODre=Mh5G_gS-t20xSpihpy3I z$fo@x&Inz8!vh7CD)1HZQm_?|U3UL$nu zc7d6_%X8Irm&LEkBeD!Aov+d7*A@cW55h9o-4W#K=;G_Dmz(0LkeI8Gr~t~w3Xp7! z2#cL)huXsM>uT;Fqh-@%=Yzs3W8ytu*7`d23 zw&dbhWlNAHFnVQK)mD&iAeP`N3}Kci04-?3ZV94jM7ECMOEbfobr%>bXF&V{qmiw{ zEHsg=JBi&o+(jsg^^4uUHUfiCbC=;nkS}30B1o|nw8++r01GN;TppY()ypE(M@nC3x+E6fnp(!jevOG{hztjhu8a3lC%)|6sQfUX)<7 z&5svi8;nK{OU&X0W*aChJy?(m8)Tzh!;|KN5+6Dp;LXYg)W^ULgcE_9^MROw0RX19 BoUi}@ diff --git a/src/cli_plugin/install/__fixtures__/replies/test_plugin_many.zip b/src/cli_plugin/install/__fixtures__/replies/test_plugin_many.zip index e4fc8d73feef86f0f34073e0597c6c2351dc4d05..bc58c2bdb9dd7e108ef80ddf6f7c189dc4b92e97 100644 GIT binary patch delta 296290 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 ~%N`^ZJW#&H|R=s50E81?f{-bBH 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%0D{BxmKwG=BV)UvKoc7uRR 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%0AL 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

    }$Ej$&^%9{5_hU;1 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 yeX)LL*6atv{b*(X@I(%r7EjZZiL diff --git a/src/cli_plugin/install/cleanup.js b/src/cli_plugin/install/cleanup.js index f31e028226c27..38354bac4a3df 100644 --- a/src/cli_plugin/install/cleanup.js +++ b/src/cli_plugin/install/cleanup.js @@ -45,6 +45,5 @@ export function cleanArtifacts(settings) { // At this point we're bailing, so swallow any errors on delete. try { del.sync(settings.workingPath); - del.sync(settings.plugins[0].path); } catch (e) {} // eslint-disable-line no-empty } diff --git a/src/cli_plugin/install/cleanup.test.js b/src/cli_plugin/install/cleanup.test.js index 46089f61d5e83..1a4cabbc82b5d 100644 --- a/src/cli_plugin/install/cleanup.test.js +++ b/src/cli_plugin/install/cleanup.test.js @@ -22,7 +22,7 @@ import fs from 'fs'; import del from 'del'; import { cleanPrevious, cleanArtifacts } from './cleanup'; -import Logger from '../lib/logger'; +import { Logger } from '../lib/logger'; describe('kibana cli', function () { describe('plugin installer', function () { diff --git a/src/cli_plugin/install/download.js b/src/cli_plugin/install/download.js index 10d20367c1b7b..b7f5fbec46edc 100644 --- a/src/cli_plugin/install/download.js +++ b/src/cli_plugin/install/download.js @@ -17,11 +17,12 @@ * under the License. */ -import downloadHttpFile from './downloaders/http'; -import downloadLocalFile from './downloaders/file'; -import { UnsupportedProtocolError } from '../lib/errors'; import { parse } from 'url'; +import { UnsupportedProtocolError } from '../lib/errors'; +import { downloadHttpFile } from './downloaders/http'; +import { downloadLocalFile } from './downloaders/file'; + function _isWindows() { return /^win/.test(process.platform); } diff --git a/src/cli_plugin/install/download.test.js b/src/cli_plugin/install/download.test.js index 93e5e414fed74..ae926b77f7d58 100644 --- a/src/cli_plugin/install/download.test.js +++ b/src/cli_plugin/install/download.test.js @@ -17,16 +17,18 @@ * under the License. */ +import Fs from 'fs'; +import { join } from 'path'; +import http from 'http'; + import sinon from 'sinon'; import nock from 'nock'; import glob from 'glob-all'; import del from 'del'; -import Fs from 'fs'; -import Logger from '../lib/logger'; + +import { Logger } from '../lib/logger'; import { UnsupportedProtocolError } from '../lib/errors'; import { download, _downloadSingle, _getFilePath, _checkFilePathDeprecation } from './download'; -import { join } from 'path'; -import http from 'http'; describe('kibana cli', function () { describe('plugin downloader', function () { diff --git a/src/cli_plugin/install/downloaders/file.js b/src/cli_plugin/install/downloaders/file.js index 56f83b03d5a90..c262f1010bbc8 100644 --- a/src/cli_plugin/install/downloaders/file.js +++ b/src/cli_plugin/install/downloaders/file.js @@ -17,9 +17,10 @@ * under the License. */ -import Progress from '../progress'; import { createWriteStream, createReadStream, statSync } from 'fs'; +import { Progress } from '../progress'; + function openSourceFile({ sourcePath }) { try { const fileInfo = statSync(sourcePath); @@ -58,7 +59,7 @@ async function copyFile({ readStream, writeStream, progress }) { /* // Responsible for managing local file transfers */ -export default async function copyLocalFile(logger, sourcePath, targetPath) { +export async function downloadLocalFile(logger, sourcePath, targetPath) { try { const { readStream, fileInfo } = openSourceFile({ sourcePath }); const writeStream = createWriteStream(targetPath); diff --git a/src/cli_plugin/install/downloaders/http.js b/src/cli_plugin/install/downloaders/http.js index 0fc01453f2b4c..e9eafe3737ccb 100644 --- a/src/cli_plugin/install/downloaders/http.js +++ b/src/cli_plugin/install/downloaders/http.js @@ -17,13 +17,15 @@ * under the License. */ -import Wreck from '@hapi/wreck'; -import Progress from '../progress'; import { createWriteStream } from 'fs'; + +import Wreck from '@hapi/wreck'; import HttpProxyAgent from 'http-proxy-agent'; import HttpsProxyAgent from 'https-proxy-agent'; import { getProxyForUrl } from 'proxy-from-env'; +import { Progress } from '../progress'; + function getProxyAgent(sourceUrl, logger) { const proxy = getProxyForUrl(sourceUrl); @@ -91,7 +93,7 @@ function downloadResponse({ resp, targetPath, progress }) { /* Responsible for managing http transfers */ -export default async function downloadUrl(logger, sourceUrl, targetPath, timeout) { +export async function downloadHttpFile(logger, sourceUrl, targetPath, timeout) { try { const { req, resp } = await sendRequest({ sourceUrl, timeout }, logger); diff --git a/src/cli_plugin/install/index.js b/src/cli_plugin/install/index.js index e3c465ea7a3f5..bc7e95b8489f0 100644 --- a/src/cli_plugin/install/index.js +++ b/src/cli_plugin/install/index.js @@ -17,13 +17,12 @@ * under the License. */ -import { fromRoot, pkg } from '../../core/server/utils'; -import install from './install'; -import Logger from '../lib/logger'; +import { pkg } from '../../core/server/utils'; +import { install } from './install'; +import { Logger } from '../lib/logger'; import { getConfigPath } from '../../core/server/path'; import { parse, parseMilliseconds } from './settings'; -import logWarnings from '../lib/log_warnings'; -import { warnIfUsingPluginDirOption } from '../lib/warn_if_plugin_dir_option'; +import { logWarnings } from '../lib/log_warnings'; function processCommand(command, options) { let settings; @@ -37,12 +36,11 @@ function processCommand(command, options) { const logger = new Logger(settings); - warnIfUsingPluginDirOption(settings, fromRoot('plugins'), logger); logWarnings(settings, logger); install(settings, logger); } -export default function pluginInstall(program) { +export function installCommand(program) { program .command('install ') .option('-q, --quiet', 'disable all process messaging except errors') @@ -53,15 +51,9 @@ export default function pluginInstall(program) { 'length of time before failing; 0 for never fail', parseMilliseconds ) - .option( - '-d, --plugin-dir ', - 'path to the directory where plugins are stored (DEPRECATED, known to not work for all plugins)', - fromRoot('plugins') - ) .description( 'install a plugin', `Common examples: - install x-pack install file:///Path/to/my/x-pack.zip install https://path.to/my/x-pack.zip` ) diff --git a/src/cli_plugin/install/index.test.js b/src/cli_plugin/install/index.test.js index 39352f52f20fd..657ca0904041a 100644 --- a/src/cli_plugin/install/index.test.js +++ b/src/cli_plugin/install/index.test.js @@ -18,7 +18,8 @@ */ import sinon from 'sinon'; -import index from './index'; + +import { installCommand } from './index'; describe('kibana cli', function () { describe('plugin installer', function () { @@ -41,7 +42,7 @@ describe('kibana cli', function () { it('should define the command', function () { sinon.spy(program, 'command'); - index(program); + installCommand(program); expect(program.command.calledWith('install ')).toBe(true); program.command.restore(); @@ -50,7 +51,7 @@ describe('kibana cli', function () { it('should define the description', function () { sinon.spy(program, 'description'); - index(program); + installCommand(program); expect(program.description.calledWith('install a plugin')).toBe(true); program.description.restore(); @@ -59,9 +60,9 @@ describe('kibana cli', function () { it('should define the command line options', function () { const spy = sinon.spy(program, 'option'); - const options = [/-q/, /-s/, /-c/, /-t/, /-d/]; + const options = [/-q/, /-s/, /-c/, /-t/]; - index(program); + installCommand(program); for (let i = 0; i < spy.callCount; i++) { const call = spy.getCall(i); @@ -80,7 +81,7 @@ describe('kibana cli', function () { it('should call the action function', function () { sinon.spy(program, 'action'); - index(program); + installCommand(program); expect(program.action.calledOnce).toBe(true); program.action.restore(); diff --git a/src/cli_plugin/install/install.js b/src/cli_plugin/install/install.js index 92be2ac250320..b74b589459112 100644 --- a/src/cli_plugin/install/install.js +++ b/src/cli_plugin/install/install.js @@ -19,20 +19,20 @@ import Fs from 'fs'; import { promisify } from 'util'; +import path from 'path'; + +import del from 'del'; import { download } from './download'; -import path from 'path'; import { cleanPrevious, cleanArtifacts } from './cleanup'; import { extract, getPackData } from './pack'; import { renamePlugin } from './rename'; -import del from 'del'; import { errorIfXPackInstall } from '../lib/error_if_x_pack'; import { existingInstall, assertVersion } from './kibana'; -import { prepareExternalProjectDependencies } from '@kbn/pm'; const mkdir = promisify(Fs.mkdir); -export default async function install(settings, logger) { +export async function install(settings, logger) { try { errorIfXPackInstall(settings, logger); @@ -52,12 +52,8 @@ export default async function install(settings, logger) { assertVersion(settings); - await prepareExternalProjectDependencies(settings.workingPath); - - await renamePlugin( - settings.workingPath, - path.join(settings.pluginDir, settings.plugins[0].name) - ); + const targetDir = path.join(settings.pluginDir, settings.plugins[0].id); + await renamePlugin(settings.workingPath, targetDir); logger.log('Plugin installation complete'); } catch (err) { diff --git a/src/cli_plugin/install/kibana.js b/src/cli_plugin/install/kibana.js index edbcef3e7fed0..f093c1eee3db0 100644 --- a/src/cli_plugin/install/kibana.js +++ b/src/cli_plugin/install/kibana.js @@ -18,15 +18,16 @@ */ import path from 'path'; -import { versionSatisfies, cleanVersion } from '../../legacy/utils/version'; import { statSync } from 'fs'; +import { versionSatisfies, cleanVersion } from '../../legacy/utils/version'; + export function existingInstall(settings, logger) { try { - statSync(path.join(settings.pluginDir, settings.plugins[0].name)); + statSync(path.join(settings.pluginDir, settings.plugins[0].id)); logger.error( - `Plugin ${settings.plugins[0].name} already exists, please remove before installing a new version` + `Plugin ${settings.plugins[0].id} already exists, please remove before installing a new version` ); process.exit(70); } catch (e) { @@ -37,7 +38,7 @@ export function existingInstall(settings, logger) { export function assertVersion(settings) { if (!settings.plugins[0].kibanaVersion) { throw new Error( - `Plugin package.json is missing both a version property (required) and a kibana.version property (optional).` + `Plugin kibana.json is missing both a version property (required) and a kibanaVersion property (optional).` ); } @@ -45,7 +46,7 @@ export function assertVersion(settings) { const expected = cleanVersion(settings.version); if (!versionSatisfies(actual, expected)) { throw new Error( - `Plugin ${settings.plugins[0].name} [${actual}] is incompatible with Kibana [${expected}]` + `Plugin ${settings.plugins[0].id} [${actual}] is incompatible with Kibana [${expected}]` ); } } diff --git a/src/cli_plugin/install/kibana.test.js b/src/cli_plugin/install/kibana.test.js index 8c5dd00d09953..ef3400be73069 100644 --- a/src/cli_plugin/install/kibana.test.js +++ b/src/cli_plugin/install/kibana.test.js @@ -17,12 +17,14 @@ * under the License. */ -import sinon from 'sinon'; -import Logger from '../lib/logger'; import { join } from 'path'; -import del from 'del'; import fs from 'fs'; + +import sinon from 'sinon'; +import del from 'del'; + import { existingInstall, assertVersion } from './kibana'; +import { Logger } from '../lib/logger'; jest.spyOn(fs, 'statSync'); @@ -42,7 +44,7 @@ describe('kibana cli', function () { tempArchiveFile: tempArchiveFilePath, plugin: 'test-plugin', version: '1.0.0', - plugins: [{ name: 'foo' }], + plugins: [{ id: 'foo' }], pluginDir, }; @@ -69,7 +71,10 @@ describe('kibana cli', function () { plugin: 'test-plugin', version: '5.0.0-SNAPSHOT', plugins: [ - { name: 'foo', path: join(testWorkingPath, 'foo'), kibanaVersion: '5.0.0-SNAPSHOT' }, + { + id: 'foo', + kibanaVersion: '5.0.0-SNAPSHOT', + }, ], }; @@ -77,15 +82,17 @@ describe('kibana cli', function () { }); it('should throw an error if plugin is missing a kibana version.', function () { - expect(() => assertVersion(settings)).toThrow( - /plugin package\.json is missing both a version property/i + expect(() => assertVersion(settings)).toThrowErrorMatchingInlineSnapshot( + `"Plugin kibana.json is missing both a version property (required) and a kibanaVersion property (optional)."` ); }); it('should throw an error if plugin kibanaVersion does not match kibana version', function () { settings.plugins[0].kibanaVersion = '1.2.3.4'; - expect(() => assertVersion(settings)).toThrow(/incompatible with Kibana/i); + expect(() => assertVersion(settings)).toThrowErrorMatchingInlineSnapshot( + `"Plugin foo [1.2.3] is incompatible with Kibana [1.0.0]"` + ); }); it('should not throw an error if plugin kibanaVersion matches kibana version', function () { @@ -103,7 +110,9 @@ describe('kibana cli', function () { it('should ignore version info after the dash in checks on invalid version', function () { settings.plugins[0].kibanaVersion = '2.0.0-foo-bar-version-1.2.3'; - expect(() => assertVersion(settings)).toThrow(/incompatible with Kibana/i); + expect(() => assertVersion(settings)).toThrowErrorMatchingInlineSnapshot( + `"Plugin foo [2.0.0] is incompatible with Kibana [1.0.0]"` + ); }); }); diff --git a/src/cli_plugin/install/pack.js b/src/cli_plugin/install/pack.js index 87c94fce2b677..56d7be78e44bc 100644 --- a/src/cli_plugin/install/pack.js +++ b/src/cli_plugin/install/pack.js @@ -18,7 +18,11 @@ */ import { analyzeArchive, extractArchive } from './zip'; -import validate from 'validate-npm-package-name'; + +const CAMEL_CASE_REG_EXP = /^[a-z]{1}([a-zA-Z0-9]{1,})$/; +export function isCamelCase(candidate) { + return CAMEL_CASE_REG_EXP.test(candidate); +} /** * Checks the plugin name. Will throw an exception if it does not meet @@ -27,9 +31,10 @@ import validate from 'validate-npm-package-name'; * @param {object} plugin - a package object from listPackages() */ function assertValidPackageName(plugin) { - const validation = validate(plugin.name); - if (!validation.validForNewPackages) { - throw new Error(`Invalid plugin name [${plugin.name}] in package.json`); + if (!isCamelCase(plugin.id)) { + throw new Error( + `Invalid plugin name [${plugin.id}] in kibana.json, expected it to be valid camelCase` + ); } } @@ -60,17 +65,13 @@ export async function getPackData(settings, logger) { /** * Extracts files from a zip archive to a file path using a filter function - * - * @param {string} archive - file path to a zip archive - * @param {string} targetDir - directory path to where the files should - * extracted */ export async function extract(settings, logger) { try { const plugin = settings.plugins[0]; logger.log('Extracting plugin archive'); - await extractArchive(settings.tempArchiveFile, settings.workingPath, plugin.archivePath); + await extractArchive(settings.tempArchiveFile, settings.workingPath, plugin.stripPrefix); logger.log('Extraction complete'); } catch (err) { logger.error(err.stack); diff --git a/src/cli_plugin/install/pack.test.js b/src/cli_plugin/install/pack.test.js index 05a60107f80ff..c31437e61bebf 100644 --- a/src/cli_plugin/install/pack.test.js +++ b/src/cli_plugin/install/pack.test.js @@ -18,14 +18,15 @@ */ import Fs from 'fs'; +import { join } from 'path'; import sinon from 'sinon'; import glob from 'glob-all'; import del from 'del'; -import Logger from '../lib/logger'; + +import { Logger } from '../lib/logger'; import { extract, getPackData } from './pack'; import { _downloadSingle } from './download'; -import { join } from 'path'; describe('kibana cli', function () { describe('pack', function () { @@ -73,133 +74,104 @@ describe('kibana cli', function () { return _downloadSingle(settings, logger, sourceUrl); } - function shouldReject() { - throw new Error('expected the promise to reject'); - } - describe('extract', function () { - //Also only extracts the content from the kibana folder. - //Ignores the others. - it('successfully extract a valid zip', function () { - return copyReplyFile('test_plugin.zip') - .then(() => { - return getPackData(settings, logger); - }) - .then(() => { - return extract(settings, logger); - }) - .then(() => { - const files = glob.sync('**/*', { cwd: testWorkingPath }); - const expected = [ - 'archive.part', - 'README.md', - 'index.js', - 'package.json', - 'public', - 'public/app.js', - 'extra file only in zip.txt', - ]; - expect(files.sort()).toEqual(expected.sort()); - }); + // Also only extracts the content from the kibana folder. + // Ignores the others. + it('successfully extract a valid zip', async () => { + await copyReplyFile('test_plugin.zip'); + await getPackData(settings, logger); + await extract(settings, logger); + + expect(glob.sync('**/*', { cwd: testWorkingPath })).toMatchInlineSnapshot(` + Array [ + "archive.part", + "bin", + "bin/executable", + "bin/not-executable", + "kibana.json", + "node_modules", + "node_modules/some-package", + "node_modules/some-package/index.js", + "node_modules/some-package/package.json", + "public", + "public/index.js", + ] + `); }); }); - describe('getPackData', function () { - it('populate settings.plugins', function () { - return copyReplyFile('test_plugin.zip') - .then(() => { - return getPackData(settings, logger); - }) - .then(() => { - expect(settings.plugins[0].name).toBe('test-plugin'); - expect(settings.plugins[0].archivePath).toBe('kibana/test-plugin'); - expect(settings.plugins[0].version).toBe('1.0.0'); - expect(settings.plugins[0].kibanaVersion).toBe('1.0.0'); - }); - }); - - it('populate settings.plugin.kibanaVersion', function () { - //kibana.version is defined in this package.json and is different than plugin version - return copyReplyFile('test_plugin_different_version.zip') - .then(() => { - return getPackData(settings, logger); - }) - .then(() => { - expect(settings.plugins[0].kibanaVersion).toBe('5.0.1'); - }); + describe('getPackData', () => { + it('populate settings.plugins', async () => { + await copyReplyFile('test_plugin.zip'); + await getPackData(settings, logger); + expect(settings.plugins).toMatchInlineSnapshot(` + Array [ + Object { + "id": "testPlugin", + "kibanaVersion": "1.0.0", + "stripPrefix": "kibana/test-plugin", + }, + ] + `); }); - it('populate settings.plugin.kibanaVersion (default to plugin version)', function () { - //kibana.version is not defined in this package.json, defaults to plugin version - return copyReplyFile('test_plugin.zip') - .then(() => { - return getPackData(settings, logger); - }) - .then(() => { - expect(settings.plugins[0].kibanaVersion).toBe('1.0.0'); - }); + it('populate settings.plugin.kibanaVersion', async () => { + await copyReplyFile('test_plugin_different_version.zip'); + await getPackData(settings, logger); + expect(settings.plugins).toMatchInlineSnapshot(` + Array [ + Object { + "id": "testPlugin", + "kibanaVersion": "5.0.1", + "stripPrefix": "kibana/test-plugin", + }, + ] + `); }); - it('populate settings.plugins with multiple plugins', function () { - return copyReplyFile('test_plugin_many.zip') - .then(() => { - return getPackData(settings, logger); - }) - .then(() => { - expect(settings.plugins[0].name).toBe('funger-plugin'); - expect(settings.plugins[0].archivePath).toBe('kibana/funger-plugin'); - expect(settings.plugins[0].version).toBe('1.0.0'); - - expect(settings.plugins[1].name).toBe('pdf'); - expect(settings.plugins[1].archivePath).toBe('kibana/pdf-linux'); - expect(settings.plugins[1].version).toBe('1.0.0'); - - expect(settings.plugins[2].name).toBe('pdf'); - expect(settings.plugins[2].archivePath).toBe('kibana/pdf-win32'); - expect(settings.plugins[2].version).toBe('1.0.0'); - - expect(settings.plugins[3].name).toBe('pdf'); - expect(settings.plugins[3].archivePath).toBe('kibana/pdf-win64'); - expect(settings.plugins[3].version).toBe('1.0.0'); - - expect(settings.plugins[4].name).toBe('pdf'); - expect(settings.plugins[4].archivePath).toBe('kibana/pdf'); - expect(settings.plugins[4].version).toBe('1.0.0'); - - expect(settings.plugins[5].name).toBe('test-plugin'); - expect(settings.plugins[5].archivePath).toBe('kibana/test-plugin'); - expect(settings.plugins[5].version).toBe('1.0.0'); - }); + it('populate settings.plugins with multiple plugins', async () => { + await copyReplyFile('test_plugin_many.zip'); + await getPackData(settings, logger); + expect(settings.plugins).toMatchInlineSnapshot(` + Array [ + Object { + "id": "fungerPlugin", + "kibanaVersion": "1.0.0", + "stripPrefix": "kibana/funger-plugin", + }, + Object { + "id": "pdf", + "kibanaVersion": "1.0.0", + "stripPrefix": "kibana/pdf", + }, + Object { + "id": "testPlugin", + "kibanaVersion": "1.0.0", + "stripPrefix": "kibana/test-plugin", + }, + ] + `); }); - it('throw an error if there is no kibana plugin', function () { - return copyReplyFile('test_plugin_no_kibana.zip') - .then(() => { - return getPackData(settings, logger); - }) - .then(shouldReject, (err) => { - expect(err.message).toMatch(/No kibana plugins found in archive/i); - }); + it('throw an error if there is no kibana plugin', async () => { + await copyReplyFile('test_plugin_no_kibana.zip'); + await expect(getPackData(settings, logger)).rejects.toThrowErrorMatchingInlineSnapshot( + `"No kibana plugins found in archive"` + ); }); - it('throw an error with a corrupt zip', function () { - return copyReplyFile('corrupt.zip') - .then(() => { - return getPackData(settings, logger); - }) - .then(shouldReject, (err) => { - expect(err.message).toMatch(/error retrieving/i); - }); + it('throw an error with a corrupt zip', async () => { + await copyReplyFile('corrupt.zip'); + await expect(getPackData(settings, logger)).rejects.toThrowErrorMatchingInlineSnapshot( + `"Error retrieving metadata from plugin archive"` + ); }); - it('throw an error if there an invalid plugin name', function () { - return copyReplyFile('invalid_name.zip') - .then(() => { - return getPackData(settings, logger); - }) - .then(shouldReject, (err) => { - expect(err.message).toMatch(/invalid plugin name/i); - }); + it('throw an error if there an invalid plugin name', async () => { + await copyReplyFile('invalid_name.zip'); + await expect(getPackData(settings, logger)).rejects.toThrowErrorMatchingInlineSnapshot( + `"Invalid plugin name [invalid name] in kibana.json, expected it to be valid camelCase"` + ); }); }); }); diff --git a/src/cli_plugin/install/progress.js b/src/cli_plugin/install/progress.js index e58e4472150b9..5c7d5074603dc 100644 --- a/src/cli_plugin/install/progress.js +++ b/src/cli_plugin/install/progress.js @@ -20,7 +20,7 @@ /** * Generates file transfer progress messages */ -export default class Progress { +export class Progress { constructor(logger) { const self = this; diff --git a/src/cli_plugin/install/progress.test.js b/src/cli_plugin/install/progress.test.js index 3b66e8b3dc86c..ef948bafca836 100644 --- a/src/cli_plugin/install/progress.test.js +++ b/src/cli_plugin/install/progress.test.js @@ -18,8 +18,9 @@ */ import sinon from 'sinon'; -import Progress from './progress'; -import Logger from '../lib/logger'; + +import { Progress } from './progress'; +import { Logger } from '../lib/logger'; describe('kibana cli', function () { describe('plugin installer', function () { diff --git a/src/cli_plugin/install/rename.js b/src/cli_plugin/install/rename.js index 1e5d94d474375..897222a579a4a 100644 --- a/src/cli_plugin/install/rename.js +++ b/src/cli_plugin/install/rename.js @@ -18,6 +18,7 @@ */ import { rename } from 'fs'; + import { delay } from 'lodash'; export function renamePlugin(workingPath, finalPath) { @@ -31,8 +32,12 @@ export function renamePlugin(workingPath, finalPath) { // Retry for up to retryTime seconds const windowsEPERM = process.platform === 'win32' && err.code === 'EPERM'; const retryAvailable = Date.now() - start < retryTime; - if (windowsEPERM && retryAvailable) - return delay(rename, retryDelay, workingPath, finalPath, retry); + + if (windowsEPERM && retryAvailable) { + delay(rename, retryDelay, workingPath, finalPath, retry); + return; + } + reject(err); } resolve(); diff --git a/src/cli_plugin/install/rename.test.js b/src/cli_plugin/install/rename.test.js index 40df75adc5efa..8525c367540f8 100644 --- a/src/cli_plugin/install/rename.test.js +++ b/src/cli_plugin/install/rename.test.js @@ -17,9 +17,10 @@ * under the License. */ -import sinon from 'sinon'; import fs from 'fs'; +import sinon from 'sinon'; + import { renamePlugin } from './rename'; describe('plugin folder rename', function () { diff --git a/src/cli_plugin/install/settings.js b/src/cli_plugin/install/settings.js index 40c845fc37a9e..20a11479321ee 100644 --- a/src/cli_plugin/install/settings.js +++ b/src/cli_plugin/install/settings.js @@ -17,9 +17,12 @@ * under the License. */ -import expiry from 'expiry-js'; import { resolve } from 'path'; +import expiry from 'expiry-js'; + +import { fromRoot } from '../../core/server/utils'; + function generateUrls({ version, plugin }) { return [ plugin, @@ -46,20 +49,14 @@ export function parse(command, options, kbnPackage) { quiet: options.quiet || false, silent: options.silent || false, config: options.config || '', - optimize: options.optimize, plugin: command, version: kbnPackage.version, - pluginDir: options.pluginDir || '', + pluginDir: fromRoot('plugins'), }; settings.urls = generateUrls(settings); settings.workingPath = resolve(settings.pluginDir, '.plugin.installing'); settings.tempArchiveFile = resolve(settings.workingPath, 'archive.part'); - settings.tempPackageFile = resolve(settings.workingPath, 'package.json'); - settings.setPlugin = function (plugin) { - settings.plugin = plugin; - settings.pluginPath = resolve(settings.pluginDir, settings.plugin.name); - }; return settings; } diff --git a/src/cli_plugin/install/settings.test.js b/src/cli_plugin/install/settings.test.js index 39ca07405ade2..54ad453de9ef8 100644 --- a/src/cli_plugin/install/settings.test.js +++ b/src/cli_plugin/install/settings.test.js @@ -17,199 +17,82 @@ * under the License. */ +import { createAbsolutePathSerializer } from '@kbn/dev-utils'; + import { fromRoot } from '../../core/server/utils'; -import { resolve } from 'path'; import { parseMilliseconds, parse } from './settings'; -describe('kibana cli', function () { - describe('plugin installer', function () { - describe('command line option parsing', function () { - describe('parseMilliseconds function', function () { - it('should return 0 for an empty string', function () { - const value = ''; - const result = parseMilliseconds(value); - - expect(result).toBe(0); - }); - - it('should return 0 for a number with an invalid unit of measure', function () { - const result = parseMilliseconds('1gigablasts'); - expect(result).toBe(0); - }); - - it('should assume a number with no unit of measure is specified as milliseconds', function () { - const result = parseMilliseconds(1); - expect(result).toBe(1); - - const result2 = parseMilliseconds('1'); - expect(result2).toBe(1); - }); - - it('should interpret a number with "s" as the unit of measure as seconds', function () { - const result = parseMilliseconds('5s'); - expect(result).toBe(5 * 1000); - }); - - it('should interpret a number with "second" as the unit of measure as seconds', function () { - const result = parseMilliseconds('5second'); - expect(result).toBe(5 * 1000); - }); - - it('should interpret a number with "seconds" as the unit of measure as seconds', function () { - const result = parseMilliseconds('5seconds'); - expect(result).toBe(5 * 1000); - }); - - it('should interpret a number with "m" as the unit of measure as minutes', function () { - const result = parseMilliseconds('9m'); - expect(result).toBe(9 * 1000 * 60); - }); - - it('should interpret a number with "minute" as the unit of measure as minutes', function () { - const result = parseMilliseconds('9minute'); - expect(result).toBe(9 * 1000 * 60); - }); - - it('should interpret a number with "minutes" as the unit of measure as minutes', function () { - const result = parseMilliseconds('9minutes'); - expect(result).toBe(9 * 1000 * 60); - }); - }); - - describe('parse function', function () { - const command = 'plugin name'; - let options = {}; - const kbnPackage = { version: 1234 }; - beforeEach(function () { - options = { pluginDir: fromRoot('plugins') }; - }); - - describe('timeout option', function () { - it('should default to 0 (milliseconds)', function () { - const settings = parse(command, options, kbnPackage); - - expect(settings.timeout).toBe(0); - }); - - it('should set settings.timeout property', function () { - options.timeout = 1234; - const settings = parse(command, options, kbnPackage); - - expect(settings.timeout).toBe(1234); - }); - }); - - describe('quiet option', function () { - it('should default to false', function () { - const settings = parse(command, options, kbnPackage); - - expect(settings.quiet).toBe(false); - }); - - it('should set settings.quiet property to true', function () { - options.quiet = true; - const settings = parse(command, options, kbnPackage); - - expect(settings.quiet).toBe(true); - }); - }); - - describe('silent option', function () { - it('should default to false', function () { - const settings = parse(command, options, kbnPackage); - - expect(settings.silent).toBe(false); - }); - - it('should set settings.silent property to true', function () { - options.silent = true; - const settings = parse(command, options, kbnPackage); - - expect(settings.silent).toBe(true); - }); - }); - - describe('config option', function () { - it('should default to ZLS', function () { - const settings = parse(command, options, kbnPackage); - - expect(settings.config).toBe(''); - }); - - it('should set settings.config property', function () { - options.config = 'foo bar baz'; - const settings = parse(command, options, kbnPackage); - - expect(settings.config).toBe('foo bar baz'); - }); - }); - - describe('pluginDir option', function () { - it('should default to plugins', function () { - const settings = parse(command, options, kbnPackage); - - expect(settings.pluginDir).toBe(fromRoot('plugins')); - }); - - it('should set settings.config property', function () { - options.pluginDir = 'foo bar baz'; - const settings = parse(command, options, kbnPackage); - - expect(settings.pluginDir).toBe('foo bar baz'); - }); - }); - - describe('command value', function () { - it('should set settings.plugin property', function () { - const settings = parse(command, options, kbnPackage); - - expect(settings.plugin).toBe(command); - }); - }); - - describe('urls collection', function () { - it('should populate the settings.urls property', function () { - const settings = parse(command, options, kbnPackage); - - const expected = [ - command, - `https://artifacts.elastic.co/downloads/kibana-plugins/${command}/${command}-1234.zip`, - ]; - - expect(settings.urls).toEqual(expected); - }); - }); - - describe('workingPath value', function () { - it('should set settings.workingPath property', function () { - options.pluginDir = 'foo/bar/baz'; - const settings = parse(command, options, kbnPackage); - const expected = resolve('foo/bar/baz', '.plugin.installing'); - - expect(settings.workingPath).toBe(expected); - }); - }); - - describe('tempArchiveFile value', function () { - it('should set settings.tempArchiveFile property', function () { - options.pluginDir = 'foo/bar/baz'; - const settings = parse(command, options, kbnPackage); - const expected = resolve('foo/bar/baz', '.plugin.installing', 'archive.part'); - - expect(settings.tempArchiveFile).toBe(expected); - }); - }); +const SECOND = 1000; +const MINUTE = SECOND * 60; + +expect.addSnapshotSerializer(createAbsolutePathSerializer()); + +describe('parseMilliseconds function', function () { + it.each([ + ['', 0], + ['1gigablasts', 0], + [1, 1], + ['1', 1], + ['5s', 5 * SECOND], + ['5second', 5 * SECOND], + ['5seconds', 5 * SECOND], + ['9m', 9 * MINUTE], + ['9minute', 9 * MINUTE], + ['9minutes', 9 * MINUTE], + ])('should parse %j to %j', (input, result) => { + expect(parseMilliseconds(input)).toBe(result); + }); +}); - describe('tempPackageFile value', function () { - it('should set settings.tempPackageFile property', function () { - options.pluginDir = 'foo/bar/baz'; - const settings = parse(command, options, kbnPackage); - const expected = resolve('foo/bar/baz', '.plugin.installing', 'package.json'); +describe('parse function', function () { + const command = 'plugin name'; + const defaultOptions = { pluginDir: fromRoot('plugins') }; + const kbnPackage = { version: 1234 }; + + it('produces expected defaults', function () { + expect(parse(command, { ...defaultOptions }, kbnPackage)).toMatchInlineSnapshot(` + Object { + "config": "", + "plugin": "plugin name", + "pluginDir": /plugins, + "quiet": false, + "silent": false, + "tempArchiveFile": /plugins/.plugin.installing/archive.part, + "timeout": 0, + "urls": Array [ + "plugin name", + "https://artifacts.elastic.co/downloads/kibana-plugins/plugin name/plugin name-1234.zip", + ], + "version": 1234, + "workingPath": /plugins/.plugin.installing, + } + `); + }); - expect(settings.tempPackageFile).toBe(expected); - }); - }); - }); - }); + it('consumes overrides', function () { + const options = { + quiet: true, + silent: true, + config: 'foo bar baz', + ...defaultOptions, + }; + + expect(parse(command, options, kbnPackage)).toMatchInlineSnapshot(` + Object { + "config": "foo bar baz", + "plugin": "plugin name", + "pluginDir": /plugins, + "quiet": true, + "silent": true, + "tempArchiveFile": /plugins/.plugin.installing/archive.part, + "timeout": 0, + "urls": Array [ + "plugin name", + "https://artifacts.elastic.co/downloads/kibana-plugins/plugin name/plugin name-1234.zip", + ], + "version": 1234, + "workingPath": /plugins/.plugin.installing, + } + `); }); }); diff --git a/src/cli_plugin/install/zip.js b/src/cli_plugin/install/zip.js index 52eba2ea239a2..b906dd59a302b 100644 --- a/src/cli_plugin/install/zip.js +++ b/src/cli_plugin/install/zip.js @@ -17,21 +17,24 @@ * under the License. */ -import yauzl from 'yauzl'; import path from 'path'; import { createWriteStream, mkdir } from 'fs'; -import { get } from 'lodash'; + +import yauzl from 'yauzl'; + +const isDirectoryRegex = /(\/|\\)$/; +function isDirectory(filename) { + return isDirectoryRegex.test(filename); +} /** * Returns an array of package objects. There will be one for each of - * package.json files in the archive - * - * @param {string} archive - path to plugin archive zip file + * package.json files in the archive */ export function analyzeArchive(archive) { const plugins = []; - const regExp = new RegExp('(kibana[\\\\/][^\\\\/]+)[\\\\/]package.json', 'i'); + const regExp = new RegExp('(kibana[\\\\/][^\\\\/]+)[\\\\/]kibana.json', 'i'); return new Promise((resolve, reject) => { yauzl.open(archive, { lazyEntries: true }, function (err, zipfile) { @@ -47,31 +50,32 @@ export function analyzeArchive(archive) { return zipfile.readEntry(); } - zipfile.openReadStream(entry, function (err, readable) { + zipfile.openReadStream(entry, function (error, readable) { const chunks = []; - if (err) { - return reject(err); + if (error) { + return reject(error); } readable.on('data', (chunk) => chunks.push(chunk)); readable.on('end', function () { - const contents = Buffer.concat(chunks).toString(); - const pkg = JSON.parse(contents); - - plugins.push( - Object.assign(pkg, { - archivePath: match[1], - archive: archive, - - // Plugins must specify their version, and by default that version should match - // the version of kibana down to the patch level. If these two versions need - // to diverge, they can specify a kibana.version to indicate the version of - // kibana the plugin is intended to work with. - kibanaVersion: get(pkg, 'kibana.version', pkg.version), - }) - ); + const manifestJson = Buffer.concat(chunks).toString(); + const manifest = JSON.parse(manifestJson); + + plugins.push({ + id: manifest.id, + stripPrefix: match[1], + + // Plugins must specify their version, and by default that version in the plugin + // manifest should match the version of kibana down to the patch level. If these + // two versions need plugins can specify a kibanaVersion to indicate the version + // of kibana the plugin is intended to work with. + kibanaVersion: + typeof manifest.kibanaVersion === 'string' && manifest.kibanaVersion + ? manifest.kibanaVersion + : manifest.version, + }); zipfile.readEntry(); }); @@ -85,12 +89,7 @@ export function analyzeArchive(archive) { }); } -const isDirectoryRegex = /(\/|\\)$/; -export function _isDirectory(filename) { - return isDirectoryRegex.test(filename); -} - -export function extractArchive(archive, targetDir, extractPath) { +export function extractArchive(archive, targetDir, stripPrefix) { return new Promise((resolve, reject) => { yauzl.open(archive, { lazyEntries: true }, function (err, zipfile) { if (err) { @@ -102,8 +101,8 @@ export function extractArchive(archive, targetDir, extractPath) { zipfile.on('entry', function (entry) { let fileName = entry.fileName; - if (extractPath && fileName.startsWith(extractPath)) { - fileName = fileName.substring(extractPath.length); + if (stripPrefix && fileName.startsWith(stripPrefix)) { + fileName = fileName.substring(stripPrefix.length); } else { return zipfile.readEntry(); } @@ -112,30 +111,34 @@ export function extractArchive(archive, targetDir, extractPath) { fileName = path.join(targetDir, fileName); } - if (_isDirectory(fileName)) { - mkdir(fileName, { recursive: true }, function (err) { - if (err) { - return reject(err); + if (isDirectory(fileName)) { + mkdir(fileName, { recursive: true }, function (error) { + if (error) { + return reject(error); } zipfile.readEntry(); }); } else { // file entry - zipfile.openReadStream(entry, function (err, readStream) { - if (err) { - return reject(err); + zipfile.openReadStream(entry, function (error, readStream) { + if (error) { + return reject(error); } // ensure parent directory exists - mkdir(path.dirname(fileName), { recursive: true }, function (err) { - if (err) { - return reject(err); + mkdir(path.dirname(fileName), { recursive: true }, function (error2) { + if (error2) { + return reject(error2); } readStream.pipe( - createWriteStream(fileName, { mode: entry.externalFileAttributes >>> 16 }) + createWriteStream(fileName, { + // eslint-disable-next-line no-bitwise + mode: entry.externalFileAttributes >>> 16, + }) ); + readStream.on('end', function () { zipfile.readEntry(); }); diff --git a/src/cli_plugin/install/zip.test.js b/src/cli_plugin/install/zip.test.js index 28367e9e24453..0f56c0d0322aa 100644 --- a/src/cli_plugin/install/zip.test.js +++ b/src/cli_plugin/install/zip.test.js @@ -17,12 +17,16 @@ * under the License. */ -import del from 'del'; import path from 'path'; import os from 'os'; -import glob from 'glob'; import fs from 'fs'; -import { analyzeArchive, extractArchive, _isDirectory } from './zip'; + +import del from 'del'; +import glob from 'glob'; + +import { analyzeArchive, extractArchive } from './zip'; + +const getMode = (path) => (fs.statSync(path).mode & parseInt('777', 8)).toString(8); describe('kibana cli', function () { describe('zip', function () { @@ -43,32 +47,37 @@ describe('kibana cli', function () { describe('analyzeArchive', function () { it('returns array of plugins', async () => { const packages = await analyzeArchive(archivePath); - const plugin = packages[0]; - - expect(packages).toBeInstanceOf(Array); - expect(plugin.name).toBe('test-plugin'); - expect(plugin.archivePath).toBe('kibana/test-plugin'); - expect(plugin.archive).toBe(archivePath); - expect(plugin.kibanaVersion).toBe('1.0.0'); + expect(packages).toMatchInlineSnapshot(` + Array [ + Object { + "id": "testPlugin", + "kibanaVersion": "1.0.0", + "stripPrefix": "kibana/test-plugin", + }, + ] + `); }); }); describe('extractArchive', () => { it('extracts files using the extractPath filter', async () => { - const archive = path.resolve(repliesPath, 'test_plugin_many.zip'); - + const archive = path.resolve(repliesPath, 'test_plugin.zip'); await extractArchive(archive, tempPath, 'kibana/test-plugin'); - const files = await glob.sync('**/*', { cwd: tempPath }); - - const expected = [ - 'extra file only in zip.txt', - 'index.js', - 'package.json', - 'public', - 'public/app.js', - 'README.md', - ]; - expect(files.sort()).toEqual(expected.sort()); + + expect(glob.sync('**/*', { cwd: tempPath })).toMatchInlineSnapshot(` + Array [ + "bin", + "bin/executable", + "bin/not-executable", + "kibana.json", + "node_modules", + "node_modules/some-package", + "node_modules/some-package/index.js", + "node_modules/some-package/package.json", + "public", + "public/index.js", + ] + `); }); }); @@ -76,49 +85,26 @@ describe('kibana cli', function () { it('verify consistency of modes of files', async () => { const archivePath = path.resolve(repliesPath, 'test_plugin.zip'); - await extractArchive(archivePath, tempPath, 'kibana/libs'); - const files = await glob.sync('**/*', { cwd: tempPath }); - - const expected = ['executable', 'unexecutable']; - expect(files.sort()).toEqual(expected.sort()); + await extractArchive(archivePath, tempPath, 'kibana/test-plugin/bin'); - const executableMode = - '0' + - (fs.statSync(path.resolve(tempPath, 'executable')).mode & parseInt('777', 8)).toString(8); - const unExecutableMode = - '0' + - (fs.statSync(path.resolve(tempPath, 'unexecutable')).mode & parseInt('777', 8)).toString( - 8 - ); + expect(glob.sync('**/*', { cwd: tempPath })).toMatchInlineSnapshot(` + Array [ + "executable", + "not-executable", + ] + `); - expect(executableMode).toEqual('0755'); - expect(unExecutableMode).toEqual('0644'); + expect(getMode(path.resolve(tempPath, 'executable'))).toEqual('755'); + expect(getMode(path.resolve(tempPath, 'not-executable'))).toEqual('644'); }); }); it('handles a corrupt zip archive', async () => { - try { - await extractArchive(path.resolve(repliesPath, 'corrupt.zip')); - throw new Error('This should have failed'); - } catch (e) { - return; - } - }); - }); - - describe('_isDirectory', () => { - it('should check for a forward slash', () => { - expect(_isDirectory('/foo/bar/')).toBe(true); - }); - - it('should check for a backslash', () => { - expect(_isDirectory('\\foo\\bar\\')).toBe(true); - }); - - it('should return false for files', () => { - expect(_isDirectory('foo.txt')).toBe(false); - expect(_isDirectory('\\path\\to\\foo.txt')).toBe(false); - expect(_isDirectory('/path/to/foo.txt')).toBe(false); + await expect( + extractArchive(path.resolve(repliesPath, 'corrupt.zip')) + ).rejects.toThrowErrorMatchingInlineSnapshot( + `"end of central directory record signature not found"` + ); }); }); }); diff --git a/src/cli_plugin/lib/error_if_x_pack.js b/src/cli_plugin/lib/error_if_x_pack.js index d6624f5308ec0..4ea7ceb37478e 100644 --- a/src/cli_plugin/lib/error_if_x_pack.js +++ b/src/cli_plugin/lib/error_if_x_pack.js @@ -17,7 +17,7 @@ * under the License. */ -import { isOSS } from './is_oss'; +import { isOss } from './is_oss'; function isXPack(plugin) { return /x-pack/.test(plugin); @@ -25,7 +25,7 @@ function isXPack(plugin) { export function errorIfXPackInstall(settings) { if (isXPack(settings.plugin)) { - if (isOSS()) { + if (isOss()) { throw new Error( 'You are using the OSS-only distribution of Kibana. ' + 'As of version 6.3+ X-Pack is bundled in the standard distribution of this software by default; ' + @@ -40,7 +40,7 @@ export function errorIfXPackInstall(settings) { } export function errorIfXPackRemove(settings) { - if (isXPack(settings.plugin) && !isOSS()) { + if (isXPack(settings.plugin) && !isOss()) { throw new Error( 'You are using the standard distribution of Kibana. Please install the OSS-only distribution to remove X-Pack features.' ); diff --git a/src/cli_plugin/lib/is_oss.js b/src/cli_plugin/lib/is_oss.js index 3f2190d8346ec..53f19a41228d6 100644 --- a/src/cli_plugin/lib/is_oss.js +++ b/src/cli_plugin/lib/is_oss.js @@ -20,6 +20,6 @@ import fs from 'fs'; import path from 'path'; -export function isOSS() { +export function isOss() { return !fs.existsSync(path.resolve(__dirname, '../../../x-pack')); } diff --git a/src/cli_plugin/lib/is_oss.test.js b/src/cli_plugin/lib/is_oss.test.js index a4673710c63ce..636e1616e7d3c 100644 --- a/src/cli_plugin/lib/is_oss.test.js +++ b/src/cli_plugin/lib/is_oss.test.js @@ -17,12 +17,12 @@ * under the License. */ -import { isOSS } from './is_oss'; +import { isOss } from './is_oss'; describe('is_oss', () => { describe('x-pack installed', () => { it('should return false', () => { - expect(isOSS()).toEqual(false); + expect(isOss()).toEqual(false); }); }); }); diff --git a/src/cli_plugin/lib/log_warnings.js b/src/cli_plugin/lib/log_warnings.js index b4542acecb305..f31c3d4bd2e9a 100644 --- a/src/cli_plugin/lib/log_warnings.js +++ b/src/cli_plugin/lib/log_warnings.js @@ -17,7 +17,7 @@ * under the License. */ -export default function (settings, logger) { +export function logWarnings(logger) { process.on('warning', (warning) => { // deprecation warnings do no reflect a current problem for // the user and therefor should be filtered out. diff --git a/src/cli_plugin/lib/logger.js b/src/cli_plugin/lib/logger.js index efd6130322c38..592618fbecfc8 100644 --- a/src/cli_plugin/lib/logger.js +++ b/src/cli_plugin/lib/logger.js @@ -20,7 +20,7 @@ /** * Logs messages and errors */ -export default class Logger { +export class Logger { constructor(settings = {}) { this.previousLineEnded = true; this.silent = !!settings.silent; diff --git a/src/cli_plugin/lib/logger.test.js b/src/cli_plugin/lib/logger.test.js index 00cad1a9bbb11..7ff683ea50c95 100644 --- a/src/cli_plugin/lib/logger.test.js +++ b/src/cli_plugin/lib/logger.test.js @@ -18,7 +18,8 @@ */ import sinon from 'sinon'; -import Logger from './logger'; + +import { Logger } from './logger'; describe('kibana cli', function () { describe('plugin installer', function () { diff --git a/src/cli_plugin/lib/warn_if_plugin_dir_option.js b/src/cli_plugin/lib/warn_if_plugin_dir_option.js deleted file mode 100644 index eb85ba063c3c9..0000000000000 --- a/src/cli_plugin/lib/warn_if_plugin_dir_option.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * 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 function warnIfUsingPluginDirOption(options, defaultValue, logger) { - if (options && options.pluginDir !== defaultValue) { - logger.log( - 'Warning: Using the -d, --plugin-dir option is deprecated, and is ' + - 'known to not work for all plugins, including X-Pack.' - ); - } -} diff --git a/src/cli_plugin/list/index.js b/src/cli_plugin/list/index.js index c0f708b8ccf83..a3cf1a54a8a62 100644 --- a/src/cli_plugin/list/index.js +++ b/src/cli_plugin/list/index.js @@ -18,37 +18,16 @@ */ import { fromRoot } from '../../core/server/utils'; -import list from './list'; -import Logger from '../lib/logger'; -import { parse } from './settings'; -import logWarnings from '../lib/log_warnings'; -import { warnIfUsingPluginDirOption } from '../lib/warn_if_plugin_dir_option'; +import { list } from './list'; +import { Logger } from '../lib/logger'; +import { logWarnings } from '../lib/log_warnings'; -function processCommand(command, options) { - let settings; - try { - settings = parse(command, options); - } catch (ex) { - //The logger has not yet been initialized. - console.error(ex.message); - process.exit(64); // eslint-disable-line no-process-exit - } - - const logger = new Logger(settings); - - warnIfUsingPluginDirOption(settings, fromRoot('plugins'), logger); - logWarnings(settings, logger); - list(settings, logger); +function processCommand() { + const logger = new Logger(); + logWarnings(logger); + list(fromRoot('plugins'), logger); } -export default function pluginList(program) { - program - .command('list') - .option( - '-d, --plugin-dir ', - 'path to the directory where plugins are stored (DEPRECATED, known to not work for all plugins)', - fromRoot('plugins') - ) - .description('list installed plugins') - .action(processCommand); +export function listCommand(program) { + program.command('list').description('list installed plugins').action(processCommand); } diff --git a/src/cli_plugin/list/list.js b/src/cli_plugin/list/list.js index b34631e5dfd08..bf6a082a91878 100644 --- a/src/cli_plugin/list/list.js +++ b/src/cli_plugin/list/list.js @@ -20,19 +20,20 @@ import { statSync, readdirSync, readFileSync } from 'fs'; import { join } from 'path'; -export default function list(settings, logger) { - readdirSync(settings.pluginDir).forEach((filename) => { - const stat = statSync(join(settings.pluginDir, filename)); +export function list(pluginDir, logger) { + readdirSync(pluginDir).forEach((name) => { + const stat = statSync(join(pluginDir, name)); - if (stat.isDirectory() && filename[0] !== '.') { + if (stat.isDirectory() && name[0] !== '.') { try { - const packagePath = join(settings.pluginDir, filename, 'package.json'); - const { version } = JSON.parse(readFileSync(packagePath, 'utf8')); - logger.log(filename + '@' + version); + const packagePath = join(pluginDir, name, 'kibana.json'); + const pkg = JSON.parse(readFileSync(packagePath, 'utf8')); + logger.log(pkg.id + '@' + pkg.version); } catch (e) { - throw new Error('Unable to read package.json file for plugin ' + filename); + throw new Error('Unable to read kibana.json file for plugin ' + name); } } }); + logger.log(''); //intentional blank line for aesthetics } diff --git a/src/cli_plugin/list/list.test.js b/src/cli_plugin/list/list.test.js index 071a253fa87fe..b1b5d1cde6a35 100644 --- a/src/cli_plugin/list/list.test.js +++ b/src/cli_plugin/list/list.test.js @@ -17,78 +17,67 @@ * under the License. */ -import sinon from 'sinon'; -import del from 'del'; -import Logger from '../lib/logger'; -import list from './list'; import { join } from 'path'; -import { writeFileSync, appendFileSync, mkdirSync } from 'fs'; +import { writeFileSync, mkdirSync } from 'fs'; + +import del from 'del'; + +import { list } from './list'; function createPlugin(name, version, pluginBaseDir) { const pluginDir = join(pluginBaseDir, name); mkdirSync(pluginDir, { recursive: true }); - appendFileSync(join(pluginDir, 'package.json'), '{"version": "' + version + '"}'); + writeFileSync( + join(pluginDir, 'kibana.json'), + JSON.stringify({ + id: name, + version, + }) + ); } +const logger = { + messages: [], + log(msg) { + this.messages.push(`log: ${msg}`); + }, + error(msg) { + this.messages.push(`error: ${msg}`); + }, +}; + describe('kibana cli', function () { describe('plugin lister', function () { const pluginDir = join(__dirname, '.test.data.list'); - let logger; - - const settings = { - pluginDir: pluginDir, - }; beforeEach(function () { - logger = new Logger(settings); - sinon.stub(logger, 'log'); - sinon.stub(logger, 'error'); + logger.messages.length = 0; del.sync(pluginDir); mkdirSync(pluginDir, { recursive: true }); }); afterEach(function () { - logger.log.restore(); - logger.error.restore(); del.sync(pluginDir); }); - it('list all of the folders in the plugin folder', function () { - createPlugin('plugin1', '5.0.0-alpha2', pluginDir); - createPlugin('plugin2', '3.2.1', pluginDir); - createPlugin('plugin3', '1.2.3', pluginDir); - - list(settings, logger); - - expect(logger.log.calledWith('plugin1@5.0.0-alpha2')).toBe(true); - expect(logger.log.calledWith('plugin2@3.2.1')).toBe(true); - expect(logger.log.calledWith('plugin3@1.2.3')).toBe(true); - }); - - it('ignore folders that start with a period', function () { + it('list all of the folders in the plugin folder, ignoring dot prefixed plugins and regular files', function () { createPlugin('.foo', '1.0.0', pluginDir); createPlugin('plugin1', '5.0.0-alpha2', pluginDir); createPlugin('plugin2', '3.2.1', pluginDir); createPlugin('plugin3', '1.2.3', pluginDir); createPlugin('.bar', '1.0.0', pluginDir); - - list(settings, logger); - - expect(logger.log.calledWith('.foo@1.0.0')).toBe(false); - expect(logger.log.calledWith('.bar@1.0.0')).toBe(false); - }); - - it('list should only list folders', function () { - createPlugin('plugin1', '1.0.0', pluginDir); - createPlugin('plugin2', '1.0.0', pluginDir); - createPlugin('plugin3', '1.0.0', pluginDir); writeFileSync(join(pluginDir, 'plugin4'), 'This is a file, and not a folder.'); - list(settings, logger); + list(pluginDir, logger); - expect(logger.log.calledWith('plugin1@1.0.0')).toBe(true); - expect(logger.log.calledWith('plugin2@1.0.0')).toBe(true); - expect(logger.log.calledWith('plugin3@1.0.0')).toBe(true); + expect(logger.messages).toMatchInlineSnapshot(` + Array [ + "log: plugin1@5.0.0-alpha2", + "log: plugin2@3.2.1", + "log: plugin3@1.2.3", + "log: ", + ] + `); }); it('list should throw an exception if a plugin does not have a package.json', function () { @@ -96,19 +85,23 @@ describe('kibana cli', function () { mkdirSync(join(pluginDir, 'empty-plugin'), { recursive: true }); expect(function () { - list(settings, logger); - }).toThrowError('Unable to read package.json file for plugin empty-plugin'); + list(pluginDir, logger); + }).toThrowErrorMatchingInlineSnapshot( + `"Unable to read kibana.json file for plugin empty-plugin"` + ); }); it('list should throw an exception if a plugin have an empty package.json', function () { createPlugin('plugin1', '1.0.0', pluginDir); const invalidPluginDir = join(pluginDir, 'invalid-plugin'); mkdirSync(invalidPluginDir, { recursive: true }); - appendFileSync(join(invalidPluginDir, 'package.json'), ''); + writeFileSync(join(invalidPluginDir, 'package.json'), ''); expect(function () { - list(settings, logger); - }).toThrowError('Unable to read package.json file for plugin invalid-plugin'); + list(pluginDir, logger); + }).toThrowErrorMatchingInlineSnapshot( + `"Unable to read kibana.json file for plugin invalid-plugin"` + ); }); }); }); diff --git a/src/cli_plugin/list/settings.js b/src/cli_plugin/list/settings.js deleted file mode 100644 index d17ce5deaec30..0000000000000 --- a/src/cli_plugin/list/settings.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * 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 function parse(command) { - const settings = { - pluginDir: command.pluginDir || '', - }; - - return settings; -} diff --git a/src/cli_plugin/list/settings.test.js b/src/cli_plugin/list/settings.test.js deleted file mode 100644 index 85e6cb88e82fd..0000000000000 --- a/src/cli_plugin/list/settings.test.js +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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 { fromRoot } from '../../core/server/utils'; -import { parse } from './settings'; - -describe('kibana cli', function () { - describe('plugin installer', function () { - describe('command line option parsing', function () { - describe('parse function', function () { - let command; - const options = {}; - beforeEach(function () { - command = { pluginDir: fromRoot('plugins') }; - }); - - describe('pluginDir option', function () { - it('should default to plugins', function () { - const settings = parse(command, options); - - expect(settings.pluginDir).toBe(fromRoot('plugins')); - }); - - it('should set settings.config property', function () { - command.pluginDir = 'foo bar baz'; - const settings = parse(command, options); - - expect(settings.pluginDir).toBe('foo bar baz'); - }); - }); - }); - }); - }); -}); diff --git a/src/cli_plugin/remove/index.js b/src/cli_plugin/remove/index.js index 9ff06e0e760bf..c3bd96086db9b 100644 --- a/src/cli_plugin/remove/index.js +++ b/src/cli_plugin/remove/index.js @@ -17,46 +17,34 @@ * under the License. */ -import { fromRoot } from '../../core/server/utils'; -import remove from './remove'; -import Logger from '../lib/logger'; +import { remove } from './remove'; +import { Logger } from '../lib/logger'; import { parse } from './settings'; import { getConfigPath } from '../../core/server/path'; -import logWarnings from '../lib/log_warnings'; -import { warnIfUsingPluginDirOption } from '../lib/warn_if_plugin_dir_option'; +import { logWarnings } from '../lib/log_warnings'; function processCommand(command, options) { let settings; try { settings = parse(command, options); } catch (ex) { - //The logger has not yet been initialized. + // The logger has not yet been initialized. console.error(ex.message); process.exit(64); // eslint-disable-line no-process-exit } const logger = new Logger(settings); - warnIfUsingPluginDirOption(settings, fromRoot('plugins'), logger); logWarnings(settings, logger); remove(settings, logger); } -export default function pluginRemove(program) { +export function removeCommand(program) { program .command('remove ') .option('-q, --quiet', 'disable all process messaging except errors') .option('-s, --silent', 'disable all process messaging') .option('-c, --config ', 'path to the config file', getConfigPath()) - .option( - '-d, --plugin-dir ', - 'path to the directory where plugins are stored (DEPRECATED, known to not work for all plugins)', - fromRoot('plugins') - ) - .description( - 'remove a plugin', - `common examples: - remove x-pack` - ) + .description('remove a plugin') .action(processCommand); } diff --git a/src/cli_plugin/remove/remove.js b/src/cli_plugin/remove/remove.js index 353e592390ff4..0c218301242be 100644 --- a/src/cli_plugin/remove/remove.js +++ b/src/cli_plugin/remove/remove.js @@ -18,11 +18,12 @@ */ import { statSync } from 'fs'; -import { errorIfXPackRemove } from '../lib/error_if_x_pack'; import del from 'del'; -export default function remove(settings, logger) { +import { errorIfXPackRemove } from '../lib/error_if_x_pack'; + +export function remove(settings, logger) { try { let stat; try { diff --git a/src/cli_plugin/remove/remove.test.js b/src/cli_plugin/remove/remove.test.js index 4bf061820aa05..44c66468bbb55 100644 --- a/src/cli_plugin/remove/remove.test.js +++ b/src/cli_plugin/remove/remove.test.js @@ -17,13 +17,15 @@ * under the License. */ +import { join } from 'path'; +import { writeFileSync, existsSync, mkdirSync } from 'fs'; + import sinon from 'sinon'; import glob from 'glob-all'; import del from 'del'; -import Logger from '../lib/logger'; -import remove from './remove'; -import { join } from 'path'; -import { writeFileSync, existsSync, mkdirSync } from 'fs'; + +import { Logger } from '../lib/logger'; +import { remove } from './remove'; describe('kibana cli', function () { describe('plugin remover', function () { diff --git a/src/cli_plugin/remove/settings.js b/src/cli_plugin/remove/settings.js index dc8d3c87e6eab..8a7d41b35ae57 100644 --- a/src/cli_plugin/remove/settings.js +++ b/src/cli_plugin/remove/settings.js @@ -19,12 +19,14 @@ import { resolve } from 'path'; +import { fromRoot } from '../../core/server/utils'; + export function parse(command, options) { const settings = { quiet: options.quiet || false, silent: options.silent || false, config: options.config || '', - pluginDir: options.pluginDir || '', + pluginDir: fromRoot('plugins'), plugin: command, }; diff --git a/src/cli_plugin/remove/settings.test.js b/src/cli_plugin/remove/settings.test.js index b3110e1ff0499..9ae555d79cd1a 100644 --- a/src/cli_plugin/remove/settings.test.js +++ b/src/cli_plugin/remove/settings.test.js @@ -17,88 +17,42 @@ * under the License. */ -import { fromRoot } from '../../core/server/utils'; -import { parse } from './settings'; - -describe('kibana cli', function () { - describe('plugin installer', function () { - describe('command line option parsing', function () { - describe('parse function', function () { - const command = 'plugin name'; - let options = {}; - const kbnPackage = { version: 1234 }; - beforeEach(function () { - options = { pluginDir: fromRoot('plugins') }; - }); - - describe('quiet option', function () { - it('should default to false', function () { - const settings = parse(command, options, kbnPackage); - - expect(settings.quiet).toBe(false); - }); - - it('should set settings.quiet property to true', function () { - options.quiet = true; - const settings = parse(command, options, kbnPackage); - - expect(settings.quiet).toBe(true); - }); - }); - - describe('silent option', function () { - it('should default to false', function () { - const settings = parse(command, options, kbnPackage); - - expect(settings.silent).toBe(false); - }); - - it('should set settings.silent property to true', function () { - options.silent = true; - const settings = parse(command, options, kbnPackage); - - expect(settings.silent).toBe(true); - }); - }); +import { createAbsolutePathSerializer } from '@kbn/dev-utils'; - describe('config option', function () { - it('should default to ZLS', function () { - const settings = parse(command, options, kbnPackage); - - expect(settings.config).toBe(''); - }); - - it('should set settings.config property', function () { - options.config = 'foo bar baz'; - const settings = parse(command, options, kbnPackage); - - expect(settings.config).toBe('foo bar baz'); - }); - }); - - describe('pluginDir option', function () { - it('should default to plugins', function () { - const settings = parse(command, options, kbnPackage); - - expect(settings.pluginDir).toBe(fromRoot('plugins')); - }); - - it('should set settings.config property', function () { - options.pluginDir = 'foo bar baz'; - const settings = parse(command, options, kbnPackage); - - expect(settings.pluginDir).toBe('foo bar baz'); - }); - }); +import { parse } from './settings'; - describe('command value', function () { - it('should set settings.plugin property', function () { - const settings = parse(command, options, kbnPackage); +const command = 'plugin name'; + +expect.addSnapshotSerializer(createAbsolutePathSerializer()); + +it('produces the defaults', () => { + expect(parse(command, {})).toMatchInlineSnapshot(` + Object { + "config": "", + "plugin": "plugin name", + "pluginDir": /plugins, + "pluginPath": /plugins/plugin name, + "quiet": false, + "silent": false, + } + `); +}); - expect(settings.plugin).toBe(command); - }); - }); - }); - }); - }); +it('overrides the defaults with the parsed cli options', () => { + expect( + parse(command, { + quiet: true, + silent: true, + config: 'foo/bar', + }) + ).toMatchInlineSnapshot(` + Object { + "config": "foo/bar", + "plugin": "plugin name", + "pluginDir": /plugins, + "pluginPath": /plugins/plugin name, + "quiet": true, + "silent": true, + } + `); }); diff --git a/yarn.lock b/yarn.lock index 332215a59e788..42c4b800e6b0c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7878,11 +7878,6 @@ builtin-status-codes@^3.0.0: resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= -builtins@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-0.0.7.tgz#355219cd6cf18dbe7c01cc7fd2dce765cfdc549a" - integrity sha1-NVIZzWzxjb58Acx/0tznZc/cVJo= - bytes@1: version "1.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" @@ -29959,13 +29954,6 @@ validate-npm-package-license@^3.0.1: spdx-correct "~1.0.0" spdx-expression-parse "~1.0.0" -validate-npm-package-name@2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz#f65695b22f7324442019a3c7fa39a6e7fd299085" - integrity sha1-9laVsi9zJEQgGaPH+jmm5/0pkIU= - dependencies: - builtins "0.0.7" - validator@^10.11.0: version "10.11.0" resolved "https://registry.yarnpkg.com/validator/-/validator-10.11.0.tgz#003108ea6e9a9874d31ccc9e5006856ccd76b228" From 4ca52e678a86bc4c9ffef02a9886f6242fdb2273 Mon Sep 17 00:00:00 2001 From: Ryland Herrick Date: Wed, 12 Aug 2020 19:26:06 -0500 Subject: [PATCH 23/27] [Security Solution][Detections] Refactor ML calls for newest ML permissions (#74582) ## Summary Addresses https://github.com/elastic/kibana/issues/73567. ML Users (role: `machine_learning_user`) were previously able to invoke the ML Recognizer API, which we use to get not-yet-installed ML Jobs relevant to our index patterns. As of https://github.com/elastic/kibana/pull/64662 this is not true, and so we receive errors from components using the underlying hook, `useSiemJobs`. To solve this I've created two separate hooks to replace `useSiemJobs`: * `useSecurityJobs` * used on ML Popover * includes uninstalled ML Jobs * checks (and returns) `isMlAdmin` before fetching data * `useInstalledSecurityJobs` * used on ML Jobs Dropdown and Anomalies Table * includes only installed ML Jobs * checks (and returns) `isMlUser` before fetching data Note that we while we now receive the knowledge to do so, we do not always inform the user in the case of invalid permissions, and instead have the following behaviors: #### User has insufficient license * ML Popover: shows an upgrade CTA * Anomalies Tables: show no data * Rule Creation: ML Rule option is disabled, shows upgrade CTA * Rule Details: ML Job Id is displayed as text #### User is ML User * ML Popover: not shown * Anomalies Tables: show no data * Rule Creation: ML Rule option is disabled * Rule Details: ML Job Id is displayed as text #### User is ML Admin * ML Popover: shown * Anomalies Tables: show data __for installed ML Jobs__ * This is the same as previous logic, but worth calling out that you can't view historical anomalies * Rule Creation: ML Rule option is enabled, all ML Jobs available * Rule Details: ML Job Id is displayed as hyperlink, job status badge shown ### Checklist - [x] [Unit or functional tests](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility) were updated or added to match the most common scenarios ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process) --- .../anomaly_detection_jobs/summary_job.ts | 4 +- x-pack/plugins/ml/public/shared.ts | 1 + .../machine_learning/has_ml_license.test.ts | 20 ++++ .../common/machine_learning/has_ml_license.ts | 10 ++ .../machine_learning/is_security_job.ts | 3 +- .../ml/anomaly/use_anomalies_table_data.ts | 28 ++--- .../components/ml/api/get_jobs_summary.ts | 35 ++++++ .../components/ml/api/get_ml_capabilities.ts | 13 ++- .../ml/hooks/use_get_jobs_summary.ts | 12 ++ .../ml/hooks/use_get_ml_capabilities.ts | 12 ++ .../hooks/use_installed_security_jobs.test.ts | 99 ++++++++++++++++ .../ml/hooks/use_installed_security_jobs.ts | 63 ++++++++++ .../hooks/use_ml_capabilities.ts} | 2 +- .../permissions/ml_capabilities_provider.tsx | 47 +++----- .../ml/tables/anomalies_host_table.tsx | 2 +- .../ml/tables/anomalies_network_table.tsx | 2 +- .../{ml_popover/hooks => ml}/translations.ts | 0 .../{__mocks__/api.tsx => api.mock.ts} | 12 +- .../components/ml_popover/{api.tsx => api.ts} | 19 --- .../components/ml_popover/helpers.test.tsx | 12 +- .../common/components/ml_popover/helpers.tsx | 8 +- .../hooks/use_security_jobs.test.ts | 110 ++++++++++++++++++ .../ml_popover/hooks/use_security_jobs.ts | 95 +++++++++++++++ ...tsx => use_security_jobs_helpers.test.tsx} | 28 ++--- ...pers.tsx => use_security_jobs_helpers.tsx} | 71 +++++------ .../ml_popover/hooks/use_siem_jobs.tsx | 81 ------------- .../jobs_table_filters.test.tsx.snap | 2 +- .../filters/groups_filter_popover.test.tsx | 15 ++- .../filters/groups_filter_popover.tsx | 14 +-- .../filters/jobs_table_filters.test.tsx | 18 +-- .../jobs_table/filters/jobs_table_filters.tsx | 16 ++- .../ml_popover/jobs_table/job_switch.test.tsx | 24 ++-- .../ml_popover/jobs_table/job_switch.tsx | 12 +- .../ml_popover/jobs_table/jobs_table.test.tsx | 24 ++-- .../ml_popover/jobs_table/jobs_table.tsx | 27 +++-- .../components/ml_popover/ml_popover.tsx | 29 +++-- .../common/components/ml_popover/types.ts | 30 +---- .../anomalies_query_tab_body/index.tsx | 6 +- .../anomalies_query_tab_body/utils.ts | 9 +- .../common/hooks/use_app_toasts.mock.ts | 14 +++ .../common/lib/kibana/__mocks__/index.ts | 1 + .../public/common/mock/kibana_core.ts | 2 + .../public/common/mock/kibana_react.ts | 18 --- .../rules/description_step/index.tsx | 6 +- .../ml_job_description.test.tsx | 25 +--- .../description_step/ml_job_description.tsx | 14 +-- .../rules/ml_job_select/index.test.tsx | 6 +- .../components/rules/ml_job_select/index.tsx | 12 +- .../rules/step_define_rule/index.tsx | 5 +- .../detection_engine/rules/all/index.tsx | 6 +- .../detection_engine/rules/details/index.tsx | 6 +- .../public/hosts/pages/details/index.tsx | 2 +- .../public/hosts/pages/hosts.tsx | 2 +- .../network/components/ip_overview/index.tsx | 2 +- .../public/network/pages/index.tsx | 2 +- .../components/host_overview/index.tsx | 2 +- 56 files changed, 733 insertions(+), 407 deletions(-) create mode 100644 x-pack/plugins/security_solution/common/machine_learning/has_ml_license.test.ts create mode 100644 x-pack/plugins/security_solution/common/machine_learning/has_ml_license.ts create mode 100644 x-pack/plugins/security_solution/public/common/components/ml/api/get_jobs_summary.ts create mode 100644 x-pack/plugins/security_solution/public/common/components/ml/hooks/use_get_jobs_summary.ts create mode 100644 x-pack/plugins/security_solution/public/common/components/ml/hooks/use_get_ml_capabilities.ts create mode 100644 x-pack/plugins/security_solution/public/common/components/ml/hooks/use_installed_security_jobs.test.ts create mode 100644 x-pack/plugins/security_solution/public/common/components/ml/hooks/use_installed_security_jobs.ts rename x-pack/plugins/security_solution/public/common/components/{ml_popover/hooks/use_ml_capabilities.tsx => ml/hooks/use_ml_capabilities.ts} (80%) rename x-pack/plugins/security_solution/public/common/components/{ml_popover/hooks => ml}/translations.ts (100%) rename x-pack/plugins/security_solution/public/common/components/ml_popover/{__mocks__/api.tsx => api.mock.ts} (99%) rename x-pack/plugins/security_solution/public/common/components/ml_popover/{api.tsx => api.ts} (89%) create mode 100644 x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_security_jobs.test.ts create mode 100644 x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_security_jobs.ts rename x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/{use_siem_jobs_helpers.test.tsx => use_security_jobs_helpers.test.tsx} (83%) rename x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/{use_siem_jobs_helpers.tsx => use_security_jobs_helpers.tsx} (59%) delete mode 100644 x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_siem_jobs.tsx create mode 100644 x-pack/plugins/security_solution/public/common/hooks/use_app_toasts.mock.ts diff --git a/x-pack/plugins/ml/common/types/anomaly_detection_jobs/summary_job.ts b/x-pack/plugins/ml/common/types/anomaly_detection_jobs/summary_job.ts index 2102673060273..d0bce8508e82e 100644 --- a/x-pack/plugins/ml/common/types/anomaly_detection_jobs/summary_job.ts +++ b/x-pack/plugins/ml/common/types/anomaly_detection_jobs/summary_job.ts @@ -36,8 +36,8 @@ export interface MlSummaryJob { export interface AuditMessage { job_id: string; msgTime: number; - level: number; - highestLevel: number; + level: string; + highestLevel: string; highestLevelText: string; text: string; } diff --git a/x-pack/plugins/ml/public/shared.ts b/x-pack/plugins/ml/public/shared.ts index 4b1d7ee733dcf..ec884bfac5351 100644 --- a/x-pack/plugins/ml/public/shared.ts +++ b/x-pack/plugins/ml/public/shared.ts @@ -9,6 +9,7 @@ export * from '../common/constants/anomalies'; export * from '../common/types/data_recognizer'; export * from '../common/types/capabilities'; export * from '../common/types/anomalies'; +export * from '../common/types/anomaly_detection_jobs'; export * from '../common/types/modules'; export * from '../common/types/audit_message'; diff --git a/x-pack/plugins/security_solution/common/machine_learning/has_ml_license.test.ts b/x-pack/plugins/security_solution/common/machine_learning/has_ml_license.test.ts new file mode 100644 index 0000000000000..1ffc2e16b78f7 --- /dev/null +++ b/x-pack/plugins/security_solution/common/machine_learning/has_ml_license.test.ts @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { emptyMlCapabilities } from './empty_ml_capabilities'; +import { hasMlLicense } from './has_ml_license'; + +describe('hasMlLicense', () => { + test('it returns false when license is not platinum or trial', () => { + const capabilities = { ...emptyMlCapabilities, isPlatinumOrTrialLicense: false }; + expect(hasMlLicense(capabilities)).toEqual(false); + }); + + test('it returns true when license is platinum or trial', () => { + const capabilities = { ...emptyMlCapabilities, isPlatinumOrTrialLicense: true }; + expect(hasMlLicense(capabilities)).toEqual(true); + }); +}); diff --git a/x-pack/plugins/security_solution/common/machine_learning/has_ml_license.ts b/x-pack/plugins/security_solution/common/machine_learning/has_ml_license.ts new file mode 100644 index 0000000000000..c0b6862ac30fe --- /dev/null +++ b/x-pack/plugins/security_solution/common/machine_learning/has_ml_license.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { MlCapabilitiesResponse } from '../../../ml/common/types/capabilities'; + +export const hasMlLicense = (capabilities: MlCapabilitiesResponse): boolean => + capabilities.isPlatinumOrTrialLicense; diff --git a/x-pack/plugins/security_solution/common/machine_learning/is_security_job.ts b/x-pack/plugins/security_solution/common/machine_learning/is_security_job.ts index 43cfa4ad59964..f5783fc9b3973 100644 --- a/x-pack/plugins/security_solution/common/machine_learning/is_security_job.ts +++ b/x-pack/plugins/security_solution/common/machine_learning/is_security_job.ts @@ -4,8 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { MlSummaryJob } from '../../../ml/common/types/anomaly_detection_jobs'; import { ML_GROUP_IDS } from '../constants'; -export const isSecurityJob = (job: MlSummaryJob): boolean => +export const isSecurityJob = (job: { groups: string[] }): boolean => job.groups.some((group) => ML_GROUP_IDS.includes(group)); diff --git a/x-pack/plugins/security_solution/public/common/components/ml/anomaly/use_anomalies_table_data.ts b/x-pack/plugins/security_solution/public/common/components/ml/anomaly/use_anomalies_table_data.ts index 6fbb308672e5d..e6597de892bff 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml/anomaly/use_anomalies_table_data.ts +++ b/x-pack/plugins/security_solution/public/common/components/ml/anomaly/use_anomalies_table_data.ts @@ -9,13 +9,11 @@ import { useState, useEffect, useMemo } from 'react'; import { DEFAULT_ANOMALY_SCORE } from '../../../../../common/constants'; import { anomaliesTableData } from '../api/anomalies_table_data'; import { InfluencerInput, Anomalies, CriteriaFields } from '../types'; -import { hasMlUserPermissions } from '../../../../../common/machine_learning/has_ml_user_permissions'; -import { useSiemJobs } from '../../ml_popover/hooks/use_siem_jobs'; -import { useMlCapabilities } from '../../ml_popover/hooks/use_ml_capabilities'; -import { useStateToaster, errorToToaster } from '../../toasters'; import * as i18n from './translations'; import { useTimeZone, useUiSetting$ } from '../../../lib/kibana'; +import { useAppToasts } from '../../../hooks/use_app_toasts'; +import { useInstalledSecurityJobs } from '../hooks/use_installed_security_jobs'; interface Args { influencers?: InfluencerInput[]; @@ -58,15 +56,13 @@ export const useAnomaliesTableData = ({ skip = false, }: Args): Return => { const [tableData, setTableData] = useState(null); - const [, siemJobs] = useSiemJobs(true); + const { isMlUser, jobs } = useInstalledSecurityJobs(); const [loading, setLoading] = useState(true); - const capabilities = useMlCapabilities(); - const userPermissions = hasMlUserPermissions(capabilities); - const [, dispatchToaster] = useStateToaster(); + const { addError } = useAppToasts(); const timeZone = useTimeZone(); const [anomalyScore] = useUiSetting$(DEFAULT_ANOMALY_SCORE); - const siemJobIds = siemJobs.filter((job) => job.isInstalled).map((job) => job.id); + const jobIds = jobs.map((job) => job.id); const startDateMs = useMemo(() => new Date(startDate).getTime(), [startDate]); const endDateMs = useMemo(() => new Date(endDate).getTime(), [endDate]); @@ -81,11 +77,11 @@ export const useAnomaliesTableData = ({ earliestMs: number, latestMs: number ) { - if (userPermissions && !skip && siemJobIds.length > 0) { + if (isMlUser && !skip && jobIds.length > 0) { try { const data = await anomaliesTableData( { - jobIds: siemJobIds, + jobIds, criteriaFields: criteriaFieldsInput, aggregationInterval: 'auto', threshold: getThreshold(anomalyScore, threshold), @@ -104,13 +100,13 @@ export const useAnomaliesTableData = ({ } } catch (error) { if (isSubscribed) { - errorToToaster({ title: i18n.SIEM_TABLE_FETCH_FAILURE, error, dispatchToaster }); + addError(error, { title: i18n.SIEM_TABLE_FETCH_FAILURE }); setLoading(false); } } - } else if (!userPermissions && isSubscribed) { + } else if (!isMlUser && isSubscribed) { setLoading(false); - } else if (siemJobIds.length === 0 && isSubscribed) { + } else if (jobIds.length === 0 && isSubscribed) { setLoading(false); } else if (isSubscribed) { setTableData(null); @@ -132,9 +128,9 @@ export const useAnomaliesTableData = ({ startDateMs, endDateMs, skip, - userPermissions, + isMlUser, // eslint-disable-next-line react-hooks/exhaustive-deps - siemJobIds.sort().join(), + jobIds.sort().join(), ]); return [loading, tableData]; diff --git a/x-pack/plugins/security_solution/public/common/components/ml/api/get_jobs_summary.ts b/x-pack/plugins/security_solution/public/common/components/ml/api/get_jobs_summary.ts new file mode 100644 index 0000000000000..15f823814d7fc --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/ml/api/get_jobs_summary.ts @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { HttpSetup } from '../../../../../../../../src/core/public'; +import { MlSummaryJob } from '../../../../../../ml/public'; + +export interface GetJobsSummaryArgs { + http: HttpSetup; + jobIds?: string[]; + signal: AbortSignal; +} + +/** + * Fetches a summary of all ML jobs currently installed + * + * @param http HTTP Service + * @param jobIds Array of job IDs to filter against + * @param signal to cancel request + * + * @throws An error if response is not OK + */ +export const getJobsSummary = async ({ + http, + jobIds, + signal, +}: GetJobsSummaryArgs): Promise => + http.fetch('/api/ml/jobs/jobs_summary', { + method: 'POST', + body: JSON.stringify({ jobIds: jobIds ?? [] }), + asSystemRequest: true, + signal, + }); diff --git a/x-pack/plugins/security_solution/public/common/components/ml/api/get_ml_capabilities.ts b/x-pack/plugins/security_solution/public/common/components/ml/api/get_ml_capabilities.ts index 32f6f888ab8d7..8ee765c1dea47 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml/api/get_ml_capabilities.ts +++ b/x-pack/plugins/security_solution/public/common/components/ml/api/get_ml_capabilities.ts @@ -4,8 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ +import { HttpSetup } from '../../../../../../../../src/core/public'; import { MlCapabilitiesResponse } from '../../../../../../ml/public'; -import { KibanaServices } from '../../../lib/kibana'; import { InfluencerInput } from '../types'; export interface Body { @@ -21,10 +21,15 @@ export interface Body { maxExamples: number; } -export const getMlCapabilities = async (signal: AbortSignal): Promise => { - return KibanaServices.get().http.fetch('/api/ml/ml_capabilities', { +export const getMlCapabilities = async ({ + http, + signal, +}: { + http: HttpSetup; + signal: AbortSignal; +}): Promise => + http.fetch('/api/ml/ml_capabilities', { method: 'GET', asSystemRequest: true, signal, }); -}; diff --git a/x-pack/plugins/security_solution/public/common/components/ml/hooks/use_get_jobs_summary.ts b/x-pack/plugins/security_solution/public/common/components/ml/hooks/use_get_jobs_summary.ts new file mode 100644 index 0000000000000..a80bfb59649cb --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/ml/hooks/use_get_jobs_summary.ts @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { useAsync, withOptionalSignal } from '../../../../shared_imports'; +import { getJobsSummary } from '../api/get_jobs_summary'; + +const _getJobsSummary = withOptionalSignal(getJobsSummary); + +export const useGetJobsSummary = () => useAsync(_getJobsSummary); diff --git a/x-pack/plugins/security_solution/public/common/components/ml/hooks/use_get_ml_capabilities.ts b/x-pack/plugins/security_solution/public/common/components/ml/hooks/use_get_ml_capabilities.ts new file mode 100644 index 0000000000000..aabd8c7b62e85 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/ml/hooks/use_get_ml_capabilities.ts @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { getMlCapabilities } from '../api/get_ml_capabilities'; +import { useAsync, withOptionalSignal } from '../../../../shared_imports'; + +const _getMlCapabilities = withOptionalSignal(getMlCapabilities); + +export const useGetMlCapabilities = () => useAsync(_getMlCapabilities); diff --git a/x-pack/plugins/security_solution/public/common/components/ml/hooks/use_installed_security_jobs.test.ts b/x-pack/plugins/security_solution/public/common/components/ml/hooks/use_installed_security_jobs.test.ts new file mode 100644 index 0000000000000..72690a1773926 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/ml/hooks/use_installed_security_jobs.test.ts @@ -0,0 +1,99 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { renderHook } from '@testing-library/react-hooks'; + +import { hasMlUserPermissions } from '../../../../../common/machine_learning/has_ml_user_permissions'; +import { hasMlLicense } from '../../../../../common/machine_learning/has_ml_license'; +import { isSecurityJob } from '../../../../../common/machine_learning/is_security_job'; +import { useAppToasts } from '../../../hooks/use_app_toasts'; +import { useAppToastsMock } from '../../../hooks/use_app_toasts.mock'; +import { mockJobsSummaryResponse } from '../../ml_popover/api.mock'; +import { getJobsSummary } from '../api/get_jobs_summary'; +import { useInstalledSecurityJobs } from './use_installed_security_jobs'; + +jest.mock('../../../../../common/machine_learning/has_ml_user_permissions'); +jest.mock('../../../../../common/machine_learning/has_ml_license'); +jest.mock('../../../hooks/use_app_toasts'); +jest.mock('../api/get_jobs_summary'); + +describe('useInstalledSecurityJobs', () => { + let appToastsMock: jest.Mocked>; + + beforeEach(() => { + appToastsMock = useAppToastsMock.create(); + (useAppToasts as jest.Mock).mockReturnValue(appToastsMock); + (getJobsSummary as jest.Mock).mockResolvedValue(mockJobsSummaryResponse); + }); + + describe('when the user has permissions', () => { + beforeEach(() => { + (hasMlUserPermissions as jest.Mock).mockReturnValue(true); + (hasMlLicense as jest.Mock).mockReturnValue(true); + }); + + it('returns jobs and permissions', async () => { + const { result, waitForNextUpdate } = renderHook(() => useInstalledSecurityJobs()); + await waitForNextUpdate(); + + expect(result.current.jobs).toHaveLength(3); + expect(result.current.jobs).toEqual( + expect.arrayContaining([ + { + datafeedId: 'datafeed-siem-api-rare_process_linux_ecs', + datafeedIndices: ['auditbeat-*'], + datafeedState: 'stopped', + description: 'SIEM Auditbeat: Detect unusually rare processes on Linux (beta)', + earliestTimestampMs: 1557353420495, + groups: ['siem'], + hasDatafeed: true, + id: 'siem-api-rare_process_linux_ecs', + isSingleMetricViewerJob: true, + jobState: 'closed', + latestTimestampMs: 1557434782207, + memory_status: 'hard_limit', + processed_record_count: 582251, + }, + ]) + ); + expect(result.current.isMlUser).toEqual(true); + expect(result.current.isLicensed).toEqual(true); + }); + + it('filters out non-security jobs', async () => { + const { result, waitForNextUpdate } = renderHook(() => useInstalledSecurityJobs()); + await waitForNextUpdate(); + + expect(result.current.jobs.length).toBeGreaterThan(0); + expect(result.current.jobs.every(isSecurityJob)).toEqual(true); + }); + + it('renders a toast error if the ML call fails', async () => { + (getJobsSummary as jest.Mock).mockRejectedValue('whoops'); + const { waitForNextUpdate } = renderHook(() => useInstalledSecurityJobs()); + await waitForNextUpdate(); + + expect(appToastsMock.addError).toHaveBeenCalledWith('whoops', { + title: 'Security job fetch failure', + }); + }); + }); + + describe('when the user does not have valid permissions', () => { + beforeEach(() => { + (hasMlUserPermissions as jest.Mock).mockReturnValue(false); + (hasMlLicense as jest.Mock).mockReturnValue(false); + }); + + it('returns empty jobs and false predicates', () => { + const { result } = renderHook(() => useInstalledSecurityJobs()); + + expect(result.current.jobs).toEqual([]); + expect(result.current.isMlUser).toEqual(false); + expect(result.current.isLicensed).toEqual(false); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/ml/hooks/use_installed_security_jobs.ts b/x-pack/plugins/security_solution/public/common/components/ml/hooks/use_installed_security_jobs.ts new file mode 100644 index 0000000000000..a9a728f81cc6c --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/ml/hooks/use_installed_security_jobs.ts @@ -0,0 +1,63 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { useEffect, useState } from 'react'; + +import { MlSummaryJob } from '../../../../../../ml/public'; +import { hasMlUserPermissions } from '../../../../../common/machine_learning/has_ml_user_permissions'; +import { hasMlLicense } from '../../../../../common/machine_learning/has_ml_license'; +import { isSecurityJob } from '../../../../../common/machine_learning/is_security_job'; +import { useAppToasts } from '../../../hooks/use_app_toasts'; +import { useHttp } from '../../../lib/kibana'; +import { useMlCapabilities } from './use_ml_capabilities'; +import * as i18n from '../translations'; +import { useGetJobsSummary } from './use_get_jobs_summary'; + +export interface UseInstalledSecurityJobsReturn { + loading: boolean; + jobs: MlSummaryJob[]; + isMlUser: boolean; + isLicensed: boolean; +} + +/** + * Returns a collection of installed ML jobs (MlSummaryJob) relevant to + * Security Solution, i.e. all installed jobs in the `security` ML group. + * Use the corresponding helper functions to filter the job list as + * necessary (running jobs, etc). + * + */ +export const useInstalledSecurityJobs = (): UseInstalledSecurityJobsReturn => { + const [jobs, setJobs] = useState([]); + const { addError } = useAppToasts(); + const mlCapabilities = useMlCapabilities(); + const http = useHttp(); + const { error, loading, result, start } = useGetJobsSummary(); + + const isMlUser = hasMlUserPermissions(mlCapabilities); + const isLicensed = hasMlLicense(mlCapabilities); + + useEffect(() => { + if (isMlUser && isLicensed) { + start({ http }); + } + }, [http, isMlUser, isLicensed, start]); + + useEffect(() => { + if (result) { + const securityJobs = result.filter(isSecurityJob); + setJobs(securityJobs); + } + }, [result]); + + useEffect(() => { + if (error) { + addError(error, { title: i18n.SIEM_JOB_FETCH_FAILURE }); + } + }, [addError, error]); + + return { isLicensed, isMlUser, jobs, loading }; +}; diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_ml_capabilities.tsx b/x-pack/plugins/security_solution/public/common/components/ml/hooks/use_ml_capabilities.ts similarity index 80% rename from x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_ml_capabilities.tsx rename to x-pack/plugins/security_solution/public/common/components/ml/hooks/use_ml_capabilities.ts index d897b2554b4fd..4f804a355e4b5 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_ml_capabilities.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml/hooks/use_ml_capabilities.ts @@ -6,6 +6,6 @@ import { useContext } from 'react'; -import { MlCapabilitiesContext } from '../../ml/permissions/ml_capabilities_provider'; +import { MlCapabilitiesContext } from '../permissions/ml_capabilities_provider'; export const useMlCapabilities = () => useContext(MlCapabilitiesContext); diff --git a/x-pack/plugins/security_solution/public/common/components/ml/permissions/ml_capabilities_provider.tsx b/x-pack/plugins/security_solution/public/common/components/ml/permissions/ml_capabilities_provider.tsx index c83271a56be5a..c12c8d78da714 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml/permissions/ml_capabilities_provider.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml/permissions/ml_capabilities_provider.tsx @@ -8,9 +8,9 @@ import React, { useState, useEffect } from 'react'; import { MlCapabilitiesResponse } from '../../../../../../ml/public'; import { emptyMlCapabilities } from '../../../../../common/machine_learning/empty_ml_capabilities'; -import { getMlCapabilities } from '../api/get_ml_capabilities'; -import { errorToToaster, useStateToaster } from '../../toasters'; - +import { useAppToasts } from '../../../hooks/use_app_toasts'; +import { useHttp } from '../../../lib/kibana'; +import { useGetMlCapabilities } from '../hooks/use_get_ml_capabilities'; import * as i18n from './translations'; interface MlCapabilitiesProvider extends MlCapabilitiesResponse { @@ -32,36 +32,27 @@ export const MlCapabilitiesProvider = React.memo<{ children: JSX.Element }>(({ c const [capabilities, setCapabilities] = useState( emptyMlCapabilitiesProvider ); - const [, dispatchToaster] = useStateToaster(); + const http = useHttp(); + const { addError } = useAppToasts(); + const { start, result, error } = useGetMlCapabilities(); useEffect(() => { - let isSubscribed = true; - const abortCtrl = new AbortController(); + start({ http }); + }, [http, start]); - async function fetchMlCapabilities() { - try { - const mlCapabilities = await getMlCapabilities(abortCtrl.signal); - if (isSubscribed) { - setCapabilities({ ...mlCapabilities, capabilitiesFetched: true }); - } - } catch (error) { - if (isSubscribed) { - errorToToaster({ - title: i18n.MACHINE_LEARNING_PERMISSIONS_FAILURE, - error, - dispatchToaster, - }); - } - } + useEffect(() => { + if (result) { + setCapabilities({ ...result, capabilitiesFetched: true }); } + }, [result]); - fetchMlCapabilities(); - return () => { - isSubscribed = false; - abortCtrl.abort(); - }; - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); + useEffect(() => { + if (error) { + addError(error, { + title: i18n.MACHINE_LEARNING_PERMISSIONS_FAILURE, + }); + } + }, [addError, error]); return ( {children} diff --git a/x-pack/plugins/security_solution/public/common/components/ml/tables/anomalies_host_table.tsx b/x-pack/plugins/security_solution/public/common/components/ml/tables/anomalies_host_table.tsx index 9bfae686b1a59..7fdf41e6b6500 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml/tables/anomalies_host_table.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml/tables/anomalies_host_table.tsx @@ -16,7 +16,7 @@ import { convertAnomaliesToHosts } from './convert_anomalies_to_hosts'; import { Loader } from '../../loader'; import { getIntervalFromAnomalies } from '../anomaly/get_interval_from_anomalies'; import { AnomaliesHostTableProps } from '../types'; -import { useMlCapabilities } from '../../ml_popover/hooks/use_ml_capabilities'; +import { useMlCapabilities } from '../hooks/use_ml_capabilities'; import { BasicTable } from './basic_table'; import { hostEquality } from './host_equality'; import { getCriteriaFromHostType } from '../criteria/get_criteria_from_host_type'; diff --git a/x-pack/plugins/security_solution/public/common/components/ml/tables/anomalies_network_table.tsx b/x-pack/plugins/security_solution/public/common/components/ml/tables/anomalies_network_table.tsx index af27d411b990d..124d8d9a794c1 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml/tables/anomalies_network_table.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml/tables/anomalies_network_table.tsx @@ -14,7 +14,7 @@ import { convertAnomaliesToNetwork } from './convert_anomalies_to_network'; import { Loader } from '../../loader'; import { AnomaliesNetworkTableProps } from '../types'; import { getAnomaliesNetworkTableColumnsCurated } from './get_anomalies_network_table_columns'; -import { useMlCapabilities } from '../../ml_popover/hooks/use_ml_capabilities'; +import { useMlCapabilities } from '../hooks/use_ml_capabilities'; import { BasicTable } from './basic_table'; import { networkEquality } from './network_equality'; import { getCriteriaFromNetworkType } from '../criteria/get_criteria_from_network_type'; diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/translations.ts b/x-pack/plugins/security_solution/public/common/components/ml/translations.ts similarity index 100% rename from x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/translations.ts rename to x-pack/plugins/security_solution/public/common/components/ml/translations.ts diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/__mocks__/api.tsx b/x-pack/plugins/security_solution/public/common/components/ml_popover/api.mock.ts similarity index 99% rename from x-pack/plugins/security_solution/public/common/components/ml_popover/__mocks__/api.tsx rename to x-pack/plugins/security_solution/public/common/components/ml_popover/api.mock.ts index 54bb0a96207e1..0e8f033ff0cf3 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/__mocks__/api.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/api.mock.ts @@ -4,16 +4,16 @@ * you may not use this file except in compliance with the Elastic License. */ +import { MlSummaryJob } from '../../../../../ml/public'; import { Group, - JobSummary, Module, RecognizerModule, SetupMlResponse, - SiemJob, + SecurityJob, StartDatafeedResponse, StopDatafeedResponse, -} from '../types'; +} from './types'; export const mockGroupsResponse: Group[] = [ { @@ -31,7 +31,7 @@ export const mockGroupsResponse: Group[] = [ { id: 'suricata', jobIds: ['suricata_alert_rate'], calendarIds: [] }, ]; -export const mockOpenedJob: JobSummary = { +export const mockOpenedJob: MlSummaryJob = { datafeedId: 'datafeed-siem-api-rare_process_linux_ecs', datafeedIndices: ['auditbeat-*'], datafeedState: 'started', @@ -48,7 +48,7 @@ export const mockOpenedJob: JobSummary = { processed_record_count: 3425264, }; -export const mockJobsSummaryResponse: JobSummary[] = [ +export const mockJobsSummaryResponse: MlSummaryJob[] = [ { id: 'rc-rare-process-windows-5', description: @@ -491,7 +491,7 @@ export const mockStopDatafeedsSuccess: StopDatafeedResponse = { 'datafeed-linux_anomalous_network_service': { stopped: true }, }; -export const mockSiemJobs: SiemJob[] = [ +export const mockSecurityJobs: SecurityJob[] = [ { id: 'linux_anomalous_network_activity_ecs', description: diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/api.tsx b/x-pack/plugins/security_solution/public/common/components/ml_popover/api.ts similarity index 89% rename from x-pack/plugins/security_solution/public/common/components/ml_popover/api.tsx rename to x-pack/plugins/security_solution/public/common/components/ml_popover/api.ts index 7c72098209a06..dd0fb33fd2bc6 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/api.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/api.ts @@ -9,7 +9,6 @@ import { CloseJobsResponse, ErrorResponse, GetModulesProps, - JobSummary, MlSetupArgs, Module, RecognizerModule, @@ -165,21 +164,3 @@ export const stopDatafeeds = async ({ return [stopDatafeedsResponse, closeJobsResponse]; }; - -/** - * Fetches a summary of all ML jobs currently installed - * - * NOTE: If not sending jobIds in the body, you must at least send an empty body or the server will - * return a 500 - * - * @param signal to cancel request - * - * @throws An error if response is not OK - */ -export const getJobsSummary = async (signal: AbortSignal): Promise => - KibanaServices.get().http.fetch('/api/ml/jobs/jobs_summary', { - method: 'POST', - body: JSON.stringify({}), - asSystemRequest: true, - signal, - }); diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/helpers.test.tsx b/x-pack/plugins/security_solution/public/common/components/ml_popover/helpers.test.tsx index 0b8da6be57e1b..2a2db46d42307 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/helpers.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/helpers.test.tsx @@ -4,14 +4,14 @@ * you may not use this file except in compliance with the Elastic License. */ -import { mockSiemJobs } from './__mocks__/api'; +import { mockSecurityJobs } from './api.mock'; import { filterJobs, getStablePatternTitles, searchFilter } from './helpers'; describe('helpers', () => { describe('filterJobs', () => { test('returns all jobs when no filter is suplied', () => { const filteredJobs = filterJobs({ - jobs: mockSiemJobs, + jobs: mockSecurityJobs, selectedGroups: [], showCustomJobs: false, showElasticJobs: false, @@ -23,17 +23,17 @@ describe('helpers', () => { describe('searchFilter', () => { test('returns all jobs when nullfilterQuery is provided', () => { - const jobsToDisplay = searchFilter(mockSiemJobs); - expect(jobsToDisplay.length).toEqual(mockSiemJobs.length); + const jobsToDisplay = searchFilter(mockSecurityJobs); + expect(jobsToDisplay.length).toEqual(mockSecurityJobs.length); }); test('returns correct DisplayJobs when filterQuery matches job.id', () => { - const jobsToDisplay = searchFilter(mockSiemJobs, 'rare_process'); + const jobsToDisplay = searchFilter(mockSecurityJobs, 'rare_process'); expect(jobsToDisplay.length).toEqual(2); }); test('returns correct DisplayJobs when filterQuery matches job.description', () => { - const jobsToDisplay = searchFilter(mockSiemJobs, 'Detect unusually'); + const jobsToDisplay = searchFilter(mockSecurityJobs, 'Detect unusually'); expect(jobsToDisplay.length).toEqual(2); }); }); diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/helpers.tsx b/x-pack/plugins/security_solution/public/common/components/ml_popover/helpers.tsx index 5989d052f7cd2..daf9da855c0f9 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/helpers.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/helpers.tsx @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { SiemJob } from './types'; +import { SecurityJob } from './types'; /** * Returns a filtered array of Jobs according to JobsTableFilters selections @@ -22,12 +22,12 @@ export const filterJobs = ({ showElasticJobs, filterQuery, }: { - jobs: SiemJob[]; + jobs: SecurityJob[]; selectedGroups: string[]; showCustomJobs: boolean; showElasticJobs: boolean; filterQuery: string; -}): SiemJob[] => +}): SecurityJob[] => searchFilter( jobs .filter((job) => !showCustomJobs || (showCustomJobs && !job.isElasticJob)) @@ -44,7 +44,7 @@ export const filterJobs = ({ * @param jobs to filter * @param filterQuery user-provided search string to filter for occurrence in job names/description */ -export const searchFilter = (jobs: SiemJob[], filterQuery?: string): SiemJob[] => +export const searchFilter = (jobs: SecurityJob[], filterQuery?: string): SecurityJob[] => jobs.filter((job) => filterQuery == null ? true diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_security_jobs.test.ts b/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_security_jobs.test.ts new file mode 100644 index 0000000000000..80f50912a84f2 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_security_jobs.test.ts @@ -0,0 +1,110 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { renderHook } from '@testing-library/react-hooks'; + +import { hasMlAdminPermissions } from '../../../../../common/machine_learning/has_ml_admin_permissions'; +import { hasMlLicense } from '../../../../../common/machine_learning/has_ml_license'; +import { useAppToasts } from '../../../hooks/use_app_toasts'; +import { useAppToastsMock } from '../../../hooks/use_app_toasts.mock'; +import { getJobsSummary } from '../../ml/api/get_jobs_summary'; +import { checkRecognizer, getModules } from '../api'; +import { SecurityJob } from '../types'; +import { + mockJobsSummaryResponse, + mockGetModuleResponse, + checkRecognizerSuccess, +} from '../api.mock'; +import { useSecurityJobs } from './use_security_jobs'; + +jest.mock('../../../../../common/machine_learning/has_ml_admin_permissions'); +jest.mock('../../../../../common/machine_learning/has_ml_license'); +jest.mock('../../../lib/kibana'); +jest.mock('../../../hooks/use_app_toasts'); +jest.mock('../../ml/hooks/use_ml_capabilities'); +jest.mock('../../ml/api/get_jobs_summary'); +jest.mock('../api'); + +describe('useSecurityJobs', () => { + let appToastsMock: jest.Mocked>; + + beforeEach(() => { + appToastsMock = useAppToastsMock.create(); + (useAppToasts as jest.Mock).mockReturnValue(appToastsMock); + }); + + describe('when user has valid permissions', () => { + beforeEach(() => { + (hasMlAdminPermissions as jest.Mock).mockReturnValue(true); + (hasMlLicense as jest.Mock).mockReturnValue(true); + (getJobsSummary as jest.Mock).mockResolvedValue(mockJobsSummaryResponse); + (getModules as jest.Mock).mockResolvedValue(mockGetModuleResponse); + (checkRecognizer as jest.Mock).mockResolvedValue(checkRecognizerSuccess); + }); + + it('combines multiple ML calls into an array of SecurityJobs', async () => { + const expectedSecurityJob: SecurityJob = { + datafeedId: 'datafeed-siem-api-rare_process_linux_ecs', + datafeedIndices: ['auditbeat-*'], + datafeedState: 'stopped', + defaultIndexPattern: '', + description: 'SIEM Auditbeat: Detect unusually rare processes on Linux (beta)', + earliestTimestampMs: 1557353420495, + groups: ['siem'], + hasDatafeed: true, + id: 'siem-api-rare_process_linux_ecs', + isCompatible: true, + isElasticJob: false, + isInstalled: true, + isSingleMetricViewerJob: true, + jobState: 'closed', + latestTimestampMs: 1557434782207, + memory_status: 'hard_limit', + moduleId: '', + processed_record_count: 582251, + }; + + const { result, waitForNextUpdate } = renderHook(() => useSecurityJobs(false)); + await waitForNextUpdate(); + + expect(result.current.jobs).toHaveLength(6); + expect(result.current.jobs).toEqual(expect.arrayContaining([expectedSecurityJob])); + }); + + it('returns those permissions', async () => { + const { result, waitForNextUpdate } = renderHook(() => useSecurityJobs(false)); + await waitForNextUpdate(); + + expect(result.current.isMlAdmin).toEqual(true); + expect(result.current.isLicensed).toEqual(true); + }); + + it('renders a toast error if an ML call fails', async () => { + (getModules as jest.Mock).mockRejectedValue('whoops'); + const { waitForNextUpdate } = renderHook(() => useSecurityJobs(false)); + await waitForNextUpdate(); + + expect(appToastsMock.addError).toHaveBeenCalledWith('whoops', { + title: 'Security job fetch failure', + }); + }); + }); + + describe('when the user does not have valid permissions', () => { + beforeEach(() => { + (hasMlAdminPermissions as jest.Mock).mockReturnValue(false); + (hasMlLicense as jest.Mock).mockReturnValue(false); + }); + + it('returns empty jobs and false predicates', () => { + const { result } = renderHook(() => useSecurityJobs(false)); + + expect(result.current.jobs).toEqual([]); + expect(result.current.isMlAdmin).toEqual(false); + expect(result.current.isLicensed).toEqual(false); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_security_jobs.ts b/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_security_jobs.ts new file mode 100644 index 0000000000000..e8809e8366eed --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_security_jobs.ts @@ -0,0 +1,95 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { useEffect, useState } from 'react'; + +import { DEFAULT_INDEX_KEY } from '../../../../../common/constants'; +import { hasMlAdminPermissions } from '../../../../../common/machine_learning/has_ml_admin_permissions'; +import { hasMlLicense } from '../../../../../common/machine_learning/has_ml_license'; +import { useAppToasts } from '../../../hooks/use_app_toasts'; +import { useUiSetting$, useHttp } from '../../../lib/kibana'; +import { checkRecognizer, getModules } from '../api'; +import { SecurityJob } from '../types'; +import { createSecurityJobs } from './use_security_jobs_helpers'; +import { useMlCapabilities } from '../../ml/hooks/use_ml_capabilities'; +import * as i18n from '../../ml/translations'; +import { getJobsSummary } from '../../ml/api/get_jobs_summary'; + +export interface UseSecurityJobsReturn { + loading: boolean; + jobs: SecurityJob[]; + isMlAdmin: boolean; + isLicensed: boolean; +} + +/** + * Compiles a collection of SecurityJobs, which are a list of all jobs relevant to the Security Solution App. This + * includes all installed jobs in the `Security` ML group, and all jobs within ML Modules defined in + * ml_module (whether installed or not). Use the corresponding helper functions to filter the job + * list as necessary. E.g. installed jobs, running jobs, etc. + * + * NOTE: If the user is not an ml admin, jobs will be empty and isMlAdmin will be false. + * + * @param refetchData + */ +export const useSecurityJobs = (refetchData: boolean): UseSecurityJobsReturn => { + const [jobs, setJobs] = useState([]); + const [loading, setLoading] = useState(true); + const mlCapabilities = useMlCapabilities(); + const [siemDefaultIndex] = useUiSetting$(DEFAULT_INDEX_KEY); + const http = useHttp(); + const { addError } = useAppToasts(); + + const isMlAdmin = hasMlAdminPermissions(mlCapabilities); + const isLicensed = hasMlLicense(mlCapabilities); + + useEffect(() => { + let isSubscribed = true; + const abortCtrl = new AbortController(); + setLoading(true); + + async function fetchSecurityJobIdsFromGroupsData() { + if (isMlAdmin && isLicensed) { + try { + // Batch fetch all installed jobs, ML modules, and check which modules are compatible with siemDefaultIndex + const [jobSummaryData, modulesData, compatibleModules] = await Promise.all([ + getJobsSummary({ http, signal: abortCtrl.signal }), + getModules({ signal: abortCtrl.signal }), + checkRecognizer({ + indexPatternName: siemDefaultIndex, + signal: abortCtrl.signal, + }), + ]); + + const compositeSecurityJobs = createSecurityJobs( + jobSummaryData, + modulesData, + compatibleModules + ); + + if (isSubscribed) { + setJobs(compositeSecurityJobs); + } + } catch (error) { + if (isSubscribed) { + addError(error, { title: i18n.SIEM_JOB_FETCH_FAILURE }); + } + } + } + if (isSubscribed) { + setLoading(false); + } + } + + fetchSecurityJobIdsFromGroupsData(); + return () => { + isSubscribed = false; + abortCtrl.abort(); + }; + }, [refetchData, isMlAdmin, isLicensed, siemDefaultIndex, addError, http]); + + return { isLicensed, isMlAdmin, jobs, loading }; +}; diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_siem_jobs_helpers.test.tsx b/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_security_jobs_helpers.test.tsx similarity index 83% rename from x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_siem_jobs_helpers.test.tsx rename to x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_security_jobs_helpers.test.tsx index fc9f369a305aa..7fb4e6f59d9f7 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_siem_jobs_helpers.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_security_jobs_helpers.test.tsx @@ -6,29 +6,29 @@ import { composeModuleAndInstalledJobs, - createSiemJobs, + createSecurityJobs, getAugmentedFields, getInstalledJobs, getModuleJobs, - moduleToSiemJob, -} from './use_siem_jobs_helpers'; + moduleToSecurityJob, +} from './use_security_jobs_helpers'; import { checkRecognizerSuccess, mockGetModuleResponse, mockJobsSummaryResponse, -} from '../__mocks__/api'; +} from '../api.mock'; // TODO: Expand test coverage -describe('useSiemJobsHelpers', () => { - describe('moduleToSiemJob', () => { - test('correctly converts module to SiemJob', () => { - const siemJob = moduleToSiemJob( +describe('useSecurityJobsHelpers', () => { + describe('moduleToSecurityJob', () => { + test('correctly converts module to SecurityJob', () => { + const securityJob = moduleToSecurityJob( mockGetModuleResponse[0], mockGetModuleResponse[0].jobs[0], false ); - expect(siemJob).toEqual({ + expect(securityJob).toEqual({ datafeedId: '', datafeedIndices: [], datafeedState: '', @@ -86,19 +86,19 @@ describe('useSiemJobsHelpers', () => { const installedJobs = getInstalledJobs(mockJobsSummaryResponse, moduleJobs, [ 'siem_auditbeat', ]); - const siemJobs = composeModuleAndInstalledJobs(installedJobs, moduleJobs); - expect(siemJobs.length).toEqual(6); + const securityJobs = composeModuleAndInstalledJobs(installedJobs, moduleJobs); + expect(securityJobs.length).toEqual(6); }); }); - describe('createSiemJobs', () => { + describe('createSecurityJobs', () => { test('returns correct number of jobs when creating jobs with successful responses', () => { - const siemJobs = createSiemJobs( + const securityJobs = createSecurityJobs( mockJobsSummaryResponse, mockGetModuleResponse, checkRecognizerSuccess ); - expect(siemJobs.length).toEqual(6); + expect(securityJobs.length).toEqual(6); }); }); }); diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_siem_jobs_helpers.tsx b/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_security_jobs_helpers.tsx similarity index 59% rename from x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_siem_jobs_helpers.tsx rename to x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_security_jobs_helpers.tsx index adbd712ffeb3e..d0109fd29b5fb 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_siem_jobs_helpers.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_security_jobs_helpers.tsx @@ -5,26 +5,26 @@ */ import { - AugmentedSiemJobFields, - JobSummary, + AugmentedSecurityJobFields, Module, ModuleJob, RecognizerModule, - SiemJob, + SecurityJob, } from '../types'; import { mlModules } from '../ml_modules'; +import { MlSummaryJob } from '../../../../../../ml/public'; /** - * Helper function for converting from ModuleJob -> SiemJob + * Helper function for converting from ModuleJob -> SecurityJob * @param module * @param moduleJob * @param isCompatible */ -export const moduleToSiemJob = ( +export const moduleToSecurityJob = ( module: Module, moduleJob: ModuleJob, isCompatible: boolean -): SiemJob => { +): SecurityJob => { return { datafeedId: '', datafeedIndices: [], @@ -46,7 +46,7 @@ export const moduleToSiemJob = ( }; /** - * Returns fields necessary to augment a ModuleJob to a SiemJob + * Returns fields necessary to augment a ModuleJob to a SecurityJob * * @param jobId * @param moduleJobs @@ -54,9 +54,9 @@ export const moduleToSiemJob = ( */ export const getAugmentedFields = ( jobId: string, - moduleJobs: SiemJob[], + moduleJobs: SecurityJob[], compatibleModuleIds: string[] -): AugmentedSiemJobFields => { +): AugmentedSecurityJobFields => { const moduleJob = moduleJobs.find((mj) => mj.id === jobId); return moduleJob !== undefined ? { @@ -74,24 +74,27 @@ export const getAugmentedFields = ( }; /** - * Process Modules[] from the `get_module` ML API into SiemJobs[] by filtering to SIEM specific + * Process Modules[] from the `get_module` ML API into SecurityJobs[] by filtering to Security specific * modules and unpacking jobs from each module * * @param modulesData * @param compatibleModuleIds */ -export const getModuleJobs = (modulesData: Module[], compatibleModuleIds: string[]): SiemJob[] => +export const getModuleJobs = ( + modulesData: Module[], + compatibleModuleIds: string[] +): SecurityJob[] => modulesData .filter((module) => mlModules.includes(module.id)) .map((module) => [ ...module.jobs.map((moduleJob) => - moduleToSiemJob(module, moduleJob, compatibleModuleIds.includes(module.id)) + moduleToSecurityJob(module, moduleJob, compatibleModuleIds.includes(module.id)) ), ]) .flat(); /** - * Process JobSummary[] from the `jobs_summary` ML API into SiemJobs[] by filtering to to SIEM jobs + * Process data from the `jobs_summary` ML API into SecurityJobs[] by filtering to Security jobs * and augmenting with moduleId/defaultIndexPattern/isCompatible * * @param jobSummaryData @@ -99,57 +102,57 @@ export const getModuleJobs = (modulesData: Module[], compatibleModuleIds: string * @param compatibleModuleIds */ export const getInstalledJobs = ( - jobSummaryData: JobSummary[], - moduleJobs: SiemJob[], + jobSummaryData: MlSummaryJob[], + moduleJobs: SecurityJob[], compatibleModuleIds: string[] -): SiemJob[] => +): SecurityJob[] => jobSummaryData .filter(({ groups }) => groups.includes('siem') || groups.includes('security')) - .map((jobSummary) => ({ + .map((jobSummary) => ({ ...jobSummary, ...getAugmentedFields(jobSummary.id, moduleJobs, compatibleModuleIds), isInstalled: true, })); /** - * Combines installed jobs + moduleSiemJobs that don't overlap and sorts by name asc + * Combines installed jobs + moduleSecurityJobs that don't overlap and sorts by name asc * * @param installedJobs - * @param moduleSiemJobs + * @param moduleSecurityJobs */ export const composeModuleAndInstalledJobs = ( - installedJobs: SiemJob[], - moduleSiemJobs: SiemJob[] -): SiemJob[] => { + installedJobs: SecurityJob[], + moduleSecurityJobs: SecurityJob[] +): SecurityJob[] => { const installedJobsIds = installedJobs.map((installedJob) => installedJob.id); return [ ...installedJobs, - ...moduleSiemJobs.filter((mj) => !installedJobsIds.includes(mj.id)), + ...moduleSecurityJobs.filter((mj) => !installedJobsIds.includes(mj.id)), ].sort((a, b) => a.id.localeCompare(b.id)); }; /** - * Creates a list of SiemJobs by composing JobSummary jobs (installed jobs) and Module - * jobs (pre-packaged SIEM jobs) into a single job object that can be used throughout the SIEM app + * Creates a list of SecurityJobs by composing jobs summaries (installed jobs) and Module + * jobs (pre-packaged Security jobs) into a single job object that can be used throughout the Security app * * @param jobSummaryData * @param modulesData * @param compatibleModules */ -export const createSiemJobs = ( - jobSummaryData: JobSummary[], +export const createSecurityJobs = ( + jobSummaryData: MlSummaryJob[], modulesData: Module[], compatibleModules: RecognizerModule[] -): SiemJob[] => { +): SecurityJob[] => { // Create lookup of compatible modules const compatibleModuleIds = compatibleModules.map((module) => module.id); - // Process modulesData: Filter to SIEM specific modules, and unpack jobs from modules - const moduleSiemJobs = getModuleJobs(modulesData, compatibleModuleIds); + // Process modulesData: Filter to Security specific modules, and unpack jobs from modules + const moduleSecurityJobs = getModuleJobs(modulesData, compatibleModuleIds); - // Process jobSummaryData: Filter to SIEM jobs, and augment with moduleId/defaultIndexPattern/isCompatible - const installedJobs = getInstalledJobs(jobSummaryData, moduleSiemJobs, compatibleModuleIds); + // Process jobSummaryData: Filter to Security jobs, and augment with moduleId/defaultIndexPattern/isCompatible + const installedJobs = getInstalledJobs(jobSummaryData, moduleSecurityJobs, compatibleModuleIds); - // Combine installed jobs + moduleSiemJobs that don't overlap, and sort by name asc - return composeModuleAndInstalledJobs(installedJobs, moduleSiemJobs); + // Combine installed jobs + moduleSecurityJobs that don't overlap, and sort by name asc + return composeModuleAndInstalledJobs(installedJobs, moduleSecurityJobs); }; diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_siem_jobs.tsx b/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_siem_jobs.tsx deleted file mode 100644 index 7f0a8dea1913e..0000000000000 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/hooks/use_siem_jobs.tsx +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { useEffect, useState } from 'react'; - -import { DEFAULT_INDEX_KEY } from '../../../../../common/constants'; -import { checkRecognizer, getJobsSummary, getModules } from '../api'; -import { SiemJob } from '../types'; -import { hasMlUserPermissions } from '../../../../../common/machine_learning/has_ml_user_permissions'; -import { errorToToaster, useStateToaster } from '../../toasters'; -import { useUiSetting$ } from '../../../lib/kibana'; - -import * as i18n from './translations'; -import { createSiemJobs } from './use_siem_jobs_helpers'; -import { useMlCapabilities } from './use_ml_capabilities'; - -type Return = [boolean, SiemJob[]]; - -/** - * Compiles a collection of SiemJobs, which are a list of all jobs relevant to the SIEM App. This - * includes all installed jobs in the `SIEM` ML group, and all jobs within ML Modules defined in - * ml_module (whether installed or not). Use the corresponding helper functions to filter the job - * list as necessary. E.g. installed jobs, running jobs, etc. - * - * @param refetchData - */ -export const useSiemJobs = (refetchData: boolean): Return => { - const [siemJobs, setSiemJobs] = useState([]); - const [loading, setLoading] = useState(true); - const mlCapabilities = useMlCapabilities(); - const userPermissions = hasMlUserPermissions(mlCapabilities); - const [siemDefaultIndex] = useUiSetting$(DEFAULT_INDEX_KEY); - const [, dispatchToaster] = useStateToaster(); - - useEffect(() => { - let isSubscribed = true; - const abortCtrl = new AbortController(); - setLoading(true); - - async function fetchSiemJobIdsFromGroupsData() { - if (userPermissions) { - try { - // Batch fetch all installed jobs, ML modules, and check which modules are compatible with siemDefaultIndex - const [jobSummaryData, modulesData, compatibleModules] = await Promise.all([ - getJobsSummary(abortCtrl.signal), - getModules({ signal: abortCtrl.signal }), - checkRecognizer({ - indexPatternName: siemDefaultIndex, - signal: abortCtrl.signal, - }), - ]); - - const compositeSiemJobs = createSiemJobs(jobSummaryData, modulesData, compatibleModules); - - if (isSubscribed) { - setSiemJobs(compositeSiemJobs); - } - } catch (error) { - if (isSubscribed) { - errorToToaster({ title: i18n.SIEM_JOB_FETCH_FAILURE, error, dispatchToaster }); - } - } - } - if (isSubscribed) { - setLoading(false); - } - } - - fetchSiemJobIdsFromGroupsData(); - return () => { - isSubscribed = false; - abortCtrl.abort(); - }; - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [refetchData, userPermissions]); - - return [loading, siemJobs]; -}; diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/filters/__snapshots__/jobs_table_filters.test.tsx.snap b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/filters/__snapshots__/jobs_table_filters.test.tsx.snap index 747ac63551b55..9bee321e9fbde 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/filters/__snapshots__/jobs_table_filters.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/filters/__snapshots__/jobs_table_filters.test.tsx.snap @@ -25,7 +25,7 @@ exports[`JobsTableFilters renders correctly against snapshot 1`] = ` { - let siemJobs: SiemJob[]; + let securityJobs: SecurityJob[]; beforeEach(() => { - siemJobs = cloneDeep(mockSiemJobs); + securityJobs = cloneDeep(mockSecurityJobs); }); test('renders correctly against snapshot', () => { const wrapper = shallow( - + ); expect(wrapper).toMatchSnapshot(); }); @@ -29,7 +32,7 @@ describe('GroupsFilterPopover', () => { const mockOnSelectedGroupsChanged = jest.fn(); const wrapper = mount( ); diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/filters/groups_filter_popover.tsx b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/filters/groups_filter_popover.tsx index d879942b8b101..362fb94dc1ec4 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/filters/groups_filter_popover.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/filters/groups_filter_popover.tsx @@ -15,30 +15,30 @@ import { EuiSpacer, } from '@elastic/eui'; import * as i18n from './translations'; -import { SiemJob } from '../../types'; +import { SecurityJob } from '../../types'; import { toggleSelectedGroup } from './toggle_selected_group'; interface GroupsFilterPopoverProps { - siemJobs: SiemJob[]; + securityJobs: SecurityJob[]; onSelectedGroupsChanged: Dispatch>; } /** - * Popover for selecting which SiemJob groups to filter on. Component extracts unique groups and - * their counts from the provided SiemJobs. The 'siem' & 'security' groups are filtered out as all jobs will be + * Popover for selecting which SecurityJob groups to filter on. Component extracts unique groups and + * their counts from the provided SecurityJobs. The 'siem' & 'security' groups are filtered out as all jobs will be * siem/security jobs * - * @param siemJobs jobs to fetch groups from to display for filtering + * @param securityJobs jobs to fetch groups from to display for filtering * @param onSelectedGroupsChanged change listener to be notified when group selection changes */ export const GroupsFilterPopoverComponent = ({ - siemJobs, + securityJobs, onSelectedGroupsChanged, }: GroupsFilterPopoverProps) => { const [isGroupPopoverOpen, setIsGroupPopoverOpen] = useState(false); const [selectedGroups, setSelectedGroups] = useState([]); - const groups = siemJobs + const groups = securityJobs .map((j) => j.groups) .flat() .filter((g) => g !== 'siem' && g !== 'security'); diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/filters/jobs_table_filters.test.tsx b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/filters/jobs_table_filters.test.tsx index 5b656adc3e581..6b7699d57aedf 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/filters/jobs_table_filters.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/filters/jobs_table_filters.test.tsx @@ -7,20 +7,20 @@ import { mount, shallow } from 'enzyme'; import React from 'react'; import { JobsTableFiltersComponent } from './jobs_table_filters'; -import { SiemJob } from '../../types'; +import { SecurityJob } from '../../types'; import { cloneDeep } from 'lodash/fp'; -import { mockSiemJobs } from '../../__mocks__/api'; +import { mockSecurityJobs } from '../../api.mock'; describe('JobsTableFilters', () => { - let siemJobs: SiemJob[]; + let securityJobs: SecurityJob[]; beforeEach(() => { - siemJobs = cloneDeep(mockSiemJobs); + securityJobs = cloneDeep(mockSecurityJobs); }); test('renders correctly against snapshot', () => { const wrapper = shallow( - + ); expect(wrapper).toMatchSnapshot(); }); @@ -28,7 +28,7 @@ describe('JobsTableFilters', () => { test('when you click Elastic Jobs filter, state is updated and it is selected', () => { const onFilterChanged = jest.fn(); const wrapper = mount( - + ); wrapper.find('[data-test-subj="show-elastic-jobs-filter-button"]').first().simulate('click'); @@ -45,7 +45,7 @@ describe('JobsTableFilters', () => { test('when you click Custom Jobs filter, state is updated and it is selected', () => { const onFilterChanged = jest.fn(); const wrapper = mount( - + ); wrapper.find('[data-test-subj="show-custom-jobs-filter-button"]').first().simulate('click'); @@ -62,7 +62,7 @@ describe('JobsTableFilters', () => { test('when you click Custom Jobs filter once, then Elastic Jobs filter, state is updated and selected changed', () => { const onFilterChanged = jest.fn(); const wrapper = mount( - + ); wrapper.find('[data-test-subj="show-custom-jobs-filter-button"]').first().simulate('click'); @@ -88,7 +88,7 @@ describe('JobsTableFilters', () => { test('when you click Custom Jobs filter twice, state is updated and it is revert', () => { const onFilterChanged = jest.fn(); const wrapper = mount( - + ); wrapper.find('[data-test-subj="show-custom-jobs-filter-button"]').first().simulate('click'); diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/filters/jobs_table_filters.tsx b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/filters/jobs_table_filters.tsx index 4cfb7f8ad2b5b..f25ea667b3411 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/filters/jobs_table_filters.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/filters/jobs_table_filters.tsx @@ -15,11 +15,11 @@ import { } from '@elastic/eui'; import { EuiSearchBarQuery } from '../../../../../timelines/components/open_timeline/types'; import * as i18n from './translations'; -import { JobsFilters, SiemJob } from '../../types'; +import { JobsFilters, SecurityJob } from '../../types'; import { GroupsFilterPopover } from './groups_filter_popover'; interface JobsTableFiltersProps { - siemJobs: SiemJob[]; + securityJobs: SecurityJob[]; onFilterChanged: Dispatch>; } @@ -27,10 +27,13 @@ interface JobsTableFiltersProps { * Collection of filters for filtering data within the JobsTable. Contains search bar, Elastic/Custom * Jobs filter button toggle, and groups selection * - * @param siemJobs jobs to fetch groups from to display for filtering + * @param securityJobs jobs to fetch groups from to display for filtering * @param onFilterChanged change listener to be notified on filter changes */ -export const JobsTableFiltersComponent = ({ siemJobs, onFilterChanged }: JobsTableFiltersProps) => { +export const JobsTableFiltersComponent = ({ + securityJobs, + onFilterChanged, +}: JobsTableFiltersProps) => { const [filterQuery, setFilterQuery] = useState(''); const [selectedGroups, setSelectedGroups] = useState([]); const [showCustomJobs, setShowCustomJobs] = useState(false); @@ -71,7 +74,10 @@ export const JobsTableFiltersComponent = ({ siemJobs, onFilterChanged }: JobsTab - + diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/job_switch.test.tsx b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/job_switch.test.tsx index ade8c6fe80525..e58d76bd1dde0 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/job_switch.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/job_switch.test.tsx @@ -9,22 +9,22 @@ import React from 'react'; import { JobSwitchComponent } from './job_switch'; import { cloneDeep } from 'lodash/fp'; -import { mockSiemJobs } from '../__mocks__/api'; -import { SiemJob } from '../types'; +import { mockSecurityJobs } from '../api.mock'; +import { SecurityJob } from '../types'; describe('JobSwitch', () => { - let siemJobs: SiemJob[]; + let securityJobs: SecurityJob[]; let onJobStateChangeMock = jest.fn(); beforeEach(() => { - siemJobs = cloneDeep(mockSiemJobs); + securityJobs = cloneDeep(mockSecurityJobs); onJobStateChangeMock = jest.fn(); }); test('renders correctly against snapshot', () => { const wrapper = shallow( ); @@ -34,8 +34,8 @@ describe('JobSwitch', () => { test('should call onJobStateChange when the switch is clicked to be true/open', () => { const wrapper = mount( ); @@ -57,8 +57,8 @@ describe('JobSwitch', () => { test('should have a switch when it is not in the loading state', () => { const wrapper = mount( ); @@ -68,8 +68,8 @@ describe('JobSwitch', () => { test('should not have a switch when it is in the loading state', () => { const wrapper = mount( ); diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/job_switch.tsx b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/job_switch.tsx index d370d475bd6e5..3ad71ee6b6919 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/job_switch.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/job_switch.tsx @@ -12,7 +12,7 @@ import { isJobFailed, isJobStarted, } from '../../../../../common/machine_learning/helpers'; -import { SiemJob } from '../types'; +import { SecurityJob } from '../types'; const StaticSwitch = styled(EuiSwitch)` .euiSwitch__thumb, @@ -24,14 +24,14 @@ const StaticSwitch = styled(EuiSwitch)` StaticSwitch.displayName = 'StaticSwitch'; export interface JobSwitchProps { - job: SiemJob; - isSiemJobsLoading: boolean; - onJobStateChange: (job: SiemJob, latestTimestampMs: number, enable: boolean) => Promise; + job: SecurityJob; + isSecurityJobsLoading: boolean; + onJobStateChange: (job: SecurityJob, latestTimestampMs: number, enable: boolean) => Promise; } export const JobSwitchComponent = ({ job, - isSiemJobsLoading, + isSecurityJobsLoading, onJobStateChange, }: JobSwitchProps) => { const [isLoading, setIsLoading] = useState(false); @@ -47,7 +47,7 @@ export const JobSwitchComponent = ({ return ( - {isSiemJobsLoading || isLoading || isJobLoading(job.jobState, job.datafeedState) ? ( + {isSecurityJobsLoading || isLoading || isJobLoading(job.jobState, job.datafeedState) ? ( ) : ( { - let siemJobs: SiemJob[]; + let securityJobs: SecurityJob[]; let onJobStateChangeMock = jest.fn(); beforeEach(() => { - siemJobs = cloneDeep(mockSiemJobs); + securityJobs = cloneDeep(mockSecurityJobs); onJobStateChangeMock = jest.fn(); }); @@ -25,7 +25,7 @@ describe('JobsTableComponent', () => { const wrapper = shallow( ); @@ -36,7 +36,7 @@ describe('JobsTableComponent', () => { const wrapper = mount( ); @@ -46,11 +46,11 @@ describe('JobsTableComponent', () => { }); test('should render the hyperlink with URI encodings which points specifically to the job id', () => { - siemJobs[0].id = 'job id with spaces'; + securityJobs[0].id = 'job id with spaces'; const wrapper = mount( ); @@ -63,7 +63,7 @@ describe('JobsTableComponent', () => { const wrapper = mount( ); @@ -73,14 +73,14 @@ describe('JobsTableComponent', () => { .simulate('click', { target: { checked: true }, }); - expect(onJobStateChangeMock.mock.calls[0]).toEqual([siemJobs[0], 1571022859393, true]); + expect(onJobStateChangeMock.mock.calls[0]).toEqual([securityJobs[0], 1571022859393, true]); }); test('should have a switch when it is not in the loading state', () => { const wrapper = mount( ); @@ -91,7 +91,7 @@ describe('JobsTableComponent', () => { const wrapper = mount( ); diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/jobs_table.tsx b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/jobs_table.tsx index f28a99c9947d5..be911a1cd8537 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/jobs_table.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/jobs_table.tsx @@ -25,7 +25,7 @@ import styled from 'styled-components'; import { useBasePath } from '../../../lib/kibana'; import * as i18n from './translations'; import { JobSwitch } from './job_switch'; -import { SiemJob } from '../types'; +import { SecurityJob } from '../types'; const JobNameWrapper = styled.div` margin: 5px 0; @@ -38,12 +38,12 @@ const truncateThreshold = 200; const getJobsTableColumns = ( isLoading: boolean, - onJobStateChange: (job: SiemJob, latestTimestampMs: number, enable: boolean) => Promise, + onJobStateChange: (job: SecurityJob, latestTimestampMs: number, enable: boolean) => Promise, basePath: string ) => [ { name: i18n.COLUMN_JOB_NAME, - render: ({ id, description }: SiemJob) => ( + render: ({ id, description }: SecurityJob) => ( ( + render: ({ groups }: SecurityJob) => ( {groups.map((group) => ( @@ -76,9 +76,13 @@ const getJobsTableColumns = ( { name: i18n.COLUMN_RUN_JOB, - render: (job: SiemJob) => + render: (job: SecurityJob) => job.isCompatible ? ( - + ) : ( ), @@ -87,13 +91,16 @@ const getJobsTableColumns = ( } as const, ]; -const getPaginatedItems = (items: SiemJob[], pageIndex: number, pageSize: number): SiemJob[] => - items.slice(pageIndex * pageSize, pageIndex * pageSize + pageSize); +const getPaginatedItems = ( + items: SecurityJob[], + pageIndex: number, + pageSize: number +): SecurityJob[] => items.slice(pageIndex * pageSize, pageIndex * pageSize + pageSize); export interface JobTableProps { isLoading: boolean; - jobs: SiemJob[]; - onJobStateChange: (job: SiemJob, latestTimestampMs: number, enable: boolean) => Promise; + jobs: SecurityJob[]; + onJobStateChange: (job: SecurityJob, latestTimestampMs: number, enable: boolean) => Promise; } export const JobsTableComponent = ({ isLoading, jobs, onJobStateChange }: JobTableProps) => { diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/ml_popover.tsx b/x-pack/plugins/security_solution/public/common/components/ml_popover/ml_popover.tsx index 0ebf367471848..f2bf2273c4b3f 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/ml_popover.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/ml_popover.tsx @@ -12,19 +12,17 @@ import styled from 'styled-components'; import { useKibana } from '../../lib/kibana'; import { METRIC_TYPE, TELEMETRY_EVENT, track } from '../../lib/telemetry'; -import { hasMlAdminPermissions } from '../../../../common/machine_learning/has_ml_admin_permissions'; import { errorToToaster, useStateToaster, ActionToaster } from '../toasters'; import { setupMlJob, startDatafeeds, stopDatafeeds } from './api'; import { filterJobs } from './helpers'; -import { useSiemJobs } from './hooks/use_siem_jobs'; import { JobsTableFilters } from './jobs_table/filters/jobs_table_filters'; import { JobsTable } from './jobs_table/jobs_table'; import { ShowingCount } from './jobs_table/showing_count'; import { PopoverDescription } from './popover_description'; import * as i18n from './translations'; -import { JobsFilters, SiemJob } from './types'; +import { JobsFilters, SecurityJob } from './types'; import { UpgradeContents } from './upgrade_contents'; -import { useMlCapabilities } from './hooks/use_ml_capabilities'; +import { useSecurityJobs } from './hooks/use_security_jobs'; const PopoverContentsDiv = styled.div` max-width: 684px; @@ -87,24 +85,25 @@ export const MlPopover = React.memo(() => { const [isPopoverOpen, setIsPopoverOpen] = useState(false); const [filterProperties, setFilterProperties] = useState(defaultFilterProps); - const [isLoadingSiemJobs, siemJobs] = useSiemJobs(refreshToggle); + const { isMlAdmin, isLicensed, loading: isLoadingSecurityJobs, jobs } = useSecurityJobs( + refreshToggle + ); const [, dispatchToaster] = useStateToaster(); - const capabilities = useMlCapabilities(); const docLinks = useKibana().services.docLinks; const handleJobStateChange = useCallback( - (job: SiemJob, latestTimestampMs: number, enable: boolean) => + (job: SecurityJob, latestTimestampMs: number, enable: boolean) => enableDatafeed(job, latestTimestampMs, enable, dispatch, dispatchToaster), [dispatch, dispatchToaster] ); const filteredJobs = filterJobs({ - jobs: siemJobs, + jobs, ...filterProperties, }); - const incompatibleJobCount = siemJobs.filter((j) => !j.isCompatible).length; + const incompatibleJobCount = jobs.filter((j) => !j.isCompatible).length; - if (!capabilities.isPlatinumOrTrialLicense) { + if (!isLicensed) { // If the user does not have platinum show upgrade UI return ( { ); - } else if (hasMlAdminPermissions(capabilities)) { + } else if (isMlAdmin) { // If the user has Platinum License & ML Admin Permissions, show Anomaly Detection button & full config UI return ( { - + @@ -194,7 +193,7 @@ export const MlPopover = React.memo(() => { )} @@ -209,7 +208,7 @@ export const MlPopover = React.memo(() => { // Enable/Disable Job & Datafeed -- passed to JobsTable for use as callback on JobSwitch const enableDatafeed = async ( - job: SiemJob, + job: SecurityJob, latestTimestampMs: number, enable: boolean, dispatch: Dispatch, @@ -257,7 +256,7 @@ const enableDatafeed = async ( dispatch({ type: 'refresh' }); }; -const submitTelemetry = (job: SiemJob, enabled: boolean) => { +const submitTelemetry = (job: SecurityJob, enabled: boolean) => { // Report type of job enabled/disabled track( METRIC_TYPE.COUNT, diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/types.ts b/x-pack/plugins/security_solution/public/common/components/ml_popover/types.ts index f39daa0b9a7fb..c839f5110fe7f 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/types.ts +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/types.ts @@ -4,8 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import { AuditMessageBase } from '../../../../../ml/public'; import { MlError } from '../ml/types'; +import { MlSummaryJob } from '../../../../../ml/public'; export interface Group { id: string; @@ -98,28 +98,6 @@ export interface MlSetupArgs { prefix?: string; } -/** - * Representation of an ML Job as returned from the `ml/jobs/jobs_summary` API - */ -export interface JobSummary { - auditMessage?: AuditMessageBase; - datafeedId: string; - datafeedIndices: string[]; - datafeedState: string; - description: string; - earliestTimestampMs?: number; - latestResultsTimestampMs?: number; - groups: string[]; - hasDatafeed: boolean; - id: string; - isSingleMetricViewerJob: boolean; - jobState: string; - latestTimestampMs?: number; - memory_status: string; - nodeName?: string; - processed_record_count: number; -} - export interface Detector { detector_description: string; function: string; @@ -133,10 +111,10 @@ export interface CustomURL { } /** - * Representation of an ML Job as used by the SIEM App -- a composition of ModuleJob and JobSummary + * Representation of an ML Job as used by the SIEM App -- a composition of ModuleJob and MlSummaryJob * that includes necessary metadata like moduleName, defaultIndexPattern, etc. */ -export interface SiemJob extends JobSummary { +export interface SecurityJob extends MlSummaryJob { moduleId: string; defaultIndexPattern: string; isCompatible: boolean; @@ -144,7 +122,7 @@ export interface SiemJob extends JobSummary { isElasticJob: boolean; } -export interface AugmentedSiemJobFields { +export interface AugmentedSecurityJobFields { moduleId: string; defaultIndexPattern: string; isCompatible: boolean; diff --git a/x-pack/plugins/security_solution/public/common/containers/anomalies/anomalies_query_tab_body/index.tsx b/x-pack/plugins/security_solution/public/common/containers/anomalies/anomalies_query_tab_body/index.tsx index 76270a7c08cd6..94019b26c180b 100644 --- a/x-pack/plugins/security_solution/public/common/containers/anomalies/anomalies_query_tab_body/index.tsx +++ b/x-pack/plugins/security_solution/public/common/containers/anomalies/anomalies_query_tab_body/index.tsx @@ -9,7 +9,7 @@ import React, { useEffect } from 'react'; import { DEFAULT_ANOMALY_SCORE } from '../../../../../common/constants'; import { AnomaliesQueryTabBodyProps } from './types'; import { getAnomaliesFilterQuery } from './utils'; -import { useSiemJobs } from '../../../components/ml_popover/hooks/use_siem_jobs'; +import { useInstalledSecurityJobs } from '../../../components/ml/hooks/use_installed_security_jobs'; import { useUiSetting$ } from '../../../lib/kibana'; import { MatrixHistogramContainer } from '../../../components/matrix_histogram'; import { histogramConfigs } from './histogram_configs'; @@ -38,13 +38,13 @@ export const AnomaliesQueryTabBody = ({ // eslint-disable-next-line react-hooks/exhaustive-deps }, []); - const [, siemJobs] = useSiemJobs(true); + const { jobs } = useInstalledSecurityJobs(); const [anomalyScore] = useUiSetting$(DEFAULT_ANOMALY_SCORE); const mergedFilterQuery = getAnomaliesFilterQuery( filterQuery, anomaliesFilterQuery, - siemJobs, + jobs, anomalyScore, flowTarget, ip diff --git a/x-pack/plugins/security_solution/public/common/containers/anomalies/anomalies_query_tab_body/utils.ts b/x-pack/plugins/security_solution/public/common/containers/anomalies/anomalies_query_tab_body/utils.ts index 10d5d1c60a6c2..5248801d723b6 100644 --- a/x-pack/plugins/security_solution/public/common/containers/anomalies/anomalies_query_tab_body/utils.ts +++ b/x-pack/plugins/security_solution/public/common/containers/anomalies/anomalies_query_tab_body/utils.ts @@ -6,21 +6,20 @@ import deepmerge from 'deepmerge'; +import { MlSummaryJob } from '../../../../../../ml/public'; import { ESTermQuery } from '../../../../../common/typed_json'; import { createFilter } from '../../helpers'; -import { SiemJob } from '../../../components/ml_popover/types'; import { FlowTarget } from '../../../../graphql/types'; export const getAnomaliesFilterQuery = ( filterQuery: string | ESTermQuery | undefined, anomaliesFilterQuery: object = {}, - siemJobs: SiemJob[] = [], + securityJobs: MlSummaryJob[] = [], anomalyScore: number, flowTarget?: FlowTarget, ip?: string ): string => { - const siemJobIds = siemJobs - .filter((job) => job.isInstalled) + const securityJobIds = securityJobs .map((job) => job.id) .map((jobId) => ({ match_phrase: { @@ -38,7 +37,7 @@ export const getAnomaliesFilterQuery = ( filter: [ { bool: { - should: siemJobIds, + should: securityJobIds, minimum_should_match: 1, }, }, diff --git a/x-pack/plugins/security_solution/public/common/hooks/use_app_toasts.mock.ts b/x-pack/plugins/security_solution/public/common/hooks/use_app_toasts.mock.ts new file mode 100644 index 0000000000000..1af4ba3ba9233 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/hooks/use_app_toasts.mock.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +const createAppToastsMock = () => ({ + addError: jest.fn(), + addSuccess: jest.fn(), +}); + +export const useAppToastsMock = { + create: createAppToastsMock, +}; diff --git a/x-pack/plugins/security_solution/public/common/lib/kibana/__mocks__/index.ts b/x-pack/plugins/security_solution/public/common/lib/kibana/__mocks__/index.ts index 2c52acd3ec747..5f4285f2747ae 100644 --- a/x-pack/plugins/security_solution/public/common/lib/kibana/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/public/common/lib/kibana/__mocks__/index.ts @@ -17,6 +17,7 @@ export const KibanaServices = { get: jest.fn(), getKibanaVersion: jest.fn(() => export const useKibana = jest.fn(createUseKibanaMock()); export const useUiSetting = jest.fn(createUseUiSettingMock()); export const useUiSetting$ = jest.fn(createUseUiSetting$Mock()); +export const useHttp = jest.fn(() => useKibana().services.http); export const useTimeZone = jest.fn(); export const useDateFormat = jest.fn(); export const useBasePath = jest.fn(() => '/test/base/path'); diff --git a/x-pack/plugins/security_solution/public/common/mock/kibana_core.ts b/x-pack/plugins/security_solution/public/common/mock/kibana_core.ts index 13b3c4b249bfe..f8eed75cf9bf1 100644 --- a/x-pack/plugins/security_solution/public/common/mock/kibana_core.ts +++ b/x-pack/plugins/security_solution/public/common/mock/kibana_core.ts @@ -6,8 +6,10 @@ import { coreMock } from '../../../../../../src/core/public/mocks'; import { dataPluginMock } from '../../../../../../src/plugins/data/public/mocks'; +import { securityMock } from '../../../../../plugins/security/public/mocks'; export const createKibanaCoreStartMock = () => coreMock.createStart(); export const createKibanaPluginsStartMock = () => ({ data: dataPluginMock.createStartContract(), + security: securityMock.createSetup(), }); diff --git a/x-pack/plugins/security_solution/public/common/mock/kibana_react.ts b/x-pack/plugins/security_solution/public/common/mock/kibana_react.ts index c5d50e1379482..bdb8ca85b0d77 100644 --- a/x-pack/plugins/security_solution/public/common/mock/kibana_react.ts +++ b/x-pack/plugins/security_solution/public/common/mock/kibana_react.ts @@ -96,28 +96,10 @@ export const createUseKibanaMock = () => { export const createStartServices = () => { const core = createKibanaCoreStartMock(); const plugins = createKibanaPluginsStartMock(); - const security = { - authc: { - getCurrentUser: jest.fn(), - areAPIKeysEnabled: jest.fn(), - }, - sessionTimeout: { - start: jest.fn(), - stop: jest.fn(), - extend: jest.fn(), - }, - license: { - isEnabled: jest.fn(), - getFeatures: jest.fn(), - features$: jest.fn(), - }, - __legacyCompat: { logoutUrl: 'logoutUrl', tenant: 'tenant' }, - }; const services = ({ ...core, ...plugins, - security, } as unknown) as StartServices; return services; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx index 47c12d1934174..00141c9a453d8 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx @@ -38,7 +38,7 @@ import { buildRuleTypeDescription, buildThresholdDescription, } from './helpers'; -import { useSiemJobs } from '../../../../common/components/ml_popover/hooks/use_siem_jobs'; +import { useSecurityJobs } from '../../../../common/components/ml_popover/hooks/use_security_jobs'; import { buildMlJobDescription } from './ml_job_description'; import { buildActionsDescription } from './actions_description'; import { buildThrottleDescription } from './throttle_description'; @@ -67,7 +67,7 @@ export const StepRuleDescriptionComponent: React.FC = }) => { const kibana = useKibana(); const [filterManager] = useState(new FilterManager(kibana.services.uiSettings)); - const [, siemJobs] = useSiemJobs(true); + const { jobs } = useSecurityJobs(false); const keys = Object.keys(schema); const listItems = keys.reduce((acc: ListItems[], key: string) => { @@ -77,7 +77,7 @@ export const StepRuleDescriptionComponent: React.FC = buildMlJobDescription( get(key, data) as string, (get(key, schema) as { label: string }).label, - siemJobs + jobs ), ]; } diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.test.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.test.tsx index c82a465f08c3a..3152fef12c652 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.test.tsx @@ -7,31 +7,14 @@ import React from 'react'; import { shallow } from 'enzyme'; +import { mockOpenedJob } from '../../../../common/components/ml_popover/api.mock'; import { MlJobDescription, AuditIcon, JobStatusBadge } from './ml_job_description'; -jest.mock('../../../../common/lib/kibana'); -const job = { - moduleId: 'moduleId', - defaultIndexPattern: 'defaultIndexPattern', - isCompatible: true, - isInstalled: true, - isElasticJob: true, - datafeedId: 'datafeedId', - datafeedIndices: [], - datafeedState: 'datafeedState', - description: 'description', - groups: [], - hasDatafeed: true, - id: 'id', - isSingleMetricViewerJob: false, - jobState: 'jobState', - memory_status: 'memory_status', - processed_record_count: 0, -}; +jest.mock('../../../../common/lib/kibana'); describe('MlJobDescription', () => { it('renders correctly', () => { - const wrapper = shallow(); + const wrapper = shallow(); expect(wrapper.find('[data-test-subj="machineLearningJobId"]')).toHaveLength(1); }); @@ -47,7 +30,7 @@ describe('AuditIcon', () => { describe('JobStatusBadge', () => { it('renders correctly', () => { - const wrapper = shallow(); + const wrapper = shallow(); expect(wrapper.find('EuiBadge')).toHaveLength(1); }); diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.tsx index d7e06511e7937..6baa2abab33d1 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.tsx @@ -8,9 +8,9 @@ import React from 'react'; import styled from 'styled-components'; import { EuiBadge, EuiIcon, EuiLink, EuiToolTip } from '@elastic/eui'; +import { MlSummaryJob } from '../../../../../../ml/public'; import { isJobStarted } from '../../../../../common/machine_learning/helpers'; import { useKibana } from '../../../../common/lib/kibana'; -import { SiemJob } from '../../../../common/components/ml_popover/types'; import { ListItems } from './types'; import { ML_JOB_STARTED, ML_JOB_STOPPED } from './translations'; @@ -21,7 +21,7 @@ enum MessageLevels { } const AuditIconComponent: React.FC<{ - message: SiemJob['auditMessage']; + message: MlSummaryJob['auditMessage']; }> = ({ message }) => { if (!message) { return null; @@ -47,7 +47,7 @@ const AuditIconComponent: React.FC<{ export const AuditIcon = React.memo(AuditIconComponent); -const JobStatusBadgeComponent: React.FC<{ job: SiemJob }> = ({ job }) => { +const JobStatusBadgeComponent: React.FC<{ job: MlSummaryJob }> = ({ job }) => { const isStarted = isJobStarted(job.jobState, job.datafeedState); const color = isStarted ? 'secondary' : 'danger'; const text = isStarted ? ML_JOB_STARTED : ML_JOB_STOPPED; @@ -69,7 +69,7 @@ const Wrapper = styled.div` overflow: hidden; `; -const MlJobDescriptionComponent: React.FC<{ job: SiemJob }> = ({ job }) => { +const MlJobDescriptionComponent: React.FC<{ job: MlSummaryJob }> = ({ job }) => { const jobUrl = useKibana().services.application.getUrlForApp( `ml#/jobs?mlManagement=(jobId:${encodeURI(job.id)})` ); @@ -92,12 +92,12 @@ export const MlJobDescription = React.memo(MlJobDescriptionComponent); export const buildMlJobDescription = ( jobId: string, label: string, - siemJobs: SiemJob[] + jobs: MlSummaryJob[] ): ListItems => { - const siemJob = siemJobs.find((job) => job.id === jobId); + const job = jobs.find(({ id }) => id === jobId); return { title: label, - description: siemJob ? : jobId, + description: job ? : jobId, }; }; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/ml_job_select/index.test.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/ml_job_select/index.test.tsx index 6f6581e4de1c3..4a08adbedab3f 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/ml_job_select/index.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/ml_job_select/index.test.tsx @@ -8,14 +8,14 @@ import React from 'react'; import { shallow } from 'enzyme'; import { MlJobSelect } from './index'; -import { useSiemJobs } from '../../../../common/components/ml_popover/hooks/use_siem_jobs'; +import { useSecurityJobs } from '../../../../common/components/ml_popover/hooks/use_security_jobs'; import { useFormFieldMock } from '../../../../common/mock'; -jest.mock('../../../../common/components/ml_popover/hooks/use_siem_jobs'); +jest.mock('../../../../common/components/ml_popover/hooks/use_security_jobs'); jest.mock('../../../../common/lib/kibana'); describe('MlJobSelect', () => { beforeAll(() => { - (useSiemJobs as jest.Mock).mockReturnValue([false, []]); + (useSecurityJobs as jest.Mock).mockReturnValue({ loading: false, jobs: [] }); }); it('renders correctly', () => { diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/ml_job_select/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/ml_job_select/index.tsx index cdfdf4ca6b66b..b0aa0329fe8f4 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/ml_job_select/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/ml_job_select/index.tsx @@ -19,7 +19,7 @@ import { import styled from 'styled-components'; import { isJobStarted } from '../../../../../common/machine_learning/helpers'; import { FieldHook, getFieldValidityAndErrorMessage } from '../../../../shared_imports'; -import { useSiemJobs } from '../../../../common/components/ml_popover/hooks/use_siem_jobs'; +import { useSecurityJobs } from '../../../../common/components/ml_popover/hooks/use_security_jobs'; import { useKibana } from '../../../../common/lib/kibana'; import { ML_JOB_SELECT_PLACEHOLDER_TEXT, @@ -81,7 +81,7 @@ interface MlJobSelectProps { export const MlJobSelect: React.FC = ({ describedByIds = [], field }) => { const jobId = field.value as string; const { isInvalid, errorMessage } = getFieldValidityAndErrorMessage(field); - const [isLoading, siemJobs] = useSiemJobs(false); + const { loading, jobs } = useSecurityJobs(false); const mlUrl = useKibana().services.application.getUrlForApp('ml'); const handleJobChange = useCallback( (machineLearningJobId: string) => { @@ -96,7 +96,7 @@ export const MlJobSelect: React.FC = ({ describedByIds = [], f disabled: true, }; - const jobOptions = siemJobs.map((job) => ({ + const jobOptions = jobs.map((job) => ({ value: job.id, inputDisplay: job.id, dropdownDisplay: , @@ -107,9 +107,9 @@ export const MlJobSelect: React.FC = ({ describedByIds = [], f const isJobRunning = useMemo(() => { // If the selected job is not found in the list, it means the placeholder is selected // and so we don't want to show the warning, thus isJobRunning will be true when 'job == null' - const job = siemJobs.find((j) => j.id === jobId); + const job = jobs.find(({ id }) => id === jobId); return job == null || isJobStarted(job.jobState, job.datafeedState); - }, [siemJobs, jobId]); + }, [jobs, jobId]); return ( @@ -126,7 +126,7 @@ export const MlJobSelect: React.FC = ({ describedByIds = [], f = ({ componentProps={{ describedByIds: ['detectionEngineStepDefineRuleType'], isReadOnly: isUpdateView, - hasValidLicense: mlCapabilities.isPlatinumOrTrialLicense, + hasValidLicense: hasMlLicense(mlCapabilities), isMlAdmin: hasMlAdminPermissions(mlCapabilities), }} /> diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/index.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/index.tsx index 85dce907084e8..110691328b13b 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/index.tsx @@ -47,8 +47,9 @@ import { getColumns, getMonitoringColumns } from './columns'; import { showRulesTable } from './helpers'; import { allRulesReducer, State } from './reducer'; import { RulesTableFilters } from './rules_table_filters/rules_table_filters'; -import { useMlCapabilities } from '../../../../../common/components/ml_popover/hooks/use_ml_capabilities'; +import { useMlCapabilities } from '../../../../../common/components/ml/hooks/use_ml_capabilities'; import { hasMlAdminPermissions } from '../../../../../../common/machine_learning/has_ml_admin_permissions'; +import { hasMlLicense } from '../../../../../../common/machine_learning/has_ml_license'; import { SecurityPageName } from '../../../../../app/types'; import { useFormatUrl } from '../../../../../common/components/link_to'; @@ -145,8 +146,7 @@ export const AllRules = React.memo( const { formatUrl } = useFormatUrl(SecurityPageName.detections); // TODO: Refactor license check + hasMlAdminPermissions to common check - const hasMlPermissions = - mlCapabilities.isPlatinumOrTrialLicense && hasMlAdminPermissions(mlCapabilities); + const hasMlPermissions = hasMlLicense(mlCapabilities) && hasMlAdminPermissions(mlCapabilities); const setRules = useCallback((newRules: Rule[], newPagination: Partial) => { dispatch({ diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/details/index.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/details/index.tsx index 016d0c7c67a9e..8a969a4cf098c 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/details/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/details/index.tsx @@ -71,8 +71,9 @@ import { RuleActionsOverflow } from '../../../../components/rules/rule_actions_o import { RuleStatusFailedCallOut } from './status_failed_callout'; import { FailureHistory } from './failure_history'; import { RuleStatus } from '../../../../components/rules//rule_status'; -import { useMlCapabilities } from '../../../../../common/components/ml_popover/hooks/use_ml_capabilities'; +import { useMlCapabilities } from '../../../../../common/components/ml/hooks/use_ml_capabilities'; import { hasMlAdminPermissions } from '../../../../../../common/machine_learning/has_ml_admin_permissions'; +import { hasMlLicense } from '../../../../../../common/machine_learning/has_ml_license'; import { SecurityPageName } from '../../../../../app/types'; import { LinkButton } from '../../../../../common/components/links'; import { useFormatUrl } from '../../../../../common/components/link_to'; @@ -161,8 +162,7 @@ export const RuleDetailsPageComponent: FC = ({ const { globalFullScreen } = useFullScreen(); // TODO: Refactor license check + hasMlAdminPermissions to common check - const hasMlPermissions = - mlCapabilities.isPlatinumOrTrialLicense && hasMlAdminPermissions(mlCapabilities); + const hasMlPermissions = hasMlLicense(mlCapabilities) && hasMlAdminPermissions(mlCapabilities); const ruleDetailTabs = getRuleDetailsTabs(rule); // persist rule until refresh is complete diff --git a/x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx b/x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx index 34840b2826626..67f563e944f42 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx +++ b/x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx @@ -17,7 +17,7 @@ import { LastEventTime } from '../../../common/components/last_event_time'; import { AnomalyTableProvider } from '../../../common/components/ml/anomaly/anomaly_table_provider'; import { hostToCriteria } from '../../../common/components/ml/criteria/host_to_criteria'; import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; -import { useMlCapabilities } from '../../../common/components/ml_popover/hooks/use_ml_capabilities'; +import { useMlCapabilities } from '../../../common/components/ml/hooks/use_ml_capabilities'; import { scoreIntervalToDateTime } from '../../../common/components/ml/score/score_interval_to_datetime'; import { SiemNavigation } from '../../../common/components/navigation'; import { KpiHostsComponent } from '../../components/kpi_hosts'; diff --git a/x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx b/x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx index e4e69443c510d..2b19249dc426f 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx +++ b/x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx @@ -34,7 +34,7 @@ import { setAbsoluteRangeDatePicker as dispatchSetAbsoluteRangeDatePicker } from import { SpyRoute } from '../../common/utils/route/spy_routes'; import { esQuery } from '../../../../../../src/plugins/data/public'; -import { useMlCapabilities } from '../../common/components/ml_popover/hooks/use_ml_capabilities'; +import { useMlCapabilities } from '../../common/components/ml/hooks/use_ml_capabilities'; import { OverviewEmpty } from '../../overview/components/overview_empty'; import { Display } from './display'; import { HostsTabs } from './hosts_tabs'; diff --git a/x-pack/plugins/security_solution/public/network/components/ip_overview/index.tsx b/x-pack/plugins/security_solution/public/network/components/ip_overview/index.tsx index cf08b084d2197..d6dfe1769308e 100644 --- a/x-pack/plugins/security_solution/public/network/components/ip_overview/index.tsx +++ b/x-pack/plugins/security_solution/public/network/components/ip_overview/index.tsx @@ -30,7 +30,7 @@ import { DescriptionListStyled, OverviewWrapper } from '../../../common/componen import { Loader } from '../../../common/components/loader'; import { Anomalies, NarrowDateRange } from '../../../common/components/ml/types'; import { AnomalyScores } from '../../../common/components/ml/score/anomaly_scores'; -import { useMlCapabilities } from '../../../common/components/ml_popover/hooks/use_ml_capabilities'; +import { useMlCapabilities } from '../../../common/components/ml/hooks/use_ml_capabilities'; import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; import { InspectButton, InspectButtonContainer } from '../../../common/components/inspect'; diff --git a/x-pack/plugins/security_solution/public/network/pages/index.tsx b/x-pack/plugins/security_solution/public/network/pages/index.tsx index 9ac05cc98bb45..07abe7bc8c209 100644 --- a/x-pack/plugins/security_solution/public/network/pages/index.tsx +++ b/x-pack/plugins/security_solution/public/network/pages/index.tsx @@ -7,7 +7,7 @@ import React, { useMemo } from 'react'; import { Route, Switch, RouteComponentProps, useHistory } from 'react-router-dom'; -import { useMlCapabilities } from '../../common/components/ml_popover/hooks/use_ml_capabilities'; +import { useMlCapabilities } from '../../common/components/ml/hooks/use_ml_capabilities'; import { hasMlUserPermissions } from '../../../common/machine_learning/has_ml_user_permissions'; import { FlowTarget } from '../../graphql/types'; diff --git a/x-pack/plugins/security_solution/public/overview/components/host_overview/index.tsx b/x-pack/plugins/security_solution/public/overview/components/host_overview/index.tsx index 0a15b039b96af..c7aba6fcc8a5b 100644 --- a/x-pack/plugins/security_solution/public/overview/components/host_overview/index.tsx +++ b/x-pack/plugins/security_solution/public/overview/components/host_overview/index.tsx @@ -23,7 +23,7 @@ import { HostItem } from '../../../graphql/types'; import { Loader } from '../../../common/components/loader'; import { IPDetailsLink } from '../../../common/components/links'; import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; -import { useMlCapabilities } from '../../../common/components/ml_popover/hooks/use_ml_capabilities'; +import { useMlCapabilities } from '../../../common/components/ml/hooks/use_ml_capabilities'; import { AnomalyScores } from '../../../common/components/ml/score/anomaly_scores'; import { Anomalies, NarrowDateRange } from '../../../common/components/ml/types'; import { DescriptionListStyled, OverviewWrapper } from '../../../common/components/page'; From e2ef219a7cd0b1d492e5cb929b3a3891a92e8e2e Mon Sep 17 00:00:00 2001 From: Brent Kimmel Date: Wed, 12 Aug 2020 21:02:00 -0400 Subject: [PATCH 24/27] [Security Solution][Resolver] fix presentation role on edgeline (#74869) Co-authored-by: Elastic Machine --- .../plugins/security_solution/public/resolver/view/edge_line.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/resolver/view/edge_line.tsx b/x-pack/plugins/security_solution/public/resolver/view/edge_line.tsx index 9f310bb1cc0d6..061dfce64b4e4 100644 --- a/x-pack/plugins/security_solution/public/resolver/view/edge_line.tsx +++ b/x-pack/plugins/security_solution/public/resolver/view/edge_line.tsx @@ -127,7 +127,6 @@ const EdgeLineComponent = React.memo( return ( Date: Wed, 12 Aug 2020 22:32:05 -0600 Subject: [PATCH 25/27] [Security Solution][lists] Adds tests for exception lists and items part 2 (#74815) ## Summary This is the basics of end to end tests, so there could be a lot more, but this ties to cover the basics of the tests. Test with: ```ts node scripts/functional_tests --config x-pack/test/lists_api_integration/security_and_spaces/config.ts ``` Adds these tests for the route counter parts: * create_exception_list_items.ts * create_exception_lists.ts * delete_exception_list_items.ts * delete_exception_lists.ts * find_exception_list_items.ts * find_exception_lists.ts * read_exception_list_items.ts * read_exception_lists.ts * update_exception_list_items.ts * update_exception_lists.ts Fixes a few minor strings, other tests, but no large bugs found with these tests ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --- .../create_exception_list_item_schema.mock.ts | 24 +++ .../create_exception_list_schema.mock.ts | 20 ++ .../update_exception_list_item_schema.mock.ts | 13 ++ .../update_exception_list_schema.mock.ts | 11 ++ .../exception_list_item_schema.mock.ts | 24 +++ .../response/exception_list_schema.mock.ts | 24 +++ .../create_exception_list_item_route.ts | 2 +- .../routes/find_exception_list_item_route.ts | 2 +- .../update_exception_list_item_route.ts | 69 ++++--- .../routes/update_exception_list_route.ts | 6 +- .../utils/get_error_message_exception_list.ts | 6 +- .../get_error_message_exception_list_item.ts | 6 +- .../tests/create_exception_list_items.ts | 119 ++++++++++++ .../tests/create_exception_lists.ts | 77 ++++++++ .../tests/delete_exception_list_items.ts | 119 ++++++++++++ .../tests/delete_exception_lists.ts | 98 ++++++++++ .../tests/export_list_items.ts | 5 +- .../tests/find_exception_list_items.ts | 105 ++++++++++ .../tests/find_exception_lists.ts | 67 +++++++ .../tests/import_list_items.ts | 2 +- .../security_and_spaces/tests/index.ts | 10 + .../tests/read_exception_list_items.ts | 159 +++++++++++++++ .../tests/read_exception_lists.ts | 112 +++++++++++ .../tests/update_exception_list_items.ts | 168 ++++++++++++++++ .../tests/update_exception_lists.ts | 182 ++++++++++++++++++ x-pack/test/lists_api_integration/utils.ts | 60 +++++- 26 files changed, 1444 insertions(+), 46 deletions(-) create mode 100644 x-pack/test/lists_api_integration/security_and_spaces/tests/create_exception_list_items.ts create mode 100644 x-pack/test/lists_api_integration/security_and_spaces/tests/create_exception_lists.ts create mode 100644 x-pack/test/lists_api_integration/security_and_spaces/tests/delete_exception_list_items.ts create mode 100644 x-pack/test/lists_api_integration/security_and_spaces/tests/delete_exception_lists.ts create mode 100644 x-pack/test/lists_api_integration/security_and_spaces/tests/find_exception_list_items.ts create mode 100644 x-pack/test/lists_api_integration/security_and_spaces/tests/find_exception_lists.ts create mode 100644 x-pack/test/lists_api_integration/security_and_spaces/tests/read_exception_list_items.ts create mode 100644 x-pack/test/lists_api_integration/security_and_spaces/tests/read_exception_lists.ts create mode 100644 x-pack/test/lists_api_integration/security_and_spaces/tests/update_exception_list_items.ts create mode 100644 x-pack/test/lists_api_integration/security_and_spaces/tests/update_exception_lists.ts diff --git a/x-pack/plugins/lists/common/schemas/request/create_exception_list_item_schema.mock.ts b/x-pack/plugins/lists/common/schemas/request/create_exception_list_item_schema.mock.ts index 0450849931b30..da22e33dc7b52 100644 --- a/x-pack/plugins/lists/common/schemas/request/create_exception_list_item_schema.mock.ts +++ b/x-pack/plugins/lists/common/schemas/request/create_exception_list_item_schema.mock.ts @@ -8,6 +8,7 @@ import { COMMENTS, DESCRIPTION, ENTRIES, + ITEM_ID, ITEM_TYPE, LIST_ID, META, @@ -32,3 +33,26 @@ export const getCreateExceptionListItemSchemaMock = (): CreateExceptionListItemS tags: TAGS, type: ITEM_TYPE, }); + +/** + * Useful for end to end testing + */ +export const getCreateExceptionListItemMinimalSchemaMock = (): CreateExceptionListItemSchema => ({ + description: DESCRIPTION, + entries: ENTRIES, + item_id: ITEM_ID, + list_id: LIST_ID, + name: NAME, + type: ITEM_TYPE, +}); + +/** + * Useful for end to end testing + */ +export const getCreateExceptionListItemMinimalSchemaMockWithoutId = (): CreateExceptionListItemSchema => ({ + description: DESCRIPTION, + entries: ENTRIES, + list_id: LIST_ID, + name: NAME, + type: ITEM_TYPE, +}); diff --git a/x-pack/plugins/lists/common/schemas/request/create_exception_list_schema.mock.ts b/x-pack/plugins/lists/common/schemas/request/create_exception_list_schema.mock.ts index d9c0474610369..f8431fcce1bf7 100644 --- a/x-pack/plugins/lists/common/schemas/request/create_exception_list_schema.mock.ts +++ b/x-pack/plugins/lists/common/schemas/request/create_exception_list_schema.mock.ts @@ -7,6 +7,7 @@ import { DESCRIPTION, ENDPOINT_TYPE, + LIST_ID, META, NAME, NAMESPACE_TYPE, @@ -26,3 +27,22 @@ export const getCreateExceptionListSchemaMock = (): CreateExceptionListSchema => type: ENDPOINT_TYPE, version: VERSION, }); + +/** + * Useful for end to end testing + */ +export const getCreateExceptionListMinimalSchemaMock = (): CreateExceptionListSchema => ({ + description: DESCRIPTION, + list_id: LIST_ID, + name: NAME, + type: ENDPOINT_TYPE, +}); + +/** + * Useful for end to end testing + */ +export const getCreateExceptionListMinimalSchemaMockWithoutId = (): CreateExceptionListSchema => ({ + description: DESCRIPTION, + name: NAME, + type: ENDPOINT_TYPE, +}); diff --git a/x-pack/plugins/lists/common/schemas/request/update_exception_list_item_schema.mock.ts b/x-pack/plugins/lists/common/schemas/request/update_exception_list_item_schema.mock.ts index 90d70c273f490..4673c0fe7629d 100644 --- a/x-pack/plugins/lists/common/schemas/request/update_exception_list_item_schema.mock.ts +++ b/x-pack/plugins/lists/common/schemas/request/update_exception_list_item_schema.mock.ts @@ -9,6 +9,7 @@ import { DESCRIPTION, ENTRIES, ID, + ITEM_ID, ITEM_TYPE, LIST_ITEM_ID, META, @@ -34,3 +35,15 @@ export const getUpdateExceptionListItemSchemaMock = (): UpdateExceptionListItemS tags: TAGS, type: ITEM_TYPE, }); + +/** + * Useful for end to end tests and other mechanisms which want to fill in the values + * after doing a get of the structure. + */ +export const getUpdateMinimalExceptionListItemSchemaMock = (): UpdateExceptionListItemSchema => ({ + description: DESCRIPTION, + entries: ENTRIES, + item_id: ITEM_ID, + name: NAME, + type: ITEM_TYPE, +}); diff --git a/x-pack/plugins/lists/common/schemas/request/update_exception_list_schema.mock.ts b/x-pack/plugins/lists/common/schemas/request/update_exception_list_schema.mock.ts index 22af29e6af0b7..b7dc2d9e0c948 100644 --- a/x-pack/plugins/lists/common/schemas/request/update_exception_list_schema.mock.ts +++ b/x-pack/plugins/lists/common/schemas/request/update_exception_list_schema.mock.ts @@ -20,3 +20,14 @@ export const getUpdateExceptionListSchemaMock = (): UpdateExceptionListSchema => tags: ['malware'], type: 'endpoint', }); + +/** + * Useful for end to end tests and other mechanisms which want to fill in the values + * after doing a get of the structure. + */ +export const getUpdateMinimalExceptionListSchemaMock = (): UpdateExceptionListSchema => ({ + description: DESCRIPTION, + list_id: LIST_ID, + name: NAME, + type: 'endpoint', +}); diff --git a/x-pack/plugins/lists/common/schemas/response/exception_list_item_schema.mock.ts b/x-pack/plugins/lists/common/schemas/response/exception_list_item_schema.mock.ts index c0d04c9823ca3..1a8f21a5232f8 100644 --- a/x-pack/plugins/lists/common/schemas/response/exception_list_item_schema.mock.ts +++ b/x-pack/plugins/lists/common/schemas/response/exception_list_item_schema.mock.ts @@ -7,8 +7,11 @@ import { COMMENTS, DATE_NOW, DESCRIPTION, + ELASTIC_USER, ENTRIES, + ITEM_ID, ITEM_TYPE, + LIST_ID, META, NAME, NAMESPACE_TYPE, @@ -38,3 +41,24 @@ export const getExceptionListItemSchemaMock = (): ExceptionListItemSchema => ({ updated_at: DATE_NOW, updated_by: USER, }); + +/** + * This is useful for end to end tests where we remove the auto generated parts for comparisons + * such as created_at, updated_at, and id. + */ +export const getExceptionListItemResponseMockWithoutAutoGeneratedValues = (): Partial< + ExceptionListItemSchema +> => ({ + _tags: [], + comments: [], + created_by: ELASTIC_USER, + description: DESCRIPTION, + entries: ENTRIES, + item_id: ITEM_ID, + list_id: LIST_ID, + name: NAME, + namespace_type: 'single', + tags: [], + type: ITEM_TYPE, + updated_by: ELASTIC_USER, +}); diff --git a/x-pack/plugins/lists/common/schemas/response/exception_list_schema.mock.ts b/x-pack/plugins/lists/common/schemas/response/exception_list_schema.mock.ts index 2655b09631b23..e2f0a7c06b400 100644 --- a/x-pack/plugins/lists/common/schemas/response/exception_list_schema.mock.ts +++ b/x-pack/plugins/lists/common/schemas/response/exception_list_schema.mock.ts @@ -7,9 +7,12 @@ import { DATE_NOW, DESCRIPTION, + ELASTIC_USER, ENDPOINT_TYPE, IMMUTABLE, + LIST_ID, META, + NAME, TIE_BREAKER, USER, VERSION, @@ -18,6 +21,7 @@ import { import { ENDPOINT_LIST_ID } from '../..'; import { ExceptionListSchema } from './exception_list_schema'; + export const getExceptionListSchemaMock = (): ExceptionListSchema => ({ _tags: ['endpoint', 'process', 'malware', 'os:linux'], _version: _VERSION, @@ -37,3 +41,23 @@ export const getExceptionListSchemaMock = (): ExceptionListSchema => ({ updated_by: 'user_name', version: VERSION, }); + +/** + * This is useful for end to end tests where we remove the auto generated parts for comparisons + * such as created_at, updated_at, and id. + */ +export const getExceptionResponseMockWithoutAutoGeneratedValues = (): Partial< + ExceptionListSchema +> => ({ + _tags: [], + created_by: ELASTIC_USER, + description: DESCRIPTION, + immutable: IMMUTABLE, + list_id: LIST_ID, + name: NAME, + namespace_type: 'single', + tags: [], + type: ENDPOINT_TYPE, + updated_by: ELASTIC_USER, + version: VERSION, +}); diff --git a/x-pack/plugins/lists/server/routes/create_exception_list_item_route.ts b/x-pack/plugins/lists/server/routes/create_exception_list_item_route.ts index fc0473b2b3704..f092aec82a8f3 100644 --- a/x-pack/plugins/lists/server/routes/create_exception_list_item_route.ts +++ b/x-pack/plugins/lists/server/routes/create_exception_list_item_route.ts @@ -57,7 +57,7 @@ export const createExceptionListItemRoute = (router: IRouter): void => { }); if (exceptionList == null) { return siemResponse.error({ - body: `list id: "${listId}" does not exist`, + body: `exception list id: "${listId}" does not exist`, statusCode: 404, }); } else { diff --git a/x-pack/plugins/lists/server/routes/find_exception_list_item_route.ts b/x-pack/plugins/lists/server/routes/find_exception_list_item_route.ts index 88643e53ff0a7..103cba700013f 100644 --- a/x-pack/plugins/lists/server/routes/find_exception_list_item_route.ts +++ b/x-pack/plugins/lists/server/routes/find_exception_list_item_route.ts @@ -62,7 +62,7 @@ export const findExceptionListItemRoute = (router: IRouter): void => { }); if (exceptionListItems == null) { return siemResponse.error({ - body: `list id: "${listId}" does not exist`, + body: `exception list id: "${listId}" does not exist`, statusCode: 404, }); } diff --git a/x-pack/plugins/lists/server/routes/update_exception_list_item_route.ts b/x-pack/plugins/lists/server/routes/update_exception_list_item_route.ts index 7e15f694aee13..745ad0735a174 100644 --- a/x-pack/plugins/lists/server/routes/update_exception_list_item_route.ts +++ b/x-pack/plugins/lists/server/routes/update_exception_list_item_route.ts @@ -54,39 +54,46 @@ export const updateExceptionListItemRoute = (router: IRouter): void => { namespace_type: namespaceType, tags, } = request.body; - const exceptionLists = getExceptionListClient(context); - const exceptionListItem = await exceptionLists.updateExceptionListItem({ - _tags, - _version, - comments, - description, - entries, - id, - itemId, - meta, - name, - namespaceType, - tags, - type, - }); - if (exceptionListItem == null) { - if (id != null) { - return siemResponse.error({ - body: `list item id: "${id}" not found`, - statusCode: 404, - }); - } else { - return siemResponse.error({ - body: `list item item_id: "${itemId}" not found`, - statusCode: 404, - }); - } + if (id == null && itemId == null) { + return siemResponse.error({ + body: 'either id or item_id need to be defined', + statusCode: 404, + }); } else { - const [validated, errors] = validate(exceptionListItem, exceptionListItemSchema); - if (errors != null) { - return siemResponse.error({ body: errors, statusCode: 500 }); + const exceptionLists = getExceptionListClient(context); + const exceptionListItem = await exceptionLists.updateExceptionListItem({ + _tags, + _version, + comments, + description, + entries, + id, + itemId, + meta, + name, + namespaceType, + tags, + type, + }); + if (exceptionListItem == null) { + if (id != null) { + return siemResponse.error({ + body: `exception list item id: "${id}" does not exist`, + statusCode: 404, + }); + } else { + return siemResponse.error({ + body: `exception list item item_id: "${itemId}" does not exist`, + statusCode: 404, + }); + } } else { - return response.ok({ body: validated ?? {} }); + const [validated, errors] = validate(exceptionListItem, exceptionListItemSchema); + if (errors != null) { + return siemResponse.error({ body: errors, statusCode: 500 }); + } else { + return response.ok({ body: validated ?? {} }); + } } } } catch (err) { diff --git a/x-pack/plugins/lists/server/routes/update_exception_list_route.ts b/x-pack/plugins/lists/server/routes/update_exception_list_route.ts index 8102210b8430d..1903d0f601d1d 100644 --- a/x-pack/plugins/lists/server/routes/update_exception_list_route.ts +++ b/x-pack/plugins/lists/server/routes/update_exception_list_route.ts @@ -15,7 +15,7 @@ import { updateExceptionListSchema, } from '../../common/schemas'; -import { getExceptionListClient } from './utils'; +import { getErrorMessageExceptionList, getExceptionListClient } from './utils'; export const updateExceptionListRoute = (router: IRouter): void => { router.put( @@ -50,7 +50,7 @@ export const updateExceptionListRoute = (router: IRouter): void => { const exceptionLists = getExceptionListClient(context); if (id == null && listId == null) { return siemResponse.error({ - body: `either id or list_id need to be defined`, + body: 'either id or list_id need to be defined', statusCode: 404, }); } else { @@ -69,7 +69,7 @@ export const updateExceptionListRoute = (router: IRouter): void => { }); if (list == null) { return siemResponse.error({ - body: `exception list id: "${id}" not found`, + body: getErrorMessageExceptionList({ id, listId }), statusCode: 404, }); } else { diff --git a/x-pack/plugins/lists/server/routes/utils/get_error_message_exception_list.ts b/x-pack/plugins/lists/server/routes/utils/get_error_message_exception_list.ts index 665a7540184a0..7db3bedd9ec84 100644 --- a/x-pack/plugins/lists/server/routes/utils/get_error_message_exception_list.ts +++ b/x-pack/plugins/lists/server/routes/utils/get_error_message_exception_list.ts @@ -12,10 +12,10 @@ export const getErrorMessageExceptionList = ({ listId: string | undefined; }): string => { if (id != null) { - return `Exception list id: "${id}" does not exist`; + return `exception list id: "${id}" does not exist`; } else if (listId != null) { - return `Exception list list_id: "${listId}" does not exist`; + return `exception list list_id: "${listId}" does not exist`; } else { - return 'Exception list does not exist'; + return 'exception list does not exist'; } }; diff --git a/x-pack/plugins/lists/server/routes/utils/get_error_message_exception_list_item.ts b/x-pack/plugins/lists/server/routes/utils/get_error_message_exception_list_item.ts index 8e6730ef3db5c..efb6c0e59ade5 100644 --- a/x-pack/plugins/lists/server/routes/utils/get_error_message_exception_list_item.ts +++ b/x-pack/plugins/lists/server/routes/utils/get_error_message_exception_list_item.ts @@ -12,10 +12,10 @@ export const getErrorMessageExceptionListItem = ({ itemId: string | undefined; }): string => { if (id != null) { - return `Exception list item id: "${id}" does not exist`; + return `exception list item id: "${id}" does not exist`; } else if (itemId != null) { - return `Exception list item list_id: "${itemId}" does not exist`; + return `exception list item item_id: "${itemId}" does not exist`; } else { - return 'Exception list item does not exist'; + return 'exception list item does not exist'; } }; diff --git a/x-pack/test/lists_api_integration/security_and_spaces/tests/create_exception_list_items.ts b/x-pack/test/lists_api_integration/security_and_spaces/tests/create_exception_list_items.ts new file mode 100644 index 0000000000000..6148dbcc7090e --- /dev/null +++ b/x-pack/test/lists_api_integration/security_and_spaces/tests/create_exception_list_items.ts @@ -0,0 +1,119 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { ExceptionListItemSchema } from '../../../../plugins/lists/common'; +import { getExceptionListItemResponseMockWithoutAutoGeneratedValues } from '../../../../plugins/lists/common/schemas/response/exception_list_item_schema.mock'; +import { getCreateExceptionListMinimalSchemaMock } from '../../../../plugins/lists/common/schemas/request/create_exception_list_schema.mock'; +import { + getCreateExceptionListItemMinimalSchemaMock, + getCreateExceptionListItemMinimalSchemaMockWithoutId, +} from '../../../../plugins/lists/common/schemas/request/create_exception_list_item_schema.mock'; +import { + EXCEPTION_LIST_ITEM_URL, + EXCEPTION_LIST_URL, +} from '../../../../plugins/lists/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; + +import { + removeListItemServerGeneratedProperties, + removeExceptionListItemServerGeneratedProperties, +} from '../../utils'; + +import { deleteAllExceptions } from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('create_exception_list_items', () => { + describe('validation errors', () => { + it('should give a 404 error that the exception list must exist first before being able to add a list item to the exception list', async () => { + const { body } = await supertest + .post(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListItemMinimalSchemaMock()) + .expect(404); + + expect(body).to.eql({ + message: 'exception list id: "some-list-id" does not exist', + status_code: 404, + }); + }); + }); + + describe('creating exception list items', () => { + afterEach(async () => { + await deleteAllExceptions(es); + }); + + it('should create a simple exception list item with a list item id', async () => { + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + const { body } = await supertest + .post(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListItemMinimalSchemaMock()) + .expect(200); + + const bodyToCompare = removeExceptionListItemServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(getExceptionListItemResponseMockWithoutAutoGeneratedValues()); + }); + + it('should create a simple exception list item without an id', async () => { + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + const { body } = await supertest + .post(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListItemMinimalSchemaMockWithoutId()) + .expect(200); + + const bodyToCompare = removeListItemServerGeneratedProperties(body); + const outputList: Partial = { + ...getExceptionListItemResponseMockWithoutAutoGeneratedValues(), + item_id: body.item_id, + }; + expect(bodyToCompare).to.eql(outputList); + }); + + it('should cause a 409 conflict if we attempt to create the same exception list item twice', async () => { + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + await supertest + .post(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListItemMinimalSchemaMock()) + .expect(200); + + const { body } = await supertest + .post(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListItemMinimalSchemaMock()) + .expect(409); + + expect(body).to.eql({ + message: 'exception list item id: "some-list-item-id" already exists', + status_code: 409, + }); + }); + }); + }); +}; diff --git a/x-pack/test/lists_api_integration/security_and_spaces/tests/create_exception_lists.ts b/x-pack/test/lists_api_integration/security_and_spaces/tests/create_exception_lists.ts new file mode 100644 index 0000000000000..2b654c72ae282 --- /dev/null +++ b/x-pack/test/lists_api_integration/security_and_spaces/tests/create_exception_lists.ts @@ -0,0 +1,77 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { ExceptionListSchema } from '../../../../plugins/lists/common'; +import { EXCEPTION_LIST_URL } from '../../../../plugins/lists/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { getExceptionResponseMockWithoutAutoGeneratedValues } from '../../../../plugins/lists/common/schemas/response/exception_list_schema.mock'; +import { + getCreateExceptionListMinimalSchemaMock, + getCreateExceptionListMinimalSchemaMockWithoutId, +} from '../../../../plugins/lists/common/schemas/request/create_exception_list_schema.mock'; + +import { deleteAllExceptions, removeExceptionListServerGeneratedProperties } from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('create_exception_lists', () => { + describe('creating exception lists', () => { + afterEach(async () => { + await deleteAllExceptions(es); + }); + + it('should create a simple exception list', async () => { + const { body } = await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + const bodyToCompare = removeExceptionListServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(getExceptionResponseMockWithoutAutoGeneratedValues()); + }); + + it('should create a simple exception list without a list_id', async () => { + const { body } = await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMockWithoutId()) + .expect(200); + + const bodyToCompare = removeExceptionListServerGeneratedProperties(body); + const outputtedList: Partial = { + ...getExceptionResponseMockWithoutAutoGeneratedValues(), + list_id: bodyToCompare.list_id, + }; + expect(bodyToCompare).to.eql(outputtedList); + }); + + it('should cause a 409 conflict if we attempt to create the same list_id twice', async () => { + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + const { body } = await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(409); + + expect(body).to.eql({ + message: 'exception list id: "some-list-id" already exists', + status_code: 409, + }); + }); + }); + }); +}; diff --git a/x-pack/test/lists_api_integration/security_and_spaces/tests/delete_exception_list_items.ts b/x-pack/test/lists_api_integration/security_and_spaces/tests/delete_exception_list_items.ts new file mode 100644 index 0000000000000..16bdd264dc546 --- /dev/null +++ b/x-pack/test/lists_api_integration/security_and_spaces/tests/delete_exception_list_items.ts @@ -0,0 +1,119 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { ExceptionListItemSchema } from '../../../../plugins/lists/common'; +import { getExceptionListItemResponseMockWithoutAutoGeneratedValues } from '../../../../plugins/lists/common/schemas/response/exception_list_item_schema.mock'; +import { + getCreateExceptionListItemMinimalSchemaMock, + getCreateExceptionListItemMinimalSchemaMockWithoutId, +} from '../../../../plugins/lists/common/schemas/request/create_exception_list_item_schema.mock'; +import { getCreateExceptionListMinimalSchemaMock } from '../../../../plugins/lists/common/schemas/request/create_exception_list_schema.mock'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + EXCEPTION_LIST_URL, + EXCEPTION_LIST_ITEM_URL, +} from '../../../../plugins/lists/common/constants'; + +import { deleteAllExceptions, removeExceptionListItemServerGeneratedProperties } from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('delete_exception_list_items', () => { + describe('delete exception list items', () => { + afterEach(async () => { + await deleteAllExceptions(es); + }); + + it('should delete a single exception list item by its item_id', async () => { + // create an exception list + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + // create an exception list item + await supertest + .post(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListItemMinimalSchemaMock()) + .expect(200); + + // delete the exception list item by its item_id + const { body } = await supertest + .delete( + `${EXCEPTION_LIST_ITEM_URL}?item_id=${ + getCreateExceptionListItemMinimalSchemaMock().item_id + }` + ) + .set('kbn-xsrf', 'true') + .expect(200); + + const bodyToCompare = removeExceptionListItemServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(getExceptionListItemResponseMockWithoutAutoGeneratedValues()); + }); + + it('should delete a single exception list item using an auto generated id', async () => { + // create an exception list + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + // create an exception list item + const { body: bodyWithCreatedList } = await supertest + .post(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListItemMinimalSchemaMockWithoutId()) + .expect(200); + + // delete that exception list item by its auto-generated id + const { body } = await supertest + .delete(`${EXCEPTION_LIST_ITEM_URL}?id=${bodyWithCreatedList.id}`) + .set('kbn-xsrf', 'true') + .expect(200); + const outputtedList: Partial = { + ...getExceptionListItemResponseMockWithoutAutoGeneratedValues(), + item_id: body.item_id, + }; + + const bodyToCompare = removeExceptionListItemServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputtedList); + }); + + it('should return an error if the id does not exist when trying to delete it', async () => { + const { body } = await supertest + .delete(`${EXCEPTION_LIST_ITEM_URL}?id=c1e1b359-7ac1-4e96-bc81-c683c092436f`) + .set('kbn-xsrf', 'true') + .expect(404); + + expect(body).to.eql({ + message: 'exception list item id: "c1e1b359-7ac1-4e96-bc81-c683c092436f" does not exist', + status_code: 404, + }); + }); + + it('should return an error if the item_id does not exist when trying to delete it', async () => { + const { body } = await supertest + .delete(`${EXCEPTION_LIST_ITEM_URL}?item_id=c1e1b359-7ac1-4e96-bc81-c683c092436f`) + .set('kbn-xsrf', 'true') + .expect(404); + + expect(body).to.eql({ + message: + 'exception list item item_id: "c1e1b359-7ac1-4e96-bc81-c683c092436f" does not exist', + status_code: 404, + }); + }); + }); + }); +}; diff --git a/x-pack/test/lists_api_integration/security_and_spaces/tests/delete_exception_lists.ts b/x-pack/test/lists_api_integration/security_and_spaces/tests/delete_exception_lists.ts new file mode 100644 index 0000000000000..56e4bcd9641cf --- /dev/null +++ b/x-pack/test/lists_api_integration/security_and_spaces/tests/delete_exception_lists.ts @@ -0,0 +1,98 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { ExceptionListSchema } from '../../../../plugins/lists/common'; +import { getExceptionResponseMockWithoutAutoGeneratedValues } from '../../../../plugins/lists/common/schemas/response/exception_list_schema.mock'; +import { + getCreateExceptionListMinimalSchemaMock, + getCreateExceptionListMinimalSchemaMockWithoutId, +} from '../../../../plugins/lists/common/schemas/request/create_exception_list_schema.mock'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { EXCEPTION_LIST_URL } from '../../../../plugins/lists/common/constants'; + +import { deleteAllExceptions, removeExceptionListServerGeneratedProperties } from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('delete_exception_lists', () => { + describe('delete exception lists', () => { + afterEach(async () => { + await deleteAllExceptions(es); + }); + + it('should delete a single exception list by its list_id', async () => { + // create an exception list + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + // delete the exception list by its list id + const { body } = await supertest + .delete( + `${EXCEPTION_LIST_URL}?list_id=${getCreateExceptionListMinimalSchemaMock().list_id}` + ) + .set('kbn-xsrf', 'true') + .expect(200); + + const bodyToCompare = removeExceptionListServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(getExceptionResponseMockWithoutAutoGeneratedValues()); + }); + + it('should delete a single exception list using an auto generated id', async () => { + // create an exception list + const { body: bodyWithCreatedList } = await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMockWithoutId()) + .expect(200); + + // delete that list by its auto-generated id + const { body } = await supertest + .delete(`${EXCEPTION_LIST_URL}?id=${bodyWithCreatedList.id}`) + .set('kbn-xsrf', 'true') + .expect(200); + + const outputtedList: Partial = { + ...getExceptionResponseMockWithoutAutoGeneratedValues(), + list_id: body.list_id, + }; + const bodyToCompare = removeExceptionListServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputtedList); + }); + + it('should return an error if the id does not exist when trying to delete it', async () => { + const { body } = await supertest + .delete(`${EXCEPTION_LIST_URL}?id=c1e1b359-7ac1-4e96-bc81-c683c092436f`) + .set('kbn-xsrf', 'true') + .expect(404); + + expect(body).to.eql({ + message: 'exception list id: "c1e1b359-7ac1-4e96-bc81-c683c092436f" does not exist', + status_code: 404, + }); + }); + + it('should return an error if the list_id does not exist when trying to delete it', async () => { + const { body } = await supertest + .delete(`${EXCEPTION_LIST_URL}?list_id=c1e1b359-7ac1-4e96-bc81-c683c092436f`) + .set('kbn-xsrf', 'true') + .expect(404); + + expect(body).to.eql({ + message: 'exception list list_id: "c1e1b359-7ac1-4e96-bc81-c683c092436f" does not exist', + status_code: 404, + }); + }); + }); + }); +}; diff --git a/x-pack/test/lists_api_integration/security_and_spaces/tests/export_list_items.ts b/x-pack/test/lists_api_integration/security_and_spaces/tests/export_list_items.ts index 6fe783fc497f2..74c28f5abdfc1 100644 --- a/x-pack/test/lists_api_integration/security_and_spaces/tests/export_list_items.ts +++ b/x-pack/test/lists_api_integration/security_and_spaces/tests/export_list_items.ts @@ -96,8 +96,9 @@ export default ({ getService }: FtrProviderContext): void => { .set('kbn-xsrf', 'true') .expect(200) .parse(binaryToString); - - expect(body.toString()).to.eql('127.0.0.2\n127.0.0.1\n'); + const bodyString = body.toString(); + expect(bodyString.includes('127.0.0.1')).to.be(true); + expect(bodyString.includes('127.0.0.2')).to.be(true); }); }); }); diff --git a/x-pack/test/lists_api_integration/security_and_spaces/tests/find_exception_list_items.ts b/x-pack/test/lists_api_integration/security_and_spaces/tests/find_exception_list_items.ts new file mode 100644 index 0000000000000..a65e9f344986f --- /dev/null +++ b/x-pack/test/lists_api_integration/security_and_spaces/tests/find_exception_list_items.ts @@ -0,0 +1,105 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { getExceptionListItemResponseMockWithoutAutoGeneratedValues } from '../../../../plugins/lists/common/schemas/response/exception_list_item_schema.mock'; +import { getCreateExceptionListItemMinimalSchemaMock } from '../../../../plugins/lists/common/schemas/request/create_exception_list_item_schema.mock'; +import { getCreateExceptionListMinimalSchemaMock } from '../../../../plugins/lists/common/schemas/request/create_exception_list_schema.mock'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + EXCEPTION_LIST_URL, + EXCEPTION_LIST_ITEM_URL, +} from '../../../../plugins/lists/common/constants'; + +import { deleteAllExceptions, removeExceptionListItemServerGeneratedProperties } from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('find_exception_list_items', () => { + describe('find exception list items', () => { + afterEach(async () => { + await deleteAllExceptions(es); + }); + + it('should return an empty find body correctly if no exception list items are loaded', async () => { + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + const { body } = await supertest + .get( + `${EXCEPTION_LIST_ITEM_URL}/_find?list_id=${ + getCreateExceptionListMinimalSchemaMock().list_id + }` + ) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body).to.eql({ + data: [], + page: 1, + per_page: 20, + total: 0, + }); + }); + + it('should return 404 if given a list_id that does not exist', async () => { + const { body } = await supertest + .get(`${EXCEPTION_LIST_ITEM_URL}/_find?list_id=non_exist`) + .set('kbn-xsrf', 'true') + .send() + .expect(404); + + expect(body).to.eql({ + message: 'exception list id: "non_exist" does not exist', + status_code: 404, + }); + }); + + it('should return a single exception list item when a single exception list item is loaded from a find with defaults added', async () => { + // add the exception list + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + // add a single exception list item + await supertest + .post(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListItemMinimalSchemaMock()) + .expect(200); + + // query the single exception list from _find + const { body } = await supertest + .get( + `${EXCEPTION_LIST_ITEM_URL}/_find?list_id=${ + getCreateExceptionListMinimalSchemaMock().list_id + }` + ) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + body.data = [removeExceptionListItemServerGeneratedProperties(body.data[0])]; + expect(body).to.eql({ + data: [getExceptionListItemResponseMockWithoutAutoGeneratedValues()], + page: 1, + per_page: 20, + total: 1, + }); + }); + }); + }); +}; diff --git a/x-pack/test/lists_api_integration/security_and_spaces/tests/find_exception_lists.ts b/x-pack/test/lists_api_integration/security_and_spaces/tests/find_exception_lists.ts new file mode 100644 index 0000000000000..c2328a7d112f4 --- /dev/null +++ b/x-pack/test/lists_api_integration/security_and_spaces/tests/find_exception_lists.ts @@ -0,0 +1,67 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { getExceptionResponseMockWithoutAutoGeneratedValues } from '../../../../plugins/lists/common/schemas/response/exception_list_schema.mock'; +import { getCreateExceptionListMinimalSchemaMock } from '../../../../plugins/lists/common/schemas/request/create_exception_list_schema.mock'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { EXCEPTION_LIST_URL } from '../../../../plugins/lists/common/constants'; + +import { deleteAllExceptions, removeExceptionListServerGeneratedProperties } from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('find_exception_lists', () => { + describe('find exception lists', () => { + afterEach(async () => { + await deleteAllExceptions(es); + }); + + it('should return an empty find body correctly if no exception lists are loaded', async () => { + const { body } = await supertest + .get(`${EXCEPTION_LIST_URL}/_find`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body).to.eql({ + data: [], + page: 1, + per_page: 20, + total: 0, + }); + }); + + it('should return a single exception list when a single exception list is loaded from a find with defaults added', async () => { + // add a single exception list + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + // query the single exception list from _find + const { body } = await supertest + .get(`${EXCEPTION_LIST_URL}/_find`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + body.data = [removeExceptionListServerGeneratedProperties(body.data[0])]; + expect(body).to.eql({ + data: [getExceptionResponseMockWithoutAutoGeneratedValues()], + page: 1, + per_page: 20, + total: 1, + }); + }); + }); + }); +}; diff --git a/x-pack/test/lists_api_integration/security_and_spaces/tests/import_list_items.ts b/x-pack/test/lists_api_integration/security_and_spaces/tests/import_list_items.ts index 4befb6bbaf050..7b7a6173fb408 100644 --- a/x-pack/test/lists_api_integration/security_and_spaces/tests/import_list_items.ts +++ b/x-pack/test/lists_api_integration/security_and_spaces/tests/import_list_items.ts @@ -45,7 +45,7 @@ export default ({ getService }: FtrProviderContext): void => { }); }); - describe('importing rules with an index', () => { + describe('importing lists with an index', () => { beforeEach(async () => { await createListsIndex(supertest); }); diff --git a/x-pack/test/lists_api_integration/security_and_spaces/tests/index.ts b/x-pack/test/lists_api_integration/security_and_spaces/tests/index.ts index 302877a680aa6..5458b4a9a7db2 100644 --- a/x-pack/test/lists_api_integration/security_and_spaces/tests/index.ts +++ b/x-pack/test/lists_api_integration/security_and_spaces/tests/index.ts @@ -23,5 +23,15 @@ export default ({ loadTestFile }: FtrProviderContext): void => { loadTestFile(require.resolve('./find_list_items')); loadTestFile(require.resolve('./import_list_items')); loadTestFile(require.resolve('./export_list_items')); + loadTestFile(require.resolve('./create_exception_lists')); + loadTestFile(require.resolve('./create_exception_list_items')); + loadTestFile(require.resolve('./read_exception_lists')); + loadTestFile(require.resolve('./read_exception_list_items')); + loadTestFile(require.resolve('./update_exception_lists')); + loadTestFile(require.resolve('./update_exception_list_items')); + loadTestFile(require.resolve('./delete_exception_lists')); + loadTestFile(require.resolve('./delete_exception_list_items')); + loadTestFile(require.resolve('./find_exception_lists')); + loadTestFile(require.resolve('./find_exception_list_items')); }); }; diff --git a/x-pack/test/lists_api_integration/security_and_spaces/tests/read_exception_list_items.ts b/x-pack/test/lists_api_integration/security_and_spaces/tests/read_exception_list_items.ts new file mode 100644 index 0000000000000..26b969e940a2b --- /dev/null +++ b/x-pack/test/lists_api_integration/security_and_spaces/tests/read_exception_list_items.ts @@ -0,0 +1,159 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { getExceptionListItemResponseMockWithoutAutoGeneratedValues } from '../../../../plugins/lists/common/schemas/response/exception_list_item_schema.mock'; +import { + getCreateExceptionListItemMinimalSchemaMock, + getCreateExceptionListItemMinimalSchemaMockWithoutId, +} from '../../../../plugins/lists/common/schemas/request/create_exception_list_item_schema.mock'; +import { ExceptionListItemSchema } from '../../../../plugins/lists/common'; +import { getCreateExceptionListMinimalSchemaMock } from '../../../../plugins/lists/common/schemas/request/create_exception_list_schema.mock'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + EXCEPTION_LIST_URL, + EXCEPTION_LIST_ITEM_URL, +} from '../../../../plugins/lists/common/constants'; + +import { deleteAllExceptions, removeExceptionListItemServerGeneratedProperties } from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('read_exception_list_items', () => { + describe('reading exception list items', () => { + afterEach(async () => { + await deleteAllExceptions(es); + }); + + it('should be able to read a single exception list items using item_id', async () => { + // create a simple exception list to read + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + const { body } = await supertest + .post(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListItemMinimalSchemaMock()) + .expect(200); + + const bodyToCompare = removeExceptionListItemServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(getExceptionListItemResponseMockWithoutAutoGeneratedValues()); + }); + + it('should be able to read a single exception list item using id', async () => { + // create a simple exception list to read + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + // create a simple exception list item to read + const { body: createListBody } = await supertest + .post(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListItemMinimalSchemaMock()) + .expect(200); + + const { body } = await supertest + .get(`${EXCEPTION_LIST_ITEM_URL}?id=${createListBody.id}`) + .set('kbn-xsrf', 'true') + .expect(200); + + const bodyToCompare = removeExceptionListItemServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(getExceptionListItemResponseMockWithoutAutoGeneratedValues()); + }); + + it('should be able to read a single list item with an auto-generated id', async () => { + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + // create a simple exception list item to read + const { body: createListBody } = await supertest + .post(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListItemMinimalSchemaMockWithoutId()) + .expect(200); + + const { body } = await supertest + .get(`${EXCEPTION_LIST_ITEM_URL}?id=${createListBody.id}`) + .set('kbn-xsrf', 'true') + .expect(200); + + const outputtedList: Partial = { + ...getExceptionListItemResponseMockWithoutAutoGeneratedValues(), + item_id: body.item_id, + }; + + const bodyToCompare = removeExceptionListItemServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputtedList); + }); + + it('should be able to read a single list item with an auto-generated item_id', async () => { + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + // create a simple exception list item to read + const { body: createListBody } = await supertest + .post(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListItemMinimalSchemaMockWithoutId()) + .expect(200); + + const { body } = await supertest + .get(`${EXCEPTION_LIST_ITEM_URL}?item_id=${createListBody.item_id}`) + .set('kbn-xsrf', 'true') + .expect(200); + + const outputtedList: Partial = { + ...getExceptionListItemResponseMockWithoutAutoGeneratedValues(), + item_id: body.item_id, + }; + + const bodyToCompare = removeExceptionListItemServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputtedList); + }); + + it('should return 404 if given a fake id', async () => { + const { body } = await supertest + .get(`${EXCEPTION_LIST_ITEM_URL}?id=c1e1b359-7ac1-4e96-bc81-c683c092436f`) + .set('kbn-xsrf', 'true') + .expect(404); + + expect(body).to.eql({ + status_code: 404, + message: 'exception list item id: "c1e1b359-7ac1-4e96-bc81-c683c092436f" does not exist', + }); + }); + + it('should return 404 if given a fake list_id', async () => { + const { body } = await supertest + .get(`${EXCEPTION_LIST_ITEM_URL}?item_id=c1e1b359-7ac1-4e96-bc81-c683c092436f`) + .set('kbn-xsrf', 'true') + .expect(404); + + expect(body).to.eql({ + status_code: 404, + message: + 'exception list item item_id: "c1e1b359-7ac1-4e96-bc81-c683c092436f" does not exist', + }); + }); + }); + }); +}; diff --git a/x-pack/test/lists_api_integration/security_and_spaces/tests/read_exception_lists.ts b/x-pack/test/lists_api_integration/security_and_spaces/tests/read_exception_lists.ts new file mode 100644 index 0000000000000..ee6bef3200f5c --- /dev/null +++ b/x-pack/test/lists_api_integration/security_and_spaces/tests/read_exception_lists.ts @@ -0,0 +1,112 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { ExceptionListSchema } from '../../../../plugins/lists/common'; +import { getExceptionResponseMockWithoutAutoGeneratedValues } from '../../../../plugins/lists/common/schemas/response/exception_list_schema.mock'; +import { + getCreateExceptionListMinimalSchemaMock, + getCreateExceptionListMinimalSchemaMockWithoutId, +} from '../../../../plugins/lists/common/schemas/request/create_exception_list_schema.mock'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { EXCEPTION_LIST_URL } from '../../../../plugins/lists/common/constants'; + +import { deleteAllExceptions, removeExceptionListServerGeneratedProperties } from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('read_exception_lists', () => { + describe('reading exception lists', () => { + afterEach(async () => { + await deleteAllExceptions(es); + }); + + it('should be able to read a single exception list using list_id', async () => { + // create a simple exception list to read + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + const { body } = await supertest + .get(`${EXCEPTION_LIST_URL}?list_id=${getCreateExceptionListMinimalSchemaMock().list_id}`) + .set('kbn-xsrf', 'true') + .expect(200); + + const bodyToCompare = removeExceptionListServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(getExceptionResponseMockWithoutAutoGeneratedValues()); + }); + + it('should be able to read a single exception list using id', async () => { + // create a simple exception list to read + const { body: createListBody } = await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + const { body } = await supertest + .get(`${EXCEPTION_LIST_URL}?id=${createListBody.id}`) + .set('kbn-xsrf', 'true') + .expect(200); + + const bodyToCompare = removeExceptionListServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(getExceptionResponseMockWithoutAutoGeneratedValues()); + }); + + it('should be able to read a single list with an auto-generated list_id', async () => { + // create a simple exception list to read + const { body: createListBody } = await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMockWithoutId()) + .expect(200); + + const { body } = await supertest + .get(`${EXCEPTION_LIST_URL}?list_id=${createListBody.list_id}`) + .set('kbn-xsrf', 'true') + .expect(200); + + const outputtedList: Partial = { + ...getExceptionResponseMockWithoutAutoGeneratedValues(), + list_id: body.list_id, + }; + + const bodyToCompare = removeExceptionListServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputtedList); + }); + + it('should return 404 if given a fake id', async () => { + const { body } = await supertest + .get(`${EXCEPTION_LIST_URL}?id=c1e1b359-7ac1-4e96-bc81-c683c092436f`) + .set('kbn-xsrf', 'true') + .expect(404); + + expect(body).to.eql({ + status_code: 404, + message: 'exception list id: "c1e1b359-7ac1-4e96-bc81-c683c092436f" does not exist', + }); + }); + + it('should return 404 if given a fake list_id', async () => { + const { body } = await supertest + .get(`${EXCEPTION_LIST_URL}?list_id=c1e1b359-7ac1-4e96-bc81-c683c092436f`) + .set('kbn-xsrf', 'true') + .expect(404); + + expect(body).to.eql({ + status_code: 404, + message: 'exception list list_id: "c1e1b359-7ac1-4e96-bc81-c683c092436f" does not exist', + }); + }); + }); + }); +}; diff --git a/x-pack/test/lists_api_integration/security_and_spaces/tests/update_exception_list_items.ts b/x-pack/test/lists_api_integration/security_and_spaces/tests/update_exception_list_items.ts new file mode 100644 index 0000000000000..40fb705620a19 --- /dev/null +++ b/x-pack/test/lists_api_integration/security_and_spaces/tests/update_exception_list_items.ts @@ -0,0 +1,168 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { getExceptionListItemResponseMockWithoutAutoGeneratedValues } from '../../../../plugins/lists/common/schemas/response/exception_list_item_schema.mock'; +import { getCreateExceptionListItemMinimalSchemaMock } from '../../../../plugins/lists/common/schemas/request/create_exception_list_item_schema.mock'; +import { getCreateExceptionListMinimalSchemaMock } from '../../../../plugins/lists/common/schemas/request/create_exception_list_schema.mock'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + EXCEPTION_LIST_URL, + EXCEPTION_LIST_ITEM_URL, +} from '../../../../plugins/lists/common/constants'; + +import { deleteAllExceptions, removeExceptionListServerGeneratedProperties } from '../../utils'; +import { + UpdateExceptionListItemSchema, + ExceptionListItemSchema, +} from '../../../../plugins/lists/common/schemas'; + +import { getUpdateMinimalExceptionListItemSchemaMock } from '../../../../plugins/lists/common/schemas/request/update_exception_list_item_schema.mock'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('update_exception_list_items', () => { + describe('update exception list items', () => { + afterEach(async () => { + await deleteAllExceptions(es); + }); + + it('should update a single exception list item property of name using an id', async () => { + // create a simple exception list + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + // create a simple exception list item + await supertest + .post(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListItemMinimalSchemaMock()) + .expect(200); + + // update a exception list item's name + const updatedList: UpdateExceptionListItemSchema = { + ...getUpdateMinimalExceptionListItemSchemaMock(), + name: 'some other name', + }; + + const { body } = await supertest + .put(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(updatedList) + .expect(200); + + const outputList: Partial = { + ...getExceptionListItemResponseMockWithoutAutoGeneratedValues(), + name: 'some other name', + }; + + const bodyToCompare = removeExceptionListServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputList); + }); + + it('should update a single exception list item property of name using an auto-generated item_id', async () => { + // create a simple exception list + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + // eslint-disable-next-line @typescript-eslint/naming-convention + const { item_id, ...itemNoId } = getCreateExceptionListItemMinimalSchemaMock(); + + // create a simple exception list item + const { body: createListBody } = await supertest + .post(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(itemNoId) + .expect(200); + + // update a exception list item's name + const updatedList: UpdateExceptionListItemSchema = { + ...getUpdateMinimalExceptionListItemSchemaMock(), + item_id: createListBody.item_id, + name: 'some other name', + }; + + const { body } = await supertest + .put(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(updatedList) + .expect(200); + + const outputList: Partial = { + ...getExceptionListItemResponseMockWithoutAutoGeneratedValues(), + name: 'some other name', + item_id: body.item_id, + }; + const bodyToCompare = removeExceptionListServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputList); + }); + + it('should give a 404 if it is given a fake exception list item id', async () => { + const updatedList: UpdateExceptionListItemSchema = { + ...getUpdateMinimalExceptionListItemSchemaMock(), + id: '5096dec6-b6b9-4d8d-8f93-6c2602079d9d', + }; + delete updatedList.item_id; + + const { body } = await supertest + .put(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(updatedList) + .expect(404); + + expect(body).to.eql({ + status_code: 404, + message: 'exception list item id: "5096dec6-b6b9-4d8d-8f93-6c2602079d9d" does not exist', + }); + }); + + it('should give a 404 if it is given a fake item_id', async () => { + const updatedList: UpdateExceptionListItemSchema = { + ...getUpdateMinimalExceptionListItemSchemaMock(), + item_id: '5096dec6-b6b9-4d8d-8f93-6c2602079d9d', + }; + + const { body } = await supertest + .put(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(updatedList) + .expect(404); + + expect(body).to.eql({ + status_code: 404, + message: + 'exception list item item_id: "5096dec6-b6b9-4d8d-8f93-6c2602079d9d" does not exist', + }); + }); + + it('should give a 404 if both id and list_id is null', async () => { + // eslint-disable-next-line @typescript-eslint/naming-convention + const { item_id, ...listNoId } = getUpdateMinimalExceptionListItemSchemaMock(); + + const { body } = await supertest + .put(EXCEPTION_LIST_ITEM_URL) + .set('kbn-xsrf', 'true') + .send(listNoId) + .expect(404); + + expect(body).to.eql({ + status_code: 404, + message: 'either id or item_id need to be defined', + }); + }); + }); + }); +}; diff --git a/x-pack/test/lists_api_integration/security_and_spaces/tests/update_exception_lists.ts b/x-pack/test/lists_api_integration/security_and_spaces/tests/update_exception_lists.ts new file mode 100644 index 0000000000000..bd30dd87963ed --- /dev/null +++ b/x-pack/test/lists_api_integration/security_and_spaces/tests/update_exception_lists.ts @@ -0,0 +1,182 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { getExceptionResponseMockWithoutAutoGeneratedValues } from '../../../../plugins/lists/common/schemas/response/exception_list_schema.mock'; +import { getCreateExceptionListMinimalSchemaMock } from '../../../../plugins/lists/common/schemas/request/create_exception_list_schema.mock'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { EXCEPTION_LIST_URL } from '../../../../plugins/lists/common/constants'; + +import { deleteAllExceptions, removeExceptionListServerGeneratedProperties } from '../../utils'; +import { + UpdateExceptionListSchema, + ExceptionListSchema, +} from '../../../../plugins/lists/common/schemas'; + +import { getUpdateMinimalExceptionListSchemaMock } from '../../../../plugins/lists/common/schemas/request/update_exception_list_schema.mock'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('update_exception_lists', () => { + describe('update exception lists', () => { + afterEach(async () => { + await deleteAllExceptions(es); + }); + + it('should update a single exception list property of name using an id', async () => { + // create a simple exception list + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + // update a exception list's name + const updatedList: UpdateExceptionListSchema = { + ...getUpdateMinimalExceptionListSchemaMock(), + name: 'some other name', + }; + + const { body } = await supertest + .put(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(updatedList) + .expect(200); + + const outputList: Partial = { + ...getExceptionResponseMockWithoutAutoGeneratedValues(), + name: 'some other name', + version: 2, + }; + const bodyToCompare = removeExceptionListServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputList); + }); + + it('should update a single exception list property of name using an auto-generated list_id', async () => { + // eslint-disable-next-line @typescript-eslint/naming-convention + const { list_id, ...listNoId } = getCreateExceptionListMinimalSchemaMock(); + + // create a simple exception list + const { body: createListBody } = await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(listNoId) + .expect(200); + + // update a exception list's name + const updatedList: UpdateExceptionListSchema = { + ...getUpdateMinimalExceptionListSchemaMock(), + id: createListBody.id, + name: 'some other name', + }; + + const { body } = await supertest + .put(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(updatedList) + .expect(200); + + const outputList: Partial = { + ...getExceptionResponseMockWithoutAutoGeneratedValues(), + name: 'some other name', + list_id: body.list_id, + version: 2, + }; + const bodyToCompare = removeExceptionListServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputList); + }); + + it('should change the version of a list when it updates two properties', async () => { + // create a simple exception list + await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(getCreateExceptionListMinimalSchemaMock()) + .expect(200); + + // update a simple exception list property of name and description + // update a exception list's name + const updatedList: UpdateExceptionListSchema = { + ...getUpdateMinimalExceptionListSchemaMock(), + name: 'some other name', + description: 'some other description', + }; + + const { body } = await supertest + .put(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(updatedList) + .expect(200); + + const outputList: Partial = { + ...getExceptionResponseMockWithoutAutoGeneratedValues(), + name: 'some other name', + description: 'some other description', + version: 2, + }; + const bodyToCompare = removeExceptionListServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputList); + }); + + it('should give a 404 if it is given a fake id', async () => { + const updatedList: UpdateExceptionListSchema = { + ...getUpdateMinimalExceptionListSchemaMock(), + id: '5096dec6-b6b9-4d8d-8f93-6c2602079d9d', + }; + delete updatedList.list_id; + + const { body } = await supertest + .put(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(updatedList) + .expect(404); + + expect(body).to.eql({ + status_code: 404, + message: 'exception list id: "5096dec6-b6b9-4d8d-8f93-6c2602079d9d" does not exist', + }); + }); + + it('should give a 404 if it is given a fake list_id', async () => { + const updatedList: UpdateExceptionListSchema = { + ...getUpdateMinimalExceptionListSchemaMock(), + list_id: '5096dec6-b6b9-4d8d-8f93-6c2602079d9d', + }; + + const { body } = await supertest + .put(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(updatedList) + .expect(404); + + expect(body).to.eql({ + status_code: 404, + message: 'exception list list_id: "5096dec6-b6b9-4d8d-8f93-6c2602079d9d" does not exist', + }); + }); + + it('should give a 404 if both id and list_id is null', async () => { + // eslint-disable-next-line @typescript-eslint/naming-convention + const { list_id, ...listNoId } = getUpdateMinimalExceptionListSchemaMock(); + + const { body } = await supertest + .put(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(listNoId) + .expect(404); + + expect(body).to.eql({ + status_code: 404, + message: 'either id or list_id need to be defined', + }); + }); + }); + }); +}; diff --git a/x-pack/test/lists_api_integration/utils.ts b/x-pack/test/lists_api_integration/utils.ts index 272768fdf50b3..54a13fc027c99 100644 --- a/x-pack/test/lists_api_integration/utils.ts +++ b/x-pack/test/lists_api_integration/utils.ts @@ -6,8 +6,13 @@ import { SuperTest } from 'supertest'; import supertestAsPromised from 'supertest-as-promised'; +import { Client } from '@elastic/elasticsearch'; -import { ListItemSchema } from '../../plugins/lists/common/schemas'; +import { + ListItemSchema, + ExceptionListSchema, + ExceptionListItemSchema, +} from '../../plugins/lists/common/schemas'; import { ListSchema } from '../../plugins/lists/common'; import { LIST_INDEX } from '../../plugins/lists/common/constants'; @@ -83,6 +88,30 @@ export const removeListItemServerGeneratedProperties = ( return removedProperties; }; +/** + * This will remove server generated properties such as date times, etc... + * @param list List to pass in to remove typical server generated properties + */ +export const removeExceptionListItemServerGeneratedProperties = ( + list: Partial +): Partial => { + /* eslint-disable-next-line @typescript-eslint/naming-convention */ + const { created_at, updated_at, id, tie_breaker_id, _version, ...removedProperties } = list; + return removedProperties; +}; + +/** + * This will remove server generated properties such as date times, etc... + * @param list List to pass in to remove typical server generated properties + */ +export const removeExceptionListServerGeneratedProperties = ( + list: Partial +): Partial => { + /* eslint-disable-next-line @typescript-eslint/naming-convention */ + const { created_at, updated_at, id, tie_breaker_id, _version, ...removedProperties } = list; + return removedProperties; +}; + // Similar to ReactJs's waitFor from here: https://testing-library.com/docs/dom-testing-library/api-async#waitfor export const waitFor = async ( functionToTest: () => Promise, @@ -124,3 +153,32 @@ export const binaryToString = (res: any, callback: any): void => { callback(null, Buffer.from(res.data)); }); }; + +/** + * Remove all exceptions from the .kibana index + * This will retry 20 times before giving up and hopefully still not interfere with other tests + * @param es The ElasticSearch handle + */ +export const deleteAllExceptions = async (es: Client, retryCount = 20): Promise => { + if (retryCount > 0) { + try { + await es.deleteByQuery({ + index: '.kibana', + q: 'type:exception-list or type:exception-list-agnostic', + wait_for_completion: true, + refresh: true, + body: {}, + }); + } catch (err) { + // eslint-disable-next-line no-console + console.log( + `Failure trying to deleteAllExceptions, retries left are: ${retryCount - 1}`, + err + ); + await deleteAllExceptions(es, retryCount - 1); + } + } else { + // eslint-disable-next-line no-console + console.log('Could not deleteAllExceptions, no retries are left'); + } +}; From b249af128ee73a1be0669f77a1e5c6c8bbceefc2 Mon Sep 17 00:00:00 2001 From: Walter Rafelsberger Date: Thu, 13 Aug 2020 09:38:15 +0200 Subject: [PATCH 26/27] Use jest.useFakeTimers instead of hard coded timeout for tooltip tests. (#74642) Refactor to use jest.useFakeTimers(). --- .../field_title_bar/field_title_bar.test.js | 31 +++++++++++++------ .../field_type_icon/field_type_icon.test.js | 19 ++++++++++-- .../configure_cases/button.test.tsx | 18 +++++++---- 3 files changed, 50 insertions(+), 18 deletions(-) diff --git a/x-pack/plugins/ml/public/application/components/field_title_bar/field_title_bar.test.js b/x-pack/plugins/ml/public/application/components/field_title_bar/field_title_bar.test.js index 1b33d68042295..329863fdc9986 100644 --- a/x-pack/plugins/ml/public/application/components/field_title_bar/field_title_bar.test.js +++ b/x-pack/plugins/ml/public/application/components/field_title_bar/field_title_bar.test.js @@ -62,7 +62,10 @@ describe('FieldTitleBar', () => { expect(hasClassName).toBeTruthy(); }); - test(`tooltip hovering`, (done) => { + test(`tooltip hovering`, () => { + // Use fake timers so we don't have to wait for the EuiToolTip timeout + jest.useFakeTimers(); + const props = { card: { fieldName: 'foo', type: 'bar' } }; const wrapper = mountWithIntl(); const container = wrapper.find({ className: 'field-name' }); @@ -70,14 +73,22 @@ describe('FieldTitleBar', () => { expect(wrapper.find('EuiToolTip').children()).toHaveLength(1); container.simulate('mouseover'); - // EuiToolTip mounts children after a 250ms delay - setTimeout(() => { - wrapper.update(); - expect(wrapper.find('EuiToolTip').children()).toHaveLength(2); - container.simulate('mouseout'); - wrapper.update(); - expect(wrapper.find('EuiToolTip').children()).toHaveLength(1); - done(); - }, 250); + + // Run the timers so the EuiTooltip will be visible + jest.runAllTimers(); + + wrapper.update(); + expect(wrapper.find('EuiToolTip').children()).toHaveLength(2); + + container.simulate('mouseout'); + + // Run the timers so the EuiTooltip will be hidden again + jest.runAllTimers(); + + wrapper.update(); + expect(wrapper.find('EuiToolTip').children()).toHaveLength(1); + + // Clearing all mocks will also reset fake timers. + jest.clearAllMocks(); }); }); diff --git a/x-pack/plugins/ml/public/application/components/field_type_icon/field_type_icon.test.js b/x-pack/plugins/ml/public/application/components/field_type_icon/field_type_icon.test.js index 7e37dc10ade33..d4200c2f8366b 100644 --- a/x-pack/plugins/ml/public/application/components/field_type_icon/field_type_icon.test.js +++ b/x-pack/plugins/ml/public/application/components/field_type_icon/field_type_icon.test.js @@ -27,6 +27,9 @@ describe('FieldTypeIcon', () => { }); test(`render with tooltip and test hovering`, () => { + // Use fake timers so we don't have to wait for the EuiToolTip timeout + jest.useFakeTimers(); + const typeIconComponent = mount( ); @@ -35,11 +38,23 @@ describe('FieldTypeIcon', () => { expect(typeIconComponent.find('EuiToolTip').children()).toHaveLength(1); container.simulate('mouseover'); - // EuiToolTip mounts children after a 250ms delay - setTimeout(() => expect(typeIconComponent.find('EuiToolTip').children()).toHaveLength(2), 250); + + // Run the timers so the EuiTooltip will be visible + jest.runAllTimers(); + + typeIconComponent.update(); + expect(typeIconComponent.find('EuiToolTip').children()).toHaveLength(2); container.simulate('mouseout'); + + // Run the timers so the EuiTooltip will be hidden again + jest.runAllTimers(); + + typeIconComponent.update(); expect(typeIconComponent.find('EuiToolTip').children()).toHaveLength(1); + + // Clearing all mocks will also reset fake timers. + jest.clearAllMocks(); }); test(`update component`, () => { diff --git a/x-pack/plugins/security_solution/public/cases/components/configure_cases/button.test.tsx b/x-pack/plugins/security_solution/public/cases/components/configure_cases/button.test.tsx index 6fb693e47560d..56daa9a8364f6 100644 --- a/x-pack/plugins/security_solution/public/cases/components/configure_cases/button.test.tsx +++ b/x-pack/plugins/security_solution/public/cases/components/configure_cases/button.test.tsx @@ -80,6 +80,9 @@ describe('Configuration button', () => { }); test('it shows the tooltip when hovering the button', () => { + // Use fake timers so we don't have to wait for the EuiToolTip timeout + jest.useFakeTimers(); + const msgTooltip = 'My message tooltip'; const titleTooltip = 'My title'; @@ -96,11 +99,14 @@ describe('Configuration button', () => { ); newWrapper.find('[data-test-subj="configure-case-button"]').first().simulate('mouseOver'); - // EuiToolTip mounts children after a 250ms delay - setTimeout( - () => - expect(newWrapper.find('.euiToolTipPopover').text()).toBe(`${titleTooltip}${msgTooltip}`), - 250 - ); + + // Run the timers so the EuiTooltip will be visible + jest.runAllTimers(); + + newWrapper.update(); + expect(newWrapper.find('.euiToolTipPopover').text()).toBe(`${titleTooltip}${msgTooltip}`); + + // Clearing all mocks will also reset fake timers. + jest.clearAllMocks(); }); }); From 290f9bfde20cc6f689803afd0efbc158fdbbc5d8 Mon Sep 17 00:00:00 2001 From: Liza Katz Date: Thu, 13 Aug 2020 11:28:39 +0300 Subject: [PATCH 27/27] Data plugin: Suggested enhance pattern (#74505) * improve test stability * Enhance pattern * fix tests * fix test * Rename enhance to __enhance * Deleted unnecessary attribute * ISearchInterceptor interface * docs * Clean up internal docs * jest Co-authored-by: Elastic Machine --- ...ublic.searchinterceptor.abortcontroller.md | 13 ----- ...blic.searchinterceptor.getpendingcount_.md | 8 ++- ...data-public.searchinterceptor.hidetoast.md | 11 ---- ...blic.searchinterceptor.longrunningtoast.md | 13 ----- ...n-plugins-data-public.searchinterceptor.md | 11 +--- ...a-public.searchinterceptor.pendingcount.md | 13 ----- ...-public.searchinterceptor.pendingcount_.md | 13 ----- ...ns-data-public.searchinterceptor.search.md | 2 +- ...data-public.searchinterceptor.showtoast.md | 11 ---- ....searchinterceptor.timeoutsubscriptions.md | 13 ----- ...-data-public.searchinterceptordeps.http.md | 2 +- ...ugins-data-public.searchinterceptordeps.md | 8 +-- ...ic.searchinterceptordeps.startservices.md} | 6 +-- ...ata-public.searchinterceptordeps.toasts.md | 2 +- ...public.searchinterceptordeps.uisettings.md | 2 +- src/plugins/data/public/mocks.ts | 1 + src/plugins/data/public/plugin.ts | 18 ++++--- src/plugins/data/public/public.api.md | 35 ++++++++----- src/plugins/data/public/search/index.ts | 9 +++- src/plugins/data/public/search/mocks.ts | 2 +- .../public/search/search_interceptor.test.ts | 28 +++++------ .../data/public/search/search_interceptor.ts | 50 ++++++++++++------- .../data/public/search/search_service.test.ts | 2 +- .../data/public/search/search_service.ts | 35 +++++++------ src/plugins/data/public/search/types.ts | 16 ++++-- src/plugins/data/public/types.ts | 10 +++- x-pack/plugins/data_enhanced/public/plugin.ts | 18 ++++--- .../public/search/search_interceptor.test.ts | 48 +++++++++++------- .../public/search/search_interceptor.ts | 7 ++- 29 files changed, 194 insertions(+), 213 deletions(-) delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.abortcontroller.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.hidetoast.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.longrunningtoast.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.pendingcount.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.pendingcount_.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.showtoast.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.timeoutsubscriptions.md rename docs/development/plugins/data/public/{kibana-plugin-plugins-data-public.searchinterceptordeps.application.md => kibana-plugin-plugins-data-public.searchinterceptordeps.startservices.md} (61%) diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.abortcontroller.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.abortcontroller.md deleted file mode 100644 index 0451a2254dc40..0000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.abortcontroller.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchInterceptor](./kibana-plugin-plugins-data-public.searchinterceptor.md) > [abortController](./kibana-plugin-plugins-data-public.searchinterceptor.abortcontroller.md) - -## SearchInterceptor.abortController property - -`abortController` used to signal all searches to abort. - -Signature: - -```typescript -protected abortController: AbortController; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.getpendingcount_.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.getpendingcount_.md index db2c5d6957ad7..ef36b3f37b0c7 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.getpendingcount_.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.getpendingcount_.md @@ -2,12 +2,16 @@ [Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchInterceptor](./kibana-plugin-plugins-data-public.searchinterceptor.md) > [getPendingCount$](./kibana-plugin-plugins-data-public.searchinterceptor.getpendingcount_.md) -## SearchInterceptor.getPendingCount$ property +## SearchInterceptor.getPendingCount$() method Returns an `Observable` over the current number of pending searches. This could mean that one of the search requests is still in flight, or that it has only received partial responses. Signature: ```typescript -getPendingCount$: () => Observable; +getPendingCount$(): Observable; ``` +Returns: + +`Observable` + diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.hidetoast.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.hidetoast.md deleted file mode 100644 index 59938a755a99e..0000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.hidetoast.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchInterceptor](./kibana-plugin-plugins-data-public.searchinterceptor.md) > [hideToast](./kibana-plugin-plugins-data-public.searchinterceptor.hidetoast.md) - -## SearchInterceptor.hideToast property - -Signature: - -```typescript -protected hideToast: () => void; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.longrunningtoast.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.longrunningtoast.md deleted file mode 100644 index 5799039de91bc..0000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.longrunningtoast.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchInterceptor](./kibana-plugin-plugins-data-public.searchinterceptor.md) > [longRunningToast](./kibana-plugin-plugins-data-public.searchinterceptor.longrunningtoast.md) - -## SearchInterceptor.longRunningToast property - -The current long-running toast (if there is one). - -Signature: - -```typescript -protected longRunningToast?: Toast; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.md index b3b7da05326d0..32954927504ae 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.md @@ -20,22 +20,15 @@ export declare class SearchInterceptor | Property | Modifiers | Type | Description | | --- | --- | --- | --- | -| [abortController](./kibana-plugin-plugins-data-public.searchinterceptor.abortcontroller.md) | | AbortController | abortController used to signal all searches to abort. | | [deps](./kibana-plugin-plugins-data-public.searchinterceptor.deps.md) | | SearchInterceptorDeps | | -| [getPendingCount$](./kibana-plugin-plugins-data-public.searchinterceptor.getpendingcount_.md) | | () => Observable<number> | Returns an Observable over the current number of pending searches. This could mean that one of the search requests is still in flight, or that it has only received partial responses. | -| [hideToast](./kibana-plugin-plugins-data-public.searchinterceptor.hidetoast.md) | | () => void | | -| [longRunningToast](./kibana-plugin-plugins-data-public.searchinterceptor.longrunningtoast.md) | | Toast | The current long-running toast (if there is one). | -| [pendingCount](./kibana-plugin-plugins-data-public.searchinterceptor.pendingcount.md) | | number | The number of pending search requests. | -| [pendingCount$](./kibana-plugin-plugins-data-public.searchinterceptor.pendingcount_.md) | | BehaviorSubject<number> | Observable that emits when the number of pending requests changes. | | [requestTimeout](./kibana-plugin-plugins-data-public.searchinterceptor.requesttimeout.md) | | number | undefined | | -| [showToast](./kibana-plugin-plugins-data-public.searchinterceptor.showtoast.md) | | () => void | | -| [timeoutSubscriptions](./kibana-plugin-plugins-data-public.searchinterceptor.timeoutsubscriptions.md) | | Subscription | The subscriptions from scheduling the automatic timeout for each request. | ## Methods | Method | Modifiers | Description | | --- | --- | --- | +| [getPendingCount$()](./kibana-plugin-plugins-data-public.searchinterceptor.getpendingcount_.md) | | Returns an Observable over the current number of pending searches. This could mean that one of the search requests is still in flight, or that it has only received partial responses. | | [runSearch(request, signal, strategy)](./kibana-plugin-plugins-data-public.searchinterceptor.runsearch.md) | | | -| [search(request, options)](./kibana-plugin-plugins-data-public.searchinterceptor.search.md) | | Searches using the given search method. Overrides the AbortSignal with one that will abort either when cancelPending is called, when the request times out, or when the original AbortSignal is aborted. Updates the pendingCount when the request is started/finalized. | +| [search(request, options)](./kibana-plugin-plugins-data-public.searchinterceptor.search.md) | | Searches using the given search method. Overrides the AbortSignal with one that will abort either when cancelPending is called, when the request times out, or when the original AbortSignal is aborted. Updates pendingCount$ when the request is started/finalized. | | [setupTimers(options)](./kibana-plugin-plugins-data-public.searchinterceptor.setuptimers.md) | | | diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.pendingcount.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.pendingcount.md deleted file mode 100644 index 7dd2bd3e6703f..0000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.pendingcount.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchInterceptor](./kibana-plugin-plugins-data-public.searchinterceptor.md) > [pendingCount](./kibana-plugin-plugins-data-public.searchinterceptor.pendingcount.md) - -## SearchInterceptor.pendingCount property - -The number of pending search requests. - -Signature: - -```typescript -protected pendingCount: number; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.pendingcount_.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.pendingcount_.md deleted file mode 100644 index dad0fca0bfe08..0000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.pendingcount_.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchInterceptor](./kibana-plugin-plugins-data-public.searchinterceptor.md) > [pendingCount$](./kibana-plugin-plugins-data-public.searchinterceptor.pendingcount_.md) - -## SearchInterceptor.pendingCount$ property - -Observable that emits when the number of pending requests changes. - -Signature: - -```typescript -protected pendingCount$: BehaviorSubject; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.search.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.search.md index 38ddda7b4e184..1752d183a8737 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.search.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.search.md @@ -4,7 +4,7 @@ ## SearchInterceptor.search() method -Searches using the given `search` method. Overrides the `AbortSignal` with one that will abort either when `cancelPending` is called, when the request times out, or when the original `AbortSignal` is aborted. Updates the `pendingCount` when the request is started/finalized. +Searches using the given `search` method. Overrides the `AbortSignal` with one that will abort either when `cancelPending` is called, when the request times out, or when the original `AbortSignal` is aborted. Updates `pendingCount$` when the request is started/finalized. Signature: diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.showtoast.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.showtoast.md deleted file mode 100644 index e495c72b57215..0000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.showtoast.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchInterceptor](./kibana-plugin-plugins-data-public.searchinterceptor.md) > [showToast](./kibana-plugin-plugins-data-public.searchinterceptor.showtoast.md) - -## SearchInterceptor.showToast property - -Signature: - -```typescript -protected showToast: () => void; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.timeoutsubscriptions.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.timeoutsubscriptions.md deleted file mode 100644 index 12f200e037784..0000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.timeoutsubscriptions.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchInterceptor](./kibana-plugin-plugins-data-public.searchinterceptor.md) > [timeoutSubscriptions](./kibana-plugin-plugins-data-public.searchinterceptor.timeoutsubscriptions.md) - -## SearchInterceptor.timeoutSubscriptions property - -The subscriptions from scheduling the automatic timeout for each request. - -Signature: - -```typescript -protected timeoutSubscriptions: Subscription; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.http.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.http.md index 1146179c13d63..66c31bb6fcf80 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.http.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.http.md @@ -7,5 +7,5 @@ Signature: ```typescript -http: CoreStart['http']; +http: CoreSetup['http']; ``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.md index 1291af5359887..63eb67ce48246 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.md @@ -14,9 +14,9 @@ export interface SearchInterceptorDeps | Property | Type | Description | | --- | --- | --- | -| [application](./kibana-plugin-plugins-data-public.searchinterceptordeps.application.md) | ApplicationStart | | -| [http](./kibana-plugin-plugins-data-public.searchinterceptordeps.http.md) | CoreStart['http'] | | -| [toasts](./kibana-plugin-plugins-data-public.searchinterceptordeps.toasts.md) | ToastsStart | | -| [uiSettings](./kibana-plugin-plugins-data-public.searchinterceptordeps.uisettings.md) | CoreStart['uiSettings'] | | +| [http](./kibana-plugin-plugins-data-public.searchinterceptordeps.http.md) | CoreSetup['http'] | | +| [startServices](./kibana-plugin-plugins-data-public.searchinterceptordeps.startservices.md) | Promise<[CoreStart, any, unknown]> | | +| [toasts](./kibana-plugin-plugins-data-public.searchinterceptordeps.toasts.md) | ToastsSetup | | +| [uiSettings](./kibana-plugin-plugins-data-public.searchinterceptordeps.uisettings.md) | CoreSetup['uiSettings'] | | | [usageCollector](./kibana-plugin-plugins-data-public.searchinterceptordeps.usagecollector.md) | SearchUsageCollector | | diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.application.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.startservices.md similarity index 61% rename from docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.application.md rename to docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.startservices.md index a8cd1b170a595..855d0652058b8 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.application.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.startservices.md @@ -1,11 +1,11 @@ -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchInterceptorDeps](./kibana-plugin-plugins-data-public.searchinterceptordeps.md) > [application](./kibana-plugin-plugins-data-public.searchinterceptordeps.application.md) +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchInterceptorDeps](./kibana-plugin-plugins-data-public.searchinterceptordeps.md) > [startServices](./kibana-plugin-plugins-data-public.searchinterceptordeps.startservices.md) -## SearchInterceptorDeps.application property +## SearchInterceptorDeps.startServices property Signature: ```typescript -application: ApplicationStart; +startServices: Promise<[CoreStart, any, unknown]>; ``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.toasts.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.toasts.md index 0023b34af10c3..1f560dfa5cf7c 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.toasts.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.toasts.md @@ -7,5 +7,5 @@ Signature: ```typescript -toasts: ToastsStart; +toasts: ToastsSetup; ``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.uisettings.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.uisettings.md index 425e177ec9300..a34d223c34ac2 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.uisettings.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptordeps.uisettings.md @@ -7,5 +7,5 @@ Signature: ```typescript -uiSettings: CoreStart['uiSettings']; +uiSettings: CoreSetup['uiSettings']; ``` diff --git a/src/plugins/data/public/mocks.ts b/src/plugins/data/public/mocks.ts index 135b6121d1dd5..3fc1e6454829d 100644 --- a/src/plugins/data/public/mocks.ts +++ b/src/plugins/data/public/mocks.ts @@ -44,6 +44,7 @@ const createSetupContract = (): Setup => { search: searchServiceMock.createSetupContract(), fieldFormats: fieldFormatsServiceMock.createSetupContract(), query: querySetupMock, + __enhance: jest.fn(), }; }; diff --git a/src/plugins/data/public/plugin.ts b/src/plugins/data/public/plugin.ts index 68c0f506f121d..e950434b287a7 100644 --- a/src/plugins/data/public/plugin.ts +++ b/src/plugins/data/public/plugin.ts @@ -34,6 +34,7 @@ import { DataSetupDependencies, DataStartDependencies, InternalStartServices, + DataPublicPluginEnhancements, } from './types'; import { AutocompleteService } from './autocomplete'; import { SearchService } from './search/search_service'; @@ -156,16 +157,21 @@ export class DataPublicPlugin })) ); + const searchService = this.searchService.setup(core, { + expressions, + usageCollection, + getInternalStartServices, + packageInfo: this.packageInfo, + }); + return { autocomplete: this.autocomplete.setup(core), - search: this.searchService.setup(core, { - expressions, - usageCollection, - getInternalStartServices, - packageInfo: this.packageInfo, - }), + search: searchService, fieldFormats: this.fieldFormatsService.setup(core), query: queryService, + __enhance: (enhancements: DataPublicPluginEnhancements) => { + searchService.__enhance(enhancements.search); + }, }; } diff --git a/src/plugins/data/public/public.api.md b/src/plugins/data/public/public.api.md index 6225d74fb1b31..a61334905e9f5 100644 --- a/src/plugins/data/public/public.api.md +++ b/src/plugins/data/public/public.api.md @@ -8,12 +8,12 @@ import { $Values } from '@kbn/utility-types'; import _ from 'lodash'; import { Action } from 'history'; import { ApiResponse } from '@elastic/elasticsearch/lib/Transport'; -import { ApplicationStart } from 'kibana/public'; import { Assign } from '@kbn/utility-types'; import { BehaviorSubject } from 'rxjs'; import Boom from 'boom'; import { Component } from 'react'; import { CoreSetup } from 'src/core/public'; +import { CoreSetup as CoreSetup_2 } from 'kibana/public'; import { CoreStart } from 'kibana/public'; import { CoreStart as CoreStart_2 } from 'src/core/public'; import { Ensure } from '@kbn/utility-types'; @@ -65,7 +65,7 @@ import { SerializedFieldFormat as SerializedFieldFormat_2 } from 'src/plugins/ex import { Subscription } from 'rxjs'; import { Toast } from 'kibana/public'; import { ToastInputFields } from 'src/core/public/notifications'; -import { ToastsStart } from 'kibana/public'; +import { ToastsSetup } from 'kibana/public'; import { TransportRequestOptions } from '@elastic/elasticsearch/lib/Transport'; import { TransportRequestParams } from '@elastic/elasticsearch/lib/Transport'; import { TransportRequestPromise } from '@elastic/elasticsearch/lib/Transport'; @@ -222,6 +222,10 @@ export type CustomFilter = Filter & { // // @public (undocumented) export interface DataPublicPluginSetup { + // Warning: (ae-forgotten-export) The symbol "DataPublicPluginEnhancements" needs to be exported by the entry point index.d.ts + // + // @internal (undocumented) + __enhance: (enhancements: DataPublicPluginEnhancements) => void; // Warning: (ae-forgotten-export) The symbol "AutocompleteSetup" needs to be exported by the entry point index.d.ts // // (undocumented) @@ -1714,15 +1718,19 @@ export interface SearchError { // @public (undocumented) export class SearchInterceptor { constructor(deps: SearchInterceptorDeps, requestTimeout?: number | undefined); + // @internal protected abortController: AbortController; + // @internal (undocumented) + protected application: CoreStart['application']; // (undocumented) protected readonly deps: SearchInterceptorDeps; - getPendingCount$: () => Observable; - // (undocumented) + getPendingCount$(): Observable; + // @internal (undocumented) protected hideToast: () => void; + // @internal protected longRunningToast?: Toast; + // @internal protected pendingCount$: BehaviorSubject; - protected pendingCount: number; // (undocumented) protected readonly requestTimeout?: number | undefined; // (undocumented) @@ -1733,8 +1741,9 @@ export class SearchInterceptor { combinedSignal: AbortSignal; cleanup: () => void; }; - // (undocumented) + // @internal (undocumented) protected showToast: () => void; + // @internal protected timeoutSubscriptions: Subscription; } @@ -1743,13 +1752,13 @@ export class SearchInterceptor { // @public (undocumented) export interface SearchInterceptorDeps { // (undocumented) - application: ApplicationStart; + http: CoreSetup_2['http']; // (undocumented) - http: CoreStart['http']; + startServices: Promise<[CoreStart, any, unknown]>; // (undocumented) - toasts: ToastsStart; + toasts: ToastsSetup; // (undocumented) - uiSettings: CoreStart['uiSettings']; + uiSettings: CoreSetup_2['uiSettings']; // Warning: (ae-forgotten-export) The symbol "SearchUsageCollector" needs to be exported by the entry point index.d.ts // // (undocumented) @@ -1980,9 +1989,9 @@ export const UI_SETTINGS: { // src/plugins/data/public/index.ts:393:1 - (ae-forgotten-export) The symbol "propFilter" needs to be exported by the entry point index.d.ts // src/plugins/data/public/index.ts:396:1 - (ae-forgotten-export) The symbol "toAbsoluteDates" needs to be exported by the entry point index.d.ts // src/plugins/data/public/query/state_sync/connect_to_query_state.ts:45:5 - (ae-forgotten-export) The symbol "FilterStateStore" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/types.ts:54:5 - (ae-forgotten-export) The symbol "createFiltersFromValueClickAction" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/types.ts:55:5 - (ae-forgotten-export) The symbol "createFiltersFromRangeSelectAction" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/types.ts:63:5 - (ae-forgotten-export) The symbol "IndexPatternSelectProps" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/types.ts:62:5 - (ae-forgotten-export) The symbol "createFiltersFromValueClickAction" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/types.ts:63:5 - (ae-forgotten-export) The symbol "createFiltersFromRangeSelectAction" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/types.ts:71:5 - (ae-forgotten-export) The symbol "IndexPatternSelectProps" needs to be exported by the entry point index.d.ts // (No @packageDocumentation comment for this package) diff --git a/src/plugins/data/public/search/index.ts b/src/plugins/data/public/search/index.ts index 96445e5367147..ae028df31e401 100644 --- a/src/plugins/data/public/search/index.ts +++ b/src/plugins/data/public/search/index.ts @@ -21,7 +21,14 @@ export * from './aggs'; export * from './expressions'; export * from './tabify'; -export { ISearch, ISearchOptions, ISearchGeneric, ISearchSetup, ISearchStart } from './types'; +export { + ISearch, + ISearchOptions, + ISearchGeneric, + ISearchSetup, + ISearchStart, + SearchEnhancements, +} from './types'; export { IEsSearchResponse, IEsSearchRequest, ES_SEARCH_STRATEGY } from '../../common/search'; diff --git a/src/plugins/data/public/search/mocks.ts b/src/plugins/data/public/search/mocks.ts index c56331baffed2..8ccf46fe7c97d 100644 --- a/src/plugins/data/public/search/mocks.ts +++ b/src/plugins/data/public/search/mocks.ts @@ -26,13 +26,13 @@ export * from './search_source/mocks'; function createSetupContract(): jest.Mocked { return { aggs: searchAggsSetupMock(), + __enhance: jest.fn(), }; } function createStartContract(): jest.Mocked { return { aggs: searchAggsStartMock(), - setInterceptor: jest.fn(), search: jest.fn(), searchSource: searchSourceMock, __LEGACY: { diff --git a/src/plugins/data/public/search/search_interceptor.test.ts b/src/plugins/data/public/search/search_interceptor.test.ts index f4c5de2bcaf31..2eded17bda88c 100644 --- a/src/plugins/data/public/search/search_interceptor.test.ts +++ b/src/plugins/data/public/search/search_interceptor.test.ts @@ -17,27 +17,27 @@ * under the License. */ -import { CoreStart } from '../../../../core/public'; +import { CoreSetup } from '../../../../core/public'; import { coreMock } from '../../../../core/public/mocks'; import { IEsSearchRequest } from '../../common/search'; import { SearchInterceptor } from './search_interceptor'; import { AbortError } from '../../common'; let searchInterceptor: SearchInterceptor; -let mockCoreStart: MockedKeys; +let mockCoreSetup: MockedKeys; const flushPromises = () => new Promise((resolve) => setImmediate(resolve)); jest.useFakeTimers(); describe('SearchInterceptor', () => { beforeEach(() => { - mockCoreStart = coreMock.createStart(); + mockCoreSetup = coreMock.createSetup(); searchInterceptor = new SearchInterceptor( { - toasts: mockCoreStart.notifications.toasts, - application: mockCoreStart.application, - uiSettings: mockCoreStart.uiSettings, - http: mockCoreStart.http, + toasts: mockCoreSetup.notifications.toasts, + startServices: mockCoreSetup.getStartServices(), + uiSettings: mockCoreSetup.uiSettings, + http: mockCoreSetup.http, }, 1000 ); @@ -46,7 +46,7 @@ describe('SearchInterceptor', () => { describe('search', () => { test('Observable should resolve if fetch is successful', async () => { const mockResponse: any = { result: 200 }; - mockCoreStart.http.fetch.mockResolvedValueOnce(mockResponse); + mockCoreSetup.http.fetch.mockResolvedValueOnce(mockResponse); const mockRequest: IEsSearchRequest = { params: {}, }; @@ -58,7 +58,7 @@ describe('SearchInterceptor', () => { test('Observable should fail if fetch has an error', async () => { const mockResponse: any = { result: 500 }; - mockCoreStart.http.fetch.mockRejectedValueOnce(mockResponse); + mockCoreSetup.http.fetch.mockRejectedValueOnce(mockResponse); const mockRequest: IEsSearchRequest = { params: {}, }; @@ -72,7 +72,7 @@ describe('SearchInterceptor', () => { }); test('Observable should fail if fetch times out (test merged signal)', async () => { - mockCoreStart.http.fetch.mockImplementationOnce((options: any) => { + mockCoreSetup.http.fetch.mockImplementationOnce((options: any) => { return new Promise((resolve, reject) => { options.signal.addEventListener('abort', () => { reject(new AbortError()); @@ -100,7 +100,7 @@ describe('SearchInterceptor', () => { test('Observable should fail if user aborts (test merged signal)', async () => { const abortController = new AbortController(); - mockCoreStart.http.fetch.mockImplementationOnce((options: any) => { + mockCoreSetup.http.fetch.mockImplementationOnce((options: any) => { return new Promise((resolve, reject) => { options.signal.addEventListener('abort', () => { reject(new AbortError()); @@ -136,7 +136,7 @@ describe('SearchInterceptor', () => { const error = (e: any) => { expect(e).toBeInstanceOf(AbortError); - expect(mockCoreStart.http.fetch).not.toBeCalled(); + expect(mockCoreSetup.http.fetch).not.toBeCalled(); done(); }; response.subscribe({ error }); @@ -150,7 +150,7 @@ describe('SearchInterceptor', () => { pendingCount$.subscribe(pendingNext); const mockResponse: any = { result: 200 }; - mockCoreStart.http.fetch.mockResolvedValue(mockResponse); + mockCoreSetup.http.fetch.mockResolvedValue(mockResponse); const mockRequest: IEsSearchRequest = { params: {}, }; @@ -169,7 +169,7 @@ describe('SearchInterceptor', () => { pendingCount$.subscribe(pendingNext); const mockResponse: any = { result: 500 }; - mockCoreStart.http.fetch.mockRejectedValue(mockResponse); + mockCoreSetup.http.fetch.mockRejectedValue(mockResponse); const mockRequest: IEsSearchRequest = { params: {}, }; diff --git a/src/plugins/data/public/search/search_interceptor.ts b/src/plugins/data/public/search/search_interceptor.ts index d6fcde8e986f3..99fccda7fddf3 100644 --- a/src/plugins/data/public/search/search_interceptor.ts +++ b/src/plugins/data/public/search/search_interceptor.ts @@ -20,7 +20,7 @@ import { trimEnd } from 'lodash'; import { BehaviorSubject, throwError, timer, Subscription, defer, from, Observable } from 'rxjs'; import { finalize, filter } from 'rxjs/operators'; -import { ApplicationStart, Toast, ToastsStart, CoreStart } from 'kibana/public'; +import { Toast, CoreStart, ToastsSetup, CoreSetup } from 'kibana/public'; import { getCombinedSignal, AbortError } from '../../common/utils'; import { IEsSearchRequest, IEsSearchResponse, ES_SEARCH_STRATEGY } from '../../common/search'; import { ISearchOptions } from './types'; @@ -30,39 +30,43 @@ import { SearchUsageCollector } from './collectors'; const LONG_QUERY_NOTIFICATION_DELAY = 10000; export interface SearchInterceptorDeps { - toasts: ToastsStart; - application: ApplicationStart; - http: CoreStart['http']; - uiSettings: CoreStart['uiSettings']; + toasts: ToastsSetup; + http: CoreSetup['http']; + uiSettings: CoreSetup['uiSettings']; + startServices: Promise<[CoreStart, any, unknown]>; usageCollector?: SearchUsageCollector; } export class SearchInterceptor { /** * `abortController` used to signal all searches to abort. + * @internal */ protected abortController = new AbortController(); - /** - * The number of pending search requests. - */ - protected pendingCount = 0; - /** * Observable that emits when the number of pending requests changes. + * @internal */ - protected pendingCount$ = new BehaviorSubject(this.pendingCount); + protected pendingCount$ = new BehaviorSubject(0); /** * The subscriptions from scheduling the automatic timeout for each request. + * @internal */ protected timeoutSubscriptions: Subscription = new Subscription(); /** * The current long-running toast (if there is one). + * @internal */ protected longRunningToast?: Toast; + /** + * @internal + */ + protected application!: CoreStart['application']; + /** * This class should be instantiated with a `requestTimeout` corresponding with how many ms after * requests are initiated that they should automatically cancel. @@ -76,6 +80,10 @@ export class SearchInterceptor { ) { this.deps.http.addLoadingCountSource(this.pendingCount$); + this.deps.startServices.then(([coreStart]) => { + this.application = coreStart.application; + }); + // When search requests go out, a notification is scheduled allowing users to continue the // request past the timeout. When all search requests complete, we remove the notification. this.getPendingCount$() @@ -87,9 +95,9 @@ export class SearchInterceptor { * Returns an `Observable` over the current number of pending searches. This could mean that one * of the search requests is still in flight, or that it has only received partial responses. */ - public getPendingCount$ = () => { + public getPendingCount$() { return this.pendingCount$.asObservable(); - }; + } protected runSearch( request: IEsSearchRequest, @@ -112,7 +120,7 @@ export class SearchInterceptor { /** * Searches using the given `search` method. Overrides the `AbortSignal` with one that will abort * either when `cancelPending` is called, when the request times out, or when the original - * `AbortSignal` is aborted. Updates the `pendingCount` when the request is started/finalized. + * `AbortSignal` is aborted. Updates `pendingCount$` when the request is started/finalized. */ public search( request: IEsSearchRequest, @@ -125,11 +133,11 @@ export class SearchInterceptor { } const { combinedSignal, cleanup } = this.setupTimers(options); - this.pendingCount$.next(++this.pendingCount); + this.pendingCount$.next(this.pendingCount$.getValue() + 1); return this.runSearch(request, combinedSignal, options?.strategy).pipe( finalize(() => { - this.pendingCount$.next(--this.pendingCount); + this.pendingCount$.next(this.pendingCount$.getValue() - 1); cleanup(); }) ); @@ -173,13 +181,16 @@ export class SearchInterceptor { }; } + /** + * @internal + */ protected showToast = () => { if (this.longRunningToast) return; this.longRunningToast = this.deps.toasts.addInfo( { title: 'Your query is taking a while', text: getLongQueryNotification({ - application: this.deps.application, + application: this.application, }), }, { @@ -188,6 +199,9 @@ export class SearchInterceptor { ); }; + /** + * @internal + */ protected hideToast = () => { if (this.longRunningToast) { this.deps.toasts.remove(this.longRunningToast); @@ -198,3 +212,5 @@ export class SearchInterceptor { } }; } + +export type ISearchInterceptor = PublicMethodsOf; diff --git a/src/plugins/data/public/search/search_service.test.ts b/src/plugins/data/public/search/search_service.test.ts index 55d31db191733..f0a017847e06a 100644 --- a/src/plugins/data/public/search/search_service.test.ts +++ b/src/plugins/data/public/search/search_service.test.ts @@ -41,6 +41,7 @@ describe('Search service', () => { expressions: expressionsPluginMock.createSetupContract(), } as any); expect(setup).toHaveProperty('aggs'); + expect(setup).toHaveProperty('__enhance'); }); }); @@ -49,7 +50,6 @@ describe('Search service', () => { const start = searchService.start(mockCoreStart, { indexPatterns: {}, } as any); - expect(start).toHaveProperty('setInterceptor'); expect(start).toHaveProperty('search'); }); }); diff --git a/src/plugins/data/public/search/search_service.ts b/src/plugins/data/public/search/search_service.ts index 064e16014cb70..4c94925b66d6e 100644 --- a/src/plugins/data/public/search/search_service.ts +++ b/src/plugins/data/public/search/search_service.ts @@ -18,7 +18,7 @@ */ import { Plugin, CoreSetup, CoreStart, PackageInfo } from '../../../../core/public'; -import { ISearchSetup, ISearchStart } from './types'; +import { ISearchSetup, ISearchStart, SearchEnhancements } from './types'; import { ExpressionsSetup } from '../../../../plugins/expressions/public'; import { createSearchSource, SearchSource, SearchSourceDependencies } from './search_source'; @@ -28,7 +28,7 @@ import { calculateBounds, TimeRange } from '../../common/query'; import { IndexPatternsContract } from '../index_patterns/index_patterns'; import { GetInternalStartServicesFn } from '../types'; -import { SearchInterceptor } from './search_interceptor'; +import { ISearchInterceptor, SearchInterceptor } from './search_interceptor'; import { getAggTypes, getAggTypesFunctions, @@ -54,7 +54,7 @@ interface SearchServiceStartDependencies { export class SearchService implements Plugin { private esClient?: LegacyApiCaller; private readonly aggTypesRegistry = new AggTypesRegistry(); - private searchInterceptor!: SearchInterceptor; + private searchInterceptor!: ISearchInterceptor; private usageCollector?: SearchUsageCollector; /** @@ -91,15 +91,6 @@ export class SearchService implements Plugin { const aggFunctions = getAggTypesFunctions(); aggFunctions.forEach((fn) => expressions.registerFunction(fn)); - return { - aggs: { - calculateAutoTimeExpression: getCalculateAutoTimeExpression(core.uiSettings), - types: aggTypesSetup, - }, - }; - } - - public start(core: CoreStart, dependencies: SearchServiceStartDependencies): ISearchStart { /** * A global object that intercepts all searches and provides convenience methods for cancelling * all pending search requests, as well as getting the number of pending search requests. @@ -109,14 +100,27 @@ export class SearchService implements Plugin { this.searchInterceptor = new SearchInterceptor( { toasts: core.notifications.toasts, - application: core.application, http: core.http, uiSettings: core.uiSettings, + startServices: core.getStartServices(), usageCollector: this.usageCollector!, }, core.injectedMetadata.getInjectedVar('esRequestTimeout') as number ); + return { + usageCollector: this.usageCollector!, + __enhance: (enhancements: SearchEnhancements) => { + this.searchInterceptor = enhancements.searchInterceptor; + }, + aggs: { + calculateAutoTimeExpression: getCalculateAutoTimeExpression(core.uiSettings), + types: aggTypesSetup, + }, + }; + } + + public start(core: CoreStart, dependencies: SearchServiceStartDependencies): ISearchStart { const aggTypesStart = this.aggTypesRegistry.start(); const search: ISearchGeneric = (request, options) => { @@ -145,17 +149,12 @@ export class SearchService implements Plugin { types: aggTypesStart, }, search, - usageCollector: this.usageCollector!, searchSource: { create: createSearchSource(dependencies.indexPatterns, searchSourceDependencies), createEmpty: () => { return new SearchSource({}, searchSourceDependencies); }, }, - setInterceptor: (searchInterceptor: SearchInterceptor) => { - // TODO: should an intercepror have a destroy method? - this.searchInterceptor = searchInterceptor; - }, __LEGACY: legacySearch, }; } diff --git a/src/plugins/data/public/search/types.ts b/src/plugins/data/public/search/types.ts index f80a13d048a68..d85d4c4e5c935 100644 --- a/src/plugins/data/public/search/types.ts +++ b/src/plugins/data/public/search/types.ts @@ -21,7 +21,7 @@ import { Observable } from 'rxjs'; import { PackageInfo } from 'kibana/server'; import { SearchAggsSetup, SearchAggsStart } from './aggs'; import { LegacyApiCaller } from './legacy/es_client'; -import { SearchInterceptor } from './search_interceptor'; +import { ISearchInterceptor } from './search_interceptor'; import { ISearchSource, SearchSourceFields } from './search_source'; import { SearchUsageCollector } from './collectors'; import { @@ -54,23 +54,33 @@ export interface ISearchStartLegacy { esClient: LegacyApiCaller; } +export interface SearchEnhancements { + searchInterceptor: ISearchInterceptor; +} /** * The setup contract exposed by the Search plugin exposes the search strategy extension * point. */ export interface ISearchSetup { aggs: SearchAggsSetup; + usageCollector?: SearchUsageCollector; + /** + * @internal + */ + __enhance: (enhancements: SearchEnhancements) => void; } export interface ISearchStart { aggs: SearchAggsStart; - setInterceptor: (searchInterceptor: SearchInterceptor) => void; search: ISearchGeneric; searchSource: { create: (fields?: SearchSourceFields) => Promise; createEmpty: () => ISearchSource; }; - usageCollector?: SearchUsageCollector; + /** + * @deprecated + * @internal + */ __LEGACY: ISearchStartLegacy; } diff --git a/src/plugins/data/public/types.ts b/src/plugins/data/public/types.ts index 6d67127251424..c39b7d355d495 100644 --- a/src/plugins/data/public/types.ts +++ b/src/plugins/data/public/types.ts @@ -25,13 +25,17 @@ import { UiActionsSetup, UiActionsStart } from 'src/plugins/ui_actions/public'; import { AutocompleteSetup, AutocompleteStart } from './autocomplete'; import { FieldFormatsSetup, FieldFormatsStart } from './field_formats'; import { createFiltersFromRangeSelectAction, createFiltersFromValueClickAction } from './actions'; -import { ISearchSetup, ISearchStart } from './search'; +import { ISearchSetup, ISearchStart, SearchEnhancements } from './search'; import { QuerySetup, QueryStart } from './query'; import { IndexPatternSelectProps } from './ui/index_pattern_select'; import { IndexPatternsContract } from './index_patterns'; import { StatefulSearchBarProps } from './ui/search_bar/create_search_bar'; import { UsageCollectionSetup } from '../../usage_collection/public'; +export interface DataPublicPluginEnhancements { + search: SearchEnhancements; +} + export interface DataSetupDependencies { expressions: ExpressionsSetup; uiActions: UiActionsSetup; @@ -47,6 +51,10 @@ export interface DataPublicPluginSetup { search: ISearchSetup; fieldFormats: FieldFormatsSetup; query: QuerySetup; + /** + * @internal + */ + __enhance: (enhancements: DataPublicPluginEnhancements) => void; } export interface DataPublicPluginStart { diff --git a/x-pack/plugins/data_enhanced/public/plugin.ts b/x-pack/plugins/data_enhanced/public/plugin.ts index bdf3f6a0acf90..7f6e3feac0671 100644 --- a/x-pack/plugins/data_enhanced/public/plugin.ts +++ b/x-pack/plugins/data_enhanced/public/plugin.ts @@ -31,20 +31,26 @@ export class DataEnhancedPlugin KUERY_LANGUAGE_NAME, setupKqlQuerySuggestionProvider(core) ); - } - public start(core: CoreStart, plugins: DataEnhancedStartDependencies) { - setAutocompleteService(plugins.data.autocomplete); const enhancedSearchInterceptor = new EnhancedSearchInterceptor( { toasts: core.notifications.toasts, - application: core.application, http: core.http, uiSettings: core.uiSettings, - usageCollector: plugins.data.search.usageCollector, + startServices: core.getStartServices(), + usageCollector: data.search.usageCollector, }, core.injectedMetadata.getInjectedVar('esRequestTimeout') as number ); - plugins.data.search.setInterceptor(enhancedSearchInterceptor); + + data.__enhance({ + search: { + searchInterceptor: enhancedSearchInterceptor, + }, + }); + } + + public start(core: CoreStart, plugins: DataEnhancedStartDependencies) { + setAutocompleteService(plugins.data.autocomplete); } } diff --git a/x-pack/plugins/data_enhanced/public/search/search_interceptor.test.ts b/x-pack/plugins/data_enhanced/public/search/search_interceptor.test.ts index d004511fa4674..fe954f1602cd3 100644 --- a/x-pack/plugins/data_enhanced/public/search/search_interceptor.test.ts +++ b/x-pack/plugins/data_enhanced/public/search/search_interceptor.test.ts @@ -6,7 +6,7 @@ import { coreMock } from '../../../../../src/core/public/mocks'; import { EnhancedSearchInterceptor } from './search_interceptor'; -import { CoreStart } from 'kibana/public'; +import { CoreSetup, CoreStart } from 'kibana/public'; import { AbortError } from '../../../../../src/plugins/data/common'; const timeTravel = (msToRun = 0) => { @@ -19,13 +19,14 @@ const error = jest.fn(); const complete = jest.fn(); let searchInterceptor: EnhancedSearchInterceptor; +let mockCoreSetup: MockedKeys; let mockCoreStart: MockedKeys; jest.useFakeTimers(); function mockFetchImplementation(responses: any[]) { let i = 0; - mockCoreStart.http.fetch.mockImplementation(() => { + mockCoreSetup.http.fetch.mockImplementation(() => { const { time = 0, value = {}, isError = false } = responses[i++]; return new Promise((resolve, reject) => setTimeout(() => { @@ -39,6 +40,7 @@ describe('EnhancedSearchInterceptor', () => { let mockUsageCollector: any; beforeEach(() => { + mockCoreSetup = coreMock.createSetup(); mockCoreStart = coreMock.createStart(); next.mockClear(); @@ -54,12 +56,20 @@ describe('EnhancedSearchInterceptor', () => { trackLongQueryRunBeyondTimeout: jest.fn(), }; + const mockPromise = new Promise((resolve) => { + resolve([ + { + application: mockCoreStart.application, + }, + ]); + }); + searchInterceptor = new EnhancedSearchInterceptor( { - toasts: mockCoreStart.notifications.toasts, - application: mockCoreStart.application, - http: mockCoreStart.http, - uiSettings: mockCoreStart.uiSettings, + toasts: mockCoreSetup.notifications.toasts, + startServices: mockPromise as any, + http: mockCoreSetup.http, + uiSettings: mockCoreSetup.uiSettings, usageCollector: mockUsageCollector, }, 1000 @@ -229,8 +239,8 @@ describe('EnhancedSearchInterceptor', () => { expect(error).toHaveBeenCalled(); expect(error.mock.calls[0][0]).toBeInstanceOf(AbortError); - expect(mockCoreStart.http.fetch).toHaveBeenCalledTimes(2); - expect(mockCoreStart.http.delete).toHaveBeenCalled(); + expect(mockCoreSetup.http.fetch).toHaveBeenCalledTimes(2); + expect(mockCoreSetup.http.delete).toHaveBeenCalled(); }); test('should not DELETE a running async search on async timeout prior to first response', async () => { @@ -253,8 +263,8 @@ describe('EnhancedSearchInterceptor', () => { expect(error).toHaveBeenCalled(); expect(error.mock.calls[0][0]).toBeInstanceOf(AbortError); - expect(mockCoreStart.http.fetch).toHaveBeenCalled(); - expect(mockCoreStart.http.delete).not.toHaveBeenCalled(); + expect(mockCoreSetup.http.fetch).toHaveBeenCalled(); + expect(mockCoreSetup.http.delete).not.toHaveBeenCalled(); }); test('should DELETE a running async search on async timeout after first response', async () => { @@ -285,16 +295,16 @@ describe('EnhancedSearchInterceptor', () => { expect(next).toHaveBeenCalled(); expect(error).not.toHaveBeenCalled(); - expect(mockCoreStart.http.fetch).toHaveBeenCalled(); - expect(mockCoreStart.http.delete).not.toHaveBeenCalled(); + expect(mockCoreSetup.http.fetch).toHaveBeenCalled(); + expect(mockCoreSetup.http.delete).not.toHaveBeenCalled(); // Long enough to reach the timeout but not long enough to reach the next response await timeTravel(1000); expect(error).toHaveBeenCalled(); expect(error.mock.calls[0][0]).toBeInstanceOf(AbortError); - expect(mockCoreStart.http.fetch).toHaveBeenCalledTimes(2); - expect(mockCoreStart.http.delete).toHaveBeenCalled(); + expect(mockCoreSetup.http.fetch).toHaveBeenCalledTimes(2); + expect(mockCoreSetup.http.delete).toHaveBeenCalled(); }); test('should DELETE a running async search on async timeout on error from fetch', async () => { @@ -327,16 +337,16 @@ describe('EnhancedSearchInterceptor', () => { expect(next).toHaveBeenCalled(); expect(error).not.toHaveBeenCalled(); - expect(mockCoreStart.http.fetch).toHaveBeenCalled(); - expect(mockCoreStart.http.delete).not.toHaveBeenCalled(); + expect(mockCoreSetup.http.fetch).toHaveBeenCalled(); + expect(mockCoreSetup.http.delete).not.toHaveBeenCalled(); // Long enough to reach the timeout but not long enough to reach the next response await timeTravel(10); expect(error).toHaveBeenCalled(); expect(error.mock.calls[0][0]).toBe(responses[1].value); - expect(mockCoreStart.http.fetch).toHaveBeenCalledTimes(2); - expect(mockCoreStart.http.delete).toHaveBeenCalled(); + expect(mockCoreSetup.http.fetch).toHaveBeenCalledTimes(2); + expect(mockCoreSetup.http.delete).toHaveBeenCalled(); }); }); @@ -367,7 +377,7 @@ describe('EnhancedSearchInterceptor', () => { await timeTravel(); - const areAllRequestsAborted = mockCoreStart.http.fetch.mock.calls.every( + const areAllRequestsAborted = mockCoreSetup.http.fetch.mock.calls.every( ([{ signal }]) => signal?.aborted ); expect(areAllRequestsAborted).toBe(true); diff --git a/x-pack/plugins/data_enhanced/public/search/search_interceptor.ts b/x-pack/plugins/data_enhanced/public/search/search_interceptor.ts index bff9e2cb9048c..ae6dddf33536f 100644 --- a/x-pack/plugins/data_enhanced/public/search/search_interceptor.ts +++ b/x-pack/plugins/data_enhanced/public/search/search_interceptor.ts @@ -20,8 +20,7 @@ export class EnhancedSearchInterceptor extends SearchInterceptor { /** * This class should be instantiated with a `requestTimeout` corresponding with how many ms after * requests are initiated that they should automatically cancel. - * @param toasts The `core.notifications.toasts` service - * @param application The `core.application` service + * @param deps `SearchInterceptorDeps` * @param requestTimeout Usually config value `elasticsearch.requestTimeout` */ constructor(deps: SearchInterceptorDeps, requestTimeout?: number) { @@ -78,7 +77,7 @@ export class EnhancedSearchInterceptor extends SearchInterceptor { const { combinedSignal, cleanup } = this.setupTimers(options); const aborted$ = from(toPromise(combinedSignal)); - this.pendingCount$.next(++this.pendingCount); + this.pendingCount$.next(this.pendingCount$.getValue() + 1); return this.runSearch(request, combinedSignal, options?.strategy).pipe( expand((response) => { @@ -113,7 +112,7 @@ export class EnhancedSearchInterceptor extends SearchInterceptor { }, }), finalize(() => { - this.pendingCount$.next(--this.pendingCount); + this.pendingCount$.next(this.pendingCount$.getValue() - 1); cleanup(); }) );