mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
* merge 7.x * remove --csp.strict=false in 7.x Only needed on master (at least at this point)
This commit is contained in:
parent
f12e6f17b9
commit
6c07708859
17 changed files with 337 additions and 42 deletions
|
@ -396,6 +396,7 @@
|
|||
"gulp-babel": "^8.0.0",
|
||||
"gulp-sourcemaps": "2.6.5",
|
||||
"has-ansi": "^3.0.0",
|
||||
"iedriver": "^3.14.1",
|
||||
"image-diff": "1.6.3",
|
||||
"intl-messageformat-parser": "^1.4.0",
|
||||
"is-path-inside": "^2.1.0",
|
||||
|
|
|
@ -134,7 +134,7 @@ export const schema = Joi.object()
|
|||
browser: Joi.object()
|
||||
.keys({
|
||||
type: Joi.string()
|
||||
.valid('chrome', 'firefox')
|
||||
.valid('chrome', 'firefox', 'ie')
|
||||
.default('chrome'),
|
||||
|
||||
logPollingMs: Joi.number().default(100),
|
||||
|
|
|
@ -46,7 +46,11 @@ export default function({ getService, getPageObjects }: FtrProviderContext) {
|
|||
|
||||
it('should show the default request', async () => {
|
||||
// collapse the help pane because we only get the VISIBLE TEXT, not the part that is scrolled
|
||||
await PageObjects.console.collapseHelp();
|
||||
// on IE11, the dialog that says 'Your browser does not meet the security requirements for Kibana.'
|
||||
// blocks the close help button for several seconds so just retry until we can click it.
|
||||
await retry.try(async () => {
|
||||
await PageObjects.console.collapseHelp();
|
||||
});
|
||||
await retry.try(async () => {
|
||||
const actualRequest = await PageObjects.console.getRequest();
|
||||
log.debug(actualRequest);
|
||||
|
|
|
@ -26,6 +26,7 @@ export default function ({ getService, getPageObjects }) {
|
|||
const appsMenu = getService('appsMenu');
|
||||
const esArchiver = getService('esArchiver');
|
||||
const retry = getService('retry');
|
||||
const kibanaServer = getService('kibanaServer');
|
||||
const fromTime = '2015-09-19 06:31:44.000';
|
||||
const toTime = '2015-09-23 18:31:44.000';
|
||||
|
||||
|
@ -33,8 +34,15 @@ export default function ({ getService, getPageObjects }) {
|
|||
|
||||
before(async () => {
|
||||
await esArchiver.loadIfNeeded('makelogs');
|
||||
await browser.refresh();
|
||||
await PageObjects.header.awaitKibanaChrome();
|
||||
if (browser.isInternetExplorer) {
|
||||
await kibanaServer.uiSettings.replace({ 'state:storeInSessionStorage': false });
|
||||
}
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
if (browser.isInternetExplorer) {
|
||||
await kibanaServer.uiSettings.replace({ 'state:storeInSessionStorage': true });
|
||||
}
|
||||
});
|
||||
|
||||
// FLAKY: https://github.com/elastic/kibana/issues/33468
|
||||
|
|
|
@ -26,7 +26,7 @@ export default function ({ getService, getPageObjects }) {
|
|||
describe('chart types', function () {
|
||||
before(function () {
|
||||
log.debug('navigateToApp visualize');
|
||||
return PageObjects.common.navigateToUrl('visualize', 'new');
|
||||
return PageObjects.visualize.navigateToNewVisualization();
|
||||
});
|
||||
|
||||
it('should show the correct chart types', async function () {
|
||||
|
|
54
test/functional/config.ie.js
Normal file
54
test/functional/config.ie.js
Normal file
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
* 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 default async function ({ readConfigFile }) {
|
||||
const defaultConfig = await readConfigFile(require.resolve('./config'));
|
||||
|
||||
return {
|
||||
...defaultConfig.getAll(),
|
||||
|
||||
browser: {
|
||||
type: 'ie',
|
||||
},
|
||||
|
||||
junit: {
|
||||
reportName: 'Internet Explorer UI Functional Tests'
|
||||
},
|
||||
|
||||
uiSettings: {
|
||||
defaults: {
|
||||
'accessibility:disableAnimations': true,
|
||||
'dateFormat:tz': 'UTC',
|
||||
'telemetry:optIn': false,
|
||||
'state:storeInSessionStorage': true,
|
||||
'notifications:lifetime:info': 10000,
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
kbnTestServer: {
|
||||
...defaultConfig.get('kbnTestServer'),
|
||||
serverArgs: [
|
||||
...defaultConfig.get('kbnTestServer.serverArgs'),
|
||||
],
|
||||
},
|
||||
|
||||
|
||||
};
|
||||
}
|
|
@ -25,7 +25,7 @@ export function TimePickerPageProvider({ getService, getPageObjects }) {
|
|||
const find = getService('find');
|
||||
const browser = getService('browser');
|
||||
const testSubjects = getService('testSubjects');
|
||||
const PageObjects = getPageObjects(['header']);
|
||||
const PageObjects = getPageObjects(['header', 'common']);
|
||||
|
||||
class TimePickerPage {
|
||||
|
||||
|
@ -48,18 +48,6 @@ export function TimePickerPageProvider({ getService, getPageObjects }) {
|
|||
await find.waitForElementStale(panelElement);
|
||||
}
|
||||
|
||||
async setAbsoluteStart(startTime) {
|
||||
await this.showStartEndTimes();
|
||||
|
||||
await testSubjects.click('superDatePickerstartDatePopoverButton');
|
||||
const panel = await this.getTimePickerPanel();
|
||||
await testSubjects.click('superDatePickerAbsoluteTab');
|
||||
await this.inputValue('superDatePickerAbsoluteDateInput', startTime);
|
||||
await testSubjects.click('superDatePickerstartDatePopoverButton');
|
||||
await this.waitPanelIsGone(panel);
|
||||
await PageObjects.header.awaitGlobalLoadingIndicatorHidden();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {String} commonlyUsedOption 'superDatePickerCommonlyUsed_This_week'
|
||||
*/
|
||||
|
@ -73,6 +61,13 @@ export function TimePickerPageProvider({ getService, getPageObjects }) {
|
|||
const input = await testSubjects.find(dataTestsubj);
|
||||
await input.clearValue();
|
||||
await input.type(value);
|
||||
} else if (browser.isInternetExplorer) {
|
||||
const input = await testSubjects.find(dataTestsubj);
|
||||
const currentValue = await input.getAttribute('value');
|
||||
await input.type((browser.keys.ARROW_RIGHT).repeat(currentValue.length));
|
||||
await input.type((browser.keys.BACK_SPACE).repeat(currentValue.length));
|
||||
await input.type(value);
|
||||
await input.click();
|
||||
} else {
|
||||
await testSubjects.setValue(dataTestsubj, value);
|
||||
}
|
||||
|
@ -90,14 +85,16 @@ export function TimePickerPageProvider({ getService, getPageObjects }) {
|
|||
await testSubjects.click('superDatePickerendDatePopoverButton');
|
||||
let panel = await this.getTimePickerPanel();
|
||||
await testSubjects.click('superDatePickerAbsoluteTab');
|
||||
await testSubjects.click('superDatePickerAbsoluteDateInput');
|
||||
await this.inputValue('superDatePickerAbsoluteDateInput', toTime);
|
||||
|
||||
await PageObjects.common.sleep(500);
|
||||
|
||||
// set from time
|
||||
await testSubjects.click('superDatePickerstartDatePopoverButton');
|
||||
await this.waitPanelIsGone(panel);
|
||||
panel = await this.getTimePickerPanel();
|
||||
await testSubjects.click('superDatePickerAbsoluteTab');
|
||||
await testSubjects.click('superDatePickerAbsoluteDateInput');
|
||||
await this.inputValue('superDatePickerAbsoluteDateInput', fromTime);
|
||||
|
||||
const superDatePickerApplyButtonExists = await testSubjects.exists('superDatePickerApplyTimeButton');
|
||||
|
@ -148,6 +145,7 @@ export function TimePickerPageProvider({ getService, getPageObjects }) {
|
|||
if (isShowDatesButton) {
|
||||
await testSubjects.click('superDatePickerShowDatesButton');
|
||||
}
|
||||
await testSubjects.exists('superDatePickerstartDatePopoverButton');
|
||||
}
|
||||
|
||||
async getRefreshConfig(keepQuickSelectOpen = false) {
|
||||
|
|
|
@ -718,8 +718,9 @@ export function VisualizePageProvider({ getService, getPageObjects, updateBaseli
|
|||
log.debug('Click Save Visualization button');
|
||||
await testSubjects.click('confirmSaveSavedObjectButton');
|
||||
|
||||
// if we wait for this, the success toast message could be gone :-()
|
||||
// wait for save to complete before completion
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
// await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
}
|
||||
|
||||
async saveVisualizationExpectSuccess(vizName, { saveAsNew = false } = {}) {
|
||||
|
@ -834,7 +835,7 @@ export function VisualizePageProvider({ getService, getPageObjects, updateBaseli
|
|||
// by a bunch of 'L'ines from that point to the next. Those points are
|
||||
// the values we're going to use to calculate the data values we're testing.
|
||||
// So git rid of the one 'M' and split the rest on the 'L's.
|
||||
const tempArray = data.replace('M', '').split('L');
|
||||
const tempArray = data.replace('M ', '').replace('M', '').replace(/ L /g, 'L').replace(/ /g, ',').split('L');
|
||||
const chartSections = tempArray.length / 2;
|
||||
// log.debug('chartSections = ' + chartSections + ' height = ' + yAxisHeight + ' yAxisLabel = ' + yAxisLabel);
|
||||
const chartData = [];
|
||||
|
@ -888,7 +889,7 @@ export function VisualizePageProvider({ getService, getPageObjects, updateBaseli
|
|||
// 1). get the range/pixel ratio
|
||||
const yAxisRatio = await this.getChartYAxisRatio(axis);
|
||||
// 3). get the visWrapper__chart elements
|
||||
const svg = await find.byCssSelector('div.chart > svg');
|
||||
const svg = await find.byCssSelector('div.chart');
|
||||
const $ = await svg.parseDomContent();
|
||||
const chartData = $(`g > g.series > rect[data-label="${dataLabel}"]`).toArray().map(chart => {
|
||||
const barHeight = $(chart).attr('height');
|
||||
|
|
|
@ -68,6 +68,8 @@ export async function BrowserProvider({ getService }: FtrProviderContext) {
|
|||
|
||||
public readonly isFirefox: boolean = browserType === Browsers.Firefox;
|
||||
|
||||
public readonly isInternetExplorer: boolean = browserType === Browsers.InternetExplorer;
|
||||
|
||||
/**
|
||||
* Is WebDriver instance W3C compatible
|
||||
*/
|
||||
|
@ -183,7 +185,12 @@ export async function BrowserProvider({ getService }: FtrProviderContext) {
|
|||
*/
|
||||
public async getCurrentUrl() {
|
||||
// strip _t=Date query param when url is read
|
||||
const current = await driver.getCurrentUrl();
|
||||
let current: string;
|
||||
if (this.isInternetExplorer) {
|
||||
current = await driver.executeScript('return window.document.location.href');
|
||||
} else {
|
||||
current = await driver.getCurrentUrl();
|
||||
}
|
||||
const currentWithoutTime = modifyUrl(current, parsed => {
|
||||
delete (parsed.query as any)._t;
|
||||
return void 0;
|
||||
|
|
|
@ -75,7 +75,7 @@ export function ComboBoxProvider({ getService, getPageObjects }: FtrProviderCont
|
|||
return;
|
||||
}
|
||||
|
||||
comboBoxElement.scrollIntoViewIfNecessary();
|
||||
await comboBoxElement.scrollIntoViewIfNecessary();
|
||||
await this.setFilterValue(comboBoxElement, value);
|
||||
await this.openOptionsList(comboBoxElement);
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ export function InspectorProvider({ getService }: FtrProviderContext) {
|
|||
if (!isOpen) {
|
||||
await retry.try(async () => {
|
||||
await testSubjects.click('openInspectorButton');
|
||||
await testSubjects.find('inspectorPanel');
|
||||
await testSubjects.exists('inspectorPanel');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -228,6 +228,9 @@ export class WebElementWrapper {
|
|||
* @default { withJS: false }
|
||||
*/
|
||||
async clearValue(options: ClearOptions = { withJS: false }) {
|
||||
if (this.browserType === Browsers.InternetExplorer) {
|
||||
return this.clearValueWithKeyboard();
|
||||
}
|
||||
await this.retryCall(async function clearValue(wrapper) {
|
||||
if (wrapper.browserType === Browsers.Chrome || options.withJS) {
|
||||
// https://bugs.chromium.org/p/chromedriver/issues/detail?id=2702
|
||||
|
@ -244,6 +247,16 @@ export class WebElementWrapper {
|
|||
* @default { charByChar: false }
|
||||
*/
|
||||
async clearValueWithKeyboard(options: TypeOptions = { charByChar: false }) {
|
||||
if (this.browserType === Browsers.InternetExplorer) {
|
||||
const value = await this.getAttribute('value');
|
||||
// For IE testing, the text field gets clicked in the middle so
|
||||
// first go HOME and then DELETE all chars
|
||||
await this.pressKeys(this.Keys.HOME);
|
||||
for (let i = 0; i <= value.length; i++) {
|
||||
await this.pressKeys(this.Keys.DELETE);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (options.charByChar === true) {
|
||||
const value = await this.getAttribute('value');
|
||||
for (let i = 0; i <= value.length; i++) {
|
||||
|
|
|
@ -20,4 +20,5 @@
|
|||
export enum Browsers {
|
||||
Chrome = 'chrome',
|
||||
Firefox = 'firefox',
|
||||
InternetExplorer = 'ie',
|
||||
}
|
||||
|
|
|
@ -25,11 +25,14 @@ import geckoDriver from 'geckodriver';
|
|||
import { Builder, Capabilities, By, logging, until } from 'selenium-webdriver';
|
||||
import chrome from 'selenium-webdriver/chrome';
|
||||
import firefox from 'selenium-webdriver/firefox';
|
||||
// @ts-ignore types not available
|
||||
import ie from 'selenium-webdriver/ie';
|
||||
// @ts-ignore internal modules are not typed
|
||||
import { Executor } from 'selenium-webdriver/lib/http';
|
||||
// @ts-ignore internal modules are not typed
|
||||
import { getLogger } from 'selenium-webdriver/lib/logging';
|
||||
|
||||
import { resolve, delimiter } from 'path';
|
||||
import { preventParallelCalls } from './prevent_parallel_calls';
|
||||
|
||||
import { Browsers } from './browsers';
|
||||
|
@ -85,6 +88,7 @@ async function attemptToCreateCommand(log: ToolingLog, browserType: Browsers) {
|
|||
.withCapabilities(chromeCapabilities)
|
||||
.setChromeService(new chrome.ServiceBuilder(chromeDriver.path).enableVerboseLogging())
|
||||
.build();
|
||||
|
||||
case 'firefox':
|
||||
const firefoxOptions = new firefox.Options();
|
||||
if (headlessBrowser === '1') {
|
||||
|
@ -96,6 +100,30 @@ async function attemptToCreateCommand(log: ToolingLog, browserType: Browsers) {
|
|||
.setFirefoxOptions(firefoxOptions)
|
||||
.setFirefoxService(new firefox.ServiceBuilder(geckoDriver.path).enableVerboseLogging())
|
||||
.build();
|
||||
|
||||
case 'ie':
|
||||
// https://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/ie_exports_Options.html
|
||||
const driverPath = resolve(
|
||||
__dirname,
|
||||
'..\\..\\..\\..\\node_modules\\iedriver\\lib\\iedriver'
|
||||
);
|
||||
process.env.PATH = driverPath + delimiter + process.env.PATH;
|
||||
|
||||
const ieCapabilities = Capabilities.ie();
|
||||
ieCapabilities.set('se:ieOptions', {
|
||||
'ie.ensureCleanSession': true,
|
||||
ignoreProtectedModeSettings: true,
|
||||
ignoreZoomSetting: false, // requires us to have 100% zoom level
|
||||
nativeEvents: true, // need this for values to stick but it requires 100% scaling and window focus
|
||||
requireWindowFocus: true,
|
||||
logLevel: 'TRACE',
|
||||
});
|
||||
|
||||
return new Builder()
|
||||
.forBrowser(browserType)
|
||||
.withCapabilities(ieCapabilities)
|
||||
.build();
|
||||
|
||||
default:
|
||||
throw new Error(`${browserType} is not supported yet`);
|
||||
}
|
||||
|
|
81
x-pack/test/functional/config.ie.js
Normal file
81
x-pack/test/functional/config.ie.js
Normal file
|
@ -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.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
export default async function ({ readConfigFile }) {
|
||||
const defaultConfig = await readConfigFile(require.resolve('./config'));
|
||||
|
||||
return {
|
||||
...defaultConfig.getAll(),
|
||||
//csp.strict: false
|
||||
// testFiles: [
|
||||
// require.resolve(__dirname, './apps/advanced_settings'),
|
||||
// require.resolve(__dirname, './apps/canvas'),
|
||||
// require.resolve(__dirname, './apps/graph'),
|
||||
// require.resolve(__dirname, './apps/monitoring'),
|
||||
// require.resolve(__dirname, './apps/watcher'),
|
||||
// require.resolve(__dirname, './apps/dashboard'),
|
||||
// require.resolve(__dirname, './apps/dashboard_mode'),
|
||||
// require.resolve(__dirname, './apps/discover'),
|
||||
// require.resolve(__dirname, './apps/security'),
|
||||
// require.resolve(__dirname, './apps/spaces'),
|
||||
// require.resolve(__dirname, './apps/lens'),
|
||||
// require.resolve(__dirname, './apps/logstash'),
|
||||
// require.resolve(__dirname, './apps/grok_debugger'),
|
||||
// require.resolve(__dirname, './apps/infra'),
|
||||
// require.resolve(__dirname, './apps/machine_learning'),
|
||||
// require.resolve(__dirname, './apps/rollup_job'),
|
||||
// require.resolve(__dirname, './apps/maps'),
|
||||
// require.resolve(__dirname, './apps/status_page'),
|
||||
// require.resolve(__dirname, './apps/timelion'),
|
||||
// require.resolve(__dirname, './apps/upgrade_assistant'),
|
||||
// require.resolve(__dirname, './apps/code'),
|
||||
// require.resolve(__dirname, './apps/visualize'),
|
||||
// require.resolve(__dirname, './apps/uptime'),
|
||||
// require.resolve(__dirname, './apps/saved_objects_management'),
|
||||
// require.resolve(__dirname, './apps/dev_tools'),
|
||||
// require.resolve(__dirname, './apps/apm'),
|
||||
// require.resolve(__dirname, './apps/index_patterns'),
|
||||
// require.resolve(__dirname, './apps/index_management'),
|
||||
// require.resolve(__dirname, './apps/index_lifecycle_management'),
|
||||
// require.resolve(__dirname, './apps/snapshot_restore'),
|
||||
// require.resolve(__dirname, './apps/cross_cluster_replication'),
|
||||
// require.resolve(__dirname, './apps/remote_clusters'),
|
||||
// // This license_management file must be last because it is destructive.
|
||||
// require.resolve(__dirname, './apps/license_management'),
|
||||
// ],
|
||||
|
||||
browser: {
|
||||
type: 'ie',
|
||||
},
|
||||
|
||||
junit: {
|
||||
reportName: 'Internet Explorer UI Functional X-Pack Tests'
|
||||
},
|
||||
|
||||
uiSettings: {
|
||||
defaults: {
|
||||
'accessibility:disableAnimations': true,
|
||||
'dateFormat:tz': 'UTC',
|
||||
'telemetry:optIn': false,
|
||||
'state:storeInSessionStorage': true,
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
kbnTestServer: {
|
||||
...defaultConfig.get('kbnTestServer'),
|
||||
serverArgs: [
|
||||
...defaultConfig.get('kbnTestServer.serverArgs'),
|
||||
'--csp.strict=false',
|
||||
],
|
||||
},
|
||||
|
||||
|
||||
};
|
||||
}
|
|
@ -19,7 +19,7 @@ export function InfraHomePageProvider({ getService }: FtrProviderContext) {
|
|||
const datePickerInput = await find.byCssSelector(
|
||||
`${testSubjSelector('waffleDatePicker')} .euiDatePicker.euiFieldText`
|
||||
);
|
||||
await datePickerInput.type(Array(30).fill(browser.keys.BACK_SPACE));
|
||||
await datePickerInput.clearValueWithKeyboard({ charByChar: true });
|
||||
await datePickerInput.type([time, browser.keys.RETURN]);
|
||||
},
|
||||
|
||||
|
|
131
yarn.lock
131
yarn.lock
|
@ -4612,6 +4612,11 @@ adm-zip@0.4.11:
|
|||
resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.11.tgz#2aa54c84c4b01a9d0fb89bb11982a51f13e3d62a"
|
||||
integrity sha512-L8vcjDTCOIJk7wFvmlEUN7AsSb8T+2JrdP7KINBjzr24TJ5Mwj590sLu3BC7zNZowvJWa/JtPmD8eJCzdtDWjA==
|
||||
|
||||
adm-zip@^0.4.13:
|
||||
version "0.4.13"
|
||||
resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.13.tgz#597e2f8cc3672151e1307d3e95cddbc75672314a"
|
||||
integrity sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==
|
||||
|
||||
affine-hull@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/affine-hull/-/affine-hull-1.0.0.tgz#763ff1d38d063ceb7e272f17ee4d7bbcaf905c5d"
|
||||
|
@ -8419,6 +8424,15 @@ concat-map@0.0.1:
|
|||
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
|
||||
|
||||
concat-stream@1.6.0, concat-stream@^1.4.7, concat-stream@~1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
|
||||
integrity sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=
|
||||
dependencies:
|
||||
inherits "^2.0.3"
|
||||
readable-stream "^2.2.2"
|
||||
typedarray "^0.0.6"
|
||||
|
||||
concat-stream@1.6.2, concat-stream@^1.4.6, concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.1:
|
||||
version "1.6.2"
|
||||
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
|
||||
|
@ -8429,15 +8443,6 @@ concat-stream@1.6.2, concat-stream@^1.4.6, concat-stream@^1.5.0, concat-stream@^
|
|||
readable-stream "^2.2.2"
|
||||
typedarray "^0.0.6"
|
||||
|
||||
concat-stream@^1.4.7, concat-stream@~1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
|
||||
integrity sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=
|
||||
dependencies:
|
||||
inherits "^2.0.3"
|
||||
readable-stream "^2.2.2"
|
||||
typedarray "^0.0.6"
|
||||
|
||||
concat-stream@~1.5.0:
|
||||
version "1.5.2"
|
||||
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266"
|
||||
|
@ -8466,6 +8471,14 @@ config-chain@^1.1.11:
|
|||
ini "^1.3.4"
|
||||
proto-list "~1.2.1"
|
||||
|
||||
config-chain@~1.1.8:
|
||||
version "1.1.12"
|
||||
resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa"
|
||||
integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==
|
||||
dependencies:
|
||||
ini "^1.3.4"
|
||||
proto-list "~1.2.1"
|
||||
|
||||
configstore@^1.0.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/configstore/-/configstore-1.4.0.tgz#c35781d0501d268c25c54b8b17f6240e8a4fb021"
|
||||
|
@ -11966,6 +11979,16 @@ extract-stack@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/extract-stack/-/extract-stack-1.0.0.tgz#b97acaf9441eea2332529624b732fc5a1c8165fa"
|
||||
integrity sha1-uXrK+UQe6iMyUpYktzL8WhyBZfo=
|
||||
|
||||
extract-zip@1.6.6:
|
||||
version "1.6.6"
|
||||
resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.6.tgz#1290ede8d20d0872b429fd3f351ca128ec5ef85c"
|
||||
integrity sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=
|
||||
dependencies:
|
||||
concat-stream "1.6.0"
|
||||
debug "2.6.9"
|
||||
mkdirp "0.5.0"
|
||||
yauzl "2.4.1"
|
||||
|
||||
extract-zip@1.6.7, extract-zip@^1.6.6, extract-zip@^1.6.7:
|
||||
version "1.6.7"
|
||||
resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9"
|
||||
|
@ -13767,6 +13790,11 @@ graceful-fs@^4.2.0, graceful-fs@^4.2.2:
|
|||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02"
|
||||
integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==
|
||||
|
||||
graceful-fs@~1.1:
|
||||
version "1.1.14"
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.1.14.tgz#07078db5f6377f6321fceaaedf497de124dc9465"
|
||||
integrity sha1-BweNtfY3f2Mh/Oqu30l94STclGU=
|
||||
|
||||
"graceful-readlink@>= 1.0.0":
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
|
||||
|
@ -14979,6 +15007,20 @@ idx@^2.5.6:
|
|||
resolved "https://registry.yarnpkg.com/idx/-/idx-2.5.6.tgz#1f824595070100ae9ad585c86db08dc74f83a59d"
|
||||
integrity sha512-WFXLF7JgPytbMgelpRY46nHz5tyDcedJ76pLV+RJWdb8h33bxFq4bdZau38DhNSzk5eVniBf1K3jwfK+Lb5nYA==
|
||||
|
||||
iedriver@^3.14.1:
|
||||
version "3.14.1"
|
||||
resolved "https://registry.yarnpkg.com/iedriver/-/iedriver-3.14.1.tgz#447c49be83c62d3f2f158283d58ccf7b35002be8"
|
||||
integrity sha512-YyCi703BGK7R37A8QlSe2B87xgwDGGoPqBrlXe4Q68o/MNLJrR53/IpTs6J1+KKk51MLiTbWa57N7P3KZ11tow==
|
||||
dependencies:
|
||||
adm-zip "^0.4.13"
|
||||
extract-zip "1.6.6"
|
||||
kew "~0.1.7"
|
||||
md5-file "^1.1.4"
|
||||
mkdirp "0.3.5"
|
||||
npmconf "^2.1.3"
|
||||
request "^2.88.0"
|
||||
rimraf "~2.0.2"
|
||||
|
||||
ieee754@^1.1.4:
|
||||
version "1.1.8"
|
||||
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
|
||||
|
@ -15179,7 +15221,7 @@ inherits@2.0.1:
|
|||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
|
||||
integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
|
||||
|
||||
ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
|
||||
ini@^1.2.0, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
|
||||
version "1.3.5"
|
||||
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
|
||||
integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
|
||||
|
@ -17383,6 +17425,11 @@ kdbush@^3.0.0:
|
|||
resolved "https://registry.yarnpkg.com/kdbush/-/kdbush-3.0.0.tgz#f8484794d47004cc2d85ed3a79353dbe0abc2bf0"
|
||||
integrity sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==
|
||||
|
||||
kew@~0.1.7:
|
||||
version "0.1.7"
|
||||
resolved "https://registry.yarnpkg.com/kew/-/kew-0.1.7.tgz#0a32a817ff1a9b3b12b8c9bacf4bc4d679af8e72"
|
||||
integrity sha1-CjKoF/8amzsSuMm6z0vE1nmvjnI=
|
||||
|
||||
keymirror@0.1.1, keymirror@^0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/keymirror/-/keymirror-0.1.1.tgz#918889ea13f8d0a42e7c557250eee713adc95c35"
|
||||
|
@ -18697,6 +18744,11 @@ material-colors@^1.2.1:
|
|||
resolved "https://registry.yarnpkg.com/material-colors/-/material-colors-1.2.5.tgz#5292593e6754cb1bcc2b98030e4e0d6a3afc9ea1"
|
||||
integrity sha1-UpJZPmdUyxvMK5gDDk4Najr8nqE=
|
||||
|
||||
md5-file@^1.1.4:
|
||||
version "1.1.10"
|
||||
resolved "https://registry.yarnpkg.com/md5-file/-/md5-file-1.1.10.tgz#d8f4fce76c92cb20b7d143a59f58ca49b4cf3174"
|
||||
integrity sha1-2PT852ySyyC30UOln1jKSbTPMXQ=
|
||||
|
||||
md5.js@^1.3.4:
|
||||
version "1.3.4"
|
||||
resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d"
|
||||
|
@ -19248,6 +19300,18 @@ mixin-object@^2.0.1:
|
|||
for-in "^0.1.3"
|
||||
is-extendable "^0.1.1"
|
||||
|
||||
mkdirp@0.3.5, mkdirp@^0.3.5, mkdirp@~0.3.5:
|
||||
version "0.3.5"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7"
|
||||
integrity sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=
|
||||
|
||||
mkdirp@0.5.0:
|
||||
version "0.5.0"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12"
|
||||
integrity sha1-HXMHam35hs2TROFecfzAWkyavxI=
|
||||
dependencies:
|
||||
minimist "0.0.8"
|
||||
|
||||
mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
|
||||
version "0.5.1"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
||||
|
@ -19255,11 +19319,6 @@ mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdi
|
|||
dependencies:
|
||||
minimist "0.0.8"
|
||||
|
||||
mkdirp@^0.3.5, mkdirp@~0.3.5:
|
||||
version "0.3.5"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7"
|
||||
integrity sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=
|
||||
|
||||
mobx-react@^5.4.3:
|
||||
version "5.4.3"
|
||||
resolved "https://registry.yarnpkg.com/mobx-react/-/mobx-react-5.4.3.tgz#6709b7dd89670c40e9815914ac2ca49cc02bfb47"
|
||||
|
@ -20033,7 +20092,7 @@ nodemailer@^4.7.0:
|
|||
chalk "~0.4.0"
|
||||
underscore "~1.6.0"
|
||||
|
||||
"nopt@2 || 3", nopt@3.x, nopt@~3.0.6:
|
||||
"nopt@2 || 3", nopt@3.x, nopt@~3.0.1, nopt@~3.0.6:
|
||||
version "3.0.6"
|
||||
resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
|
||||
integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k=
|
||||
|
@ -20180,6 +20239,22 @@ npm-run-path@^3.0.0:
|
|||
dependencies:
|
||||
path-key "^3.0.0"
|
||||
|
||||
npmconf@^2.1.3:
|
||||
version "2.1.3"
|
||||
resolved "https://registry.yarnpkg.com/npmconf/-/npmconf-2.1.3.tgz#1cbe5dd02e899d365fed7260b54055473f90a15c"
|
||||
integrity sha512-iTK+HI68GceCoGOHAQiJ/ik1iDfI7S+cgyG8A+PP18IU3X83kRhQIRhAUNj4Bp2JMx6Zrt5kCiozYa9uGWTjhA==
|
||||
dependencies:
|
||||
config-chain "~1.1.8"
|
||||
inherits "~2.0.0"
|
||||
ini "^1.2.0"
|
||||
mkdirp "^0.5.0"
|
||||
nopt "~3.0.1"
|
||||
once "~1.3.0"
|
||||
osenv "^0.1.0"
|
||||
safe-buffer "^5.1.1"
|
||||
semver "2 || 3 || 4"
|
||||
uid-number "0.0.5"
|
||||
|
||||
"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2, npmlog@^4.1.2:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
|
||||
|
@ -20490,6 +20565,13 @@ once@1.x, once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0:
|
|||
dependencies:
|
||||
wrappy "1"
|
||||
|
||||
once@~1.3.0:
|
||||
version "1.3.3"
|
||||
resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20"
|
||||
integrity sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=
|
||||
dependencies:
|
||||
wrappy "1"
|
||||
|
||||
one-time@0.0.4:
|
||||
version "0.0.4"
|
||||
resolved "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e"
|
||||
|
@ -24466,6 +24548,13 @@ rimraf@2.7.1, rimraf@^2.7.1:
|
|||
dependencies:
|
||||
glob "^7.1.3"
|
||||
|
||||
rimraf@~2.0.2:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.0.3.tgz#f50a2965e7144e9afd998982f15df706730f56a9"
|
||||
integrity sha1-9QopZecUTpr9mYmC8V33BnMPVqk=
|
||||
optionalDependencies:
|
||||
graceful-fs "~1.1"
|
||||
|
||||
ripemd160@^2.0.0, ripemd160@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7"
|
||||
|
@ -24917,6 +25006,11 @@ semver-truncate@^1.0.0:
|
|||
dependencies:
|
||||
semver "^5.3.0"
|
||||
|
||||
"semver@2 || 3 || 4":
|
||||
version "4.3.6"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da"
|
||||
integrity sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=
|
||||
|
||||
"semver@2 || 3 || 4 || 5", semver@^5.3.0:
|
||||
version "5.4.1"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
|
||||
|
@ -27969,6 +28063,11 @@ ui-select@0.19.8:
|
|||
resolved "https://registry.yarnpkg.com/ui-select/-/ui-select-0.19.8.tgz#74860848a7fd8bc494d9856d2f62776ea98637c1"
|
||||
integrity sha1-dIYISKf9i8SU2YVtL2J3bqmGN8E=
|
||||
|
||||
uid-number@0.0.5:
|
||||
version "0.0.5"
|
||||
resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.5.tgz#5a3db23ef5dbd55b81fce0ec9a2ac6fccdebb81e"
|
||||
integrity sha1-Wj2yPvXb1VuB/ODsmirG/M3ruB4=
|
||||
|
||||
ultron@~1.1.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue