Commit d74a02ad by Jason Zhou

first version of wildcat

parents
{
"extends": "standard",
"rules": {
"space-before-function-paren": 0,
"comma-dangle": 0,
}
}
node_modules/
packages/backups/
yarn-error.log
.DS_Store
\ No newline at end of file
#!/usr/bin/env node
const inquirer = require('inquirer')
const { spawn } = require('child_process')
const {
updateConfigFiles,
updateLegacyCodes,
upgradePackages,
preserveOldFiles
} = require('../packages/actions')
const BANNER = `
* *
.
|\\___/|
) ( . *
=\\ /=
)===( *
/ \\
| |
/ \\
\\ /
_/\\_/\\_/\\__ _/_/\\_/\\_/\\_/\\_/\\_/\\_/\\_/\\_/\\_
| | | |( ( | | | | | | | | | |
| | | | ) ) | | | | | | | | | |
| | | |(_( | | | | | | | | | |
| | | | | | | | | | | | | | |
`
const main = async () => {
console.info(BANNER)
const { mode } = await inquirer.prompt([
{
name: 'mode',
type: 'list',
message: [
'Which mode would like to choose:',
' 🚝 chill - webpack 4, ES2018 output, cheap-eval-source-map',
' 🚀 mad max - coming soon ...',
// ' 🚀 mad max - webpack 4, ES2018 output, no source map, no backend log',
''
].join('\n'),
// choices: ['chill', 'mad max']
choices: ['chill']
}
])
console.log('Preserve current configs ...')
preserveOldFiles()
console.log('Update config files ...')
updateConfigFiles(mode)
console.log('Update legacy codes ...')
updateLegacyCodes()
console.log('Upgrade pacakages ...')
upgradePackages()
console.log('yarn dev')
// since shelljs.exec doesn't work with inqurier.js
// use spawn instead
spawn('yarn', ['dev'], {
stdio: 'inherit'
})
}
main()
{
"name": "wild",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"chalk": "^2.4.1",
"commander": "^2.16.0",
"ejs": "^2.6.1",
"handlebars": "^4.0.11",
"lodash": "^4.17.10",
"shelljs": "^0.8.2"
},
"devDependencies": {
"eslint": "^5.2.0",
"eslint-config-standard": "^11.0.0",
"eslint-plugin-import": "^2.13.0",
"eslint-plugin-node": "^7.0.1",
"eslint-plugin-promise": "^3.8.0",
"eslint-plugin-standard": "^3.1.0"
}
}
// const path = require('path')
const fs = require('fs')
const path = require('path')
const shell = require('shelljs')
const handlebars = require('handlebars')
const { TEMPLATES, PACKAGES, LEGACY_CODES, BACKUP_FILES } = require('./configs')
handlebars.registerHelper('if_eq', function(a, b, opts) {
return a === b ? opts.fn(this) : opts.inverse(this)
})
const preserveOldFiles = () => {
BACKUP_FILES.forEach(file => {
console.log(`Preserving ${file} ...`)
const basename = path.basename(file)
fs.copyFileSync(file, `${__dirname}/backups/${basename}`)
})
}
const restoreOldFiles = () => {
BACKUP_FILES.forEach(file => {
console.log(`Restoring ${file} ...`)
const basename = path.basename(file)
fs.copyFileSync(`${__dirname}/backups/${basename}`, file)
})
}
const updateConfigFiles = (mode = 'chill') => {
TEMPLATES.forEach(filename => {
const content = fs.readFileSync(
`${__dirname}/templates/${filename}.template`,
'utf8'
)
const template = handlebars.compile(content)
const output = template({ mode })
fs.writeFileSync(filename, output, 'utf8')
})
}
const updateLegacyCodes = () => {
LEGACY_CODES.forEach(({ name, update }) => {
const content = fs.readFileSync(name, 'utf8')
const output = update(content)
fs.writeFileSync(name, output, 'utf8')
})
}
const upgradePackages = () => {
const command =
'yarn add -D ' +
PACKAGES.map(({ name, version }) => `${name}@${version}`).join(' ')
const { code, stderr } = shell.exec(command)
if (!code) console.error(stderr)
}
module.exports = {
preserveOldFiles,
restoreOldFiles,
updateConfigFiles,
updateLegacyCodes,
upgradePackages
}
const _ = require('lodash')
const TEMPLATES = ['.babelrc', 'webpack.common.js', 'webpack.config.js']
const PACKAGES = [
{ name: 'awesome-typescript-loader', version: '^5.2.0' },
{ name: 'babel-loader', version: '^7.1.5' },
{ name: 'babel-runtime', version: '^6.26.0' },
{ name: 'babel-core', version: '^6.26.3' },
{ name: 'babel-preset-env', version: '^1.7.0' },
{ name: 'bundle-loader', version: '^0.5.6' },
{ name: 'cache-loader', version: '^1.2.2' },
{ name: 'css-loader', version: '^1.0.0' },
{ name: 'extract-text-webpack-plugin', version: '^4.0.0-beta.0' },
{ name: 'file-loader', version: '^1.1.11' },
{ name: 'happypack', version: '^5.0.0' },
{ name: 'img-loader', version: '^3.0.0' },
{ name: 'postcss-loader', version: '^2.1.6' },
{ name: 'progress-bar-webpack-plugin', version: '^1.11.0' },
{ name: 'sw-precache-webpack-plugin', version: '^0.11.5' },
{ name: 'ts-loader', version: '^4.4.2' },
{ name: 'url-loader', version: '^1.0.1' },
{ name: 'webpack', version: '^4.16.0' },
{ name: 'webpack-dev-server', version: '^3.1.4' },
{ name: 'webpack-parallel-uglify-plugin', version: '^1.1.0' },
{ name: 'friendly-errors-webpack-plugin', version: '^1.7.0' },
{ name: 'webpack-manifest-plugin', version: '^2.0.3' }
]
/**
* some legacy codes us promise-loader and json-loader to dynamic import json file
* now it can be achieved by simply using import()
* fonts.json uses C style muliline comment, which violates JSON spec
* gerateFontsJSON.js is the criminal who generates illegal JSON
*/
const multiLineCommentRegex = /\/\*[\s\S]*?\*\/$/gm
const multiLineCommentStringRegex = /`\/\*[\s\S]*?\*\/\n`$/gm
// use regex instead of plain string for replacing all occurances
const requirePromisLoaderRegex = new RegExp(
_.escapeRegExp('require(`promise-loader?global!'),
'g'
)
const LEGACY_CODES = [
{
name: 'config/fonts.json',
update: content => content.replace(multiLineCommentRegex, '')
},
{
name: 'fe/js/BlogEditor.es6',
update: content =>
content
.replace(requirePromisLoaderRegex, 'import(`')
.replace('Promise.all([p1(), p2()])', 'Promise.all([p1, p2])')
},
{
name: 'fe/js/blog.client.es6',
update: content =>
content
.replace(requirePromisLoaderRegex, 'import(`')
.replace('Promise.all([p1(), p2()])', 'Promise.all([p1, p2])')
},
{
name: 'fe/js/stores/font_store.es6',
update: content =>
content
.replace(
`import loadFonts from 'promise-loader?global!json5-loader!../../../config/fonts.json'`,
''
)
.replace(
'return loadFonts()',
`return import('../../../config/fonts.json')`
)
},
{
name: 'fe/js/utils/helpers/EcommerceHelper.es6',
update: content =>
content.replace('require(`promise-loader?global!json-loader!', 'import(`')
},
{
name: 'fe/js/v3_bridge/page_analytics_engine.es6',
update: content => content.replace('json-loader!', '')
},
{
name: 'fe/lib/webpack/entries-generation-webpack-plugin.js',
update: content =>
content.replace(
`isInitial: chunk.isInitial ? chunk.isInitial() : chunk.initial`,
`isInitial: chunk.isInitial ? chunk.isInitial() : chunk.isOnlyInitial()`
)
},
{
name: 'fe/nextgen/app.es6',
update: content =>
content
.replace('require(`promise-loader?global!', 'import(`')
.replace('Promise.all([p1()])', 'Promise.all([p1])')
},
{
name: 'fe/scripts/fonts/generateFontsJson.js',
update: content => content.replace(multiLineCommentStringRegex, `''`)
}
]
const BACKUP_FILES = [
'.babelrc',
'package.json',
'webpack.common.js',
'webpack.config.js',
'yarn.lock',
'config/fonts.json',
'fe/js/BlogEditor.es6',
'fe/js/blog.client.es6',
'fe/js/stores/font_store.es6',
'fe/js/utils/helpers/EcommerceHelper.es6',
'fe/js/v3_bridge/page_analytics_engine.es6',
'fe/lib/webpack/entries-generation-webpack-plugin.js',
'fe/nextgen/app.es6',
'fe/scripts/fonts/generateFontsJson.js'
]
module.exports = {
TEMPLATES,
PACKAGES,
LEGACY_CODES,
BACKUP_FILES,
}
{
"plugins": [
"emotion",
"add-module-exports",
"transform-decorators-legacy"
],
"presets": [
[
"env",
{
"targets": {
"browsers": [
"Chrome>66"
]
}
}
],
"react",
"stage-0"
],
"env": {
"production": {
"plugins": [
"transform-react-inline-elements",
"transform-react-constant-elements",
"transform-react-remove-prop-types"
]
},
"development": {
"plugins": [
"react-hot-loader/babel"
]
}
}
}
const fs = require('fs')
const path = require('path')
const webpack = require('webpack')
const { CheckerPlugin } = require('awesome-typescript-loader')
const ProgressBarPlugin = require('progress-bar-webpack-plugin')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const FriendlyErrorsWebpackPlugin = require('friendly-errors-webpack-plugin')
let aliasMap = {
locales: path.join(__dirname, 'fe', 'locales'),
lib: path.join(__dirname, 'fe', 'lib'),
js: path.join(__dirname, 'fe', 'js'),
nextgen: path.join(__dirname, 'fe', 'nextgen'),
miniprogram: path.join(__dirname, 'miniprogram', 'src'),
manifests: path.join(__dirname, 'fe', 'manifests'),
v3vendor: path.join(__dirname, 'vendor', 'assets', 'javascripts'),
common: path.join(__dirname, 'common'),
root: path.join(__dirname, 'bower_components'),
}
if (['v4-style', 'editor-debug'].indexOf(process.env.MODE) >= 0) {
const styleSheetsPath = path.join(__dirname, 'fe', 'styles')
aliasMap = Object.assign(
{
fonts: path.join(__dirname, 'fe', 'fonts'),
images: path.join(__dirname, 'fe', 'images'),
fancybox3: path.join(styleSheetsPath, 'fancybox3'),
strikingly_shared: path.join(styleSheetsPath, 'strikingly_shared'),
support_widget: path.join(styleSheetsPath, 'support_widget'),
themes: path.join(styleSheetsPath, 'themes'),
typefaces: path.join(styleSheetsPath, 'typefaces'),
v4: path.join(styleSheetsPath, 'v4'),
ecommerce: path.join(styleSheetsPath, 'ecommerce'),
portfolio: path.join(styleSheetsPath, 'portfolio'),
miniprogram: path.join(styleSheetsPath, 'miniprogram'),
},
{
// Is not typical usage of webpack alias. However, it needs this currently,
// because alots of stylesheets that coming from different layers of folder have to import them
'css-layers': path.join(styleSheetsPath, 'layers.less'),
reset: path.join(styleSheetsPath, '_reset.less'),
'css-tooltip': path.join(
__dirname,
'vendor',
'assets',
'stylesheets',
'tooltip.less'
),
'css-pikaday': path.join(
__dirname,
'vendor',
'assets',
'stylesheets',
'pikaday.css'
),
},
aliasMap
)
}
let shim = '\n'
shim += 'if (!this._babelPolyfill) {\n'
shim += fs.readFileSync(
path.join(__dirname, 'node_modules', 'babel-polyfill', 'browser.js')
)
shim += '}\n'
const plugins = [
new webpack.PrefetchPlugin('react'),
new webpack.ProvidePlugin({
__: 'js/views_helpers/i18n/__',
}),
new webpack.ContextReplacementPlugin(
/moment[\\/]locale$/,
/^\.\/(en|es|fr|ja|zh-cn|zh-tw)$/
),
new CheckerPlugin(),
new ProgressBarPlugin({
format: ' build [:bar] [:percent] (:elapsed seconds)',
clear: false,
}),
new FriendlyErrorsWebpackPlugin({
clearConsole: false,
}),
]
if (!process.env.SERVER_RENDERING && process.env.MODE !== 'v4-style') {
plugins.push(
new webpack.BannerPlugin({ banner: shim, raw: true, entryOnly: true })
)
}
const webcubeBabelrc = JSON.parse(
fs.readFileSync(path.join(__dirname, './node_modules/webcube/.babelrc'))
)
webcubeBabelrc.plugins.splice(
webcubeBabelrc.plugins.indexOf('add-module-exports'),
1
)
const cacheLoader = {
loader: 'cache-loader',
options: {
cacheDirectory: path.resolve(__dirname, './tmp/cache/cache-loader'),
},
}
const config = {
context: __dirname,
module: {
rules: [
{
test: /\.js$/,
use: {
loader: 'babel-loader',
options: {
presets: ['env'],
},
},
include: [path.join(__dirname, 'miniprogram', 'src')],
},
{
test: /\.tsx?/,
use: [cacheLoader, 'babel-loader?cacheDirectory'],
include: [
path.join(__dirname, 'fe'),
path.join(__dirname, 'common'),
path.join(__dirname, 'component-kit', 'src'),
],
},
{
test: /\.tsx?/,
use: ['awesome-typescript-loader?transpileOnly=true'],
include: [path.join(__dirname, 'fe'), path.join(__dirname, 'common')],
},
{
test: /\.tsx?/,
use: ['ts-loader'],
include: [path.join(__dirname, 'component-kit', 'src')],
},
{
test: /\.css$/,
use: [cacheLoader, 'style-loader', 'css-loader'],
include: [
path.join(__dirname, 'fe'),
path.join(__dirname, 'common'),
path.join(__dirname, 'vendor', 'assets', 'stylesheets'),
path.join(__dirname, 'component-kit', 'src'),
path.join(__dirname, 'node_modules', 'react-select'),
],
},
{
test: /\.po/,
use: [cacheLoader, 'json-loader', 'po-loader?format=jed1.x'],
include: [path.join(__dirname, 'fe', 'locales')],
},
{
test: /\.hrt/,
use: [
cacheLoader,
'react-templates-loader?modules=commonjs&targetVersion=0.14.0',
'hamlc-loader',
],
include: [path.join(__dirname, 'fe')],
},
{
test: /\.cjsx$/,
use: [
cacheLoader,
'babel-loader?cacheDirectory',
'coffee-loader',
'cjsx-loader',
],
include: [path.join(__dirname, 'fe')],
},
{
test: /\.es6$/,
use: [cacheLoader, 'babel-loader?cacheDirectory'],
include: [path.join(__dirname, 'fe'), path.join(__dirname, 'common')],
},
{
test: /\.js$/,
use: [cacheLoader, 'babel-loader?cacheDirectory'],
include: [path.join(__dirname, 'miniprogram', 'src')],
},
{
test: /\.jsx?$/,
use: [
cacheLoader,
{
loader: 'babel-loader',
options: Object.assign(webcubeBabelrc, {
babelrc: false,
cacheDirectory: true,
}),
},
],
include: [
path.join(__dirname, 'fe-packages', 'webcube'),
path.join(__dirname, 'fe-packages', 'redux-cube'),
path.join(__dirname, 'fe-packages', 'redux-cube-with-immutable'),
path.join(__dirname, 'fe-packages', 'redux-cube-with-persist'),
path.join(__dirname, 'fe-packages', 'redux-cube-with-router'),
path.join(__dirname, 'fe-packages', 'redux-cube-with-router-legacy'),
path.join(__dirname, 'fe-packages', 'redux-source-utils'),
path.join(__dirname, 'fe-packages', 'redux-source'),
path.join(__dirname, 'fe-packages', 'redux-source-immutable'),
path.join(__dirname, 'fe-packages', 'redux-source-connect'),
path.join(__dirname, 'fe-packages', 'redux-source-connect-immutable'),
path.join(__dirname, 'fe-packages', 'redux-source-with-notify'),
path.join(__dirname, 'fe-packages', 'redux-source-with-block-ui'),
path.join(__dirname, 'fe-packages', 'hifetch'),
],
},
{
test: /\.coffee$/,
use: [cacheLoader, 'babel-loader?cacheDirectory', 'coffee-loader'],
include: [path.join(__dirname, 'fe')],
},
{
test: require.resolve('react'),
use: 'expose-loader?React',
},
{
test: /cloudinary\.js$/, // disable AMD for cloudinary otherwise it will not be defined as a jquery plugin
use: [cacheLoader, 'imports-loader?define=>false'],
include: [path.join(__dirname, 'node_modules', 'cloudinary')],
},
{
test: /\.less$/,
use: [
cacheLoader,
'isomorphic-style-loader',
'css-loader',
'less-loader',
],
include: [
path.join(__dirname, 'fe/js/components/amp'),
path.join(__dirname, 'component-kit/src'),
],
},
{
test: /\.less$/,
use: [
cacheLoader,
'style-loader',
'css-loader',
'less-loader?strictMath&noIeCompat',
],
include: [path.join(__dirname, 'fe')],
exclude: [
path.join(__dirname, 'fe/js/components/amp'),
path.join(__dirname, 'fe/styles'),
],
},
{
test: /\.less$/,
loaders: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: [{ loader: 'happypack/loader?id=less' }],
}),
include: [
path.join(__dirname, 'fe/styles'),
path.join(__dirname, 'vendor', 'assets', 'stylesheets'),
],
},
{
test: /\.(jpe?g|png|gif)$/,
use: [
{
loader: 'file-loader',
options: {
name:
process.env.NODE_ENV === 'production'
? '/images/[name].[hash].[ext]'
: 'images/[name].[ext]', //
},
},
],
include: [path.join(__dirname, 'fe'), path.join(__dirname, 'public')],
},
{
test: /\.(eot|svg|cur|woff2?|ttf)$/,
loader: 'file-loader',
options: {
name:
process.env.NODE_ENV === 'production'
? '/fonts/[name].[hash].[ext]'
: 'fonts/[name].[ext]',
},
},
],
},
{{#if_eq mode 'chill'}}
devtool: 'cheap-module-eval-source-map',
{{/if_eq}}
resolve: {
unsafeCache: true, // for speedup http://stackoverflow.com/questions/29267084/how-to-improve-webpack-babel-build-performance-without-using-the-watch-feature
extensions: [
'.hrt',
'.cjsx',
'.coffee',
'.js',
'.jsx',
'.es6',
'.ts',
'.tsx',
'.less',
],
alias: aliasMap,
symlinks: true,
},
externals: {
// require("jquery") is external and available
// on the global var jQuery
BackEndI18n: 'I18n',
routes: 'Routes',
jquery: '$',
$S: '$S',
analytics: 'analytics',
gaq: '_gaq',
Keen: 'Keen',
bugsnag: 'Bugsnag',
pingpp: 'pingpp',
CKEDITOR: 'CKEDITOR',
recurly: 'recurly',
},
plugins,
node: {
fs: 'empty',
},
stats: {
assets: false,
version: false,
timings: true,
hash: true,
chunks: false,
chunkModules: false,
errorDetails: true,
reasons: false,
colors: true,
},
}
module.exports = config
const path = require('path')
const fs = require('fs')
const webpack = require('webpack')
const WebpackBuildNotifierPlugin = require('webpack-build-notifier')
const _ = require('lodash')
const yaml = require('js-yaml')
const DEV = process.env.NODE_ENV !== 'production'
const ConfigBuilder = require(path.resolve(
__dirname,
'fe',
'lib',
'webpack',
'config_builder'
))
const EntriesGenerationWebpackPlugin = require('./fe/lib/webpack/entries-generation-webpack-plugin')
const ParentWindowPlugin = require(path.resolve(
__dirname,
'fe',
'lib',
'webpack',
'ParentWindowPlugin'
))
const ManifestPlugin = require('webpack-manifest-plugin')
const HappyPack = require('happypack')
const SuppressExtractedTextChunksWebpackPlugin = require('./fe/lib/webpack/suppress-entry-chunks-webpack-plugin')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const extractLESS = new ExtractTextPlugin({
filename: '[name].[hash:20].bundle.css',
disable: process.env.MODE !== 'v4-style',
})
const { PACKMASTER, MODE } = process.env
const { ENABLE_WEBPACK_NOTIFIER } = process.env
/**
* @typedef MacroFlags
* @type {object}
* @property {boolean} __IN_EDITOR__ - in editor or in site
* @property {boolean} __NATIVE_WEB__ - webiew editor in native app
* @property {boolean} DEBUGUI - turn on the mode to see all rendering path, deprecated
* @property {boolean} __SERVER_RENDERING__ - is at server rendering
* @property {'sxl' | 'strikingly'} __PRODUCT_NAME__ - product name
* @property {boolean} __EXTERNAL_EDITOR__ - when component is being clicked on, instead of editing
* the component in place, send the component states out to an external editor
*
* @type {MacroFlags}
*/
const defaultVars = {
__IN_EDITOR__: false,
__NATIVE_WEB__: false, // new mobile app, test with ?native_web_editor=1
__NATIVE_IPAD__: false, // new mobile app on ipad
__IFRAME_EDITOR__: false, // mobile view in web editor
DEBUGUI: false,
'process.env': {
NODE_ENV: JSON.stringify(process.env.NODE_ENV || 'development'),
VERBOSE: JSON.stringify(process.env.VERBOSE),
},
__SERVER_RENDERING__: false,
__PRODUCT_NAME__: JSON.stringify(process.env.PRODUCT_NAME || 'strikingly'),
__LOCALE__: 'en',
__EXTERNAL_EDITOR__: false,
__MODE__: JSON.stringify(MODE || ''),
}
const assetHost = process.env.ASSET_HOST || ''
const hotReload = process.env.REACT_HOT === '1'
const outputPath = path.join(__dirname, 'public', 'webpack')
const V4StylesheetsOutputPath = path.join(__dirname, 'public')
const hostName =
assetHost ||
(defaultVars.__PRODUCT_NAME__ === '"strikingly"'
? 'https://assets.strikingly.io:1443/assets/v4/'
: 'https://assets.shangxianle.me:1443/assets/v4/')
function getOutputPath(name) {
return {
path: outputPath,
filename: DEV
? `[name]-${name}-bundle.js`
: `[name]-${name}-bundle.[hash].js`,
publicPath: DEV ? hostName : `${hostName}/webpack/`,
chunkFilename: DEV
? `[id]-${name}-bundle.js`
: `[id].[hash]-${name}-bundle.js`,
devtoolModuleFilenameTemplate: DEV
? '/[absolute-resource-path]'
: undefined,
}
}
const withLocales = function(locales, configFn) {
const configs = configFn('en')
return configs
}
const DllReferences = {
app: new webpack.DllReferencePlugin({
context: path.resolve(__dirname, 'fe'),
manifest: require('./fe/js/vendor/dll/app-manifest.json'),
}),
site: new webpack.DllReferencePlugin({
context: path.resolve(__dirname, 'fe'),
manifest: require('./fe/js/vendor/dll/site-manifest.json'),
}),
}
const EXPOSE_TO_IFRAME = /(actions\/)|(stores\/)|(dispatcher\/)/
const themesPath = path.join(__dirname, 'fe/styles/themes')
const packMasterData = yaml.safeLoad(
fs.readFileSync(path.join(__dirname, './pack-master.config.yaml'), 'utf8')
)
const masterPackConfigs =
DEV && PACKMASTER
? require(path.join(__dirname, './pack-master.history.json'))
: packMasterData.default
const styleEntries = masterPackConfigs['v4-style'] || {}
const projectNames = masterPackConfigs.projects || ['editor']
const packMasterRange = Object.keys(packMasterData.default)
function addThemeToStyleEntry(includeShowPage, includeEditor) {
// Add the theme entry files to collection in editor project
fs.readdirSync(themesPath).forEach(fileName => {
const filePath = path.join(themesPath, fileName)
const stat = fs.statSync(filePath)
// Search each directory
if (stat && stat.isDirectory()) {
if (includeShowPage) {
styleEntries[`themes/${fileName}/main_v4`] = path.join(
filePath,
'main_v4.less'
) // For show page
}
// TODO: cannot ignore the condition that below files are non-existent
if (includeEditor) {
styleEntries[`themes/${fileName}/main_v4_editor`] = path.join(
filePath,
'main_v4_editor.less'
) // For editor page
}
}
})
}
addThemeToStyleEntry(
!DEV || projectNames.includes('show-page'),
!DEV || projectNames.includes('editor')
)
const webpackConfig = withLocales(/* locales */ ['en'], locale => {
defaultVars.__LOCALE__ = locale
return [
{
name: 'v4-style',
mode: 'development',
entry: styleEntries,
output: {
// In production environment, output stylesheet bundle files to public folder.
// In development environment, outputPath is as same as 'app' config due to
// devServer just receives the identical config path in multiple configs mode.
path: !DEV ? V4StylesheetsOutputPath : outputPath,
filename: '[name]-app-bundle.js',
chunkFilename: DEV ? '[id]-app-bundle.js' : '[id].[hash]-app-bundle.js',
},
plugins: [
extractLESS,
new SuppressExtractedTextChunksWebpackPlugin(),
new ManifestPlugin({
// `.sprickets-manifest` prefix is to avoid to be removed by bash scripts in production environment
fileName: '.sprockets-manifest-v4-manifest.json',
publicPath: !DEV ? `${assetHost}/` : '/assets/v4/',
writeToFileEmit: true,
}),
new HappyPack({
id: 'less',
threads: 4,
loaders: [
'css-loader?importLoaders=1',
'postcss-loader',
'less-loader',
],
}),
],
},
{
name: 'editor-debug',
mode: 'development',
entry: {
editor: './fe/js/editor.es6',
},
output: getOutputPath('app', hotReload),
plugins: [
DllReferences.app,
new webpack.DefinePlugin(
_.assign({}, defaultVars, {
__IN_EDITOR__: true,
})
),
],
strikingly: {
hotReload,
},
},
{
name: 'app',
mode: 'development',
entry: masterPackConfigs.app,
output: getOutputPath('app', hotReload),
plugins: [
new ParentWindowPlugin(EXPOSE_TO_IFRAME, {
parent: true,
}),
DllReferences.app,
new webpack.DefinePlugin(
_.assign({}, defaultVars, {
__IN_EDITOR__: true,
__LOCALE__: locale,
})
),
],
strikingly: {
hotReload,
},
},
{
name: 'miniprogram',
mode: 'development',
entry: masterPackConfigs.miniprogram,
output: getOutputPath('miniprogram', hotReload),
plugins: [
new ParentWindowPlugin(EXPOSE_TO_IFRAME, {
parent: true,
}),
DllReferences.app,
new webpack.DefinePlugin(
_.assign({}, defaultVars, {
__IN_EDITOR__: true,
__LOCALE__: locale,
})
),
],
strikingly: {
hotReload,
},
},
{
name: 'iframe-editor',
mode: 'development',
entry: masterPackConfigs['iframe-editor'],
output: getOutputPath('iframe-editor', hotReload),
plugins: [
new ParentWindowPlugin(EXPOSE_TO_IFRAME, {}),
DllReferences.app,
new webpack.DefinePlugin(
_.assign({}, defaultVars, {
__IN_EDITOR__: true,
__NATIVE_WEB__: false,
__IFRAME_EDITOR__: true,
__EXTERNAL_EDITOR__: true,
})
),
],
strikingly: {
hotReload,
},
},
{
name: 'native-web',
mode: 'development',
entry: masterPackConfigs['native-web'],
output: getOutputPath('native-web', hotReload),
plugins: [
DllReferences.app,
new webpack.DefinePlugin(
_.assign({}, defaultVars, {
__IN_EDITOR__: true,
__NATIVE_WEB__: true,
__EXTERNAL_EDITOR__: true,
})
),
],
strikingly: {
hotReload,
},
},
{
name: 'native-ipad',
mode: 'development',
entry: masterPackConfigs['native-ipad'],
output: getOutputPath('native-ipad', hotReload),
plugins: [
DllReferences.app,
new webpack.DefinePlugin(
_.assign({}, defaultVars, {
__IN_EDITOR__: true,
__NATIVE_WEB__: true,
__NATIVE_IPAD__: true,
__EXTERNAL_EDITOR__: true,
})
),
],
strikingly: {
hotReload,
},
},
{
name: 'site',
mode: 'development',
entry: masterPackConfigs.site,
output: getOutputPath('site', hotReload),
plugins: [
DllReferences.site,
new webpack.DefinePlugin(_.assign({}, defaultVars, {})),
// new I18nPlugin(getPoFilePath())
],
strikingly: {
hotReload,
},
},
{
name: 'prerender',
mode: 'development',
target: 'node',
entry: {
index: './fe/js/prerender/index.es6',
},
externals: {
// load these things from r-jaugar global
routes: 'Routes',
$S: '$S',
analytics: 'analytics',
gaq: '_gaq',
Keen: 'Keen',
bugsnag: 'Bugsnag',
pingpp: 'pingpp',
BackEndI18n: 'I18n',
lodash: 'lodash',
React: 'react',
jquery: 'jquery',
ReactDOM: 'react-dom',
},
output: {
path: path.join(__dirname, 'app', 'assets', 'javascripts', 'v4'),
filename: '[name]-prerender-bundle.js',
publicPath: assetHost ? `${assetHost}/webpack/` : hostName,
chunkFilename: DEV
? '[id]-prerender-bundle.js'
: '[id].[hash]-prerender-bundle.js',
devtoolModuleFilenameTemplate: DEV
? '/[absolute-resource-path]'
: undefined,
libraryTarget: 'commonjs2',
},
plugins: [
new webpack.DefinePlugin(
Object.assign({}, defaultVars, {
__SERVER_RENDERING__: true,
})
),
new webpack.optimize.LimitChunkCountPlugin({
maxChunks: 1,
}),
],
},
{
name: 'landing',
mode: 'development',
entry: '',
},
{
name: 'component',
mode: 'development',
entry: masterPackConfigs.component,
output: {
filename: DEV
? `[name]-component-bundle.js`
: `[name]-component-bundle.[hash].js`,
path: outputPath,
publicPath: DEV ? hostName : `${hostName}/webpack/`,
libraryTarget: 'umd',
library: ['ReactComponent', '[name]'],
},
plugins: [
new ParentWindowPlugin(EXPOSE_TO_IFRAME, {
parent: true,
}),
DllReferences.app,
new webpack.DefinePlugin(
_.assign({}, defaultVars, {
__IN_EDITOR__: true,
__LOCALE__: locale,
})
),
],
strikingly: {
hotReload,
},
},
]
})
const chosenConfigs = process.env.CONFIGS || 'app,site,prerender'
// When current config reaches one of below conditions, keep it.
// 1. masterPackConfigs object includes it
// 2. environment is production
// 3. packMasterRange array doesn't include it. That means, this config is not in pack-master business range.
const h = _.reduce(
chosenConfigs.split(','),
(p, confName) => {
const conf = _.select(
webpackConfig,
c =>
// disable locale
// return c.name.indexOf("-" + confName) !== -1
c.name.indexOf(confName) !== -1 &&
(masterPackConfigs[c.name] ||
!DEV ||
packMasterRange.indexOf(c.name) === -1)
)
return p.concat(conf)
},
[]
)
const configs = new ConfigBuilder(h).getConfig()
configs.forEach(config => {
// Apply the entriesGenerationWebpackPlugin for all javascript configs
if (config.name !== 'v4-style') {
config.plugins = config.plugins.concat(
new EntriesGenerationWebpackPlugin({
fileName: '.sprockets-manifest-webpack-js-manifest.json',
setEntryName: prevName => `${prevName}-${config.name}-bundle`,
publicPath: !DEV ? `${assetHost}/webpack/` : '/assets/v4/',
})
)
}
// enable a build notification in non-prod env
if (DEV && ENABLE_WEBPACK_NOTIFIER) {
config.plugins = config.plugins.concat(
new WebpackBuildNotifierPlugin({
title: `Bobcat: ${config.name}`,
})
)
}
})
module.exports = configs
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
acorn-jsx@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-4.1.1.tgz#e8e41e48ea2fe0c896740610ab6a4ffd8add225e"
dependencies:
acorn "^5.0.3"
acorn@^5.0.3, acorn@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8"
ajv-keywords@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a"
ajv@^6.0.1, ajv@^6.5.0:
version "6.5.2"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.2.tgz#678495f9b82f7cca6be248dd92f59bff5e1f4360"
dependencies:
fast-deep-equal "^2.0.1"
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.4.1"
uri-js "^4.2.1"
align-text@^0.1.1, align-text@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
dependencies:
kind-of "^3.0.2"
longest "^1.0.1"
repeat-string "^1.5.2"
amdefine@>=0.0.4:
version "1.0.1"
resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
ansi-escapes@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30"
ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
ansi-styles@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
dependencies:
color-convert "^1.9.0"
argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
dependencies:
sprintf-js "~1.0.2"
array-union@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
dependencies:
array-uniq "^1.0.1"
array-uniq@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
arrify@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
async@^1.4.0:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
babel-code-frame@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
dependencies:
chalk "^1.1.3"
esutils "^2.0.2"
js-tokens "^3.0.2"
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
builtin-modules@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
caller-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
dependencies:
callsites "^0.2.0"
callsites@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
camelcase@^1.0.2:
version "1.2.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
center-align@^0.1.1:
version "0.1.3"
resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
dependencies:
align-text "^0.1.3"
lazy-cache "^1.0.3"
chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
dependencies:
ansi-styles "^2.2.1"
escape-string-regexp "^1.0.2"
has-ansi "^2.0.0"
strip-ansi "^3.0.0"
supports-color "^2.0.0"
chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
dependencies:
ansi-styles "^3.2.1"
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
chardet@^0.4.0:
version "0.4.2"
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
circular-json@^0.3.1:
version "0.3.3"
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
cli-cursor@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
dependencies:
restore-cursor "^2.0.0"
cli-width@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
cliui@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
dependencies:
center-align "^0.1.1"
right-align "^0.1.1"
wordwrap "0.0.2"
color-convert@^1.9.0:
version "1.9.2"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147"
dependencies:
color-name "1.1.1"
color-name@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689"
commander@^2.16.0:
version "2.16.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.16.0.tgz#f16390593996ceb4f3eeb020b31d78528f7f8a50"
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
contains-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
cross-spawn@^6.0.5:
version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
dependencies:
nice-try "^1.0.4"
path-key "^2.0.1"
semver "^5.5.0"
shebang-command "^1.2.0"
which "^1.2.9"
debug@^2.6.8, debug@^2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
dependencies:
ms "2.0.0"
debug@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
dependencies:
ms "2.0.0"
decamelize@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
define-properties@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
dependencies:
foreach "^2.0.5"
object-keys "^1.0.8"
del@^2.0.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
dependencies:
globby "^5.0.0"
is-path-cwd "^1.0.0"
is-path-in-cwd "^1.0.0"
object-assign "^4.0.1"
pify "^2.0.0"
pinkie-promise "^2.0.0"
rimraf "^2.2.8"
doctrine@1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
dependencies:
esutils "^2.0.2"
isarray "^1.0.0"
doctrine@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
dependencies:
esutils "^2.0.2"
ejs@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0"
error-ex@^1.2.0:
version "1.3.2"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
dependencies:
is-arrayish "^0.2.1"
es-abstract@^1.10.0:
version "1.12.0"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165"
dependencies:
es-to-primitive "^1.1.1"
function-bind "^1.1.1"
has "^1.0.1"
is-callable "^1.1.3"
is-regex "^1.0.4"
es-to-primitive@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
dependencies:
is-callable "^1.1.1"
is-date-object "^1.0.1"
is-symbol "^1.0.1"
escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
eslint-config-standard@^11.0.0:
version "11.0.0"
resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz#87ee0d3c9d95382dc761958cbb23da9eea31e0ba"
eslint-import-resolver-node@^0.3.1:
version "0.3.2"
resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a"
dependencies:
debug "^2.6.9"
resolve "^1.5.0"
eslint-module-utils@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746"
dependencies:
debug "^2.6.8"
pkg-dir "^1.0.0"
eslint-plugin-es@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.3.1.tgz#5acb2565db4434803d1d46a9b4cbc94b345bd028"
dependencies:
eslint-utils "^1.3.0"
regexpp "^2.0.0"
eslint-plugin-import@^2.13.0:
version "2.13.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.13.0.tgz#df24f241175e312d91662dc91ca84064caec14ed"
dependencies:
contains-path "^0.1.0"
debug "^2.6.8"
doctrine "1.5.0"
eslint-import-resolver-node "^0.3.1"
eslint-module-utils "^2.2.0"
has "^1.0.1"
lodash "^4.17.4"
minimatch "^3.0.3"
read-pkg-up "^2.0.0"
resolve "^1.6.0"
eslint-plugin-node@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz#a6e054e50199b2edd85518b89b4e7b323c9f36db"
dependencies:
eslint-plugin-es "^1.3.1"
eslint-utils "^1.3.1"
ignore "^4.0.2"
minimatch "^3.0.4"
resolve "^1.8.1"
semver "^5.5.0"
eslint-plugin-promise@^3.8.0:
version "3.8.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.8.0.tgz#65ebf27a845e3c1e9d6f6a5622ddd3801694b621"
eslint-plugin-standard@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.1.0.tgz#2a9e21259ba4c47c02d53b2d0c9135d4b1022d47"
eslint-scope@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172"
dependencies:
esrecurse "^4.1.0"
estraverse "^4.1.1"
eslint-utils@^1.3.0, eslint-utils@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512"
eslint-visitor-keys@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
eslint@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.2.0.tgz#3901ae249195d473e633c4acbc370068b1c964dc"
dependencies:
ajv "^6.5.0"
babel-code-frame "^6.26.0"
chalk "^2.1.0"
cross-spawn "^6.0.5"
debug "^3.1.0"
doctrine "^2.1.0"
eslint-scope "^4.0.0"
eslint-utils "^1.3.1"
eslint-visitor-keys "^1.0.0"
espree "^4.0.0"
esquery "^1.0.1"
esutils "^2.0.2"
file-entry-cache "^2.0.0"
functional-red-black-tree "^1.0.1"
glob "^7.1.2"
globals "^11.7.0"
ignore "^4.0.2"
imurmurhash "^0.1.4"
inquirer "^5.2.0"
is-resolvable "^1.1.0"
js-yaml "^3.11.0"
json-stable-stringify-without-jsonify "^1.0.1"
levn "^0.3.0"
lodash "^4.17.5"
minimatch "^3.0.4"
mkdirp "^0.5.1"
natural-compare "^1.4.0"
optionator "^0.8.2"
path-is-inside "^1.0.2"
pluralize "^7.0.0"
progress "^2.0.0"
regexpp "^1.1.0"
require-uncached "^1.0.3"
semver "^5.5.0"
string.prototype.matchall "^2.0.0"
strip-ansi "^4.0.0"
strip-json-comments "^2.0.1"
table "^4.0.3"
text-table "^0.2.0"
espree@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/espree/-/espree-4.0.0.tgz#253998f20a0f82db5d866385799d912a83a36634"
dependencies:
acorn "^5.6.0"
acorn-jsx "^4.1.1"
esprima@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
esquery@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
dependencies:
estraverse "^4.0.0"
esrecurse@^4.1.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
dependencies:
estraverse "^4.1.0"
estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
version "4.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
external-editor@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5"
dependencies:
chardet "^0.4.0"
iconv-lite "^0.4.17"
tmp "^0.0.33"
fast-deep-equal@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
fast-json-stable-stringify@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
fast-levenshtein@~2.0.4:
version "2.0.6"
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
figures@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
dependencies:
escape-string-regexp "^1.0.5"
file-entry-cache@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
dependencies:
flat-cache "^1.2.1"
object-assign "^4.0.1"
find-up@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
dependencies:
path-exists "^2.0.0"
pinkie-promise "^2.0.0"
find-up@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
dependencies:
locate-path "^2.0.0"
flat-cache@^1.2.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
dependencies:
circular-json "^0.3.1"
del "^2.0.2"
graceful-fs "^4.1.2"
write "^0.2.1"
foreach@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
functional-red-black-tree@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2:
version "7.1.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
minimatch "^3.0.4"
once "^1.3.0"
path-is-absolute "^1.0.0"
globals@^11.7.0:
version "11.7.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673"
globby@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
dependencies:
array-union "^1.0.1"
arrify "^1.0.0"
glob "^7.0.3"
object-assign "^4.0.1"
pify "^2.0.0"
pinkie-promise "^2.0.0"
graceful-fs@^4.1.2:
version "4.1.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
handlebars@^4.0.11:
version "4.0.11"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc"
dependencies:
async "^1.4.0"
optimist "^0.6.1"
source-map "^0.4.4"
optionalDependencies:
uglify-js "^2.6"
has-ansi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
dependencies:
ansi-regex "^2.0.0"
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
has-symbols@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
has@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
dependencies:
function-bind "^1.1.1"
hosted-git-info@^2.1.4:
version "2.7.1"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047"
iconv-lite@^0.4.17:
version "0.4.23"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
dependencies:
safer-buffer ">= 2.1.2 < 3"
ignore@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.2.tgz#0a8dd228947ec78c2d7f736b1642a9f7317c1905"
imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
dependencies:
once "^1.3.0"
wrappy "1"
inherits@2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
inquirer@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726"
dependencies:
ansi-escapes "^3.0.0"
chalk "^2.0.0"
cli-cursor "^2.1.0"
cli-width "^2.0.0"
external-editor "^2.1.0"
figures "^2.0.0"
lodash "^4.3.0"
mute-stream "0.0.7"
run-async "^2.2.0"
rxjs "^5.5.2"
string-width "^2.1.0"
strip-ansi "^4.0.0"
through "^2.3.6"
interpret@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
is-buffer@^1.1.5:
version "1.1.6"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
is-builtin-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
dependencies:
builtin-modules "^1.0.0"
is-callable@^1.1.1, is-callable@^1.1.3:
version "1.1.4"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
is-date-object@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
is-fullwidth-code-point@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
is-path-cwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
is-path-in-cwd@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52"
dependencies:
is-path-inside "^1.0.0"
is-path-inside@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
dependencies:
path-is-inside "^1.0.1"
is-promise@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
is-regex@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
dependencies:
has "^1.0.1"
is-resolvable@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
is-symbol@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
isarray@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
js-yaml@^3.11.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
json-stable-stringify-without-jsonify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
kind-of@^3.0.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
dependencies:
is-buffer "^1.1.5"
lazy-cache@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
levn@^0.3.0, levn@~0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
dependencies:
prelude-ls "~1.1.2"
type-check "~0.3.2"
load-json-file@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
dependencies:
graceful-fs "^4.1.2"
parse-json "^2.2.0"
pify "^2.0.0"
strip-bom "^3.0.0"
locate-path@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
dependencies:
p-locate "^2.0.0"
path-exists "^3.0.0"
lodash@^4.17.10, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0:
version "4.17.10"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
longest@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
mimic-fn@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
minimatch@^3.0.3, minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
dependencies:
brace-expansion "^1.1.7"
minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
minimist@~0.0.1:
version "0.0.10"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
mkdirp@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
minimist "0.0.8"
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
mute-stream@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
nice-try@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4"
normalize-package-data@^2.3.2:
version "2.4.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
dependencies:
hosted-git-info "^2.1.4"
is-builtin-module "^1.0.0"
semver "2 || 3 || 4 || 5"
validate-npm-package-license "^3.0.1"
object-assign@^4.0.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
object-keys@^1.0.8:
version "1.0.12"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2"
once@^1.3.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
dependencies:
wrappy "1"
onetime@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
dependencies:
mimic-fn "^1.0.0"
optimist@^0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
dependencies:
minimist "~0.0.1"
wordwrap "~0.0.2"
optionator@^0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
dependencies:
deep-is "~0.1.3"
fast-levenshtein "~2.0.4"
levn "~0.3.0"
prelude-ls "~1.1.2"
type-check "~0.3.2"
wordwrap "~1.0.0"
os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
p-limit@^1.1.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
dependencies:
p-try "^1.0.0"
p-locate@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
dependencies:
p-limit "^1.1.0"
p-try@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
parse-json@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
dependencies:
error-ex "^1.2.0"
path-exists@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
dependencies:
pinkie-promise "^2.0.0"
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
path-is-inside@^1.0.1, path-is-inside@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
path-key@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
path-parse@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
path-type@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
dependencies:
pify "^2.0.0"
pify@^2.0.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
pinkie-promise@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
dependencies:
pinkie "^2.0.0"
pinkie@^2.0.0:
version "2.0.4"
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
pkg-dir@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
dependencies:
find-up "^1.0.0"
pluralize@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
progress@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
punycode@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
read-pkg-up@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
dependencies:
find-up "^2.0.0"
read-pkg "^2.0.0"
read-pkg@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
dependencies:
load-json-file "^2.0.0"
normalize-package-data "^2.3.2"
path-type "^2.0.0"
rechoir@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
dependencies:
resolve "^1.1.6"
regexp.prototype.flags@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c"
dependencies:
define-properties "^1.1.2"
regexpp@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab"
regexpp@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.0.tgz#b2a7534a85ca1b033bcf5ce9ff8e56d4e0755365"
repeat-string@^1.5.2:
version "1.6.1"
resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
require-uncached@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
dependencies:
caller-path "^0.1.0"
resolve-from "^1.0.0"
resolve-from@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
resolve@^1.1.6, resolve@^1.5.0, resolve@^1.6.0, resolve@^1.8.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
dependencies:
path-parse "^1.0.5"
restore-cursor@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
dependencies:
onetime "^2.0.0"
signal-exit "^3.0.2"
right-align@^0.1.1:
version "0.1.3"
resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
dependencies:
align-text "^0.1.1"
rimraf@^2.2.8:
version "2.6.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
dependencies:
glob "^7.0.5"
run-async@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
dependencies:
is-promise "^2.1.0"
rxjs@^5.5.2:
version "5.5.11"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.11.tgz#f733027ca43e3bec6b994473be4ab98ad43ced87"
dependencies:
symbol-observable "1.0.1"
"safer-buffer@>= 2.1.2 < 3":
version "2.1.2"
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
"semver@2 || 3 || 4 || 5", semver@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
shebang-command@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
dependencies:
shebang-regex "^1.0.0"
shebang-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
shelljs@^0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.2.tgz#345b7df7763f4c2340d584abb532c5f752ca9e35"
dependencies:
glob "^7.0.0"
interpret "^1.0.0"
rechoir "^0.6.2"
signal-exit@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
slice-ansi@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
dependencies:
is-fullwidth-code-point "^2.0.0"
source-map@^0.4.4:
version "0.4.4"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
dependencies:
amdefine ">=0.0.4"
source-map@~0.5.1:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
spdx-correct@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82"
dependencies:
spdx-expression-parse "^3.0.0"
spdx-license-ids "^3.0.0"
spdx-exceptions@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9"
spdx-expression-parse@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
dependencies:
spdx-exceptions "^2.1.0"
spdx-license-ids "^3.0.0"
spdx-license-ids@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87"
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
string-width@^2.1.0, string-width@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
dependencies:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
string.prototype.matchall@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-2.0.0.tgz#2af8fe3d2d6dc53ca2a59bd376b089c3c152b3c8"
dependencies:
define-properties "^1.1.2"
es-abstract "^1.10.0"
function-bind "^1.1.1"
has-symbols "^1.0.0"
regexp.prototype.flags "^1.2.0"
strip-ansi@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
dependencies:
ansi-regex "^2.0.0"
strip-ansi@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
dependencies:
ansi-regex "^3.0.0"
strip-bom@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
strip-json-comments@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
supports-color@^5.3.0:
version "5.4.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54"
dependencies:
has-flag "^3.0.0"
symbol-observable@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
table@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc"
dependencies:
ajv "^6.0.1"
ajv-keywords "^3.0.0"
chalk "^2.1.0"
lodash "^4.17.4"
slice-ansi "1.0.0"
string-width "^2.1.1"
text-table@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
through@^2.3.6:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
dependencies:
os-tmpdir "~1.0.2"
type-check@~0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
dependencies:
prelude-ls "~1.1.2"
uglify-js@^2.6:
version "2.8.29"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
dependencies:
source-map "~0.5.1"
yargs "~3.10.0"
optionalDependencies:
uglify-to-browserify "~1.0.0"
uglify-to-browserify@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
uri-js@^4.2.1:
version "4.2.2"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
dependencies:
punycode "^2.1.0"
validate-npm-package-license@^3.0.1:
version "3.0.3"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338"
dependencies:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
which@^1.2.9:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
dependencies:
isexe "^2.0.0"
window-size@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
wordwrap@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
wordwrap@~0.0.2:
version "0.0.3"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
wordwrap@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
write@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
dependencies:
mkdirp "^0.5.1"
yargs@~3.10.0:
version "3.10.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
dependencies:
camelcase "^1.0.2"
cliui "^2.1.0"
decamelize "^1.0.0"
window-size "0.1.0"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment