mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
* share specific instances of some ui packages * remove unnecessary eslint changes, every package will define deps anyway * remove mentions of moment webpackShims in eslint resolver * remove use of lodash * list angular as dep for x-pack * add operations as codeowner of shared-deps pkg # Conflicts: # .github/CODEOWNERS # src/optimize/base_optimizer.js # yarn.lock
This commit is contained in:
parent
ce6d6b5978
commit
02eead710d
23 changed files with 413 additions and 231 deletions
|
@ -347,9 +347,8 @@ module.exports = {
|
|||
'src/fixtures/**/*.js', // TODO: this directory needs to be more obviously "public" (or go away)
|
||||
],
|
||||
settings: {
|
||||
// instructs import/no-extraneous-dependencies to treat modules
|
||||
// in plugins/ or ui/ namespace as "core modules" so they don't
|
||||
// trigger failures for not being listed in package.json
|
||||
// instructs import/no-extraneous-dependencies to treat certain modules
|
||||
// as core modules, even if they aren't listed in package.json
|
||||
'import/core-modules': [
|
||||
'plugins',
|
||||
'legacy/ui',
|
||||
|
|
|
@ -130,6 +130,7 @@
|
|||
"@kbn/pm": "1.0.0",
|
||||
"@kbn/test-subj-selector": "0.2.1",
|
||||
"@kbn/ui-framework": "1.0.0",
|
||||
"@kbn/ui-shared-deps": "1.0.0",
|
||||
"@types/json-stable-stringify": "^1.0.32",
|
||||
"@types/lodash.clonedeep": "^4.5.4",
|
||||
"@types/node-forge": "^0.9.0",
|
||||
|
|
|
@ -30,8 +30,6 @@ exports.getWebpackConfig = function(kibanaPath, projectRoot, config) {
|
|||
ui: fromKibana('src/legacy/ui/public'),
|
||||
test_harness: fromKibana('src/test_harness/public'),
|
||||
querystring: 'querystring-browser',
|
||||
moment$: fromKibana('webpackShims/moment'),
|
||||
'moment-timezone$': fromKibana('webpackShims/moment-timezone'),
|
||||
|
||||
// Dev defaults for test bundle https://github.com/elastic/kibana/blob/6998f074542e8c7b32955db159d15661aca253d7/src/core_plugins/tests_bundle/index.js#L73-L78
|
||||
ng_mock$: fromKibana('src/test_utils/public/ng_mock'),
|
||||
|
|
3
packages/kbn-ui-shared-deps/README.md
Normal file
3
packages/kbn-ui-shared-deps/README.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
# `@kbn/ui-shared-deps`
|
||||
|
||||
Shared dependencies that must only have a single instance are installed and re-exported from here. To consume them, import the package and merge the `externals` export into your webpack config so that all references to the supported modules will be remapped to use the global versions.
|
39
packages/kbn-ui-shared-deps/entry.js
Normal file
39
packages/kbn-ui-shared-deps/entry.js
Normal file
|
@ -0,0 +1,39 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
// must load before angular
|
||||
export const Jquery = require('jquery');
|
||||
window.$ = window.jQuery = Jquery;
|
||||
|
||||
export const Angular = require('angular');
|
||||
export const ElasticCharts = require('@elastic/charts');
|
||||
export const ElasticEui = require('@elastic/eui');
|
||||
export const ElasticEuiLibServices = require('@elastic/eui/lib/services');
|
||||
export const ElasticEuiLightTheme = require('@elastic/eui/dist/eui_theme_light.json');
|
||||
export const ElasticEuiDarkTheme = require('@elastic/eui/dist/eui_theme_dark.json');
|
||||
export const Moment = require('moment');
|
||||
export const MomentTimezone = require('moment-timezone/moment-timezone');
|
||||
export const React = require('react');
|
||||
export const ReactDom = require('react-dom');
|
||||
export const ReactIntl = require('react-intl');
|
||||
export const ReactRouter = require('react-router'); // eslint-disable-line
|
||||
export const ReactRouterDom = require('react-router-dom');
|
||||
|
||||
// load timezone data into moment-timezone
|
||||
Moment.tz.load(require('moment-timezone/data/packed/latest.json'));
|
|
@ -17,6 +17,29 @@
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
require('jquery');
|
||||
require('../node_modules/angular/angular');
|
||||
module.exports = window.angular;
|
||||
/**
|
||||
* Absolute path to the distributable directory
|
||||
*/
|
||||
export const distDir: string;
|
||||
|
||||
/**
|
||||
* Filename of the main bundle file in the distributable directory
|
||||
*/
|
||||
export const distFilename: string;
|
||||
|
||||
/**
|
||||
* Filename of the dark-theme css file in the distributable directory
|
||||
*/
|
||||
export const darkCssDistFilename: string;
|
||||
|
||||
/**
|
||||
* Filename of the light-theme css file in the distributable directory
|
||||
*/
|
||||
export const lightCssDistFilename: string;
|
||||
|
||||
/**
|
||||
* Externals mapping inteded to be used in a webpack config
|
||||
*/
|
||||
export const externals: {
|
||||
[key: string]: string;
|
||||
};
|
41
packages/kbn-ui-shared-deps/index.js
Normal file
41
packages/kbn-ui-shared-deps/index.js
Normal file
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
const Path = require('path');
|
||||
|
||||
exports.distDir = Path.resolve(__dirname, 'target');
|
||||
exports.distFilename = 'kbn-ui-shared-deps.js';
|
||||
exports.lightCssDistFilename = 'kbn-ui-shared-deps.light.css';
|
||||
exports.darkCssDistFilename = 'kbn-ui-shared-deps.dark.css';
|
||||
exports.externals = {
|
||||
angular: '__kbnSharedDeps__.Angular',
|
||||
'@elastic/charts': '__kbnSharedDeps__.ElasticCharts',
|
||||
'@elastic/eui': '__kbnSharedDeps__.ElasticEui',
|
||||
'@elastic/eui/lib/services': '__kbnSharedDeps__.ElasticEuiLibServices',
|
||||
'@elastic/eui/dist/eui_theme_light.json': '__kbnSharedDeps__.ElasticEuiLightTheme',
|
||||
'@elastic/eui/dist/eui_theme_dark.json': '__kbnSharedDeps__.ElasticEuiDarkTheme',
|
||||
jquery: '__kbnSharedDeps__.Jquery',
|
||||
moment: '__kbnSharedDeps__.Moment',
|
||||
'moment-timezone': '__kbnSharedDeps__.MomentTimezone',
|
||||
react: '__kbnSharedDeps__.React',
|
||||
'react-dom': '__kbnSharedDeps__.ReactDom',
|
||||
'react-intl': '__kbnSharedDeps__.ReactIntl',
|
||||
'react-router': '__kbnSharedDeps__.ReactRouter',
|
||||
'react-router-dom': '__kbnSharedDeps__.ReactRouterDom',
|
||||
};
|
29
packages/kbn-ui-shared-deps/package.json
Normal file
29
packages/kbn-ui-shared-deps/package.json
Normal file
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"name": "@kbn/ui-shared-deps",
|
||||
"version": "1.0.0",
|
||||
"license": "Apache-2.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "node scripts/build",
|
||||
"kbn:bootstrap": "node scripts/build --dev",
|
||||
"kbn:watch": "node scripts/build --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@elastic/eui": "17.3.1",
|
||||
"@elastic/charts": "^16.1.0",
|
||||
"@kbn/dev-utils": "1.0.0",
|
||||
"@yarnpkg/lockfile": "^1.1.0",
|
||||
"angular": "^1.7.9",
|
||||
"css-loader": "^2.1.1",
|
||||
"del": "^5.1.0",
|
||||
"jquery": "^3.4.1",
|
||||
"mini-css-extract-plugin": "0.8.0",
|
||||
"moment": "^2.24.0",
|
||||
"moment-timezone": "^0.5.27",
|
||||
"react-dom": "^16.12.0",
|
||||
"react-intl": "^2.8.0",
|
||||
"react": "^16.12.0",
|
||||
"read-pkg": "^5.2.0",
|
||||
"webpack": "4.41.0"
|
||||
}
|
||||
}
|
105
packages/kbn-ui-shared-deps/scripts/build.js
Normal file
105
packages/kbn-ui-shared-deps/scripts/build.js
Normal file
|
@ -0,0 +1,105 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
const Path = require('path');
|
||||
|
||||
const { run, createFailError } = require('@kbn/dev-utils');
|
||||
const webpack = require('webpack');
|
||||
const Stats = require('webpack/lib/Stats');
|
||||
const del = require('del');
|
||||
|
||||
const { getWebpackConfig } = require('../webpack.config');
|
||||
|
||||
run(
|
||||
async ({ log, flags }) => {
|
||||
log.info('cleaning previous build output');
|
||||
await del(Path.resolve(__dirname, '../target'));
|
||||
|
||||
const compiler = webpack(
|
||||
getWebpackConfig({
|
||||
dev: flags.dev,
|
||||
})
|
||||
);
|
||||
|
||||
/** @param {webpack.Stats} stats */
|
||||
const onCompilationComplete = stats => {
|
||||
const took = Math.round((stats.endTime - stats.startTime) / 1000);
|
||||
|
||||
if (!stats.hasErrors() && !stats.hasWarnings()) {
|
||||
log.success(`webpack completed in about ${took} seconds`);
|
||||
return;
|
||||
}
|
||||
|
||||
throw createFailError(
|
||||
`webpack failure in about ${took} seconds\n${stats.toString({
|
||||
colors: true,
|
||||
...Stats.presetToOptions('minimal'),
|
||||
})}`
|
||||
);
|
||||
};
|
||||
|
||||
if (flags.watch) {
|
||||
compiler.hooks.done.tap('report on stats', stats => {
|
||||
try {
|
||||
onCompilationComplete(stats);
|
||||
} catch (error) {
|
||||
log.error(error.message);
|
||||
}
|
||||
});
|
||||
|
||||
compiler.hooks.watchRun.tap('report on start', () => {
|
||||
process.stdout.cursorTo(0, 0);
|
||||
process.stdout.clearScreenDown();
|
||||
log.info('Running webpack compilation...');
|
||||
});
|
||||
|
||||
compiler.watch({}, error => {
|
||||
if (error) {
|
||||
log.error('Fatal webpack error');
|
||||
log.error(error);
|
||||
process.exit(1);
|
||||
}
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
onCompilationComplete(
|
||||
await new Promise((resolve, reject) => {
|
||||
compiler.run((error, stats) => {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
resolve(stats);
|
||||
}
|
||||
});
|
||||
})
|
||||
);
|
||||
},
|
||||
{
|
||||
description: 'build @kbn/ui-shared-deps',
|
||||
flags: {
|
||||
boolean: ['watch', 'dev'],
|
||||
help: `
|
||||
--watch Run in watch mode
|
||||
--dev Build development friendly version
|
||||
`,
|
||||
},
|
||||
}
|
||||
);
|
6
packages/kbn-ui-shared-deps/tsconfig.json
Normal file
6
packages/kbn-ui-shared-deps/tsconfig.json
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"include": [
|
||||
"index.d.ts"
|
||||
]
|
||||
}
|
90
packages/kbn-ui-shared-deps/webpack.config.js
Normal file
90
packages/kbn-ui-shared-deps/webpack.config.js
Normal file
|
@ -0,0 +1,90 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
const Path = require('path');
|
||||
|
||||
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
||||
const { REPO_ROOT } = require('@kbn/dev-utils');
|
||||
const webpack = require('webpack');
|
||||
|
||||
const SharedDeps = require('./index');
|
||||
|
||||
const MOMENT_SRC = require.resolve('moment/min/moment-with-locales.js');
|
||||
|
||||
exports.getWebpackConfig = ({ dev = false } = {}) => ({
|
||||
mode: dev ? 'development' : 'production',
|
||||
entry: {
|
||||
[SharedDeps.distFilename.replace(/\.js$/, '')]: './entry.js',
|
||||
[SharedDeps.darkCssDistFilename.replace(/\.css$/, '')]: [
|
||||
'@elastic/eui/dist/eui_theme_dark.css',
|
||||
'@elastic/charts/dist/theme_only_dark.css',
|
||||
],
|
||||
[SharedDeps.lightCssDistFilename.replace(/\.css$/, '')]: [
|
||||
'@elastic/eui/dist/eui_theme_light.css',
|
||||
'@elastic/charts/dist/theme_only_light.css',
|
||||
],
|
||||
},
|
||||
context: __dirname,
|
||||
devtool: dev ? '#cheap-source-map' : false,
|
||||
output: {
|
||||
path: SharedDeps.distDir,
|
||||
filename: '[name].js',
|
||||
sourceMapFilename: '[file].map',
|
||||
publicPath: '__REPLACE_WITH_PUBLIC_PATH__',
|
||||
devtoolModuleFilenameTemplate: info =>
|
||||
`kbn-ui-shared-deps/${Path.relative(REPO_ROOT, info.absoluteResourcePath)}`,
|
||||
library: '__kbnSharedDeps__',
|
||||
},
|
||||
|
||||
module: {
|
||||
noParse: [MOMENT_SRC],
|
||||
rules: [
|
||||
{
|
||||
test: /\.css$/,
|
||||
use: [MiniCssExtractPlugin.loader, 'css-loader'],
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
resolve: {
|
||||
alias: {
|
||||
moment: MOMENT_SRC,
|
||||
},
|
||||
},
|
||||
|
||||
optimization: {
|
||||
noEmitOnErrors: true,
|
||||
},
|
||||
|
||||
performance: {
|
||||
// NOTE: we are disabling this as those hints
|
||||
// are more tailored for the final bundles result
|
||||
// and not for the webpack compilations performance itself
|
||||
hints: false,
|
||||
},
|
||||
|
||||
plugins: [
|
||||
new MiniCssExtractPlugin({
|
||||
filename: '[name].css',
|
||||
}),
|
||||
new webpack.DefinePlugin({
|
||||
'process.env.NODE_ENV': dev ? '"development"' : '"production"',
|
||||
}),
|
||||
],
|
||||
});
|
|
@ -14,6 +14,7 @@ if (window.__kbnStrictCsp__ && window.__kbnCspNotEnforced__) {
|
|||
window.onload = function () {
|
||||
var files = [
|
||||
'{{dllBundlePath}}/vendors.bundle.dll.js',
|
||||
'{{regularBundlePath}}/kbn-ui-shared-deps/{{sharedDepsFilename}}',
|
||||
'{{regularBundlePath}}/commons.bundle.js',
|
||||
'{{regularBundlePath}}/{{appId}}.bundle.js'
|
||||
];
|
||||
|
|
|
@ -21,6 +21,7 @@ import { createHash } from 'crypto';
|
|||
import Boom from 'boom';
|
||||
import { resolve } from 'path';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import * as UiSharedDeps from '@kbn/ui-shared-deps';
|
||||
import { AppBootstrap } from './bootstrap';
|
||||
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
|
||||
import { fromRoot } from '../../../core/server/utils';
|
||||
|
@ -40,18 +41,10 @@ export function uiRenderMixin(kbnServer, server, config) {
|
|||
// render all views from ./views
|
||||
server.setupViews(resolve(__dirname, 'views'));
|
||||
|
||||
server.exposeStaticDir(
|
||||
'/node_modules/@elastic/eui/dist/{path*}',
|
||||
fromRoot('node_modules/@elastic/eui/dist')
|
||||
);
|
||||
server.exposeStaticDir(
|
||||
'/node_modules/@kbn/ui-framework/dist/{path*}',
|
||||
fromRoot('node_modules/@kbn/ui-framework/dist')
|
||||
);
|
||||
server.exposeStaticDir(
|
||||
'/node_modules/@elastic/charts/dist/{path*}',
|
||||
fromRoot('node_modules/@elastic/charts/dist')
|
||||
);
|
||||
|
||||
const translationsCache = { translations: null, hash: null };
|
||||
server.route({
|
||||
|
@ -113,14 +106,12 @@ export function uiRenderMixin(kbnServer, server, config) {
|
|||
`${dllBundlePath}/vendors.style.dll.css`,
|
||||
...(darkMode
|
||||
? [
|
||||
`${basePath}/node_modules/@elastic/eui/dist/eui_theme_dark.css`,
|
||||
`${basePath}/bundles/kbn-ui-shared-deps/${UiSharedDeps.darkCssDistFilename}`,
|
||||
`${basePath}/node_modules/@kbn/ui-framework/dist/kui_dark.css`,
|
||||
`${basePath}/node_modules/@elastic/charts/dist/theme_only_dark.css`,
|
||||
]
|
||||
: [
|
||||
`${basePath}/node_modules/@elastic/eui/dist/eui_theme_light.css`,
|
||||
`${basePath}/bundles/kbn-ui-shared-deps/${UiSharedDeps.lightCssDistFilename}`,
|
||||
`${basePath}/node_modules/@kbn/ui-framework/dist/kui_light.css`,
|
||||
`${basePath}/node_modules/@elastic/charts/dist/theme_only_light.css`,
|
||||
]),
|
||||
`${regularBundlePath}/${darkMode ? 'dark' : 'light'}_theme.style.css`,
|
||||
`${regularBundlePath}/commons.style.css`,
|
||||
|
@ -141,6 +132,7 @@ export function uiRenderMixin(kbnServer, server, config) {
|
|||
regularBundlePath,
|
||||
dllBundlePath,
|
||||
styleSheetPaths,
|
||||
sharedDepsFilename: UiSharedDeps.distFilename,
|
||||
},
|
||||
});
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
import { writeFile } from 'fs';
|
||||
import os from 'os';
|
||||
|
||||
import Boom from 'boom';
|
||||
import MiniCssExtractPlugin from 'mini-css-extract-plugin';
|
||||
import TerserPlugin from 'terser-webpack-plugin';
|
||||
|
@ -26,10 +27,9 @@ import webpack from 'webpack';
|
|||
import Stats from 'webpack/lib/Stats';
|
||||
import * as threadLoader from 'thread-loader';
|
||||
import webpackMerge from 'webpack-merge';
|
||||
import * as UiSharedDeps from '@kbn/ui-shared-deps';
|
||||
|
||||
import { DynamicDllPlugin } from './dynamic_dll_plugin';
|
||||
|
||||
import { defaults } from 'lodash';
|
||||
|
||||
import { IS_KIBANA_DISTRIBUTABLE } from '../legacy/utils';
|
||||
import { fromRoot } from '../core/server/utils';
|
||||
import { PUBLIC_PATH_PLACEHOLDER } from './public_path_placeholder';
|
||||
|
@ -400,6 +400,10 @@ export default class BaseOptimizer {
|
|||
// and not for the webpack compilations performance itself
|
||||
hints: false,
|
||||
},
|
||||
|
||||
externals: {
|
||||
...UiSharedDeps.externals,
|
||||
},
|
||||
};
|
||||
|
||||
// when running from the distributable define an environment variable we can use
|
||||
|
@ -414,17 +418,6 @@ export default class BaseOptimizer {
|
|||
],
|
||||
};
|
||||
|
||||
// We need to add react-addons (and a few other bits) for enzyme to work.
|
||||
// https://github.com/airbnb/enzyme/blob/master/docs/guides/webpack.md
|
||||
const supportEnzymeConfig = {
|
||||
externals: {
|
||||
mocha: 'mocha',
|
||||
'react/lib/ExecutionEnvironment': true,
|
||||
'react/addons': true,
|
||||
'react/lib/ReactContext': true,
|
||||
},
|
||||
};
|
||||
|
||||
const watchingConfig = {
|
||||
plugins: [
|
||||
new webpack.WatchIgnorePlugin([
|
||||
|
@ -462,9 +455,7 @@ export default class BaseOptimizer {
|
|||
webpackMerge(
|
||||
commonConfig,
|
||||
IS_KIBANA_DISTRIBUTABLE ? isDistributableConfig : {},
|
||||
this.uiBundles.isDevMode()
|
||||
? webpackMerge(watchingConfig, supportEnzymeConfig)
|
||||
: productionConfig
|
||||
this.uiBundles.isDevMode() ? watchingConfig : productionConfig
|
||||
)
|
||||
);
|
||||
}
|
||||
|
@ -495,21 +486,18 @@ export default class BaseOptimizer {
|
|||
}
|
||||
|
||||
failedStatsToError(stats) {
|
||||
const details = stats.toString(
|
||||
defaults(
|
||||
{ colors: true, warningsFilter: STATS_WARNINGS_FILTER },
|
||||
Stats.presetToOptions('minimal')
|
||||
)
|
||||
);
|
||||
const details = stats.toString({
|
||||
...Stats.presetToOptions('minimal'),
|
||||
colors: true,
|
||||
warningsFilter: STATS_WARNINGS_FILTER,
|
||||
});
|
||||
|
||||
return Boom.internal(
|
||||
`Optimizations failure.\n${details.split('\n').join('\n ')}\n`,
|
||||
stats.toJson(
|
||||
defaults({
|
||||
warningsFilter: STATS_WARNINGS_FILTER,
|
||||
...Stats.presetToOptions('detailed'),
|
||||
})
|
||||
)
|
||||
stats.toJson({
|
||||
warningsFilter: STATS_WARNINGS_FILTER,
|
||||
...Stats.presetToOptions('detailed'),
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
import { isAbsolute, extname } from 'path';
|
||||
import LruCache from 'lru-cache';
|
||||
import * as UiSharedDeps from '@kbn/ui-shared-deps';
|
||||
import { createDynamicAssetResponse } from './dynamic_asset_response';
|
||||
|
||||
/**
|
||||
|
@ -66,6 +67,12 @@ export function createBundlesRoute({
|
|||
}
|
||||
|
||||
return [
|
||||
buildRouteForBundles(
|
||||
`${basePublicPath}/bundles/kbn-ui-shared-deps/`,
|
||||
'/bundles/kbn-ui-shared-deps/',
|
||||
UiSharedDeps.distDir,
|
||||
fileHashCache
|
||||
),
|
||||
buildRouteForBundles(
|
||||
`${basePublicPath}/bundles/`,
|
||||
'/bundles/',
|
||||
|
|
|
@ -23,6 +23,7 @@ import webpack from 'webpack';
|
|||
import webpackMerge from 'webpack-merge';
|
||||
import MiniCssExtractPlugin from 'mini-css-extract-plugin';
|
||||
import TerserPlugin from 'terser-webpack-plugin';
|
||||
import * as UiSharedDeps from '@kbn/ui-shared-deps';
|
||||
|
||||
function generateDLL(config) {
|
||||
const {
|
||||
|
@ -145,6 +146,9 @@ function generateDLL(config) {
|
|||
// and not for the webpack compilations performance itself
|
||||
hints: false,
|
||||
},
|
||||
externals: {
|
||||
...UiSharedDeps.externals,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
import { dirname } from 'path';
|
||||
import { times } from 'lodash';
|
||||
import { makeJunitReportPath } from '@kbn/test';
|
||||
import * as UiSharedDeps from '@kbn/ui-shared-deps';
|
||||
|
||||
const TOTAL_CI_SHARDS = 4;
|
||||
const ROOT = dirname(require.resolve('../../package.json'));
|
||||
|
@ -48,6 +49,25 @@ module.exports = function(grunt) {
|
|||
return ['progress'];
|
||||
}
|
||||
|
||||
function getKarmaFiles(shardNum) {
|
||||
return [
|
||||
'http://localhost:5610/test_bundle/built_css.css',
|
||||
|
||||
`http://localhost:5610/bundles/kbn-ui-shared-deps/${UiSharedDeps.distFilename}`,
|
||||
'http://localhost:5610/built_assets/dlls/vendors.bundle.dll.js',
|
||||
|
||||
shardNum === undefined
|
||||
? `http://localhost:5610/bundles/tests.bundle.js`
|
||||
: `http://localhost:5610/bundles/tests.bundle.js?shards=${TOTAL_CI_SHARDS}&shard_num=${shardNum}`,
|
||||
|
||||
// this causes tilemap tests to fail, probably because the eui styles haven't been
|
||||
// included in the karma harness a long some time, if ever
|
||||
// `http://localhost:5610/bundles/kbn-ui-shared-deps/${UiSharedDeps.lightCssDistFilename}`,
|
||||
'http://localhost:5610/built_assets/dlls/vendors.style.dll.css',
|
||||
'http://localhost:5610/bundles/tests.style.css',
|
||||
];
|
||||
}
|
||||
|
||||
const config = {
|
||||
options: {
|
||||
// base path that will be used to resolve all patterns (eg. files, exclude)
|
||||
|
@ -90,15 +110,7 @@ module.exports = function(grunt) {
|
|||
},
|
||||
|
||||
// list of files / patterns to load in the browser
|
||||
files: [
|
||||
'http://localhost:5610/test_bundle/built_css.css',
|
||||
|
||||
'http://localhost:5610/built_assets/dlls/vendors.bundle.dll.js',
|
||||
'http://localhost:5610/bundles/tests.bundle.js',
|
||||
|
||||
'http://localhost:5610/built_assets/dlls/vendors.style.dll.css',
|
||||
'http://localhost:5610/bundles/tests.style.css',
|
||||
],
|
||||
files: getKarmaFiles(),
|
||||
|
||||
proxies: {
|
||||
'/tests/': 'http://localhost:5610/tests/',
|
||||
|
@ -181,15 +193,7 @@ module.exports = function(grunt) {
|
|||
config[`ciShard-${n}`] = {
|
||||
singleRun: true,
|
||||
options: {
|
||||
files: [
|
||||
'http://localhost:5610/test_bundle/built_css.css',
|
||||
|
||||
'http://localhost:5610/built_assets/dlls/vendors.bundle.dll.js',
|
||||
`http://localhost:5610/bundles/tests.bundle.js?shards=${TOTAL_CI_SHARDS}&shard_num=${n}`,
|
||||
|
||||
'http://localhost:5610/built_assets/dlls/vendors.style.dll.css',
|
||||
'http://localhost:5610/bundles/tests.style.css',
|
||||
],
|
||||
files: getKarmaFiles(n),
|
||||
},
|
||||
};
|
||||
});
|
||||
|
|
20
webpackShims/jquery.js
vendored
20
webpackShims/jquery.js
vendored
|
@ -1,20 +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.
|
||||
*/
|
||||
|
||||
window.jQuery = window.$ = module.exports = require('../node_modules/jquery/dist/jquery');
|
|
@ -1,21 +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.
|
||||
*/
|
||||
|
||||
var moment = (module.exports = require('../node_modules/moment-timezone/moment-timezone'));
|
||||
moment.tz.load(require('../node_modules/moment-timezone/data/packed/latest.json'));
|
|
@ -1,20 +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.
|
||||
*/
|
||||
|
||||
module.exports = require('../node_modules/moment/min/moment-with-locales.min.js');
|
|
@ -1,2 +0,0 @@
|
|||
/* eslint-disable */
|
||||
module.exports = require('../../../node_modules/moment/min/moment.min.js');
|
|
@ -189,6 +189,7 @@
|
|||
"@scant/router": "^0.1.0",
|
||||
"@slack/webhook": "^5.0.0",
|
||||
"@turf/boolean-contains": "6.0.1",
|
||||
"angular": "^1.7.9",
|
||||
"angular-resource": "1.7.8",
|
||||
"angular-sanitize": "1.7.8",
|
||||
"angular-ui-ace": "0.2.3",
|
||||
|
@ -339,7 +340,7 @@
|
|||
"uuid": "3.3.2",
|
||||
"venn.js": "0.2.20",
|
||||
"vscode-languageserver": "^5.2.1",
|
||||
"webpack": "4.33.0",
|
||||
"webpack": "4.41.0",
|
||||
"wellknown": "^0.5.0",
|
||||
"xml2js": "^0.4.22",
|
||||
"xregexp": "4.2.4"
|
||||
|
|
114
yarn.lock
114
yarn.lock
|
@ -5249,11 +5249,6 @@ accepts@~1.3.7:
|
|||
mime-types "~2.1.24"
|
||||
negotiator "0.6.2"
|
||||
|
||||
acorn-dynamic-import@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948"
|
||||
integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==
|
||||
|
||||
acorn-globals@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf"
|
||||
|
@ -5328,7 +5323,7 @@ acorn@^6.0.1:
|
|||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f"
|
||||
integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==
|
||||
|
||||
acorn@^6.0.5, acorn@^6.2.1:
|
||||
acorn@^6.2.1:
|
||||
version "6.3.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e"
|
||||
integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==
|
||||
|
@ -8468,7 +8463,7 @@ chroma-js@^1.4.1:
|
|||
resolved "https://registry.yarnpkg.com/chroma-js/-/chroma-js-1.4.1.tgz#eb2d9c4d1ff24616be84b35119f4d26f8205f134"
|
||||
integrity sha512-jTwQiT859RTFN/vIf7s+Vl/Z2LcMrvMv3WUFmd/4u76AdlFC0NTNgqEEFPcRiHmAswPsMiQEDZLM8vX8qXpZNQ==
|
||||
|
||||
chrome-trace-event@^1.0.0, chrome-trace-event@^1.0.2:
|
||||
chrome-trace-event@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4"
|
||||
integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==
|
||||
|
@ -12095,14 +12090,6 @@ eslint-rule-composer@^0.3.0:
|
|||
resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9"
|
||||
integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==
|
||||
|
||||
eslint-scope@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172"
|
||||
integrity sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==
|
||||
dependencies:
|
||||
esrecurse "^4.1.0"
|
||||
estraverse "^4.1.1"
|
||||
|
||||
eslint-scope@^4.0.3:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
|
||||
|
@ -18779,16 +18766,11 @@ load-source-map@^1.0.0:
|
|||
semver "^5.3.0"
|
||||
source-map "^0.5.6"
|
||||
|
||||
loader-runner@^2.3.0, loader-runner@^2.4.0:
|
||||
loader-runner@^2.3.1, loader-runner@^2.4.0:
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
|
||||
integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
|
||||
|
||||
loader-runner@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979"
|
||||
integrity sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==
|
||||
|
||||
loader-utils@1.2.3, loader-utils@^1.2.3:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
|
||||
|
@ -19717,7 +19699,7 @@ memory-fs@^0.2.0:
|
|||
resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290"
|
||||
integrity sha1-8rslNovBIeORwlIN6Slpyu4KApA=
|
||||
|
||||
memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1:
|
||||
memory-fs@^0.4.0, memory-fs@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
|
||||
integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=
|
||||
|
@ -19821,7 +19803,7 @@ microevent.ts@~0.1.1:
|
|||
resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0"
|
||||
integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==
|
||||
|
||||
micromatch@3.1.10, micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8:
|
||||
micromatch@3.1.10, micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
|
||||
version "3.1.10"
|
||||
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
|
||||
integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
|
||||
|
@ -20798,7 +20780,7 @@ node-jose@1.1.0:
|
|||
util "^0.11.0"
|
||||
vm-browserify "0.0.4"
|
||||
|
||||
node-libs-browser@^2.0.0, node-libs-browser@^2.2.1:
|
||||
node-libs-browser@^2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
|
||||
integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==
|
||||
|
@ -27880,7 +27862,7 @@ term-size@^1.2.0:
|
|||
dependencies:
|
||||
execa "^0.7.0"
|
||||
|
||||
terser-webpack-plugin@^1.1.0, terser-webpack-plugin@^1.2.4, terser-webpack-plugin@^1.4.1:
|
||||
terser-webpack-plugin@^1.2.4, terser-webpack-plugin@^1.4.1:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4"
|
||||
integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==
|
||||
|
@ -27909,19 +27891,10 @@ terser-webpack-plugin@^2.1.2:
|
|||
terser "^4.3.4"
|
||||
webpack-sources "^1.4.3"
|
||||
|
||||
terser@^4.1.2:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-4.2.0.tgz#4b1b5f4424b426a7a47e80d6aae45e0d7979aef0"
|
||||
integrity sha512-6lPt7lZdZ/13icQJp8XasFOwZjFJkxFFIb/N1fhYEQNoNI3Ilo3KABZ9OocZvZoB39r6SiIk/0+v/bt8nZoSeA==
|
||||
dependencies:
|
||||
commander "^2.20.0"
|
||||
source-map "~0.6.1"
|
||||
source-map-support "~0.5.12"
|
||||
|
||||
terser@^4.3.4:
|
||||
version "4.3.4"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.4.tgz#ad91bade95619e3434685d69efa621a5af5f877d"
|
||||
integrity sha512-Kcrn3RiW8NtHBP0ssOAzwa2MsIRQ8lJWiBG/K7JgqPlomA3mtb2DEmp4/hrUA+Jujx+WZ02zqd7GYD+QRBB/2Q==
|
||||
terser@^4.1.2, terser@^4.3.4:
|
||||
version "4.6.1"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.1.tgz#913e35e0d38a75285a7913ba01d753c4089ebdbd"
|
||||
integrity sha512-w0f2OWFD7ka3zwetgVAhNMeyzEbj39ht2Tb0qKflw9PmW9Qbo5tjTh01QJLkhO9t9RDDQYvk+WXqpECI2C6i2A==
|
||||
dependencies:
|
||||
commander "^2.20.0"
|
||||
source-map "~0.6.1"
|
||||
|
@ -30446,7 +30419,7 @@ warning@^4.0.2:
|
|||
dependencies:
|
||||
loose-envify "^1.0.0"
|
||||
|
||||
watchpack@^1.5.0, watchpack@^1.6.0:
|
||||
watchpack@^1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"
|
||||
integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==
|
||||
|
@ -30606,7 +30579,7 @@ webpack-sources@^1.1.0:
|
|||
source-list-map "^2.0.0"
|
||||
source-map "~0.6.1"
|
||||
|
||||
webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3:
|
||||
webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3:
|
||||
version "1.4.3"
|
||||
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
|
||||
integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
|
||||
|
@ -30614,37 +30587,7 @@ webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-
|
|||
source-list-map "^2.0.0"
|
||||
source-map "~0.6.1"
|
||||
|
||||
webpack@4.33.0:
|
||||
version "4.33.0"
|
||||
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.33.0.tgz#c30fc4307db432e5c5e3333aaa7c16a15a3b277e"
|
||||
integrity sha512-ggWMb0B2QUuYso6FPZKUohOgfm+Z0sVFs8WwWuSH1IAvkWs428VDNmOlAxvHGTB9Dm/qOB/qtE5cRx5y01clxw==
|
||||
dependencies:
|
||||
"@webassemblyjs/ast" "1.8.5"
|
||||
"@webassemblyjs/helper-module-context" "1.8.5"
|
||||
"@webassemblyjs/wasm-edit" "1.8.5"
|
||||
"@webassemblyjs/wasm-parser" "1.8.5"
|
||||
acorn "^6.0.5"
|
||||
acorn-dynamic-import "^4.0.0"
|
||||
ajv "^6.1.0"
|
||||
ajv-keywords "^3.1.0"
|
||||
chrome-trace-event "^1.0.0"
|
||||
enhanced-resolve "^4.1.0"
|
||||
eslint-scope "^4.0.0"
|
||||
json-parse-better-errors "^1.0.2"
|
||||
loader-runner "^2.3.0"
|
||||
loader-utils "^1.1.0"
|
||||
memory-fs "~0.4.1"
|
||||
micromatch "^3.1.8"
|
||||
mkdirp "~0.5.0"
|
||||
neo-async "^2.5.0"
|
||||
node-libs-browser "^2.0.0"
|
||||
schema-utils "^1.0.0"
|
||||
tapable "^1.1.0"
|
||||
terser-webpack-plugin "^1.1.0"
|
||||
watchpack "^1.5.0"
|
||||
webpack-sources "^1.3.0"
|
||||
|
||||
webpack@4.41.0, webpack@^4.41.0:
|
||||
webpack@4.41.0, webpack@^4.33.0, webpack@^4.38.0, webpack@^4.41.0:
|
||||
version "4.41.0"
|
||||
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.0.tgz#db6a254bde671769f7c14e90a1a55e73602fc70b"
|
||||
integrity sha512-yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g==
|
||||
|
@ -30673,35 +30616,6 @@ webpack@4.41.0, webpack@^4.41.0:
|
|||
watchpack "^1.6.0"
|
||||
webpack-sources "^1.4.1"
|
||||
|
||||
webpack@^4.33.0, webpack@^4.38.0:
|
||||
version "4.39.3"
|
||||
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.39.3.tgz#a02179d1032156b713b6ec2da7e0df9d037def50"
|
||||
integrity sha512-BXSI9M211JyCVc3JxHWDpze85CvjC842EvpRsVTc/d15YJGlox7GIDd38kJgWrb3ZluyvIjgenbLDMBQPDcxYQ==
|
||||
dependencies:
|
||||
"@webassemblyjs/ast" "1.8.5"
|
||||
"@webassemblyjs/helper-module-context" "1.8.5"
|
||||
"@webassemblyjs/wasm-edit" "1.8.5"
|
||||
"@webassemblyjs/wasm-parser" "1.8.5"
|
||||
acorn "^6.2.1"
|
||||
ajv "^6.10.2"
|
||||
ajv-keywords "^3.4.1"
|
||||
chrome-trace-event "^1.0.2"
|
||||
enhanced-resolve "^4.1.0"
|
||||
eslint-scope "^4.0.3"
|
||||
json-parse-better-errors "^1.0.2"
|
||||
loader-runner "^2.4.0"
|
||||
loader-utils "^1.2.3"
|
||||
memory-fs "^0.4.1"
|
||||
micromatch "^3.1.10"
|
||||
mkdirp "^0.5.1"
|
||||
neo-async "^2.6.1"
|
||||
node-libs-browser "^2.2.1"
|
||||
schema-utils "^1.0.0"
|
||||
tapable "^1.1.3"
|
||||
terser-webpack-plugin "^1.4.1"
|
||||
watchpack "^1.6.0"
|
||||
webpack-sources "^1.4.1"
|
||||
|
||||
websocket-driver@>=0.5.1:
|
||||
version "0.7.0"
|
||||
resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue