Organize components, use webpack import aliases
This commit is contained in:
parent
f174d98107
commit
86c5451edb
File diff suppressed because one or more lines are too long
@ -20,5 +20,12 @@
|
||||
},
|
||||
"globals": {
|
||||
"DEV": true
|
||||
},
|
||||
"settings": {
|
||||
"import/resolver": {
|
||||
"webpack": {
|
||||
"config": "webpack.config.dev.js"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
"css-loader": "^0.28.0",
|
||||
"eslint": "^3.15.0",
|
||||
"eslint-config-airbnb": "^14.1.0",
|
||||
"eslint-import-resolver-webpack": "^0.8.1",
|
||||
"eslint-loader": "^1.6.1",
|
||||
"eslint-plugin-import": "^2.2.0",
|
||||
"eslint-plugin-jsx-a11y": "^4.0.0",
|
||||
|
@ -1,10 +1,10 @@
|
||||
import { COMMAND } from 'state/actions';
|
||||
import { join, part, invite, kick, setTopic } from 'state/channels';
|
||||
import { sendMessage, raw } from 'state/messages';
|
||||
import { setNick, disconnect, whois, away } from 'state/servers';
|
||||
import { select } from 'state/tab';
|
||||
import { find } from 'util';
|
||||
import createCommandMiddleware, { beforeHandler, notFoundHandler } from './middleware/command';
|
||||
import { COMMAND } from './state/actions';
|
||||
import { join, part, invite, kick, setTopic } from './state/channels';
|
||||
import { sendMessage, raw } from './state/messages';
|
||||
import { setNick, disconnect, whois, away } from './state/servers';
|
||||
import { select } from './state/tab';
|
||||
import { find } from './util';
|
||||
|
||||
const help = [
|
||||
'/join <channel> - Join a channel',
|
||||
|
@ -1,9 +1,9 @@
|
||||
import React, { Component } from 'react';
|
||||
import Route from '../containers/Route';
|
||||
import Chat from '../containers/Chat';
|
||||
import Connect from '../containers/Connect';
|
||||
import Settings from '../containers/Settings';
|
||||
import TabList from '../components/TabList';
|
||||
import Route from 'containers/Route';
|
||||
import Chat from 'containers/Chat';
|
||||
import Connect from 'containers/Connect';
|
||||
import Settings from 'containers/Settings';
|
||||
import TabList from 'components/TabList';
|
||||
|
||||
export default class App extends Component {
|
||||
handleClick = () => {
|
||||
|
@ -1,7 +0,0 @@
|
||||
import React from 'react';
|
||||
|
||||
const Navicon = ({ toggleMenu }) => (
|
||||
<i className="icon-menu navicon" onClick={toggleMenu} />
|
||||
);
|
||||
|
||||
export default Navicon;
|
@ -1,6 +1,6 @@
|
||||
import React from 'react';
|
||||
import { Provider } from 'react-redux';
|
||||
import App from '../containers/App';
|
||||
import App from 'containers/App';
|
||||
|
||||
const Root = ({ store }) => (
|
||||
<Provider store={store}>
|
||||
|
@ -1,9 +1,9 @@
|
||||
import React, { Component } from 'react';
|
||||
import ChatTitle from '../ChatTitle';
|
||||
import Search from '../Search';
|
||||
import MessageBox from '../MessageBox';
|
||||
import MessageInput from '../MessageInput';
|
||||
import UserList from '../UserList';
|
||||
import ChatTitle from './ChatTitle';
|
||||
import Search from './Search';
|
||||
import MessageBox from './MessageBox';
|
||||
import MessageInput from './MessageInput';
|
||||
import UserList from './UserList';
|
||||
|
||||
export default class Chat extends Component {
|
||||
handleCloseClick = () => {
|
@ -1,9 +1,9 @@
|
||||
import React, { PureComponent } from 'react';
|
||||
import { List } from 'immutable';
|
||||
import Navicon from '../containers/Navicon';
|
||||
import Editable from './ui/Editable';
|
||||
import { isValidServerName } from '../state/servers';
|
||||
import { linkify } from '../util';
|
||||
import Navicon from 'containers/Navicon';
|
||||
import Editable from 'components/ui/Editable';
|
||||
import { isValidServerName } from 'state/servers';
|
||||
import { linkify } from 'util';
|
||||
|
||||
export default class ChatTitle extends PureComponent {
|
||||
render() {
|
@ -2,8 +2,8 @@ import React, { PureComponent } from 'react';
|
||||
import { List } from 'react-virtualized/dist/commonjs/List';
|
||||
import { AutoSizer } from 'react-virtualized/dist/commonjs/AutoSizer';
|
||||
import debounce from 'lodash/debounce';
|
||||
import { getScrollPos, saveScrollPos } from 'util/scrollPosition';
|
||||
import Message from './Message';
|
||||
import { getScrollPos, saveScrollPos } from '../util/scrollPosition';
|
||||
|
||||
const fetchThreshold = 500;
|
||||
|
@ -1,5 +1,5 @@
|
||||
import React, { PureComponent } from 'react';
|
||||
import Editable from './ui/Editable';
|
||||
import Editable from 'components/ui/Editable';
|
||||
|
||||
export default class MessageInput extends PureComponent {
|
||||
state = {
|
@ -1,5 +1,5 @@
|
||||
import React, { PureComponent } from 'react';
|
||||
import { timestamp, linkify } from '../util';
|
||||
import { timestamp, linkify } from 'util';
|
||||
|
||||
export default class SearchResult extends PureComponent {
|
||||
render() {
|
3
client/src/js/components/pages/Chat/index.js
Normal file
3
client/src/js/components/pages/Chat/index.js
Normal file
@ -0,0 +1,3 @@
|
||||
import Chat from './Chat';
|
||||
|
||||
export default Chat;
|
@ -1,5 +1,5 @@
|
||||
import React, { Component } from 'react';
|
||||
import Navicon from '../../containers/Navicon';
|
||||
import Navicon from 'containers/Navicon';
|
||||
|
||||
export default class Connect extends Component {
|
||||
state = {
|
||||
|
@ -1,6 +1,6 @@
|
||||
import React from 'react';
|
||||
import Navicon from '../../containers/Navicon';
|
||||
import FileInput from '../FileInput';
|
||||
import Navicon from 'containers/Navicon';
|
||||
import FileInput from 'components/ui/FileInput';
|
||||
|
||||
const Settings = ({ settings, onCertChange, onKeyChange, uploadCert }) => {
|
||||
const status = settings.get('uploadingCert') ? 'Uploading...' : 'Upload';
|
||||
|
@ -1,5 +1,5 @@
|
||||
import React, { PureComponent } from 'react';
|
||||
import { stringWidth } from '../../util';
|
||||
import { stringWidth } from 'util';
|
||||
|
||||
export default class Editable extends PureComponent {
|
||||
static defaultProps = {
|
||||
|
7
client/src/js/components/ui/Navicon.js
Normal file
7
client/src/js/components/ui/Navicon.js
Normal file
@ -0,0 +1,7 @@
|
||||
import React from 'react';
|
||||
|
||||
const Navicon = ({ onClick }) => (
|
||||
<i className="icon-menu navicon" onClick={onClick} />
|
||||
);
|
||||
|
||||
export default Navicon;
|
@ -1,13 +1,13 @@
|
||||
import { connect } from 'react-redux';
|
||||
import { createStructuredSelector } from 'reselect';
|
||||
import App from '../components/App';
|
||||
import { getConnected } from '../state/app';
|
||||
import { getChannels } from '../state/channels';
|
||||
import { getPrivateChats } from '../state/privateChats';
|
||||
import { getServers } from '../state/servers';
|
||||
import { getSelectedTab, select } from '../state/tab';
|
||||
import { getShowTabList, hideMenu } from '../state/ui';
|
||||
import { push } from '../util/router';
|
||||
import App from 'components/App';
|
||||
import { getConnected } from 'state/app';
|
||||
import { getChannels } from 'state/channels';
|
||||
import { getPrivateChats } from 'state/privateChats';
|
||||
import { getServers } from 'state/servers';
|
||||
import { getSelectedTab, select } from 'state/tab';
|
||||
import { getShowTabList, hideMenu } from 'state/ui';
|
||||
import { push } from 'util/router';
|
||||
|
||||
const mapState = createStructuredSelector({
|
||||
channels: getChannels,
|
||||
|
@ -1,18 +1,18 @@
|
||||
import { bindActionCreators } from 'redux';
|
||||
import { connect } from 'react-redux';
|
||||
import { createStructuredSelector } from 'reselect';
|
||||
import Chat from '../components/pages/Chat';
|
||||
import { getSelectedTabTitle } from '../state';
|
||||
import { getSelectedChannel, getSelectedChannelUsers, part } from '../state/channels';
|
||||
import Chat from 'components/pages/Chat';
|
||||
import { getSelectedTabTitle } from 'state';
|
||||
import { getSelectedChannel, getSelectedChannelUsers, part } from 'state/channels';
|
||||
import { getCurrentInputHistoryEntry, addInputHistory, resetInputHistory,
|
||||
incrementInputHistory, decrementInputHistory } from '../state/input';
|
||||
incrementInputHistory, decrementInputHistory } from 'state/input';
|
||||
import { getSelectedMessages, getHasMoreMessages,
|
||||
runCommand, sendMessage, fetchMessages, addFetchedMessages } from '../state/messages';
|
||||
import { openPrivateChat, closePrivateChat } from '../state/privateChats';
|
||||
import { getSearch, searchMessages, toggleSearch } from '../state/search';
|
||||
import { getCurrentNick, disconnect, setNick, setServerName } from '../state/servers';
|
||||
import { getSelectedTab, select } from '../state/tab';
|
||||
import { getShowUserList, toggleUserList } from '../state/ui';
|
||||
runCommand, sendMessage, fetchMessages, addFetchedMessages } from 'state/messages';
|
||||
import { openPrivateChat, closePrivateChat } from 'state/privateChats';
|
||||
import { getSearch, searchMessages, toggleSearch } from 'state/search';
|
||||
import { getCurrentNick, disconnect, setNick, setServerName } from 'state/servers';
|
||||
import { getSelectedTab, select } from 'state/tab';
|
||||
import { getShowUserList, toggleUserList } from 'state/ui';
|
||||
|
||||
const mapState = createStructuredSelector({
|
||||
channel: getSelectedChannel,
|
||||
|
@ -1,10 +1,10 @@
|
||||
import { connect } from 'react-redux';
|
||||
import { createStructuredSelector } from 'reselect';
|
||||
import Connect from '../components/pages/Connect';
|
||||
import { getConnectDefaults } from '../state/app';
|
||||
import { join } from '../state/channels';
|
||||
import { connect as connectServer } from '../state/servers';
|
||||
import { select } from '../state/tab';
|
||||
import Connect from 'components/pages/Connect';
|
||||
import { getConnectDefaults } from 'state/app';
|
||||
import { join } from 'state/channels';
|
||||
import { connect as connectServer } from 'state/servers';
|
||||
import { select } from 'state/tab';
|
||||
|
||||
const mapState = createStructuredSelector({
|
||||
defaults: getConnectDefaults
|
||||
|
@ -1,7 +1,9 @@
|
||||
import { connect } from 'react-redux';
|
||||
import Navicon from '../components/Navicon';
|
||||
import { toggleMenu } from '../state/ui';
|
||||
import Navicon from 'components/ui/Navicon';
|
||||
import { toggleMenu } from 'state/ui';
|
||||
|
||||
const mapDispatch = { toggleMenu };
|
||||
const mapDispatch = {
|
||||
onClick: toggleMenu
|
||||
};
|
||||
|
||||
export default connect(null, mapDispatch)(Navicon);
|
||||
|
@ -1,8 +1,8 @@
|
||||
import { bindActionCreators } from 'redux';
|
||||
import { connect } from 'react-redux';
|
||||
import { createStructuredSelector } from 'reselect';
|
||||
import Settings from '../components/pages/Settings';
|
||||
import { getSettings, setCert, setKey, uploadCert } from '../state/settings';
|
||||
import Settings from 'components/pages/Settings';
|
||||
import { getSettings, setCert, setKey, uploadCert } from 'state/settings';
|
||||
|
||||
const mapState = createStructuredSelector({
|
||||
settings: getSettings
|
||||
|
@ -3,11 +3,11 @@ import { render } from 'react-dom';
|
||||
import { AppContainer } from 'react-hot-loader';
|
||||
import 'react-virtualized/styles.css';
|
||||
|
||||
import Root from 'components/Root';
|
||||
import initRouter from 'util/router';
|
||||
import Socket from 'util/Socket';
|
||||
import configureStore from './store';
|
||||
import initRouter from './util/router';
|
||||
import routes from './routes';
|
||||
import Socket from './util/Socket';
|
||||
import Root from './components/Root';
|
||||
import runModules from './modules';
|
||||
|
||||
const host = DEV ? `${window.location.hostname}:1337` : window.location.host;
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { addMessages, inform, print } from '../state/messages';
|
||||
import { isChannel } from '../util';
|
||||
import { addMessages, inform, print } from 'state/messages';
|
||||
import { isChannel } from 'util';
|
||||
|
||||
export const beforeHandler = '_before';
|
||||
export const notFoundHandler = 'commandNotFound';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import * as actions from '../state/actions';
|
||||
import { ADD_MESSAGES, ADD_FETCHED_MESSAGES } from 'state/actions';
|
||||
|
||||
//
|
||||
// This middleware handles waiting until MessageBox
|
||||
@ -9,7 +9,7 @@ const message = store => next => {
|
||||
const cache = {};
|
||||
|
||||
return action => {
|
||||
if (action.type === actions.ADD_MESSAGES && action.prepend) {
|
||||
if (action.type === ADD_MESSAGES && action.prepend) {
|
||||
const key = `${action.server} ${action.channel}`;
|
||||
|
||||
if (ready[key]) {
|
||||
@ -18,7 +18,7 @@ const message = store => next => {
|
||||
}
|
||||
|
||||
cache[key] = action;
|
||||
} else if (action.type === actions.ADD_FETCHED_MESSAGES) {
|
||||
} else if (action.type === ADD_FETCHED_MESSAGES) {
|
||||
const key = `${action.server} ${action.channel}`;
|
||||
ready[key] = true;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
import capitalize from 'lodash/capitalize';
|
||||
import { getRouter } from '../state';
|
||||
import { getCurrentServerName } from '../state/servers';
|
||||
import { observe } from '../util/observe';
|
||||
import { getRouter } from 'state';
|
||||
import { getCurrentServerName } from 'state/servers';
|
||||
import { observe } from 'util/observe';
|
||||
|
||||
export default function documentTitle({ store }) {
|
||||
observe(store, [getRouter, getCurrentServerName], (router, serverName) => {
|
||||
|
@ -1,6 +1,6 @@
|
||||
import FontFaceObserver from 'fontfaceobserver';
|
||||
import { setCharWidth } from '../state/app';
|
||||
import { stringWidth } from '../util';
|
||||
import { setCharWidth } from 'state/app';
|
||||
import { stringWidth } from 'util';
|
||||
|
||||
export default function fonts({ store }) {
|
||||
let charWidth = localStorage.charWidth;
|
||||
|
@ -1,11 +1,11 @@
|
||||
import Cookie from 'js-cookie';
|
||||
import { socket as socketActions } from '../state/actions';
|
||||
import { getWrapWidth, setConnectDefaults } from '../state/app';
|
||||
import { addMessages } from '../state/messages';
|
||||
import { select, updateSelection } from '../state/tab';
|
||||
import { find } from '../util';
|
||||
import { when } from '../util/observe';
|
||||
import { replace } from '../util/router';
|
||||
import { socket as socketActions } from 'state/actions';
|
||||
import { getWrapWidth, setConnectDefaults } from 'state/app';
|
||||
import { addMessages } from 'state/messages';
|
||||
import { select, updateSelection } from 'state/tab';
|
||||
import { find } from 'util';
|
||||
import { when } from 'util/observe';
|
||||
import { replace } from 'util/router';
|
||||
|
||||
export default function initialState({ store }) {
|
||||
const env = JSON.parse(document.getElementById('env').innerHTML);
|
||||
|
@ -1,9 +1,9 @@
|
||||
import { socketAction } from '../state/actions';
|
||||
import { setConnected } from '../state/app';
|
||||
import { broadcast, inform, print, addMessage, addMessages } from '../state/messages';
|
||||
import { select } from '../state/tab';
|
||||
import { normalizeChannel } from '../util';
|
||||
import { replace } from '../util/router';
|
||||
import { socketAction } from 'state/actions';
|
||||
import { setConnected } from 'state/app';
|
||||
import { broadcast, inform, print, addMessage, addMessages } from 'state/messages';
|
||||
import { select } from 'state/tab';
|
||||
import { normalizeChannel } from 'util';
|
||||
import { replace } from 'util/router';
|
||||
|
||||
function withReason(message, reason) {
|
||||
return message + (reason ? ` (${reason})` : '');
|
||||
|
@ -1,7 +1,7 @@
|
||||
import Cookie from 'js-cookie';
|
||||
import debounce from 'lodash/debounce';
|
||||
import { observe } from '../util/observe';
|
||||
import { getSelectedTab } from '../state/tab';
|
||||
import { getSelectedTab } from 'state/tab';
|
||||
import { observe } from 'util/observe';
|
||||
|
||||
const saveTab = debounce(tab =>
|
||||
Cookie.set('tab', tab.toString(), { expires: 30 })
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { when } from '../util/observe';
|
||||
import { measureScrollBarWidth } from '../util';
|
||||
import { getCharWidth } from '../state/app';
|
||||
import { updateMessageHeight } from '../state/messages';
|
||||
import { getCharWidth } from 'state/app';
|
||||
import { updateMessageHeight } from 'state/messages';
|
||||
import { when } from 'util/observe';
|
||||
import { measureScrollBarWidth } from 'util';
|
||||
|
||||
const menuWidth = 200;
|
||||
const messagePadding = 30;
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Record } from 'immutable';
|
||||
import createReducer from '../util/createReducer';
|
||||
import createReducer from 'util/createReducer';
|
||||
import * as actions from './actions';
|
||||
|
||||
export const getApp = state => state.app;
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { Map, List, Record } from 'immutable';
|
||||
import { createSelector } from 'reselect';
|
||||
import createReducer from '../util/createReducer';
|
||||
import createReducer from 'util/createReducer';
|
||||
import { getSelectedTab, updateSelection } from './tab';
|
||||
import * as actions from './actions';
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { List, Record } from 'immutable';
|
||||
import createReducer from '../util/createReducer';
|
||||
import createReducer from 'util/createReducer';
|
||||
import * as actions from './actions';
|
||||
|
||||
const HISTORY_MAX_LENGTH = 128;
|
||||
|
@ -1,9 +1,9 @@
|
||||
import { List, Map, Record } from 'immutable';
|
||||
import { createSelector } from 'reselect';
|
||||
import createReducer from '../util/createReducer';
|
||||
import { findBreakpoints, messageHeight, linkify, timestamp } from 'util';
|
||||
import createReducer from 'util/createReducer';
|
||||
import { getApp } from './app';
|
||||
import { getSelectedTab } from './tab';
|
||||
import { findBreakpoints, messageHeight, linkify, timestamp } from '../util';
|
||||
import * as actions from './actions';
|
||||
|
||||
const Message = Record({
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Set, Map } from 'immutable';
|
||||
import createReducer from '../util/createReducer';
|
||||
import createReducer from 'util/createReducer';
|
||||
import { updateSelection } from './tab';
|
||||
import * as actions from './actions';
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { List, Record } from 'immutable';
|
||||
import createReducer from '../util/createReducer';
|
||||
import createReducer from 'util/createReducer';
|
||||
import * as actions from './actions';
|
||||
|
||||
const State = Record({
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { Map, Record } from 'immutable';
|
||||
import { createSelector } from 'reselect';
|
||||
import createReducer from '../util/createReducer';
|
||||
import createReducer from 'util/createReducer';
|
||||
import { getSelectedTab, updateSelection } from './tab';
|
||||
import * as actions from './actions';
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { Map } from 'immutable';
|
||||
import base64 from 'base64-arraybuffer';
|
||||
import createReducer from '../util/createReducer';
|
||||
import createReducer from 'util/createReducer';
|
||||
import * as actions from './actions';
|
||||
|
||||
export const getSettings = state => state.settings;
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { Record, List } from 'immutable';
|
||||
import { push, replace, LOCATION_CHANGED } from '../util/router';
|
||||
import createReducer from '../util/createReducer';
|
||||
import createReducer from 'util/createReducer';
|
||||
import { push, replace, LOCATION_CHANGED } from 'util/router';
|
||||
import * as actions from './actions';
|
||||
|
||||
const TabRecord = Record({
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { Record } from 'immutable';
|
||||
import createReducer from '../util/createReducer';
|
||||
import { LOCATION_CHANGED } from '../util/router';
|
||||
import createReducer from 'util/createReducer';
|
||||
import { LOCATION_CHANGED } from 'util/router';
|
||||
import * as actions from './actions';
|
||||
|
||||
const State = Record({
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { createStore, applyMiddleware, compose } from 'redux';
|
||||
import thunk from 'redux-thunk';
|
||||
import createReducer from './state';
|
||||
import { routeReducer, routeMiddleware } from './util/router';
|
||||
import createReducer from 'state';
|
||||
import { routeReducer, routeMiddleware } from 'util/router';
|
||||
import message from './middleware/message';
|
||||
import createSocketMiddleware from './middleware/socket';
|
||||
import commands from './commands';
|
||||
|
@ -1,6 +1,14 @@
|
||||
var path = require('path');
|
||||
var webpack = require('webpack');
|
||||
|
||||
function dir(p) {
|
||||
return path.resolve(__dirname, p);
|
||||
}
|
||||
|
||||
function jsDir(p) {
|
||||
return path.resolve(__dirname, 'src/js', p);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
devtool: 'eval',
|
||||
entry: [
|
||||
@ -9,10 +17,18 @@ module.exports = {
|
||||
'./src/js/index'
|
||||
],
|
||||
output: {
|
||||
path: path.join(__dirname, 'dist'),
|
||||
path: dir('dist'),
|
||||
filename: 'bundle.js',
|
||||
publicPath: '/'
|
||||
},
|
||||
resolve: {
|
||||
alias: {
|
||||
components: jsDir('components'),
|
||||
containers: jsDir('containers'),
|
||||
state: jsDir('state'),
|
||||
util: jsDir('util')
|
||||
}
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{ test: /\.js$/, loader: 'eslint-loader', exclude: /node_modules/, enforce: 'pre' },
|
||||
|
@ -1,14 +1,30 @@
|
||||
var path = require('path');
|
||||
var webpack = require('webpack');
|
||||
|
||||
function dir(p) {
|
||||
return path.resolve(__dirname, p);
|
||||
}
|
||||
|
||||
function jsDir(p) {
|
||||
return path.resolve(__dirname, 'src/js', p);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
entry: [
|
||||
'./src/js/index'
|
||||
],
|
||||
output: {
|
||||
path: path.join(__dirname, 'dist'),
|
||||
path: dir('dist'),
|
||||
filename: 'bundle.js'
|
||||
},
|
||||
resolve: {
|
||||
alias: {
|
||||
components: jsDir('components'),
|
||||
containers: jsDir('containers'),
|
||||
state: jsDir('state'),
|
||||
util: jsDir('util')
|
||||
}
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{ test: /\.js$/, loader: 'eslint-loader', exclude: /node_modules/, enforce: 'pre' },
|
||||
|
@ -171,6 +171,10 @@ array-equal@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
|
||||
|
||||
array-find@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8"
|
||||
|
||||
array-flatten@1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
|
||||
@ -1875,6 +1879,14 @@ enhanced-resolve@^3.0.0:
|
||||
object-assign "^4.0.1"
|
||||
tapable "^0.2.5"
|
||||
|
||||
enhanced-resolve@~0.9.0:
|
||||
version "0.9.1"
|
||||
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e"
|
||||
dependencies:
|
||||
graceful-fs "^4.1.2"
|
||||
memory-fs "^0.2.0"
|
||||
tapable "^0.1.8"
|
||||
|
||||
"errno@>=0.1.1 <0.2.0-0", errno@^0.1.3:
|
||||
version "0.1.4"
|
||||
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d"
|
||||
@ -2012,6 +2024,22 @@ eslint-import-resolver-node@^0.2.0:
|
||||
object-assign "^4.0.1"
|
||||
resolve "^1.1.6"
|
||||
|
||||
eslint-import-resolver-webpack@^0.8.1:
|
||||
version "0.8.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.8.1.tgz#c7f8b4d5bd3c5b489457e5728c5db1c4ffbac9aa"
|
||||
dependencies:
|
||||
array-find "^1.0.0"
|
||||
debug "^2.2.0"
|
||||
enhanced-resolve "~0.9.0"
|
||||
find-root "^0.1.1"
|
||||
has "^1.0.1"
|
||||
interpret "^1.0.0"
|
||||
is-absolute "^0.2.3"
|
||||
lodash.get "^3.7.0"
|
||||
node-libs-browser "^1.0.0"
|
||||
resolve "^1.2.0"
|
||||
semver "^5.3.0"
|
||||
|
||||
eslint-loader@^1.6.1:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-1.8.0.tgz#8261f08cca4bd2ea263b77733e93cf0f21e20aa9"
|
||||
@ -2362,6 +2390,10 @@ find-index@^0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4"
|
||||
|
||||
find-root@^0.1.1:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/find-root/-/find-root-0.1.2.tgz#98d2267cff1916ccaf2743b3a0eea81d79d7dcd1"
|
||||
|
||||
find-up@^1.0.0:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
|
||||
@ -3706,6 +3738,10 @@ lodash._basecopy@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
|
||||
|
||||
lodash._baseget@^3.0.0:
|
||||
version "3.7.2"
|
||||
resolved "https://registry.yarnpkg.com/lodash._baseget/-/lodash._baseget-3.7.2.tgz#1b6ae1d5facf3c25532350a13c1197cb8bb674f4"
|
||||
|
||||
lodash._basetostring@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5"
|
||||
@ -3738,6 +3774,12 @@ lodash._root@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
|
||||
|
||||
lodash._topath@^3.0.0:
|
||||
version "3.8.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash._topath/-/lodash._topath-3.8.1.tgz#3ec5e2606014f4cb97f755fe6914edd8bfc00eac"
|
||||
dependencies:
|
||||
lodash.isarray "^3.0.0"
|
||||
|
||||
lodash.camelcase@^4.3.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
|
||||
@ -3756,6 +3798,13 @@ lodash.escape@^3.0.0:
|
||||
dependencies:
|
||||
lodash._root "^3.0.0"
|
||||
|
||||
lodash.get@^3.7.0:
|
||||
version "3.7.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-3.7.0.tgz#3ce68ae2c91683b281cc5394128303cbf75e691f"
|
||||
dependencies:
|
||||
lodash._baseget "^3.0.0"
|
||||
lodash._topath "^3.0.0"
|
||||
|
||||
lodash.isarguments@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
|
||||
@ -3861,6 +3910,10 @@ media-typer@0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
|
||||
|
||||
memory-fs@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290"
|
||||
|
||||
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"
|
||||
@ -4015,6 +4068,34 @@ node-int64@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
|
||||
|
||||
node-libs-browser@^1.0.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-1.1.1.tgz#2a38243abedd7dffcd07a97c9aca5668975a6fea"
|
||||
dependencies:
|
||||
assert "^1.1.1"
|
||||
browserify-zlib "^0.1.4"
|
||||
buffer "^4.3.0"
|
||||
console-browserify "^1.1.0"
|
||||
constants-browserify "^1.0.0"
|
||||
crypto-browserify "^3.11.0"
|
||||
domain-browser "^1.1.1"
|
||||
events "^1.0.0"
|
||||
https-browserify "0.0.1"
|
||||
os-browserify "^0.2.0"
|
||||
path-browserify "0.0.0"
|
||||
process "^0.11.0"
|
||||
punycode "^1.2.4"
|
||||
querystring-es3 "^0.2.0"
|
||||
readable-stream "^2.0.5"
|
||||
stream-browserify "^2.0.1"
|
||||
stream-http "^2.3.1"
|
||||
string_decoder "^0.10.25"
|
||||
timers-browserify "^1.4.2"
|
||||
tty-browserify "0.0.0"
|
||||
url "^0.11.0"
|
||||
util "^0.10.3"
|
||||
vm-browserify "0.0.4"
|
||||
|
||||
node-libs-browser@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646"
|
||||
@ -4681,7 +4762,7 @@ process-nextick-args@^1.0.6, process-nextick-args@~1.0.6:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
|
||||
|
||||
process@^0.11.0:
|
||||
process@^0.11.0, process@~0.11.0:
|
||||
version "0.11.10"
|
||||
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
|
||||
|
||||
@ -5113,7 +5194,7 @@ resolve@1.1.7:
|
||||
version "1.1.7"
|
||||
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
|
||||
|
||||
resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2:
|
||||
resolve@^1.1.6, resolve@^1.1.7, resolve@^1.2.0, resolve@^1.3.2:
|
||||
version "1.3.3"
|
||||
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5"
|
||||
dependencies:
|
||||
@ -5505,6 +5586,10 @@ table@^3.7.8:
|
||||
slice-ansi "0.0.4"
|
||||
string-width "^2.0.0"
|
||||
|
||||
tapable@^0.1.8:
|
||||
version "0.1.10"
|
||||
resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4"
|
||||
|
||||
tapable@^0.2.5, tapable@~0.2.5:
|
||||
version "0.2.6"
|
||||
resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.6.tgz#206be8e188860b514425375e6f1ae89bfb01fd8d"
|
||||
@ -5576,6 +5661,12 @@ time-stamp@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3"
|
||||
|
||||
timers-browserify@^1.4.2:
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d"
|
||||
dependencies:
|
||||
process "~0.11.0"
|
||||
|
||||
timers-browserify@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.2.tgz#ab4883cf597dcd50af211349a00fbca56ac86b86"
|
||||
|
Loading…
Reference in New Issue
Block a user