From 7312215c8057ff823537b1991fc9b956d7685afe Mon Sep 17 00:00:00 2001 From: lewis617 <897473127@qq.com> Date: Wed, 16 Nov 2016 18:35:32 +0800 Subject: [PATCH 01/59] add r2-bs-alert --- r2-bs-alert/.gitignore | 15 + r2-bs-alert/README.md | 1 + r2-bs-alert/package.json | 26 + r2-bs-alert/public/favicon.ico | Bin 0 -> 24838 bytes r2-bs-alert/public/index.html | 31 + r2-bs-alert/src/App.css | 3 + r2-bs-alert/src/App.js | 44 + r2-bs-alert/src/App.test.js | 24 + r2-bs-alert/src/alert/AlertList.js | 40 + .../src/alert/__tests__/AlertList.test.js | 59 + r2-bs-alert/src/alert/__tests__/redux.test.js | 77 + r2-bs-alert/src/alert/index.js | 4 + r2-bs-alert/src/alert/redux.js | 58 + r2-bs-alert/src/index.js | 23 + r2-bs-alert/yarn.lock | 5770 +++++++++++++++++ 15 files changed, 6175 insertions(+) create mode 100644 r2-bs-alert/.gitignore create mode 100644 r2-bs-alert/README.md create mode 100644 r2-bs-alert/package.json create mode 100644 r2-bs-alert/public/favicon.ico create mode 100644 r2-bs-alert/public/index.html create mode 100644 r2-bs-alert/src/App.css create mode 100644 r2-bs-alert/src/App.js create mode 100644 r2-bs-alert/src/App.test.js create mode 100644 r2-bs-alert/src/alert/AlertList.js create mode 100644 r2-bs-alert/src/alert/__tests__/AlertList.test.js create mode 100644 r2-bs-alert/src/alert/__tests__/redux.test.js create mode 100644 r2-bs-alert/src/alert/index.js create mode 100644 r2-bs-alert/src/alert/redux.js create mode 100644 r2-bs-alert/src/index.js create mode 100644 r2-bs-alert/yarn.lock diff --git a/r2-bs-alert/.gitignore b/r2-bs-alert/.gitignore new file mode 100644 index 0000000..6c96c5c --- /dev/null +++ b/r2-bs-alert/.gitignore @@ -0,0 +1,15 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build + +# misc +.DS_Store +.env +npm-debug.log diff --git a/r2-bs-alert/README.md b/r2-bs-alert/README.md new file mode 100644 index 0000000..a2d3fb5 --- /dev/null +++ b/r2-bs-alert/README.md @@ -0,0 +1 @@ +# React Redux Bootstrap Alert Example \ No newline at end of file diff --git a/r2-bs-alert/package.json b/r2-bs-alert/package.json new file mode 100644 index 0000000..cc7a85a --- /dev/null +++ b/r2-bs-alert/package.json @@ -0,0 +1,26 @@ +{ + "name": "r2-bs-alert", + "version": "0.1.0", + "private": true, + "devDependencies": { + "enzyme": "^2.6.0", + "react-addons-test-utils": "^15.3.2", + "react-scripts": "0.7.0", + "redux-mock-store": "^1.2.1", + "redux-thunk": "^2.1.0" + }, + "dependencies": { + "bootstrap": "3", + "react": "^15.3.2", + "react-bootstrap": "^0.30.6", + "react-dom": "^15.3.2", + "react-redux": "^4.4.6", + "redux": "^3.6.0" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test --env=jsdom", + "eject": "react-scripts eject" + } +} diff --git a/r2-bs-alert/public/favicon.ico b/r2-bs-alert/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5c125de5d897c1ff5692a656485b3216123dcd89 GIT binary patch literal 24838 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 + + + + + + + React App + + +
+ + + diff --git a/r2-bs-alert/src/App.css b/r2-bs-alert/src/App.css new file mode 100644 index 0000000..680aa6f --- /dev/null +++ b/r2-bs-alert/src/App.css @@ -0,0 +1,3 @@ +.App{ + width: 500px; +} \ No newline at end of file diff --git a/r2-bs-alert/src/App.js b/r2-bs-alert/src/App.js new file mode 100644 index 0000000..63762ec --- /dev/null +++ b/r2-bs-alert/src/App.js @@ -0,0 +1,44 @@ +import React, { Component } from 'react'; +import { AlertList } from './alert'; +import { ButtonGroup, Button } from 'react-bootstrap'; +import { connect } from 'react-redux'; +import { alertMessage } from './alert'; +import './App.css'; + +class App extends Component { + render() { + return ( +
+ + + + + + + +
+ ); + } +} + +export default connect()(App); diff --git a/r2-bs-alert/src/App.test.js b/r2-bs-alert/src/App.test.js new file mode 100644 index 0000000..bcd02da --- /dev/null +++ b/r2-bs-alert/src/App.test.js @@ -0,0 +1,24 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import { createStore, combineReducers, applyMiddleware } from 'redux'; +import { Provider } from 'react-redux'; +import thunk from 'redux-thunk'; +import App from './App'; +import { reducer as alertsReducer, alertMessage } from './alert'; +import 'bootstrap/dist/css/bootstrap.css'; + +const store = createStore( + combineReducers({ alerts: alertsReducer }), + {}, + applyMiddleware(thunk) +); + +it('renders without crashing', () => { + const div = document.createElement('div'); + ReactDOM.render( + + + , + div + ); +}); diff --git a/r2-bs-alert/src/alert/AlertList.js b/r2-bs-alert/src/alert/AlertList.js new file mode 100644 index 0000000..b6e774b --- /dev/null +++ b/r2-bs-alert/src/alert/AlertList.js @@ -0,0 +1,40 @@ +import React, { Component, PropTypes } from 'react'; +import { connect } from 'react-redux'; +import Alert from 'react-bootstrap/lib/Alert'; +import { hideAllAlert, alertHide } from './redux'; + +class CustomAlert extends Component { + static propTypes = { + alerts: PropTypes.array.isRequired, + hideAllAlert: PropTypes.func.isRequired, + alertHide: PropTypes.func.isRequired + }; + + componentDidMount() { + this.props.hideAllAlert(); + } + + render() { + const { alerts, alertHide } = this.props; + return ( +
+ {alerts.map((item, i) => ( + alertHide(item.key)} + > + {item.messageText} + + ))} +
+ ); + } +} + +export default connect( + state => ({ + alerts: state.alerts.items + }), + { hideAllAlert, alertHide } +)(CustomAlert); diff --git a/r2-bs-alert/src/alert/__tests__/AlertList.test.js b/r2-bs-alert/src/alert/__tests__/AlertList.test.js new file mode 100644 index 0000000..4e0488b --- /dev/null +++ b/r2-bs-alert/src/alert/__tests__/AlertList.test.js @@ -0,0 +1,59 @@ +import React from 'react'; +import { mount } from 'enzyme'; +import { createStore, combineReducers, applyMiddleware } from 'redux'; +import { Provider } from 'react-redux'; +import thunk from 'redux-thunk'; +import { AlertList, reducer } from '../index'; + +function setup(state = {}) { + const store = createStore( + combineReducers({ alerts: reducer }), + state, + applyMiddleware(thunk) + ); + const app = mount( + + + + ); + return { + app, + store + }; +} + +describe('AlertList', () => { + let originalTimeout; + beforeEach(function() { + originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL; + jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000; + }); + + afterEach(function() { + jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout; + }); + it('should display messages and hide all after delay', () => { + const { app } = setup({ alerts: { lastKey: 1, items: [{ key: 0 }, { key: 1 }] } }); + expect(app.find('.alert').length).toBe(2); + return new Promise(resolve => { + setTimeout(() => { + resolve(); + }, 5000) + }).then(() => { + expect(app.find('.alert').length).toBe(0); + }); + }); + + it('should display messages and hide itself after clicked', () => { + const { app } = setup({ + alerts: { + lastKey: 1, + items: [{ key: 0, messageText: 'messageText1' }, { key: 1, messageText: 'messageText2' }] + } + }); + app.find('.alert').at(1).find('button').at(0) + .simulate('click'); + expect(app.find('.alert').text()).not.toMatch(/messageText2/); + expect(app.find('.alert').text()).toMatch(/messageText1/); + }); +}); diff --git a/r2-bs-alert/src/alert/__tests__/redux.test.js b/r2-bs-alert/src/alert/__tests__/redux.test.js new file mode 100644 index 0000000..8c676ad --- /dev/null +++ b/r2-bs-alert/src/alert/__tests__/redux.test.js @@ -0,0 +1,77 @@ +import configureStore from 'redux-mock-store'; +import thunk from 'redux-thunk'; +import reducer, { ALERT_SHOW, ALERT_HIDE, alertShow, alertHide, alertMessage, hideAllAlert } from '../redux'; + +const middlewares = [thunk]; +const mockStore = configureStore(middlewares); + +describe('action test', () => { + it('alertShow should create ALERT_SHOW', () => { + expect(alertShow('message', 'success', 0)) + .toEqual({ + payload: { + messageText: 'message', + messageType: 'success', + key: 0 + }, + type: ALERT_SHOW + }); + }); + it('alertHide should create ALERT_HIDE', () => { + expect(alertHide(0)) + .toEqual({ + payload: { + key: 0 + }, + type: ALERT_HIDE + }); + }); + it('alertMessage should create ALERT_SHOW and create ALERT_HIDE after delay', (done) => { + const expectedActions = [ + alertShow('message', 'success', 1) + ]; + const getState = { alerts: { lastKey: 0, items: [] } }; + const store = mockStore(getState); + store.dispatch(alertMessage('message', 'success', 0)); + expect(store.getActions()).toEqual(expectedActions); + setTimeout(() => { + expect(store.getActions()).toEqual(expectedActions.concat([alertHide(1)])); + done(); + }, 0); + }); + it('hideAllAlert should create multi ALERT_HIDE after delay', (done) => { + const expectedActions = [ + alertHide(0), + alertHide(1) + ]; + const getState = { alerts: { lastKey: 1, items: [{ key: 0 }, { key: 1 }] } }; + const store = mockStore(getState); + store.dispatch(hideAllAlert(0)); + setTimeout(() => { + expect(store.getActions()).toEqual(expectedActions); + done(); + }, 0); + }); +}); + +it('reducer test', () => { + it('should handle alertShow action', () => { + expect(reducer({ items: [], lastKey: -1 }, alertShow('message', 'success', 0))).toEqual({ + items: [{ + messageText: 'message', + messageType: 'success', + key: 0 + }], + lastKey: 0 + }); + }); + it('should handle alertHide action', () => { + expect(reducer({ + items: [{ messageText: 'message', messageType: 'success', key: 0 }], + lastKey: 0 + }, alertHide(0))).toEqual({ items: [], lastKey: 0 }); + }); + it('should handle unknown action', () => { + expect(reducer([], { type: 'unknown' })).toEqual([]); + }); +}); diff --git a/r2-bs-alert/src/alert/index.js b/r2-bs-alert/src/alert/index.js new file mode 100644 index 0000000..7bd6e35 --- /dev/null +++ b/r2-bs-alert/src/alert/index.js @@ -0,0 +1,4 @@ +import AlertList from './AlertList'; +export { AlertList }; +import reducer, { alertMessage } from './redux'; +export { reducer, alertMessage }; diff --git a/r2-bs-alert/src/alert/redux.js b/r2-bs-alert/src/alert/redux.js new file mode 100644 index 0000000..943126d --- /dev/null +++ b/r2-bs-alert/src/alert/redux.js @@ -0,0 +1,58 @@ +export const ALERT_SHOW = 'ALERT_SHOW'; +export const ALERT_HIDE = 'ALERT_HIDE'; + +export function alertShow(messageText, messageType, key) { + return { + type: ALERT_SHOW, + payload: { + messageText, messageType, key + } + }; +} + +export function alertHide(key) { + return { + type: ALERT_HIDE, + payload: { key } + }; +} + +export function alertMessage(messageText, messageType, delay = 5000) { + return (dispatch, getState) => { + if (typeof messageText === 'string' && ['success', 'warning', 'danger', 'info'].indexOf(messageType) > -1) { + const key = getState().alerts.lastKey + 1; + dispatch(alertShow(messageText, messageType, key)); + setTimeout(() => dispatch(alertHide(key)), delay); + } else { + console.error('messageText must be string and messageType must be success, warning, danger, info'); + } + }; +} + +export function hideAllAlert(delay = 5000) { + return (dispatch, getState) => { + getState().alerts.items.forEach((item) => { + setTimeout(() => { + dispatch(alertHide(item.key)); + }, delay); + }); + }; +} + +export default function (state = { lastKey: -1, items: [] }, action) { + switch (action.type) { + case ALERT_SHOW: + return { + ...state, + items: [...state.items, action.payload], + lastKey: state.lastKey + 1 + }; + case ALERT_HIDE: + return { + ...state, + items: state.items.filter(item => (item.key !== action.payload.key)) + }; + default: + return state; + } +} diff --git a/r2-bs-alert/src/index.js b/r2-bs-alert/src/index.js new file mode 100644 index 0000000..9e46f62 --- /dev/null +++ b/r2-bs-alert/src/index.js @@ -0,0 +1,23 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import { createStore, combineReducers, applyMiddleware } from 'redux'; +import { Provider } from 'react-redux'; +import thunk from 'redux-thunk'; +import App from './App'; +import { reducer as alertsReducer, alertMessage } from './alert'; +import 'bootstrap/dist/css/bootstrap.css'; + +const store = createStore( + combineReducers({ alerts: alertsReducer }), + {}, + applyMiddleware(thunk) +); + +store.dispatch(alertMessage('message from server', 'info')); + +ReactDOM.render( + + + , + document.getElementById('root') +); diff --git a/r2-bs-alert/yarn.lock b/r2-bs-alert/yarn.lock new file mode 100644 index 0000000..f1b68dd --- /dev/null +++ b/r2-bs-alert/yarn.lock @@ -0,0 +1,5770 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 +abab@^1.0.0: + version "1.0.3" + resolved "http://registry.npm.taobao.org/abab/download/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d" + +abbrev@1, abbrev@1.0.x: + version "1.0.9" + resolved "http://registry.npm.taobao.org/abbrev/download/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + +accepts@~1.3.3: + version "1.3.3" + resolved "http://registry.npm.taobao.org/accepts/download/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + dependencies: + mime-types "~2.1.11" + negotiator "0.6.1" + +acorn-globals@^1.0.4: + version "1.0.9" + resolved "http://registry.npm.taobao.org/acorn-globals/download/acorn-globals-1.0.9.tgz#55bb5e98691507b74579d0513413217c380c54cf" + dependencies: + acorn "^2.1.0" + +acorn-jsx@^3.0.0, acorn-jsx@^3.0.1: + version "3.0.1" + resolved "http://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^2.1.0, acorn@^2.4.0: + version "2.7.0" + resolved "http://registry.npm.taobao.org/acorn/download/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" + +acorn@^3.0.0, acorn@^3.0.4: + version "3.3.0" + resolved "http://registry.npm.taobao.org/acorn/download/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^4.0.1: + version "4.0.3" + resolved "http://registry.npm.taobao.org/acorn/download/acorn-4.0.3.tgz#1a3e850b428e73ba6b09d1cc527f5aaad4d03ef1" + +ajv-keywords@^1.0.0: + version "1.1.1" + resolved "http://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-1.1.1.tgz#02550bc605a3e576041565628af972e06c549d50" + +ajv@^4.7.0: + version "4.9.0" + resolved "http://registry.npm.taobao.org/ajv/download/ajv-4.9.0.tgz#5a358085747b134eb567d6d15e015f1d7802f45c" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "http://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "http://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ansi-escapes@^1.1.0, ansi-escapes@^1.4.0: + version "1.4.0" + resolved "http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + +ansi-html@0.0.5: + version "0.0.5" + resolved "http://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.5.tgz#0dcaa5a081206866bc240a3b773a184ea3b88b64" + +ansi-regex@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansicolors@~0.2.1: + version "0.2.1" + resolved "http://registry.npm.taobao.org/ansicolors/download/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef" + +anymatch@^1.3.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/anymatch/download/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" + dependencies: + arrify "^1.0.0" + micromatch "^2.1.5" + +append-transform@^0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/append-transform/download/append-transform-0.3.0.tgz#d6933ce4a85f09445d9ccc4cc119051b7381a813" + +aproba@^1.0.3: + version "1.0.4" + resolved "http://registry.npm.taobao.org/aproba/download/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" + +are-we-there-yet@~1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.0 || ^1.1.13" + +argparse@^1.0.7: + version "1.0.9" + resolved "http://registry.npm.taobao.org/argparse/download/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" + +array-differ@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/array-differ/download/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + +array-equal@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/array-equal/download/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + +array-flatten@1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + +array-union@^1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "http://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +arrify@^1.0.0, arrify@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asap@~2.0.3: + version "2.0.5" + resolved "http://registry.npm.taobao.org/asap/download/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" + +asn1@~0.2.3: + version "0.2.3" + resolved "http://registry.npm.taobao.org/asn1/download/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/assert-plus/download/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +assert-plus@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert@^1.1.1: + version "1.4.1" + resolved "http://registry.npm.taobao.org/assert/download/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +async-each@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/async-each/download/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async@^0.9.0: + version "0.9.2" + resolved "http://registry.npm.taobao.org/async/download/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + +async@^1.3.0, async@^1.4.0, async@^1.4.2, async@^1.5.0, async@1.x: + version "1.5.2" + resolved "http://registry.npm.taobao.org/async/download/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@~0.2.6: + version "0.2.10" + resolved "http://registry.npm.taobao.org/async/download/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + +asynckit@^0.4.0: + version "0.4.0" + resolved "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +autoprefixer@^6.3.1: + version "6.5.3" + resolved "http://registry.npm.taobao.org/autoprefixer/download/autoprefixer-6.5.3.tgz#2d853af66d04449fcf50db3066279ab54c3e4b01" + dependencies: + browserslist "~1.4.0" + caniuse-db "^1.0.30000578" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^5.2.5" + postcss-value-parser "^3.2.3" + +autoprefixer@6.5.1: + version "6.5.1" + resolved "http://registry.npm.taobao.org/autoprefixer/download/autoprefixer-6.5.1.tgz#ae759a5221e709f3da17c2d656230e67c43cbb75" + dependencies: + browserslist "~1.4.0" + caniuse-db "^1.0.30000554" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^5.2.4" + postcss-value-parser "^3.2.3" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws4@^1.2.1: + version "1.5.0" + resolved "http://registry.npm.taobao.org/aws4/download/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" + +babel-code-frame@^6.11.0, babel-code-frame@^6.16.0: + version "6.16.0" + resolved "http://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.16.0.tgz#f90e60da0862909d3ce098733b5d3987c97cb8de" + dependencies: + chalk "^1.1.0" + esutils "^2.0.2" + js-tokens "^2.0.0" + +babel-core@^6.0.0, babel-core@^6.11.4, babel-core@^6.18.0: + version "6.18.2" + resolved "http://registry.npm.taobao.org/babel-core/download/babel-core-6.18.2.tgz#d8bb14dd6986fa4f3566a26ceda3964fa0e04e5b" + dependencies: + babel-code-frame "^6.16.0" + babel-generator "^6.18.0" + babel-helpers "^6.16.0" + babel-messages "^6.8.0" + babel-register "^6.18.0" + babel-runtime "^6.9.1" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.11.0" + convert-source-map "^1.1.0" + debug "^2.1.1" + json5 "^0.5.0" + lodash "^4.2.0" + minimatch "^3.0.2" + path-is-absolute "^1.0.0" + private "^0.1.6" + slash "^1.0.0" + source-map "^0.5.0" + +babel-core@6.17.0: + version "6.17.0" + resolved "http://registry.npm.taobao.org/babel-core/download/babel-core-6.17.0.tgz#6c4576447df479e241e58c807e4bc7da4db7f425" + dependencies: + babel-code-frame "^6.16.0" + babel-generator "^6.17.0" + babel-helpers "^6.16.0" + babel-messages "^6.8.0" + babel-register "^6.16.0" + babel-runtime "^6.9.1" + babel-template "^6.16.0" + babel-traverse "^6.16.0" + babel-types "^6.16.0" + babylon "^6.11.0" + convert-source-map "^1.1.0" + debug "^2.1.1" + json5 "^0.4.0" + lodash "^4.2.0" + minimatch "^3.0.2" + path-exists "^1.0.0" + path-is-absolute "^1.0.0" + private "^0.1.6" + shebang-regex "^1.0.0" + slash "^1.0.0" + source-map "^0.5.0" + +babel-eslint@7.0.0: + version "7.0.0" + resolved "http://registry.npm.taobao.org/babel-eslint/download/babel-eslint-7.0.0.tgz#54e51b4033f54ac81326ecea4c646a779935196d" + dependencies: + babel-traverse "^6.15.0" + babel-types "^6.15.0" + babylon "^6.11.2" + lodash.pickby "^4.6.0" + +babel-generator@^6.17.0, babel-generator@^6.18.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-generator/download/babel-generator-6.18.0.tgz#e4f104cb3063996d9850556a45aae4a022060a07" + dependencies: + babel-messages "^6.8.0" + babel-runtime "^6.9.0" + babel-types "^6.18.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.2.0" + source-map "^0.5.0" + +babel-helper-builder-binary-assignment-operator-visitor@^6.8.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-helper-builder-binary-assignment-operator-visitor/download/babel-helper-builder-binary-assignment-operator-visitor-6.18.0.tgz#8ae814989f7a53682152e3401a04fabd0bb333a6" + dependencies: + babel-helper-explode-assignable-expression "^6.18.0" + babel-runtime "^6.0.0" + babel-types "^6.18.0" + +babel-helper-builder-react-jsx@^6.8.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-helper-builder-react-jsx/download/babel-helper-builder-react-jsx-6.18.0.tgz#ab02f19a2eb7ace936dd87fa55896d02be59bf71" + dependencies: + babel-runtime "^6.9.0" + babel-types "^6.18.0" + esutils "^2.0.0" + lodash "^4.2.0" + +babel-helper-call-delegate@^6.18.0, babel-helper-call-delegate@^6.8.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-helper-call-delegate/download/babel-helper-call-delegate-6.18.0.tgz#05b14aafa430884b034097ef29e9f067ea4133bd" + dependencies: + babel-helper-hoist-variables "^6.18.0" + babel-runtime "^6.0.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + +babel-helper-define-map@^6.18.0, babel-helper-define-map@^6.8.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-helper-define-map/download/babel-helper-define-map-6.18.0.tgz#8d6c85dc7fbb4c19be3de40474d18e97c3676ec2" + dependencies: + babel-helper-function-name "^6.18.0" + babel-runtime "^6.9.0" + babel-types "^6.18.0" + lodash "^4.2.0" + +babel-helper-explode-assignable-expression@^6.18.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.18.0.tgz#14b8e8c2d03ad735d4b20f1840b24cd1f65239fe" + dependencies: + babel-runtime "^6.0.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + +babel-helper-function-name@^6.18.0, babel-helper-function-name@^6.8.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-helper-function-name/download/babel-helper-function-name-6.18.0.tgz#68ec71aeba1f3e28b2a6f0730190b754a9bf30e6" + dependencies: + babel-helper-get-function-arity "^6.18.0" + babel-runtime "^6.0.0" + babel-template "^6.8.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + +babel-helper-get-function-arity@^6.18.0, babel-helper-get-function-arity@^6.8.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.18.0.tgz#a5b19695fd3f9cdfc328398b47dafcd7094f9f24" + dependencies: + babel-runtime "^6.0.0" + babel-types "^6.18.0" + +babel-helper-hoist-variables@^6.18.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.18.0.tgz#a835b5ab8b46d6de9babefae4d98ea41e866b82a" + dependencies: + babel-runtime "^6.0.0" + babel-types "^6.18.0" + +babel-helper-optimise-call-expression@^6.18.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.18.0.tgz#9261d0299ee1a4f08a6dd28b7b7c777348fd8f0f" + dependencies: + babel-runtime "^6.0.0" + babel-types "^6.18.0" + +babel-helper-regex@^6.8.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-helper-regex/download/babel-helper-regex-6.18.0.tgz#ae0ebfd77de86cb2f1af258e2cc20b5fe893ecc6" + dependencies: + babel-runtime "^6.9.0" + babel-types "^6.18.0" + lodash "^4.2.0" + +babel-helper-remap-async-to-generator@^6.16.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.18.0.tgz#336cdf3cab650bb191b02fc16a3708e7be7f9ce5" + dependencies: + babel-helper-function-name "^6.18.0" + babel-runtime "^6.0.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + +babel-helper-replace-supers@^6.18.0, babel-helper-replace-supers@^6.8.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-helper-replace-supers/download/babel-helper-replace-supers-6.18.0.tgz#28ec69877be4144dbd64f4cc3a337e89f29a924e" + dependencies: + babel-helper-optimise-call-expression "^6.18.0" + babel-messages "^6.8.0" + babel-runtime "^6.0.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + +babel-helpers@^6.16.0: + version "6.16.0" + resolved "http://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.16.0.tgz#1095ec10d99279460553e67eb3eee9973d3867e3" + dependencies: + babel-runtime "^6.0.0" + babel-template "^6.16.0" + +babel-jest@^16.0.0, babel-jest@16.0.0: + version "16.0.0" + resolved "http://registry.npm.taobao.org/babel-jest/download/babel-jest-16.0.0.tgz#348729aea6d624a4774b8a934d07a40dd2cfd640" + dependencies: + babel-core "^6.0.0" + babel-plugin-istanbul "^2.0.0" + babel-preset-jest "^16.0.0" + +babel-loader@6.2.5: + version "6.2.5" + resolved "http://registry.npm.taobao.org/babel-loader/download/babel-loader-6.2.5.tgz#576d548520689a5e6b70c65b85d76af1ffedd005" + dependencies: + loader-utils "^0.2.11" + mkdirp "^0.5.1" + object-assign "^4.0.1" + +babel-messages@^6.8.0: + version "6.8.0" + resolved "http://registry.npm.taobao.org/babel-messages/download/babel-messages-6.8.0.tgz#bf504736ca967e6d65ef0adb5a2a5f947c8e0eb9" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-check-es2015-constants@^6.3.13: + version "6.8.0" + resolved "http://registry.npm.taobao.org/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.8.0.tgz#dbf024c32ed37bfda8dee1e76da02386a8d26fe7" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-istanbul@^2.0.0: + version "2.0.3" + resolved "http://registry.npm.taobao.org/babel-plugin-istanbul/download/babel-plugin-istanbul-2.0.3.tgz#266b304b9109607d60748474394676982f660df4" + dependencies: + find-up "^1.1.2" + istanbul-lib-instrument "^1.1.4" + object-assign "^4.1.0" + test-exclude "^2.1.1" + +babel-plugin-jest-hoist@^16.0.0: + version "16.0.0" + resolved "http://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-16.0.0.tgz#b58ca3f770982a7e7c25b5614b2e57e9dafc6e76" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-class-properties@^6.8.0: + version "6.13.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-class-properties/download/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + +babel-plugin-syntax-flow@^6.18.0, babel-plugin-syntax-flow@^6.3.13: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-flow/download/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" + +babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-jsx/download/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + +babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + +babel-plugin-syntax-trailing-function-commas@^6.13.0, babel-plugin-syntax-trailing-function-commas@^6.8.0: + version "6.13.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-6.13.0.tgz#2b84b7d53dd744f94ff1fad7669406274b23f541" + +babel-plugin-transform-async-to-generator@^6.16.0, babel-plugin-transform-async-to-generator@^6.8.0: + version "6.16.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-async-to-generator/download/babel-plugin-transform-async-to-generator-6.16.0.tgz#19ec36cb1486b59f9f468adfa42ce13908ca2999" + dependencies: + babel-helper-remap-async-to-generator "^6.16.0" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.0.0" + +babel-plugin-transform-class-properties@6.16.0: + version "6.16.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-class-properties/download/babel-plugin-transform-class-properties-6.16.0.tgz#969bca24d34e401d214f36b8af5c1346859bc904" + dependencies: + babel-helper-function-name "^6.8.0" + babel-plugin-syntax-class-properties "^6.8.0" + babel-runtime "^6.9.1" + +babel-plugin-transform-es2015-arrow-functions@^6.3.13: + version "6.8.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-arrow-functions/download/babel-plugin-transform-es2015-arrow-functions-6.8.0.tgz#5b63afc3181bdc9a8c4d481b5a4f3f7d7fef3d9d" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.3.13: + version "6.8.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoped-functions/download/babel-plugin-transform-es2015-block-scoped-functions-6.8.0.tgz#ed95d629c4b5a71ae29682b998f70d9833eb366d" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-es2015-block-scoping@^6.18.0, babel-plugin-transform-es2015-block-scoping@^6.6.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoping/download/babel-plugin-transform-es2015-block-scoping-6.18.0.tgz#3bfdcfec318d46df22525cdea88f1978813653af" + dependencies: + babel-runtime "^6.9.0" + babel-template "^6.15.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + lodash "^4.2.0" + +babel-plugin-transform-es2015-classes@^6.18.0, babel-plugin-transform-es2015-classes@^6.6.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-classes/download/babel-plugin-transform-es2015-classes-6.18.0.tgz#ffe7a17321bf83e494dcda0ae3fc72df48ffd1d9" + dependencies: + babel-helper-define-map "^6.18.0" + babel-helper-function-name "^6.18.0" + babel-helper-optimise-call-expression "^6.18.0" + babel-helper-replace-supers "^6.18.0" + babel-messages "^6.8.0" + babel-runtime "^6.9.0" + babel-template "^6.14.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + +babel-plugin-transform-es2015-computed-properties@^6.3.13: + version "6.8.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-computed-properties/download/babel-plugin-transform-es2015-computed-properties-6.8.0.tgz#f51010fd61b3bd7b6b60a5fdfd307bb7a5279870" + dependencies: + babel-helper-define-map "^6.8.0" + babel-runtime "^6.0.0" + babel-template "^6.8.0" + +babel-plugin-transform-es2015-destructuring@^6.18.0, babel-plugin-transform-es2015-destructuring@^6.6.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.18.0.tgz#a08fb89415ab82058649558bedb7bf8dafa76ba5" + dependencies: + babel-runtime "^6.9.0" + +babel-plugin-transform-es2015-destructuring@6.16.0: + version "6.16.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.16.0.tgz#050fe0866f5d53b36062ee10cdf5bfe64f929627" + dependencies: + babel-runtime "^6.9.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.6.0: + version "6.8.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-duplicate-keys/download/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz#fd8f7f7171fc108cc1c70c3164b9f15a81c25f7d" + dependencies: + babel-runtime "^6.0.0" + babel-types "^6.8.0" + +babel-plugin-transform-es2015-for-of@^6.18.0, babel-plugin-transform-es2015-for-of@^6.6.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-for-of/download/babel-plugin-transform-es2015-for-of-6.18.0.tgz#4c517504db64bf8cfc119a6b8f177211f2028a70" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-es2015-function-name@^6.3.13, babel-plugin-transform-es2015-function-name@^6.9.0: + version "6.9.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.9.0.tgz#8c135b17dbd064e5bba56ec511baaee2fca82719" + dependencies: + babel-helper-function-name "^6.8.0" + babel-runtime "^6.9.0" + babel-types "^6.9.0" + +babel-plugin-transform-es2015-literals@^6.3.13: + version "6.8.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-literals/download/babel-plugin-transform-es2015-literals-6.8.0.tgz#50aa2e5c7958fc2ab25d74ec117e0cc98f046468" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-es2015-modules-amd@^6.18.0, babel-plugin-transform-es2015-modules-amd@^6.8.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-amd/download/babel-plugin-transform-es2015-modules-amd-6.18.0.tgz#49a054cbb762bdf9ae2d8a807076cfade6141e40" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.18.0" + babel-runtime "^6.0.0" + babel-template "^6.8.0" + +babel-plugin-transform-es2015-modules-commonjs@^6.18.0, babel-plugin-transform-es2015-modules-commonjs@^6.6.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.18.0.tgz#c15ae5bb11b32a0abdcc98a5837baa4ee8d67bcc" + dependencies: + babel-plugin-transform-strict-mode "^6.18.0" + babel-runtime "^6.0.0" + babel-template "^6.16.0" + babel-types "^6.18.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.12.0, babel-plugin-transform-es2015-modules-systemjs@^6.18.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-systemjs/download/babel-plugin-transform-es2015-modules-systemjs-6.18.0.tgz#f09294707163edae4d3b3e8bfacecd01d920b7ad" + dependencies: + babel-helper-hoist-variables "^6.18.0" + babel-runtime "^6.11.6" + babel-template "^6.14.0" + +babel-plugin-transform-es2015-modules-umd@^6.12.0, babel-plugin-transform-es2015-modules-umd@^6.18.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-umd/download/babel-plugin-transform-es2015-modules-umd-6.18.0.tgz#23351770ece5c1f8e83ed67cb1d7992884491e50" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.18.0" + babel-runtime "^6.0.0" + babel-template "^6.8.0" + +babel-plugin-transform-es2015-object-super@^6.3.13: + version "6.8.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-object-super/download/babel-plugin-transform-es2015-object-super-6.8.0.tgz#1b858740a5a4400887c23dcff6f4d56eea4a24c5" + dependencies: + babel-helper-replace-supers "^6.8.0" + babel-runtime "^6.0.0" + +babel-plugin-transform-es2015-parameters@^6.18.0, babel-plugin-transform-es2015-parameters@^6.6.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.18.0.tgz#9b2cfe238c549f1635ba27fc1daa858be70608b1" + dependencies: + babel-helper-call-delegate "^6.18.0" + babel-helper-get-function-arity "^6.18.0" + babel-runtime "^6.9.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + +babel-plugin-transform-es2015-parameters@6.17.0: + version "6.17.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.17.0.tgz#e06d30cef897f46adb4734707bbe128a0d427d58" + dependencies: + babel-helper-call-delegate "^6.8.0" + babel-helper-get-function-arity "^6.8.0" + babel-runtime "^6.9.0" + babel-template "^6.16.0" + babel-traverse "^6.16.0" + babel-types "^6.16.0" + +babel-plugin-transform-es2015-shorthand-properties@^6.18.0, babel-plugin-transform-es2015-shorthand-properties@^6.3.13: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-shorthand-properties/download/babel-plugin-transform-es2015-shorthand-properties-6.18.0.tgz#e2ede3b7df47bf980151926534d1dd0cbea58f43" + dependencies: + babel-runtime "^6.0.0" + babel-types "^6.18.0" + +babel-plugin-transform-es2015-spread@^6.3.13: + version "6.8.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.8.0.tgz#0217f737e3b821fa5a669f187c6ed59205f05e9c" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-es2015-sticky-regex@^6.3.13: + version "6.8.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.8.0.tgz#e73d300a440a35d5c64f5c2a344dc236e3df47be" + dependencies: + babel-helper-regex "^6.8.0" + babel-runtime "^6.0.0" + babel-types "^6.8.0" + +babel-plugin-transform-es2015-template-literals@^6.6.0: + version "6.8.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-template-literals/download/babel-plugin-transform-es2015-template-literals-6.8.0.tgz#86eb876d0a2c635da4ec048b4f7de9dfc897e66b" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.18.0, babel-plugin-transform-es2015-typeof-symbol@^6.6.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-typeof-symbol/download/babel-plugin-transform-es2015-typeof-symbol-6.18.0.tgz#0b14c48629c90ff47a0650077f6aa699bee35798" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-es2015-unicode-regex@^6.3.13: + version "6.11.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.11.0.tgz#6298ceabaad88d50a3f4f392d8de997260f6ef2c" + dependencies: + babel-helper-regex "^6.8.0" + babel-runtime "^6.0.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.3.13, babel-plugin-transform-exponentiation-operator@^6.8.0: + version "6.8.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-exponentiation-operator/download/babel-plugin-transform-exponentiation-operator-6.8.0.tgz#db25742e9339eade676ca9acec46f955599a68a4" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.8.0" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.0.0" + +babel-plugin-transform-flow-strip-types@^6.3.13: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-flow-strip-types/download/babel-plugin-transform-flow-strip-types-6.18.0.tgz#4d3e642158661e9b40db457c004a30817fa32592" + dependencies: + babel-plugin-syntax-flow "^6.18.0" + babel-runtime "^6.0.0" + +babel-plugin-transform-object-rest-spread@6.16.0: + version "6.16.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-object-rest-spread/download/babel-plugin-transform-object-rest-spread-6.16.0.tgz#db441d56fffc1999052fdebe2e2f25ebd28e36a9" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.0.0" + +babel-plugin-transform-react-constant-elements@6.9.1: + version "6.9.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-react-constant-elements/download/babel-plugin-transform-react-constant-elements-6.9.1.tgz#125b86d96cb322e2139b607fd749ad5fbb17f005" + dependencies: + babel-runtime "^6.9.1" + +babel-plugin-transform-react-display-name@^6.3.13: + version "6.8.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-react-display-name/download/babel-plugin-transform-react-display-name-6.8.0.tgz#f7a084977383d728bdbdc2835bba0159577f660e" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-react-jsx-self@^6.11.0, babel-plugin-transform-react-jsx-self@6.11.0: + version "6.11.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-react-jsx-self/download/babel-plugin-transform-react-jsx-self-6.11.0.tgz#605c9450c1429f97a930f7e1dfe3f0d9d0dbd0f4" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.9.0" + +babel-plugin-transform-react-jsx-source@^6.3.13, babel-plugin-transform-react-jsx-source@6.9.0: + version "6.9.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-react-jsx-source/download/babel-plugin-transform-react-jsx-source-6.9.0.tgz#af684a05c2067a86e0957d4f343295ccf5dccf00" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.9.0" + +babel-plugin-transform-react-jsx@^6.3.13: + version "6.8.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-react-jsx/download/babel-plugin-transform-react-jsx-6.8.0.tgz#94759942f70af18c617189aa7f3593f1644a71ab" + dependencies: + babel-helper-builder-react-jsx "^6.8.0" + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.0.0" + +babel-plugin-transform-regenerator@^6.16.0, babel-plugin-transform-regenerator@^6.6.0, babel-plugin-transform-regenerator@6.16.1: + version "6.16.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-regenerator/download/babel-plugin-transform-regenerator-6.16.1.tgz#a75de6b048a14154aae14b0122756c5bed392f59" + dependencies: + babel-runtime "^6.9.0" + babel-types "^6.16.0" + private "~0.1.5" + +babel-plugin-transform-runtime@6.15.0: + version "6.15.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-runtime/download/babel-plugin-transform-runtime-6.15.0.tgz#3d75b4d949ad81af157570273846fb59aeb0d57c" + dependencies: + babel-runtime "^6.9.0" + +babel-plugin-transform-strict-mode@^6.18.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.18.0.tgz#df7cf2991fe046f44163dcd110d5ca43bc652b9d" + dependencies: + babel-runtime "^6.0.0" + babel-types "^6.18.0" + +babel-preset-env@0.0.6: + version "0.0.6" + resolved "http://registry.npm.taobao.org/babel-preset-env/download/babel-preset-env-0.0.6.tgz#cda63a020069098fad12272a7a447a7c5bafb3c8" + dependencies: + babel-plugin-check-es2015-constants "^6.3.13" + babel-plugin-syntax-trailing-function-commas "^6.13.0" + babel-plugin-transform-async-to-generator "^6.8.0" + babel-plugin-transform-es2015-arrow-functions "^6.3.13" + babel-plugin-transform-es2015-block-scoped-functions "^6.3.13" + babel-plugin-transform-es2015-block-scoping "^6.6.0" + babel-plugin-transform-es2015-classes "^6.6.0" + babel-plugin-transform-es2015-computed-properties "^6.3.13" + babel-plugin-transform-es2015-destructuring "^6.6.0" + babel-plugin-transform-es2015-duplicate-keys "^6.6.0" + babel-plugin-transform-es2015-for-of "^6.6.0" + babel-plugin-transform-es2015-function-name "^6.3.13" + babel-plugin-transform-es2015-literals "^6.3.13" + babel-plugin-transform-es2015-modules-amd "^6.8.0" + babel-plugin-transform-es2015-modules-commonjs "^6.6.0" + babel-plugin-transform-es2015-modules-systemjs "^6.12.0" + babel-plugin-transform-es2015-modules-umd "^6.12.0" + babel-plugin-transform-es2015-object-super "^6.3.13" + babel-plugin-transform-es2015-parameters "^6.6.0" + babel-plugin-transform-es2015-shorthand-properties "^6.3.13" + babel-plugin-transform-es2015-spread "^6.3.13" + babel-plugin-transform-es2015-sticky-regex "^6.3.13" + babel-plugin-transform-es2015-template-literals "^6.6.0" + babel-plugin-transform-es2015-typeof-symbol "^6.6.0" + babel-plugin-transform-es2015-unicode-regex "^6.3.13" + babel-plugin-transform-exponentiation-operator "^6.8.0" + babel-plugin-transform-regenerator "^6.6.0" + browserslist "^1.4.0" + +babel-preset-es2015@^6.16.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-preset-es2015/download/babel-preset-es2015-6.18.0.tgz#b8c70df84ec948c43dcf2bf770e988eb7da88312" + dependencies: + babel-plugin-check-es2015-constants "^6.3.13" + babel-plugin-transform-es2015-arrow-functions "^6.3.13" + babel-plugin-transform-es2015-block-scoped-functions "^6.3.13" + babel-plugin-transform-es2015-block-scoping "^6.18.0" + babel-plugin-transform-es2015-classes "^6.18.0" + babel-plugin-transform-es2015-computed-properties "^6.3.13" + babel-plugin-transform-es2015-destructuring "^6.18.0" + babel-plugin-transform-es2015-duplicate-keys "^6.6.0" + babel-plugin-transform-es2015-for-of "^6.18.0" + babel-plugin-transform-es2015-function-name "^6.9.0" + babel-plugin-transform-es2015-literals "^6.3.13" + babel-plugin-transform-es2015-modules-amd "^6.18.0" + babel-plugin-transform-es2015-modules-commonjs "^6.18.0" + babel-plugin-transform-es2015-modules-systemjs "^6.18.0" + babel-plugin-transform-es2015-modules-umd "^6.18.0" + babel-plugin-transform-es2015-object-super "^6.3.13" + babel-plugin-transform-es2015-parameters "^6.18.0" + babel-plugin-transform-es2015-shorthand-properties "^6.18.0" + babel-plugin-transform-es2015-spread "^6.3.13" + babel-plugin-transform-es2015-sticky-regex "^6.3.13" + babel-plugin-transform-es2015-template-literals "^6.6.0" + babel-plugin-transform-es2015-typeof-symbol "^6.18.0" + babel-plugin-transform-es2015-unicode-regex "^6.3.13" + babel-plugin-transform-regenerator "^6.16.0" + +babel-preset-es2016@^6.16.0: + version "6.16.0" + resolved "http://registry.npm.taobao.org/babel-preset-es2016/download/babel-preset-es2016-6.16.0.tgz#c7daf5feedeee99c867813bdf0d573d94ca12812" + dependencies: + babel-plugin-transform-exponentiation-operator "^6.3.13" + +babel-preset-es2017@^6.16.0: + version "6.16.0" + resolved "http://registry.npm.taobao.org/babel-preset-es2017/download/babel-preset-es2017-6.16.0.tgz#536c6287778a758948ddd092b466b6ef50b786fa" + dependencies: + babel-plugin-syntax-trailing-function-commas "^6.8.0" + babel-plugin-transform-async-to-generator "^6.16.0" + +babel-preset-jest@^16.0.0: + version "16.0.0" + resolved "http://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-16.0.0.tgz#417aabc2d7d93170f43c20ef1ea0145e8f7f2db5" + dependencies: + babel-plugin-jest-hoist "^16.0.0" + +babel-preset-latest@6.16.0: + version "6.16.0" + resolved "http://registry.npm.taobao.org/babel-preset-latest/download/babel-preset-latest-6.16.0.tgz#5b87e19e250bb1213f13af4ec9dc7a51d53f388d" + dependencies: + babel-preset-es2015 "^6.16.0" + babel-preset-es2016 "^6.16.0" + babel-preset-es2017 "^6.16.0" + +babel-preset-react-app@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/babel-preset-react-app/download/babel-preset-react-app-1.0.0.tgz#e7613500859d96f177ba7a38a3ed0a923ee50da8" + dependencies: + babel-plugin-transform-class-properties "6.16.0" + babel-plugin-transform-es2015-destructuring "6.16.0" + babel-plugin-transform-es2015-parameters "6.17.0" + babel-plugin-transform-object-rest-spread "6.16.0" + babel-plugin-transform-react-constant-elements "6.9.1" + babel-plugin-transform-react-jsx-self "6.11.0" + babel-plugin-transform-react-jsx-source "6.9.0" + babel-plugin-transform-regenerator "6.16.1" + babel-plugin-transform-runtime "6.15.0" + babel-preset-env "0.0.6" + babel-preset-latest "6.16.0" + babel-preset-react "6.16.0" + babel-runtime "6.11.6" + +babel-preset-react@6.16.0: + version "6.16.0" + resolved "http://registry.npm.taobao.org/babel-preset-react/download/babel-preset-react-6.16.0.tgz#aa117d60de0928607e343c4828906e4661824316" + dependencies: + babel-plugin-syntax-flow "^6.3.13" + babel-plugin-syntax-jsx "^6.3.13" + babel-plugin-transform-flow-strip-types "^6.3.13" + babel-plugin-transform-react-display-name "^6.3.13" + babel-plugin-transform-react-jsx "^6.3.13" + babel-plugin-transform-react-jsx-self "^6.11.0" + babel-plugin-transform-react-jsx-source "^6.3.13" + +babel-register@^6.16.0, babel-register@^6.18.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-register/download/babel-register-6.18.0.tgz#892e2e03865078dd90ad2c715111ec4449b32a68" + dependencies: + babel-core "^6.18.0" + babel-runtime "^6.11.6" + core-js "^2.4.0" + home-or-tmp "^2.0.0" + lodash "^4.2.0" + mkdirp "^0.5.1" + source-map-support "^0.4.2" + +babel-runtime@^6.0.0, babel-runtime@^6.11.6, babel-runtime@^6.9.0, babel-runtime@^6.9.1: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.18.0.tgz#0f4177ffd98492ef13b9f823e9994a02584c9078" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.9.5" + +babel-runtime@6.11.6: + version "6.11.6" + resolved "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.11.6.tgz#6db707fef2d49c49bfa3cb64efdb436b518b8222" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.9.5" + +babel-template@^6.14.0, babel-template@^6.15.0, babel-template@^6.16.0, babel-template@^6.8.0: + version "6.16.0" + resolved "http://registry.npm.taobao.org/babel-template/download/babel-template-6.16.0.tgz#e149dd1a9f03a35f817ddbc4d0481988e7ebc8ca" + dependencies: + babel-runtime "^6.9.0" + babel-traverse "^6.16.0" + babel-types "^6.16.0" + babylon "^6.11.0" + lodash "^4.2.0" + +babel-traverse@^6.15.0, babel-traverse@^6.16.0, babel-traverse@^6.18.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.18.0.tgz#5aeaa980baed2a07c8c47329cd90c3b90c80f05e" + dependencies: + babel-code-frame "^6.16.0" + babel-messages "^6.8.0" + babel-runtime "^6.9.0" + babel-types "^6.18.0" + babylon "^6.11.0" + debug "^2.2.0" + globals "^9.0.0" + invariant "^2.2.0" + lodash "^4.2.0" + +babel-types@^6.15.0, babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.8.0, babel-types@^6.9.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-types/download/babel-types-6.18.0.tgz#1f7d5a73474c59eb9151b2417bbff4e4fce7c3f8" + dependencies: + babel-runtime "^6.9.1" + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^1.0.1" + +babylon@^6.11.0, babylon@^6.11.2, babylon@^6.13.0: + version "6.13.1" + resolved "http://registry.npm.taobao.org/babylon/download/babylon-6.13.1.tgz#adca350e088f0467647157652bafead6ddb8dfdb" + +balanced-match@^0.4.1, balanced-match@^0.4.2: + version "0.4.2" + resolved "http://registry.npm.taobao.org/balanced-match/download/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +balanced-match@~0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/balanced-match/download/balanced-match-0.1.0.tgz#b504bd05869b39259dd0c5efc35d843176dccc4a" + +base64-js@^1.0.2: + version "1.2.0" + resolved "http://registry.npm.taobao.org/base64-js/download/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" + +Base64@~0.2.0: + version "0.2.1" + resolved "http://registry.npm.taobao.org/Base64/download/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028" + +batch@0.5.3: + version "0.5.3" + resolved "http://registry.npm.taobao.org/batch/download/batch-0.5.3.tgz#3f3414f380321743bfc1042f9a83ff1d5824d464" + +bcrypt-pbkdf@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4" + dependencies: + tweetnacl "^0.14.3" + +big.js@^3.1.3: + version "3.1.3" + resolved "http://registry.npm.taobao.org/big.js/download/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + +binary-extensions@^1.0.0: + version "1.7.0" + resolved "http://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d" + +block-stream@*: + version "0.0.9" + resolved "http://registry.npm.taobao.org/block-stream/download/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bluebird@^3.4.6: + version "3.4.6" + resolved "http://registry.npm.taobao.org/bluebird/download/bluebird-3.4.6.tgz#01da8d821d87813d158967e743d5fe6c62cf8c0f" + +boolbase@~1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + +boom@2.x.x: + version "2.10.1" + resolved "http://registry.npm.taobao.org/boom/download/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +bootstrap@3: + version "3.3.7" + resolved "http://registry.npm.taobao.org/bootstrap/download/bootstrap-3.3.7.tgz#5a389394549f23330875a3b150656574f8a9eb71" + +brace-expansion@^1.0.0: + version "1.1.6" + resolved "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +browser-resolve@^1.11.2: + version "1.11.2" + resolved "http://registry.npm.taobao.org/browser-resolve/download/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" + dependencies: + resolve "1.1.7" + +browserify-zlib@~0.1.4: + version "0.1.4" + resolved "http://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + dependencies: + pako "~0.2.0" + +browserslist@^1.4.0, browserslist@~1.4.0: + version "1.4.0" + resolved "http://registry.npm.taobao.org/browserslist/download/browserslist-1.4.0.tgz#9cfdcf5384d9158f5b70da2aa00b30e8ff019049" + dependencies: + caniuse-db "^1.0.30000539" + +bser@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/bser/download/bser-1.0.2.tgz#381116970b2a6deea5646dd15dd7278444b56169" + dependencies: + node-int64 "^0.4.0" + +buffer-shims@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/buffer-shims/download/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +buffer@^4.9.0: + version "4.9.1" + resolved "http://registry.npm.taobao.org/buffer/download/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-modules@^1.0.0, builtin-modules@^1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/builtin-modules/download/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +bytes@2.3.0: + version "2.3.0" + resolved "http://registry.npm.taobao.org/bytes/download/bytes-2.3.0.tgz#d5b680a165b6201739acb611542aabc2d8ceb070" + +caller-path@^0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/caller-path/download/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + +callsites@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/callsites/download/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + +callsites@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + +camel-case@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase@^1.0.2: + version "1.2.1" + resolved "http://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/camelcase/download/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + +caniuse-db@^1.0.30000539, caniuse-db@^1.0.30000554, caniuse-db@^1.0.30000578: + version "1.0.30000581" + resolved "http://registry.npm.taobao.org/caniuse-db/download/caniuse-db-1.0.30000581.tgz#9a707e1cff67a36bf624636d4662ea9fe041f3a8" + +cardinal@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/cardinal/download/cardinal-1.0.0.tgz#50e21c1b0aa37729f9377def196b5a9cec932ee9" + dependencies: + ansicolors "~0.2.1" + redeyed "~1.0.0" + +case-sensitive-paths-webpack-plugin@1.1.4: + version "1.1.4" + resolved "http://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-1.1.4.tgz#8aaedd5699a86cac2b34cf40d9b4145758978472" + +caseless@~0.11.0: + version "0.11.0" + resolved "http://registry.npm.taobao.org/caseless/download/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" + +center-align@^0.1.1: + version "0.1.3" + resolved "http://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3, chalk@1.1.3: + version "1.1.3" + resolved "http://registry.npm.taobao.org/chalk/download/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" + +change-case@3.0.x: + version "3.0.0" + resolved "http://registry.npm.taobao.org/change-case/download/change-case-3.0.0.tgz#6c9c8e35f8790870a82b6b0745be8c3cbef9b081" + dependencies: + camel-case "^3.0.0" + constant-case "^2.0.0" + dot-case "^2.1.0" + header-case "^1.0.0" + is-lower-case "^1.1.0" + is-upper-case "^1.1.0" + lower-case "^1.1.1" + lower-case-first "^1.0.0" + no-case "^2.2.0" + param-case "^2.1.0" + pascal-case "^2.0.0" + path-case "^2.1.0" + sentence-case "^2.1.0" + snake-case "^2.1.0" + swap-case "^1.1.0" + title-case "^2.1.0" + upper-case "^1.1.1" + upper-case-first "^1.1.0" + +cheerio@^0.22.0: + version "0.22.0" + resolved "http://registry.npm.taobao.org/cheerio/download/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash.assignin "^4.0.9" + lodash.bind "^4.1.4" + lodash.defaults "^4.0.1" + lodash.filter "^4.4.0" + lodash.flatten "^4.2.0" + lodash.foreach "^4.3.0" + lodash.map "^4.4.0" + lodash.merge "^4.4.0" + lodash.pick "^4.2.1" + lodash.reduce "^4.4.0" + lodash.reject "^4.4.0" + lodash.some "^4.4.0" + +chokidar@^1.0.0: + version "1.6.1" + resolved "http://registry.npm.taobao.org/chokidar/download/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +ci-info@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/ci-info/download/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534" + +circular-json@^0.3.0: + version "0.3.1" + resolved "http://registry.npm.taobao.org/circular-json/download/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" + +clap@^1.0.9: + version "1.1.1" + resolved "http://registry.npm.taobao.org/clap/download/clap-1.1.1.tgz#a8a93e0bfb7581ac199c4f001a5525a724ce696d" + dependencies: + chalk "^1.1.3" + +classnames@^2.2.5: + version "2.2.5" + resolved "http://registry.npm.taobao.org/classnames/download/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" + +clean-css@3.4.x: + version "3.4.20" + resolved "http://registry.npm.taobao.org/clean-css/download/clean-css-3.4.20.tgz#c0d8963b5448e030f0bcd3ddd0dac4dfe3dea501" + dependencies: + commander "2.8.x" + source-map "0.4.x" + +cli-cursor@^1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + dependencies: + restore-cursor "^1.0.1" + +cli-table@^0.3.1: + version "0.3.1" + resolved "http://registry.npm.taobao.org/cli-table/download/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" + dependencies: + colors "1.0.3" + +cli-usage@^0.1.1: + version "0.1.4" + resolved "http://registry.npm.taobao.org/cli-usage/download/cli-usage-0.1.4.tgz#7c01e0dc706c234b39c933838c8e20b2175776e2" + dependencies: + marked "^0.3.6" + marked-terminal "^1.6.2" + +cli-width@^2.0.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/cli-width/download/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + +cliui@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "http://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +clone@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/clone/download/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" + +co@^4.6.0: + version "4.6.0" + resolved "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +coa@~1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/coa/download/coa-1.0.1.tgz#7f959346cfc8719e3f7233cd6852854a7c67d8a3" + dependencies: + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +color-convert@^1.3.0: + version "1.8.2" + resolved "http://registry.npm.taobao.org/color-convert/download/color-convert-1.8.2.tgz#be868184d7c8631766d54e7078e2672d7c7e3339" + dependencies: + color-name "^1.1.1" + +color-name@^1.0.0, color-name@^1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/color-name/download/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" + +color-string@^0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/color-string/download/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" + dependencies: + color-name "^1.0.0" + +color@^0.11.0: + version "0.11.4" + resolved "http://registry.npm.taobao.org/color/download/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" + dependencies: + clone "^1.0.2" + color-convert "^1.3.0" + color-string "^0.3.0" + +colormin@^1.0.5: + version "1.1.2" + resolved "http://registry.npm.taobao.org/colormin/download/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" + dependencies: + color "^0.11.0" + css-color-names "0.0.4" + has "^1.0.1" + +colors@~1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/colors/download/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + +colors@1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/colors/download/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +commander@^2.9.0, commander@2.9.x: + version "2.9.0" + resolved "http://registry.npm.taobao.org/commander/download/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commander@~2.8.1, commander@2.8.x: + version "2.8.1" + resolved "http://registry.npm.taobao.org/commander/download/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commondir@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + +compressible@~2.0.8: + version "2.0.9" + resolved "http://registry.npm.taobao.org/compressible/download/compressible-2.0.9.tgz#6daab4e2b599c2770dd9e21e7a891b1c5a755425" + dependencies: + mime-db ">= 1.24.0 < 2" + +compression@^1.5.2: + version "1.6.2" + resolved "http://registry.npm.taobao.org/compression/download/compression-1.6.2.tgz#cceb121ecc9d09c52d7ad0c3350ea93ddd402bc3" + dependencies: + accepts "~1.3.3" + bytes "2.3.0" + compressible "~2.0.8" + debug "~2.2.0" + on-headers "~1.0.1" + vary "~1.1.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.4.6: + version "1.5.2" + resolved "http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" + dependencies: + inherits "~2.0.1" + readable-stream "~2.0.0" + typedarray "~0.0.5" + +connect-history-api-fallback@^1.3.0, connect-history-api-fallback@1.3.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/console-browserify/download/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +constant-case@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/constant-case/download/constant-case-2.0.0.tgz#4175764d389d3fa9c8ecd29186ed6005243b6a46" + dependencies: + snake-case "^2.1.0" + upper-case "^1.1.1" + +constants-browserify@0.0.1: + version "0.0.1" + resolved "http://registry.npm.taobao.org/constants-browserify/download/constants-browserify-0.0.1.tgz#92577db527ba6c4cf0a4568d84bc031f441e21f2" + +contains-path@^0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/contains-path/download/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + +content-disposition@0.5.1: + version "0.5.1" + resolved "http://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.1.tgz#87476c6a67c8daa87e32e87616df883ba7fb071b" + +content-type-parser@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/content-type-parser/download/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94" + +content-type@~1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/content-type/download/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" + +convert-source-map@^1.1.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "http://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + +cookie@0.3.1: + version "0.3.1" + resolved "http://registry.npm.taobao.org/cookie/download/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +core-js@^1.0.0: + version "1.2.7" + resolved "http://registry.npm.taobao.org/core-js/download/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + +core-js@^2.4.0: + version "2.4.1" + resolved "http://registry.npm.taobao.org/core-js/download/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cosmiconfig@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-2.1.0.tgz#26e384a2055ea4e087050e5e08d53eb4eac8f86e" + dependencies: + graceful-fs "^4.1.2" + js-yaml "^3.4.3" + minimist "^1.2.0" + object-assign "^4.1.0" + os-homedir "^1.0.1" + parse-json "^2.2.0" + require-from-string "^1.1.0" + +cross-spawn@4.0.2: + version "4.0.2" + resolved "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cryptiles@2.x.x: + version "2.0.5" + resolved "http://registry.npm.taobao.org/cryptiles/download/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +crypto-browserify@~3.2.6: + version "3.2.8" + resolved "http://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.2.8.tgz#b9b11dbe6d9651dd882a01e6cc467df718ecf189" + dependencies: + pbkdf2-compat "2.0.1" + ripemd160 "0.2.0" + sha.js "2.2.6" + +css-color-names@0.0.4: + version "0.0.4" + resolved "http://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + +css-loader@0.25.0: + version "0.25.0" + resolved "http://registry.npm.taobao.org/css-loader/download/css-loader-0.25.0.tgz#c3febc8ce28f4c83576b6b13707f47f90c390223" + dependencies: + babel-code-frame "^6.11.0" + css-selector-tokenizer "^0.6.0" + cssnano ">=2.6.1 <4" + loader-utils "~0.2.2" + lodash.camelcase "^3.0.1" + object-assign "^4.0.1" + postcss "^5.0.6" + postcss-modules-extract-imports "^1.0.0" + postcss-modules-local-by-default "^1.0.1" + postcss-modules-scope "^1.0.0" + postcss-modules-values "^1.1.0" + source-list-map "^0.1.4" + +css-select@^1.1.0, css-select@~1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-selector-tokenizer@^0.6.0: + version "0.6.0" + resolved "http://registry.npm.taobao.org/css-selector-tokenizer/download/css-selector-tokenizer-0.6.0.tgz#6445f582c7930d241dcc5007a43d6fcb8f073152" + dependencies: + cssesc "^0.1.0" + fastparse "^1.1.1" + regexpu-core "^1.0.0" + +css-what@2.1: + version "2.1.0" + resolved "http://registry.npm.taobao.org/css-what/download/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" + +cssesc@^0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/cssesc/download/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" + +"cssnano@>=2.6.1 <4": + version "3.8.0" + resolved "http://registry.npm.taobao.org/cssnano/download/cssnano-3.8.0.tgz#bb90ac5292f42b679d9a05f6da0e9697556bb80d" + dependencies: + autoprefixer "^6.3.1" + decamelize "^1.1.2" + defined "^1.0.0" + has "^1.0.1" + object-assign "^4.0.1" + postcss "^5.0.14" + postcss-calc "^5.2.0" + postcss-colormin "^2.1.8" + postcss-convert-values "^2.3.4" + postcss-discard-comments "^2.0.4" + postcss-discard-duplicates "^2.0.1" + postcss-discard-empty "^2.0.1" + postcss-discard-overridden "^0.1.1" + postcss-discard-unused "^2.2.1" + postcss-filter-plugins "^2.0.0" + postcss-merge-idents "^2.1.5" + postcss-merge-longhand "^2.0.1" + postcss-merge-rules "^2.0.3" + postcss-minify-font-values "^1.0.2" + postcss-minify-gradients "^1.0.1" + postcss-minify-params "^1.0.4" + postcss-minify-selectors "^2.0.4" + postcss-normalize-charset "^1.1.0" + postcss-normalize-url "^3.0.7" + postcss-ordered-values "^2.1.0" + postcss-reduce-idents "^2.2.2" + postcss-reduce-initial "^1.0.0" + postcss-reduce-transforms "^1.0.3" + postcss-svgo "^2.1.1" + postcss-unique-selectors "^2.0.2" + postcss-value-parser "^3.2.3" + postcss-zindex "^2.0.1" + +csso@~2.2.1: + version "2.2.1" + resolved "http://registry.npm.taobao.org/csso/download/csso-2.2.1.tgz#51fbb5347e50e81e6ed51668a48490ae6fe2afe2" + dependencies: + clap "^1.0.9" + source-map "^0.5.3" + +"cssom@>= 0.3.0 < 0.4.0", cssom@0.3.x: + version "0.3.1" + resolved "http://registry.npm.taobao.org/cssom/download/cssom-0.3.1.tgz#c9e37ef2490e64f6d1baa10fda852257082c25d3" + +"cssstyle@>= 0.2.36 < 0.3.0": + version "0.2.37" + resolved "http://registry.npm.taobao.org/cssstyle/download/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" + dependencies: + cssom "0.3.x" + +d@^0.1.1, d@~0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/d/download/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" + dependencies: + es5-ext "~0.10.2" + +damerau-levenshtein@^1.0.0: + version "1.0.3" + resolved "http://registry.npm.taobao.org/damerau-levenshtein/download/damerau-levenshtein-1.0.3.tgz#ae4f4ce0b62acae10ff63a01bb08f652f5213af2" + +dashdash@^1.12.0: + version "1.14.0" + resolved "http://registry.npm.taobao.org/dashdash/download/dashdash-1.14.0.tgz#29e486c5418bf0f356034a993d51686a33e84141" + dependencies: + assert-plus "^1.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "http://registry.npm.taobao.org/date-now/download/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +debug@^2.1.0, debug@^2.1.1, debug@^2.2.0: + version "2.3.2" + resolved "http://registry.npm.taobao.org/debug/download/debug-2.3.2.tgz#94cb466ef7d6d2c7e5245cdd6e4104f2d0d70d30" + dependencies: + ms "0.7.2" + +debug@~2.2.0, debug@2.2.0: + version "2.2.0" + resolved "http://registry.npm.taobao.org/debug/download/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + dependencies: + ms "0.7.1" + +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: + version "1.2.0" + resolved "http://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +deep-extend@~0.4.0: + version "0.4.1" + resolved "http://registry.npm.taobao.org/deep-extend/download/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" + +deep-is@~0.1.3: + version "0.1.3" + resolved "http://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +define-properties@^1.1.1, define-properties@^1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/define-properties/download/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + +defined@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + +del@^2.0.2: + version "2.2.2" + resolved "http://registry.npm.taobao.org/del/download/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" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +depd@~1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/depd/download/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" + +destroy@~1.0.4: + version "1.0.4" + resolved "http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/detect-indent/download/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-port@1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/detect-port/download/detect-port-1.0.1.tgz#3e1aa6a7ff6677bb60894b291172529d880c1e85" + dependencies: + commander "~2.8.1" + +diff@^3.0.0: + version "3.0.1" + resolved "http://registry.npm.taobao.org/diff/download/diff-3.0.1.tgz#a52d90cc08956994be00877bff97110062582c35" + +doctrine@^1.2.2: + version "1.5.0" + resolved "http://registry.npm.taobao.org/doctrine/download/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@1.3.x: + version "1.3.0" + resolved "http://registry.npm.taobao.org/doctrine/download/doctrine-1.3.0.tgz#13e75682b55518424276f7c173783456ef913d26" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +dom-converter@~0.1: + version "0.1.4" + resolved "http://registry.npm.taobao.org/dom-converter/download/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b" + dependencies: + utila "~0.3" + +dom-helpers@^2.4.0: + version "2.4.0" + resolved "http://registry.npm.taobao.org/dom-helpers/download/dom-helpers-2.4.0.tgz#9bb4b245f637367b1fa670274272aa28fe06c367" + +dom-serializer@~0.1.0, dom-serializer@0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" + dependencies: + domelementtype "~1.1.1" + entities "~1.1.1" + +domain-browser@^1.1.1: + version "1.1.7" + resolved "http://registry.npm.taobao.org/domain-browser/download/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + +domelementtype@^1.3.0, domelementtype@1: + version "1.3.0" + resolved "http://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" + +domelementtype@~1.1.1: + version "1.1.3" + resolved "http://registry.npm.taobao.org/domelementtype/download/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + +domhandler@^2.3.0: + version "2.3.0" + resolved "http://registry.npm.taobao.org/domhandler/download/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" + dependencies: + domelementtype "1" + +domhandler@2.1: + version "2.1.0" + resolved "http://registry.npm.taobao.org/domhandler/download/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" + dependencies: + domelementtype "1" + +domutils@^1.5.1, domutils@1.5.1: + version "1.5.1" + resolved "http://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@1.1: + version "1.1.6" + resolved "http://registry.npm.taobao.org/domutils/download/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" + dependencies: + domelementtype "1" + +dot-case@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/dot-case/download/dot-case-2.1.0.tgz#4b43dd0d7403c34cb645424add397e80bfe85ca6" + dependencies: + no-case "^2.2.0" + +dotenv@2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/dotenv/download/dotenv-2.0.0.tgz#bd759c357aaa70365e01c96b7b0bec08a6e0d949" + +duplexer@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/duplexer/download/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +encodeurl@~1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" + +encoding@^0.1.11: + version "0.1.12" + resolved "http://registry.npm.taobao.org/encoding/download/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + dependencies: + iconv-lite "~0.4.13" + +enhanced-resolve@~0.9.0: + version "0.9.1" + resolved "http://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.2.0" + tapable "^0.1.8" + +entities@^1.1.1, entities@~1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/entities/download/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + +enzyme: + version "2.6.0" + resolved "http://registry.npm.taobao.org/enzyme/download/enzyme-2.6.0.tgz#148d742b25e2565f7e80870a0c92aea9be1b90ea" + dependencies: + cheerio "^0.22.0" + function.prototype.name "^1.0.0" + in-publish "^2.0.0" + is-subset "^0.1.1" + lodash "^4.16.4" + object-is "^1.0.1" + object.assign "^4.0.4" + object.entries "^1.0.3" + object.values "^1.0.3" + uuid "^2.0.3" + +errno@^0.1.3, "errno@>=0.1.1 <0.2.0-0": + version "0.1.4" + resolved "http://registry.npm.taobao.org/errno/download/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" + dependencies: + prr "~0.0.0" + +error-ex@^1.2.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/error-ex/download/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9" + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.3.2: + version "1.6.1" + resolved "http://registry.npm.taobao.org/es-abstract/download/es-abstract-1.6.1.tgz#bb8a2064120abcf928a086ea3d9043114285ec99" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.0" + is-callable "^1.1.3" + is-regex "^1.0.3" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/es-to-primitive/download/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" + +es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0.10.7: + version "0.10.12" + resolved "http://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.12.tgz#aa84641d4db76b62abba5e45fd805ecbab140047" + dependencies: + es6-iterator "2" + es6-symbol "~3.1" + +es6-iterator@2: + version "2.0.0" + resolved "http://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac" + dependencies: + d "^0.1.1" + es5-ext "^0.10.7" + es6-symbol "3" + +es6-map@^0.1.3: + version "0.1.4" + resolved "http://registry.npm.taobao.org/es6-map/download/es6-map-0.1.4.tgz#a34b147be224773a4d7da8072794cefa3632b897" + dependencies: + d "~0.1.1" + es5-ext "~0.10.11" + es6-iterator "2" + es6-set "~0.1.3" + es6-symbol "~3.1.0" + event-emitter "~0.3.4" + +es6-set@~0.1.3: + version "0.1.4" + resolved "http://registry.npm.taobao.org/es6-set/download/es6-set-0.1.4.tgz#9516b6761c2964b92ff479456233a247dc707ce8" + dependencies: + d "~0.1.1" + es5-ext "~0.10.11" + es6-iterator "2" + es6-symbol "3" + event-emitter "~0.3.4" + +es6-symbol@~3.1, es6-symbol@~3.1.0, es6-symbol@3: + version "3.1.0" + resolved "http://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa" + dependencies: + d "~0.1.1" + es5-ext "~0.10.11" + +es6-weak-map@^2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/es6-weak-map/download/es6-weak-map-2.0.1.tgz#0d2bbd8827eb5fb4ba8f97fbfea50d43db21ea81" + dependencies: + d "^0.1.1" + es5-ext "^0.10.8" + es6-iterator "2" + es6-symbol "3" + +escape-html@~1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5, escape-string-regexp@1.0.5: + version "1.0.5" + resolved "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escodegen@^1.6.1, escodegen@1.8.x: + version "1.8.1" + resolved "http://registry.npm.taobao.org/escodegen/download/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + dependencies: + esprima "^2.7.1" + estraverse "^1.9.1" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.2.0" + +escope@^3.6.0: + version "3.6.0" + resolved "http://registry.npm.taobao.org/escope/download/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-config-react-app@^0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/eslint-config-react-app/download/eslint-config-react-app-0.3.0.tgz#29a768eda157eb0bc22f8136d36136b8a4374e3d" + +eslint-import-resolver-node@^0.2.0: + version "0.2.3" + resolved "http://registry.npm.taobao.org/eslint-import-resolver-node/download/eslint-import-resolver-node-0.2.3.tgz#5add8106e8c928db2cba232bcd9efa846e3da16c" + dependencies: + debug "^2.2.0" + object-assign "^4.0.1" + resolve "^1.1.6" + +eslint-loader@1.6.0: + version "1.6.0" + resolved "http://registry.npm.taobao.org/eslint-loader/download/eslint-loader-1.6.0.tgz#38f9a1e6c602a4f1f3f3516289726e5d26e6e165" + dependencies: + find-cache-dir "^0.1.1" + loader-utils "^0.2.7" + object-assign "^4.0.1" + +eslint-module-utils@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/eslint-module-utils/download/eslint-module-utils-1.0.0.tgz#c4a57fd3a53efd8426cc2d5550aadab9bbd05fd0" + dependencies: + debug "2.2.0" + pkg-dir "^1.0.0" + +eslint-plugin-flowtype@2.21.0: + version "2.21.0" + resolved "http://registry.npm.taobao.org/eslint-plugin-flowtype/download/eslint-plugin-flowtype-2.21.0.tgz#a47e85abcdd181d37a336054bd552149ae387d9c" + dependencies: + lodash "^4.15.0" + +eslint-plugin-import@2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/eslint-plugin-import/download/eslint-plugin-import-2.0.1.tgz#dcfe96357d476b3f822570d42c29bec66f5d9c5c" + dependencies: + builtin-modules "^1.1.1" + contains-path "^0.1.0" + debug "^2.2.0" + doctrine "1.3.x" + eslint-import-resolver-node "^0.2.0" + eslint-module-utils "^1.0.0" + has "^1.0.1" + lodash.cond "^4.3.0" + minimatch "^3.0.3" + pkg-up "^1.0.0" + +eslint-plugin-jsx-a11y@2.2.3: + version "2.2.3" + resolved "http://registry.npm.taobao.org/eslint-plugin-jsx-a11y/download/eslint-plugin-jsx-a11y-2.2.3.tgz#4e35cb71b8a7db702ac415c806eb8e8d9ea6c65d" + dependencies: + damerau-levenshtein "^1.0.0" + jsx-ast-utils "^1.0.0" + object-assign "^4.0.1" + +eslint-plugin-react@6.4.1: + version "6.4.1" + resolved "http://registry.npm.taobao.org/eslint-plugin-react/download/eslint-plugin-react-6.4.1.tgz#7d1aade747db15892f71eee1fea4addf97bcfa2b" + dependencies: + doctrine "^1.2.2" + jsx-ast-utils "^1.3.1" + +eslint@3.8.1: + version "3.8.1" + resolved "http://registry.npm.taobao.org/eslint/download/eslint-3.8.1.tgz#7d02db44cd5aaf4fa7aa489e1f083baa454342ba" + dependencies: + chalk "^1.1.3" + concat-stream "^1.4.6" + debug "^2.1.1" + doctrine "^1.2.2" + escope "^3.6.0" + espree "^3.3.1" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + glob "^7.0.3" + globals "^9.2.0" + ignore "^3.1.5" + imurmurhash "^0.1.4" + inquirer "^0.12.0" + is-my-json-valid "^2.10.0" + is-resolvable "^1.0.0" + js-yaml "^3.5.1" + json-stable-stringify "^1.0.0" + levn "^0.3.0" + lodash "^4.0.0" + mkdirp "^0.5.0" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.1" + pluralize "^1.2.1" + progress "^1.1.8" + require-uncached "^1.0.2" + shelljs "^0.6.0" + strip-bom "^3.0.0" + strip-json-comments "~1.0.1" + table "^3.7.8" + text-table "~0.2.0" + user-home "^2.0.0" + +espree@^3.3.1: + version "3.3.2" + resolved "http://registry.npm.taobao.org/espree/download/espree-3.3.2.tgz#dbf3fadeb4ecb4d4778303e50103b3d36c88b89c" + dependencies: + acorn "^4.0.1" + acorn-jsx "^3.0.0" + +esprima@^2.6.0, esprima@^2.7.1, esprima@2.7.x: + version "2.7.3" + resolved "http://registry.npm.taobao.org/esprima/download/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +esprima@~3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/esprima/download/esprima-3.0.0.tgz#53cf247acda77313e551c3aa2e73342d3fb4f7d9" + +esrecurse@^4.1.0: + version "4.1.0" + resolved "http://registry.npm.taobao.org/esrecurse/download/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" + dependencies: + estraverse "~4.1.0" + object-assign "^4.0.1" + +estraverse@^1.9.1: + version "1.9.3" + resolved "http://registry.npm.taobao.org/estraverse/download/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + +estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "http://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +estraverse@~4.1.0: + version "4.1.1" + resolved "http://registry.npm.taobao.org/estraverse/download/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" + +esutils@^2.0.0, esutils@^2.0.2: + version "2.0.2" + resolved "http://registry.npm.taobao.org/esutils/download/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +etag@~1.7.0: + version "1.7.0" + resolved "http://registry.npm.taobao.org/etag/download/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8" + +event-emitter@~0.3.4: + version "0.3.4" + resolved "http://registry.npm.taobao.org/event-emitter/download/event-emitter-0.3.4.tgz#8d63ddfb4cfe1fae3b32ca265c4c720222080bb5" + dependencies: + d "~0.1.1" + es5-ext "~0.10.7" + +eventemitter3@1.x.x: + version "1.2.0" + resolved "http://registry.npm.taobao.org/eventemitter3/download/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" + +events@^1.0.0: + version "1.1.1" + resolved "http://registry.npm.taobao.org/events/download/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + +eventsource@^0.1.3, eventsource@~0.1.6: + version "0.1.6" + resolved "http://registry.npm.taobao.org/eventsource/download/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" + dependencies: + original ">=0.0.5" + +exec-sh@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/exec-sh/download/exec-sh-0.2.0.tgz#14f75de3f20d286ef933099b2ce50a90359cef10" + dependencies: + merge "^1.1.3" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "http://registry.npm.taobao.org/exit-hook/download/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "http://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +express@^4.13.3: + version "4.14.0" + resolved "http://registry.npm.taobao.org/express/download/express-4.14.0.tgz#c1ee3f42cdc891fb3dc650a8922d51ec847d0d66" + dependencies: + accepts "~1.3.3" + array-flatten "1.1.1" + content-disposition "0.5.1" + content-type "~1.0.2" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "~2.2.0" + depd "~1.1.0" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.7.0" + finalhandler "0.5.0" + fresh "0.3.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.1" + path-to-regexp "0.1.7" + proxy-addr "~1.1.2" + qs "6.2.0" + range-parser "~1.2.0" + send "0.14.1" + serve-static "~1.11.1" + type-is "~1.6.13" + utils-merge "1.0.0" + vary "~1.1.0" + +extend@~3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/extend/download/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" + +extglob@^0.3.1: + version "0.3.2" + resolved "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extract-text-webpack-plugin@1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/extract-text-webpack-plugin/download/extract-text-webpack-plugin-1.0.1.tgz#c95bf3cbaac49dc96f1dc6e072549fbb654ccd2c" + dependencies: + async "^1.5.0" + loader-utils "^0.2.3" + webpack-sources "^0.1.0" + +extsprintf@1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" + +fast-levenshtein@~2.0.4: + version "2.0.5" + resolved "http://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.5.tgz#bd33145744519ab1c36c3ee9f31f08e9079b67f2" + +fastparse@^1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/fastparse/download/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "http://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.0: + version "0.11.0" + resolved "http://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.0.tgz#d9ccf0e789e7db725d74bc4877d23aa42972ac50" + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.7.3: + version "0.7.3" + resolved "http://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.7.3.tgz#cc4074c7f4a4dfd03af54dd65c354b135132ce11" + dependencies: + websocket-driver ">=0.3.6" + +fb-watchman@^1.8.0, fb-watchman@^1.9.0: + version "1.9.0" + resolved "http://registry.npm.taobao.org/fb-watchman/download/fb-watchman-1.9.0.tgz#6f268f1f347a6b3c875d1e89da7e1ed79adfc0ec" + dependencies: + bser "^1.0.2" + +fbjs@^0.8.4: + version "0.8.6" + resolved "http://registry.npm.taobao.org/fbjs/download/fbjs-0.8.6.tgz#7eb67d6986b2d5007a9b6e92e0e7cb6f75cad290" + dependencies: + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + ua-parser-js "^0.7.9" + +figures@^1.3.5: + version "1.7.0" + resolved "http://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-loader@0.9.0: + version "0.9.0" + resolved "http://registry.npm.taobao.org/file-loader/download/file-loader-0.9.0.tgz#1d2daddd424ce6d1b07cfe3f79731bed3617ab42" + dependencies: + loader-utils "~0.2.5" + +filename-regex@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" + +fileset@0.2.x: + version "0.2.1" + resolved "http://registry.npm.taobao.org/fileset/download/fileset-0.2.1.tgz#588ef8973c6623b2a76df465105696b96aac8067" + dependencies: + glob "5.x" + minimatch "2.x" + +filesize@3.3.0: + version "3.3.0" + resolved "http://registry.npm.taobao.org/filesize/download/filesize-3.3.0.tgz#53149ea3460e3b2e024962a51648aa572cf98122" + +fill-range@^2.1.0: + version "2.2.3" + resolved "http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +finalhandler@0.5.0: + version "0.5.0" + resolved "http://registry.npm.taobao.org/finalhandler/download/finalhandler-0.5.0.tgz#e9508abece9b6dba871a6942a1d7911b91911ac7" + dependencies: + debug "~2.2.0" + escape-html "~1.0.3" + on-finished "~2.3.0" + statuses "~1.3.0" + unpipe "~1.0.0" + +find-cache-dir@^0.1.1, find-cache-dir@0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-up@^1.0.0, find-up@^1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +flat-cache@^1.2.1: + version "1.2.1" + resolved "http://registry.npm.taobao.org/flat-cache/download/flat-cache-1.2.1.tgz#6c837d6225a7de5659323740b36d5361f71691ff" + dependencies: + circular-json "^0.3.0" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + +flatten@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/flatten/download/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" + +for-in@^0.1.5: + version "0.1.6" + resolved "http://registry.npm.taobao.org/for-in/download/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" + +for-own@^0.1.4: + version "0.1.4" + resolved "http://registry.npm.taobao.org/for-own/download/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" + dependencies: + for-in "^0.1.5" + +foreach@^2.0.5: + version "2.0.5" + resolved "http://registry.npm.taobao.org/foreach/download/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "http://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.1.1: + version "2.1.2" + resolved "http://registry.npm.taobao.org/form-data/download/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +forwarded@~0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/forwarded/download/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" + +fresh@0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/fresh/download/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f" + +fs-extra@^0.30.0, fs-extra@0.30.0: + version "0.30.0" + resolved "http://registry.npm.taobao.org/fs-extra/download/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.0.15" + resolved "http://registry.npm.taobao.org/fsevents/download/fsevents-1.0.15.tgz#fa63f590f3c2ad91275e4972a6cea545fb0aae44" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.29" + +fsevents@1.0.14: + version "1.0.14" + resolved "http://registry.npm.taobao.org/fsevents/download/fsevents-1.0.14.tgz#558e8cc38643d8ef40fe45158486d0d25758eee4" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.29" + +fstream-ignore@~1.0.5: + version "1.0.5" + resolved "http://registry.npm.taobao.org/fstream-ignore/download/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: + version "1.0.10" + resolved "http://registry.npm.taobao.org/fstream/download/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.0.2, function-bind@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/function-bind/download/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" + +function.prototype.name@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/function.prototype.name/download/function.prototype.name-1.0.0.tgz#5f523ca64e491a5f95aba80cc1e391080a14482e" + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.0" + is-callable "^1.1.2" + +gauge@~2.6.0: + version "2.6.0" + resolved "http://registry.npm.taobao.org/gauge/download/gauge-2.6.0.tgz#d35301ad18e96902b4751dcbbe40f4218b942a46" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-color "^0.1.7" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +generate-function@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/generate-function/download/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/generate-object-property/download/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + +get-caller-file@^1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + +getpass@^0.1.1: + version "0.1.6" + resolved "http://registry.npm.taobao.org/getpass/download/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob@^5.0.15, glob@5.x: + version "5.0.15" + resolved "http://registry.npm.taobao.org/glob/download/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.3, glob@^7.0.5: + version "7.1.1" + resolved "http://registry.npm.taobao.org/glob/download/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^9.0.0, globals@^9.2.0: + version "9.13.0" + resolved "http://registry.npm.taobao.org/globals/download/globals-9.13.0.tgz#d97706b61600d8dbe94708c367d3fdcf48470b8f" + +globby@^5.0.0: + version "5.0.0" + resolved "http://registry.npm.taobao.org/globby/download/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, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.1.10" + resolved "http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.10.tgz#f2d720c22092f743228775c75e3612632501f131" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "http://registry.npm.taobao.org/graceful-readlink/download/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +growly@^1.2.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/growly/download/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + +gzip-size@3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/gzip-size/download/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520" + dependencies: + duplexer "^0.1.1" + +handlebars@^4.0.1, handlebars@^4.0.3: + version "4.0.6" + resolved "http://registry.npm.taobao.org/handlebars/download/handlebars-4.0.6.tgz#2ce4484850537f9c97a8026d5399b935c4ed4ed7" + dependencies: + async "^1.4.0" + optimist "^0.6.1" + source-map "^0.4.4" + optionalDependencies: + uglify-js "^2.6" + +har-validator@~2.0.6: + version "2.0.6" + resolved "http://registry.npm.taobao.org/har-validator/download/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" + dependencies: + chalk "^1.1.1" + commander "^2.9.0" + is-my-json-valid "^2.12.4" + pinkie-promise "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-color@^0.1.7: + version "0.1.7" + resolved "http://registry.npm.taobao.org/has-color/download/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + +has-flag@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "http://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/has/download/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + +hawk@~3.1.3: + version "3.1.3" + resolved "http://registry.npm.taobao.org/hawk/download/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +he@1.1.x: + version "1.1.0" + resolved "http://registry.npm.taobao.org/he/download/he-1.1.0.tgz#29319d49beec13a9b1f3c4f9b2a6dde4859bb2a7" + +header-case@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/header-case/download/header-case-1.0.0.tgz#d9e335909505d56051ec16a0106821889e910781" + dependencies: + no-case "^2.2.0" + upper-case "^1.1.3" + +hoek@2.x.x: + version "2.16.3" + resolved "http://registry.npm.taobao.org/hoek/download/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +hoist-non-react-statics@^1.0.3: + version "1.2.0" + resolved "http://registry.npm.taobao.org/hoist-non-react-statics/download/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/home-or-tmp/download/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hosted-git-info@^2.1.4: + version "2.1.5" + resolved "http://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b" + +html-comment-regex@^1.1.0: + version "1.1.1" + resolved "http://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" + +html-encoding-sniffer@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/html-encoding-sniffer/download/html-encoding-sniffer-1.0.1.tgz#79bf7a785ea495fe66165e734153f363ff5437da" + dependencies: + whatwg-encoding "^1.0.1" + +html-entities@1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/html-entities/download/html-entities-1.2.0.tgz#41948caf85ce82fed36e4e6a0ed371a6664379e2" + +html-minifier@^3.1.0: + version "3.1.1" + resolved "http://registry.npm.taobao.org/html-minifier/download/html-minifier-3.1.1.tgz#73bd0600fc9d68f536b13a788360245b6d76eb9c" + dependencies: + change-case "3.0.x" + clean-css "3.4.x" + commander "2.9.x" + he "1.1.x" + ncname "1.0.x" + relateurl "0.2.x" + uglify-js "2.7.x" + +html-webpack-plugin@2.24.0: + version "2.24.0" + resolved "http://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-2.24.0.tgz#53697cea79a9f3cd1f8c239ac71f949d5673cacb" + dependencies: + bluebird "^3.4.6" + html-minifier "^3.1.0" + loader-utils "^0.2.16" + lodash "^4.16.4" + pretty-error "^2.0.2" + toposort "^1.0.0" + +htmlparser2@^3.9.1: + version "3.9.2" + resolved "http://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" + dependencies: + domelementtype "^1.3.0" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^2.0.2" + +htmlparser2@~3.3.0: + version "3.3.0" + resolved "http://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" + dependencies: + domelementtype "1" + domhandler "2.1" + domutils "1.1" + readable-stream "1.0" + +http-browserify@^1.3.2: + version "1.7.0" + resolved "http://registry.npm.taobao.org/http-browserify/download/http-browserify-1.7.0.tgz#33795ade72df88acfbfd36773cefeda764735b20" + dependencies: + Base64 "~0.2.0" + inherits "~2.0.1" + +http-errors@~1.5.0: + version "1.5.0" + resolved "http://registry.npm.taobao.org/http-errors/download/http-errors-1.5.0.tgz#b1cb3d8260fd8e2386cad3189045943372d48211" + dependencies: + inherits "2.0.1" + setprototypeof "1.0.1" + statuses ">= 1.3.0 < 2" + +http-proxy-middleware@~0.17.1, http-proxy-middleware@0.17.2: + version "0.17.2" + resolved "http://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.17.2.tgz#572d517a6d2fb1063a469de294eed96066352007" + dependencies: + http-proxy "^1.15.1" + is-glob "^3.0.0" + lodash "^4.16.2" + micromatch "^2.3.11" + +http-proxy@^1.15.1: + version "1.15.2" + resolved "http://registry.npm.taobao.org/http-proxy/download/http-proxy-1.15.2.tgz#642fdcaffe52d3448d2bda3b0079e9409064da31" + dependencies: + eventemitter3 "1.x.x" + requires-port "1.x.x" + +http-signature@~1.1.0: + version "1.1.1" + resolved "http://registry.npm.taobao.org/http-signature/download/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@0.0.0: + version "0.0.0" + resolved "http://registry.npm.taobao.org/https-browserify/download/https-browserify-0.0.0.tgz#b3ffdfe734b2a3d4a9efd58e8654c91fce86eafd" + +iconv-lite@^0.4.13, iconv-lite@~0.4.13, iconv-lite@0.4.13: + version "0.4.13" + resolved "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" + +icss-replace-symbols@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.0.2.tgz#cb0b6054eb3af6edc9ab1d62d01933e2d4c8bfa5" + +ieee754@^1.1.4: + version "1.1.8" + resolved "http://registry.npm.taobao.org/ieee754/download/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + +ignore@^3.1.5: + version "3.2.0" + resolved "http://registry.npm.taobao.org/ignore/download/ignore-3.2.0.tgz#8d88f03c3002a0ac52114db25d2c673b0bf1e435" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "http://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +in-publish@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/in-publish/download/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + +indexof@0.0.1: + version "0.0.1" + resolved "http://registry.npm.taobao.org/indexof/download/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4: + version "1.0.6" + resolved "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@2: + version "2.0.3" + resolved "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@~1.3.0: + version "1.3.4" + resolved "http://registry.npm.taobao.org/ini/download/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +inquirer@^0.12.0: + version "0.12.0" + resolved "http://registry.npm.taobao.org/inquirer/download/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" + dependencies: + ansi-escapes "^1.1.0" + ansi-regex "^2.0.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^2.0.0" + figures "^1.3.5" + lodash "^4.3.0" + readline2 "^1.0.1" + run-async "^0.1.0" + rx-lite "^3.1.2" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + +interpret@^0.6.4: + version "0.6.6" + resolved "http://registry.npm.taobao.org/interpret/download/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" + +invariant@^2.0.0, invariant@^2.1.0, invariant@^2.2.0, invariant@^2.2.1: + version "2.2.2" + resolved "http://registry.npm.taobao.org/invariant/download/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +ipaddr.js@1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.1.1.tgz#c791d95f52b29c1247d5df80ada39b8a73647230" + +is-absolute-url@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.0.0.tgz#9c4b20b0e5c0cbef9a479a367ede6f991679f359" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.0.2: + version "1.1.4" + resolved "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-builtin-module/download/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-callable@^1.1.1, is-callable@^1.1.2, is-callable@^1.1.3: + version "1.1.3" + resolved "http://registry.npm.taobao.org/is-callable/download/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + +is-ci@^1.0.9: + version "1.0.10" + resolved "http://registry.npm.taobao.org/is-ci/download/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" + dependencies: + ci-info "^1.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-dotfile@^1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-extglob@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.0.tgz#33411a482b046bf95e6b0cb27ee2711af4cf15ad" + +is-finite@^1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.0.0: + version "3.1.0" + resolved "http://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-lower-case@^1.1.0: + version "1.1.3" + resolved "http://registry.npm.taobao.org/is-lower-case/download/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393" + dependencies: + lower-case "^1.1.0" + +is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: + version "2.15.0" + resolved "http://registry.npm.taobao.org/is-my-json-valid/download/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-number@^2.0.2, is-number@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + dependencies: + path-is-inside "^1.0.1" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-property@^1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/is-property/download/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + +is-regex@^1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/is-regex/download/is-regex-1.0.3.tgz#0d55182bddf9f2fde278220aec3a75642c908637" + +is-resolvable@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" + dependencies: + tryit "^1.0.1" + +is-stream@^1.0.1: + version "1.1.0" + resolved "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-subset@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/is-subset/download/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + +is-svg@^2.0.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/is-svg/download/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-upper-case@^1.1.0: + version "1.1.2" + resolved "http://registry.npm.taobao.org/is-upper-case/download/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" + dependencies: + upper-case "^1.1.0" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "http://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isarray@0.0.1: + version "0.0.1" + resolved "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isexe@^1.1.1: + version "1.1.2" + resolved "http://registry.npm.taobao.org/isexe/download/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" + +isobject@^2.0.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isomorphic-fetch@^2.1.1: + version "2.2.1" + resolved "http://registry.npm.taobao.org/isomorphic-fetch/download/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +istanbul-api@^1.0.0-aplha.10: + version "1.0.0-aplha.10" + resolved "http://registry.npm.taobao.org/istanbul-api/download/istanbul-api-1.0.0-aplha.10.tgz#902edf5cf5404e0eba7e00ef46408488a0d3e337" + dependencies: + async "1.x" + clone "^1.0.2" + fileset "0.2.x" + istanbul-lib-coverage "^1.0.0-alpha" + istanbul-lib-hook "^1.0.0-alpha" + istanbul-lib-instrument "^1.0.0-alpha" + istanbul-lib-report "^1.0.0-alpha" + istanbul-lib-source-maps "^1.0.0-alpha" + istanbul-reports "^1.0.0-alpha" + js-yaml "3.x" + mkdirp "0.5.x" + once "1.x" + +istanbul-lib-coverage@^1.0.0, istanbul-lib-coverage@^1.0.0-alpha, istanbul-lib-coverage@^1.0.0-alpha.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-1.0.0.tgz#c3f9b6d226da12424064cce87fce0fb57fdfa7a2" + +istanbul-lib-hook@^1.0.0-alpha: + version "1.0.0-alpha.4" + resolved "http://registry.npm.taobao.org/istanbul-lib-hook/download/istanbul-lib-hook-1.0.0-alpha.4.tgz#8c5bb9f6fbd8526e0ae6cf639af28266906b938f" + dependencies: + append-transform "^0.3.0" + +istanbul-lib-instrument@^1.0.0-alpha, istanbul-lib-instrument@^1.1.1, istanbul-lib-instrument@^1.1.4: + version "1.3.0" + resolved "http://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-1.3.0.tgz#19f0a973397454989b98330333063a5b56df0e58" + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.13.0" + istanbul-lib-coverage "^1.0.0" + semver "^5.3.0" + +istanbul-lib-report@^1.0.0-alpha: + version "1.0.0-alpha.3" + resolved "http://registry.npm.taobao.org/istanbul-lib-report/download/istanbul-lib-report-1.0.0-alpha.3.tgz#32d5f6ec7f33ca3a602209e278b2e6ff143498af" + dependencies: + async "^1.4.2" + istanbul-lib-coverage "^1.0.0-alpha" + mkdirp "^0.5.1" + path-parse "^1.0.5" + rimraf "^2.4.3" + supports-color "^3.1.2" + +istanbul-lib-source-maps@^1.0.0-alpha: + version "1.1.0" + resolved "http://registry.npm.taobao.org/istanbul-lib-source-maps/download/istanbul-lib-source-maps-1.1.0.tgz#9d429218f35b823560ea300a96ff0c3bbdab785f" + dependencies: + istanbul-lib-coverage "^1.0.0-alpha.0" + mkdirp "^0.5.1" + rimraf "^2.4.4" + source-map "^0.5.3" + +istanbul-reports@^1.0.0-alpha: + version "1.0.0" + resolved "http://registry.npm.taobao.org/istanbul-reports/download/istanbul-reports-1.0.0.tgz#24b4eb2b1d29d50f103b369bd422f6e640aa0777" + dependencies: + handlebars "^4.0.3" + +istanbul@^0.4.5: + version "0.4.5" + resolved "http://registry.npm.taobao.org/istanbul/download/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b" + dependencies: + abbrev "1.0.x" + async "1.x" + escodegen "1.8.x" + esprima "2.7.x" + glob "^5.0.15" + handlebars "^4.0.1" + js-yaml "3.x" + mkdirp "0.5.x" + nopt "3.x" + once "1.x" + resolve "1.1.x" + supports-color "^3.1.0" + which "^1.1.1" + wordwrap "^1.0.0" + +jasmine-check@^0.1.4: + version "0.1.5" + resolved "http://registry.npm.taobao.org/jasmine-check/download/jasmine-check-0.1.5.tgz#dbad7eec56261c4b3d175ada55fe59b09ac9e415" + dependencies: + testcheck "^0.1.0" + +jest-changed-files@^16.0.0: + version "16.0.0" + resolved "http://registry.npm.taobao.org/jest-changed-files/download/jest-changed-files-16.0.0.tgz#7931deff4424182b8173d80e06800d7363b19c45" + +jest-cli@^16.0.2: + version "16.0.2" + resolved "http://registry.npm.taobao.org/jest-cli/download/jest-cli-16.0.2.tgz#d439b28affa7189aa3d046d2af931f7ebb9af69d" + dependencies: + ansi-escapes "^1.4.0" + callsites "^2.0.0" + chalk "^1.1.1" + graceful-fs "^4.1.6" + is-ci "^1.0.9" + istanbul-api "^1.0.0-aplha.10" + istanbul-lib-coverage "^1.0.0" + istanbul-lib-instrument "^1.1.1" + jest-changed-files "^16.0.0" + jest-config "^16.0.2" + jest-environment-jsdom "^16.0.2" + jest-file-exists "^15.0.0" + jest-haste-map "^16.0.2" + jest-jasmine2 "^16.0.2" + jest-mock "^16.0.2" + jest-resolve "^16.0.2" + jest-resolve-dependencies "^16.0.2" + jest-runtime "^16.0.2" + jest-snapshot "^16.0.2" + jest-util "^16.0.2" + json-stable-stringify "^1.0.0" + node-notifier "^4.6.1" + sane "~1.4.1" + strip-ansi "^3.0.1" + throat "^3.0.0" + which "^1.1.1" + worker-farm "^1.3.1" + yargs "^5.0.0" + +jest-config@^16.0.2: + version "16.0.2" + resolved "http://registry.npm.taobao.org/jest-config/download/jest-config-16.0.2.tgz#8e82a9c08846f23dc7fd42b5c0a1f596c385772a" + dependencies: + chalk "^1.1.1" + istanbul "^0.4.5" + jest-environment-jsdom "^16.0.2" + jest-environment-node "^16.0.2" + jest-jasmine2 "^16.0.2" + jest-mock "^16.0.2" + jest-resolve "^16.0.2" + jest-util "^16.0.2" + json-stable-stringify "^1.0.0" + +jest-diff@^16.0.0: + version "16.0.0" + resolved "http://registry.npm.taobao.org/jest-diff/download/jest-diff-16.0.0.tgz#4a5d13b1e36c5b8020d5d9e69639e486a675ce14" + dependencies: + chalk "^1.1.3" + diff "^3.0.0" + jest-matcher-utils "^16.0.0" + pretty-format "~4.2.1" + +jest-environment-jsdom@^16.0.2: + version "16.0.2" + resolved "http://registry.npm.taobao.org/jest-environment-jsdom/download/jest-environment-jsdom-16.0.2.tgz#548d883b68f8ed0bd6466d8703986296724c1ef7" + dependencies: + jest-mock "^16.0.2" + jest-util "^16.0.2" + jsdom "^9.8.0" + +jest-environment-node@^16.0.2: + version "16.0.2" + resolved "http://registry.npm.taobao.org/jest-environment-node/download/jest-environment-node-16.0.2.tgz#eb7b3a4a9c63b728ce023828d4b5661aad8c7a08" + dependencies: + jest-mock "^16.0.2" + jest-util "^16.0.2" + +jest-file-exists@^15.0.0: + version "15.0.0" + resolved "http://registry.npm.taobao.org/jest-file-exists/download/jest-file-exists-15.0.0.tgz#b7fefdd3f4b227cb686bb156ecc7661ee6935a88" + +jest-haste-map@^16.0.2: + version "16.0.2" + resolved "http://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-16.0.2.tgz#4562915b25171ae2d0d75118c992f0e97536a2ed" + dependencies: + fb-watchman "^1.9.0" + graceful-fs "^4.1.6" + multimatch "^2.1.0" + worker-farm "^1.3.1" + +jest-jasmine2@^16.0.2: + version "16.0.2" + resolved "http://registry.npm.taobao.org/jest-jasmine2/download/jest-jasmine2-16.0.2.tgz#c91ae170d127aae22180dbfe181d77655a5da8c3" + dependencies: + graceful-fs "^4.1.6" + jasmine-check "^0.1.4" + jest-matchers "^16.0.2" + jest-snapshot "^16.0.2" + jest-util "^16.0.2" + +jest-matcher-utils@^16.0.0: + version "16.0.0" + resolved "http://registry.npm.taobao.org/jest-matcher-utils/download/jest-matcher-utils-16.0.0.tgz#705af3ff85944bec1c25bc813f427aff8642b0cd" + dependencies: + chalk "^1.1.3" + pretty-format "~4.2.1" + +jest-matchers@^16.0.2: + version "16.0.2" + resolved "http://registry.npm.taobao.org/jest-matchers/download/jest-matchers-16.0.2.tgz#c078c28cfe05b9b1f295f9ab27b5991f1095bbbf" + dependencies: + jest-diff "^16.0.0" + jest-matcher-utils "^16.0.0" + jest-util "^16.0.2" + +jest-mock@^16.0.2: + version "16.0.2" + resolved "http://registry.npm.taobao.org/jest-mock/download/jest-mock-16.0.2.tgz#97b533343295d0082e9474a73ac4eb474d1636fe" + +jest-resolve-dependencies@^16.0.2: + version "16.0.2" + resolved "http://registry.npm.taobao.org/jest-resolve-dependencies/download/jest-resolve-dependencies-16.0.2.tgz#b204166d50141469d10667dc216239c0be865729" + dependencies: + jest-file-exists "^15.0.0" + jest-resolve "^16.0.2" + +jest-resolve@^16.0.2: + version "16.0.2" + resolved "http://registry.npm.taobao.org/jest-resolve/download/jest-resolve-16.0.2.tgz#46b92b9c2a44aa7ddd9a6b73dc234e9503e8c609" + dependencies: + browser-resolve "^1.11.2" + jest-file-exists "^15.0.0" + jest-haste-map "^16.0.2" + resolve "^1.1.6" + +jest-runtime@^16.0.2: + version "16.0.2" + resolved "http://registry.npm.taobao.org/jest-runtime/download/jest-runtime-16.0.2.tgz#a741e8d55a7b5f011bbe17a22c673a83d278a45d" + dependencies: + babel-core "^6.11.4" + babel-jest "^16.0.0" + babel-plugin-istanbul "^2.0.0" + chalk "^1.1.3" + graceful-fs "^4.1.6" + jest-config "^16.0.2" + jest-file-exists "^15.0.0" + jest-haste-map "^16.0.2" + jest-mock "^16.0.2" + jest-resolve "^16.0.2" + jest-snapshot "^16.0.2" + jest-util "^16.0.2" + json-stable-stringify "^1.0.0" + multimatch "^2.1.0" + yargs "^5.0.0" + +jest-snapshot@^16.0.2: + version "16.0.2" + resolved "http://registry.npm.taobao.org/jest-snapshot/download/jest-snapshot-16.0.2.tgz#f137a4176d661bd4058910850191d1816bebdaae" + dependencies: + jest-diff "^16.0.0" + jest-file-exists "^15.0.0" + jest-matcher-utils "^16.0.0" + jest-util "^16.0.2" + natural-compare "^1.4.0" + pretty-format "~4.2.1" + +jest-util@^16.0.2: + version "16.0.2" + resolved "http://registry.npm.taobao.org/jest-util/download/jest-util-16.0.2.tgz#db5123358278e7a34a6d9f837409d649a0db5d54" + dependencies: + chalk "^1.1.1" + diff "^3.0.0" + graceful-fs "^4.1.6" + jest-file-exists "^15.0.0" + jest-mock "^16.0.2" + mkdirp "^0.5.1" + +jest@16.0.2: + version "16.0.2" + resolved "http://registry.npm.taobao.org/jest/download/jest-16.0.2.tgz#4a2f7f3527465168a0bafe0c3d55055188253f3a" + dependencies: + jest-cli "^16.0.2" + +jodid25519@^1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/jodid25519/download/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" + dependencies: + jsbn "~0.1.0" + +js-base64@^2.1.9: + version "2.1.9" + resolved "http://registry.npm.taobao.org/js-base64/download/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" + +js-tokens@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/js-tokens/download/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" + +js-yaml@^3.4.3, js-yaml@^3.5.1, js-yaml@3.x: + version "3.7.0" + resolved "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + +js-yaml@~3.6.1: + version "3.6.1" + resolved "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + +jsbn@~0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/jsbn/download/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" + +jsdom@^9.8.0: + version "9.8.3" + resolved "http://registry.npm.taobao.org/jsdom/download/jsdom-9.8.3.tgz#fde29c109c32a1131e0b6c65914e64198f97c370" + dependencies: + abab "^1.0.0" + acorn "^2.4.0" + acorn-globals "^1.0.4" + array-equal "^1.0.0" + content-type-parser "^1.0.1" + cssom ">= 0.3.0 < 0.4.0" + cssstyle ">= 0.2.36 < 0.3.0" + escodegen "^1.6.1" + html-encoding-sniffer "^1.0.1" + iconv-lite "^0.4.13" + nwmatcher ">= 1.3.7 < 2.0.0" + parse5 "^1.5.1" + request "^2.55.0" + sax "^1.1.4" + symbol-tree ">= 3.1.0 < 4.0.0" + tough-cookie "^2.3.1" + webidl-conversions "^3.0.1" + whatwg-encoding "^1.0.1" + whatwg-url "^3.0.0" + xml-name-validator ">= 2.0.1 < 3.0.0" + +jsesc@^1.3.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@~0.5.0: + version "0.5.0" + resolved "http://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-loader@0.5.4: + version "0.5.4" + resolved "http://registry.npm.taobao.org/json-loader/download/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" + +json-schema@0.2.3: + version "0.2.3" + resolved "http://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json3@^3.3.2: + version "3.3.2" + resolved "http://registry.npm.taobao.org/json3/download/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + +json5@^0.4.0: + version "0.4.0" + resolved "http://registry.npm.taobao.org/json5/download/json5-0.4.0.tgz#054352e4c4c80c86c0923877d449de176a732c8d" + +json5@^0.5.0: + version "0.5.0" + resolved "http://registry.npm.taobao.org/json5/download/json5-0.5.0.tgz#9b20715b026cbe3778fd769edccd822d8332a5b2" + +jsonfile@^2.1.0: + version "2.4.0" + resolved "http://registry.npm.taobao.org/jsonfile/download/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "http://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonpointer@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/jsonpointer/download/jsonpointer-4.0.0.tgz#6661e161d2fc445f19f98430231343722e1fcbd5" + +jsprim@^1.2.2: + version "1.3.1" + resolved "http://registry.npm.taobao.org/jsprim/download/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" + dependencies: + extsprintf "1.0.2" + json-schema "0.2.3" + verror "1.3.6" + +jsx-ast-utils@^1.0.0, jsx-ast-utils@^1.3.1: + version "1.3.4" + resolved "http://registry.npm.taobao.org/jsx-ast-utils/download/jsx-ast-utils-1.3.4.tgz#0257ed1cc4b1e65b39d7d9940f9fb4f20f7ba0a9" + dependencies: + acorn-jsx "^3.0.1" + object-assign "^4.1.0" + +keycode@^2.1.2: + version "2.1.7" + resolved "http://registry.npm.taobao.org/keycode/download/keycode-2.1.7.tgz#7b9255919f6cff562b09a064d222dca70b020f5c" + +kind-of@^3.0.2: + version "3.0.4" + resolved "http://registry.npm.taobao.org/kind-of/download/kind-of-3.0.4.tgz#7b8ecf18a4e17f8269d73b501c9f232c96887a74" + dependencies: + is-buffer "^1.0.2" + +klaw@^1.0.0: + version "1.3.1" + resolved "http://registry.npm.taobao.org/klaw/download/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + optionalDependencies: + graceful-fs "^4.1.9" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "http://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lcid@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/lcid/download/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0.2.3, loader-utils@^0.2.7, loader-utils@~0.2.2, loader-utils@~0.2.5, loader-utils@0.2.x: + version "0.2.16" + resolved "http://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +lodash-es@^4.2.1: + version "4.17.2" + resolved "http://registry.npm.taobao.org/lodash-es/download/lodash-es-4.17.2.tgz#59011b585166e613eb9dd5fc256b2cd1a30f3712" + +lodash._arraycopy@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/lodash._arraycopy/download/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1" + +lodash._arrayeach@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/lodash._arrayeach/download/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e" + +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "http://registry.npm.taobao.org/lodash._baseassign/download/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._baseclone@^3.0.0: + version "3.3.0" + resolved "http://registry.npm.taobao.org/lodash._baseclone/download/lodash._baseclone-3.3.0.tgz#303519bf6393fe7e42f34d8b630ef7794e3542b7" + dependencies: + lodash._arraycopy "^3.0.0" + lodash._arrayeach "^3.0.0" + lodash._baseassign "^3.0.0" + lodash._basefor "^3.0.0" + lodash.isarray "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "http://registry.npm.taobao.org/lodash._basecopy/download/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basefor@^3.0.0: + version "3.0.3" + resolved "http://registry.npm.taobao.org/lodash._basefor/download/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2" + +lodash._bindcallback@^3.0.0: + version "3.0.1" + resolved "http://registry.npm.taobao.org/lodash._bindcallback/download/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + +lodash._createcompounder@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/lodash._createcompounder/download/lodash._createcompounder-3.0.0.tgz#5dd2cb55372d6e70e0e2392fb2304d6631091075" + dependencies: + lodash.deburr "^3.0.0" + lodash.words "^3.0.0" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "http://registry.npm.taobao.org/lodash._getnative/download/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._root@^3.0.0: + version "3.0.1" + resolved "http://registry.npm.taobao.org/lodash._root/download/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + +lodash.assign@^4.1.0, lodash.assign@^4.2.0: + version "4.2.0" + resolved "http://registry.npm.taobao.org/lodash.assign/download/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + +lodash.assignin@^4.0.9: + version "4.2.0" + resolved "http://registry.npm.taobao.org/lodash.assignin/download/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" + +lodash.bind@^4.1.4: + version "4.2.1" + resolved "http://registry.npm.taobao.org/lodash.bind/download/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" + +lodash.camelcase@^3.0.1: + version "3.0.1" + resolved "http://registry.npm.taobao.org/lodash.camelcase/download/lodash.camelcase-3.0.1.tgz#932c8b87f8a4377897c67197533282f97aeac298" + dependencies: + lodash._createcompounder "^3.0.0" + +lodash.clonedeep@^3.0.0: + version "3.0.2" + resolved "http://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-3.0.2.tgz#a0a1e40d82a5ea89ff5b147b8444ed63d92827db" + dependencies: + lodash._baseclone "^3.0.0" + lodash._bindcallback "^3.0.0" + +lodash.cond@^4.3.0: + version "4.5.2" + resolved "http://registry.npm.taobao.org/lodash.cond/download/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" + +lodash.deburr@^3.0.0: + version "3.2.0" + resolved "http://registry.npm.taobao.org/lodash.deburr/download/lodash.deburr-3.2.0.tgz#6da8f54334a366a7cf4c4c76ef8d80aa1b365ed5" + dependencies: + lodash._root "^3.0.0" + +lodash.defaults@^4.0.1: + version "4.2.0" + resolved "http://registry.npm.taobao.org/lodash.defaults/download/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + +lodash.filter@^4.4.0: + version "4.6.0" + resolved "http://registry.npm.taobao.org/lodash.filter/download/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" + +lodash.flatten@^4.2.0: + version "4.4.0" + resolved "http://registry.npm.taobao.org/lodash.flatten/download/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + +lodash.foreach@^4.3.0: + version "4.5.0" + resolved "http://registry.npm.taobao.org/lodash.foreach/download/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + +lodash.indexof@^4.0.5: + version "4.0.5" + resolved "http://registry.npm.taobao.org/lodash.indexof/download/lodash.indexof-4.0.5.tgz#53714adc2cddd6ed87638f893aa9b6c24e31ef3c" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "http://registry.npm.taobao.org/lodash.isarguments/download/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "http://registry.npm.taobao.org/lodash.isarray/download/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "http://registry.npm.taobao.org/lodash.keys/download/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.map@^4.4.0: + version "4.6.0" + resolved "http://registry.npm.taobao.org/lodash.map/download/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + +lodash.merge@^4.4.0: + version "4.6.0" + resolved "http://registry.npm.taobao.org/lodash.merge/download/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" + +lodash.pick@^4.2.1: + version "4.4.0" + resolved "http://registry.npm.taobao.org/lodash.pick/download/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + +lodash.pickby@^4.6.0: + version "4.6.0" + resolved "http://registry.npm.taobao.org/lodash.pickby/download/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" + +lodash.reduce@^4.4.0: + version "4.6.0" + resolved "http://registry.npm.taobao.org/lodash.reduce/download/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" + +lodash.reject@^4.4.0: + version "4.6.0" + resolved "http://registry.npm.taobao.org/lodash.reject/download/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" + +lodash.some@^4.4.0: + version "4.6.0" + resolved "http://registry.npm.taobao.org/lodash.some/download/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + +lodash.words@^3.0.0: + version "3.2.0" + resolved "http://registry.npm.taobao.org/lodash.words/download/lodash.words-3.2.0.tgz#4e2a8649bc08745b17c695b1a3ce8fee596623b3" + dependencies: + lodash._root "^3.0.0" + +lodash@^4.0.0, lodash@^4.15.0, lodash@^4.16.2, lodash@^4.16.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, "lodash@>=3.5 <5": + version "4.17.2" + resolved "http://registry.npm.taobao.org/lodash/download/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42" + +longest@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loose-envify@^1.0.0, loose-envify@^1.1.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/loose-envify/download/loose-envify-1.3.0.tgz#6b26248c42f6d4fa4b0d8542f78edfcde35642a8" + dependencies: + js-tokens "^2.0.0" + +lower-case-first@^1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/lower-case-first/download/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1" + dependencies: + lower-case "^1.1.2" + +lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2: + version "1.1.3" + resolved "http://registry.npm.taobao.org/lower-case/download/lower-case-1.1.3.tgz#c92393d976793eee5ba4edb583cf8eae35bd9bfb" + +lru-cache@^4.0.1: + version "4.0.1" + resolved "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.0.1.tgz#1343955edaf2e37d9b9e7ee7241e27c4b9fb72be" + dependencies: + pseudomap "^1.0.1" + yallist "^2.0.0" + +macaddress@^0.2.8: + version "0.2.8" + resolved "http://registry.npm.taobao.org/macaddress/download/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" + +makeerror@1.0.x: + version "1.0.11" + resolved "http://registry.npm.taobao.org/makeerror/download/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + dependencies: + tmpl "1.0.x" + +marked-terminal@^1.6.2: + version "1.7.0" + resolved "http://registry.npm.taobao.org/marked-terminal/download/marked-terminal-1.7.0.tgz#c8c460881c772c7604b64367007ee5f77f125904" + dependencies: + cardinal "^1.0.0" + chalk "^1.1.3" + cli-table "^0.3.1" + lodash.assign "^4.2.0" + node-emoji "^1.4.1" + +marked@^0.3.6: + version "0.3.6" + resolved "http://registry.npm.taobao.org/marked/download/marked-0.3.6.tgz#b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7" + +math-expression-evaluator@^1.2.14: + version "1.2.14" + resolved "http://registry.npm.taobao.org/math-expression-evaluator/download/math-expression-evaluator-1.2.14.tgz#39511771ed9602405fba9affff17eb4d2a3843ab" + dependencies: + lodash.indexof "^4.0.5" + +media-typer@0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +memory-fs@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/memory-fs/download/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" + +memory-fs@~0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/memory-fs/download/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +merge@^1.1.3: + version "1.2.0" + resolved "http://registry.npm.taobao.org/merge/download/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" + +methods@~1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +micromatch@^2.1.5, micromatch@^2.3.11: + version "2.3.11" + resolved "http://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +"mime-db@>= 1.24.0 < 2": + version "1.25.0" + resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.25.0.tgz#c18dbd7c73a5dbf6f44a024dc0d165a1e7b1c392" + +mime-db@~1.24.0: + version "1.24.0" + resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.24.0.tgz#e2d13f939f0016c6e4e9ad25a8652f126c467f0c" + +mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.7: + version "2.1.12" + resolved "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.12.tgz#152ba256777020dd4663f54c2e7bc26381e71729" + dependencies: + mime-db "~1.24.0" + +mime@^1.3.4, mime@1.3.4: + version "1.3.4" + resolved "http://registry.npm.taobao.org/mime/download/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" + +mime@1.2.x: + version "1.2.11" + resolved "http://registry.npm.taobao.org/mime/download/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" + +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, "minimatch@2 || 3": + version "3.0.3" + resolved "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" + dependencies: + brace-expansion "^1.0.0" + +minimatch@2.x: + version "2.0.10" + resolved "http://registry.npm.taobao.org/minimatch/download/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" + dependencies: + brace-expansion "^1.0.0" + +minimatch@3.0.2: + version "3.0.2" + resolved "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.2.tgz#0f398a7300ea441e9c348c83d98ab8c9dbf9c40a" + dependencies: + brace-expansion "^1.0.0" + +minimist@^1.1.1, minimist@^1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minimist@~0.0.1: + version "0.0.10" + resolved "http://registry.npm.taobao.org/minimist/download/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +minimist@0.0.8: + version "0.0.8" + resolved "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0, mkdirp@~0.5.1, mkdirp@0.5.x: + version "0.5.1" + resolved "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +ms@0.7.1: + version "0.7.1" + resolved "http://registry.npm.taobao.org/ms/download/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + +ms@0.7.2: + version "0.7.2" + resolved "http://registry.npm.taobao.org/ms/download/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + +multimatch@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/multimatch/download/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" + dependencies: + array-differ "^1.0.0" + array-union "^1.0.1" + arrify "^1.0.0" + minimatch "^3.0.0" + +mute-stream@0.0.5: + version "0.0.5" + resolved "http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + +nan@^2.3.0: + version "2.4.0" + resolved "http://registry.npm.taobao.org/nan/download/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "http://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +ncname@1.0.x: + version "1.0.0" + resolved "http://registry.npm.taobao.org/ncname/download/ncname-1.0.0.tgz#5b57ad18b1ca092864ef62b0b1ed8194f383b71c" + dependencies: + xml-char-classes "^1.0.0" + +negotiator@0.6.1: + version "0.6.1" + resolved "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +no-case@^2.2.0: + version "2.3.0" + resolved "http://registry.npm.taobao.org/no-case/download/no-case-2.3.0.tgz#ca2825ccb76b18e6f79d573dcfbf1eace33dd164" + dependencies: + lower-case "^1.1.1" + +node-emoji@^1.4.1: + version "1.4.1" + resolved "http://registry.npm.taobao.org/node-emoji/download/node-emoji-1.4.1.tgz#c9fa0cf91094335bcb967a6f42b2305c15af2ebc" + dependencies: + string.prototype.codepointat "^0.2.0" + +node-fetch@^1.0.1: + version "1.6.3" + resolved "http://registry.npm.taobao.org/node-fetch/download/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-int64@^0.4.0: + version "0.4.0" + resolved "http://registry.npm.taobao.org/node-int64/download/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + +node-libs-browser@^0.6.0: + version "0.6.0" + resolved "http://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-0.6.0.tgz#244806d44d319e048bc8607b5cc4eaf9a29d2e3c" + dependencies: + assert "^1.1.1" + browserify-zlib "~0.1.4" + buffer "^4.9.0" + console-browserify "^1.1.0" + constants-browserify "0.0.1" + crypto-browserify "~3.2.6" + domain-browser "^1.1.1" + events "^1.0.0" + http-browserify "^1.3.2" + https-browserify "0.0.0" + os-browserify "~0.1.2" + path-browserify "0.0.0" + process "^0.11.0" + punycode "^1.2.4" + querystring-es3 "~0.2.0" + readable-stream "^1.1.13" + stream-browserify "^1.0.0" + string_decoder "~0.10.25" + timers-browserify "^1.0.1" + tty-browserify "0.0.0" + url "~0.10.1" + util "~0.10.3" + vm-browserify "0.0.4" + +node-notifier@^4.6.1: + version "4.6.1" + resolved "http://registry.npm.taobao.org/node-notifier/download/node-notifier-4.6.1.tgz#056d14244f3dcc1ceadfe68af9cff0c5473a33f3" + dependencies: + cli-usage "^0.1.1" + growly "^1.2.0" + lodash.clonedeep "^3.0.0" + minimist "^1.1.1" + semver "^5.1.0" + shellwords "^0.1.0" + which "^1.0.5" + +node-pre-gyp@^0.6.29: + version "0.6.31" + resolved "http://registry.npm.taobao.org/node-pre-gyp/download/node-pre-gyp-0.6.31.tgz#d8a00ddaa301a940615dbcc8caad4024d58f6017" + dependencies: + mkdirp "~0.5.1" + nopt "~3.0.6" + npmlog "^4.0.0" + rc "~1.1.6" + request "^2.75.0" + rimraf "~2.5.4" + semver "~5.3.0" + tar "~2.2.1" + tar-pack "~3.3.0" + +node-uuid@~1.4.7: + version "1.4.7" + resolved "http://registry.npm.taobao.org/node-uuid/download/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" + +nopt@~3.0.6, nopt@3.x: + version "3.0.6" + resolved "http://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + +normalize-package-data@^2.3.2: + version "2.3.5" + resolved "http://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df" + 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" + +normalize-path@^2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" + +normalize-range@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + +normalize-url@^1.4.0: + version "1.8.0" + resolved "http://registry.npm.taobao.org/normalize-url/download/normalize-url-1.8.0.tgz#a9550b079aa3523c85d78df24eef1959fce359ab" + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +npmlog@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/npmlog/download/npmlog-4.0.0.tgz#e094503961c70c1774eb76692080e8d578a9f88f" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.6.0" + set-blocking "~2.0.0" + +nth-check@~1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/nth-check/download/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "http://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +"nwmatcher@>= 1.3.7 < 2.0.0": + version "1.3.9" + resolved "http://registry.npm.taobao.org/nwmatcher/download/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a" + +oauth-sign@~0.8.1: + version "0.8.2" + resolved "http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@4.1.0: + version "4.1.0" + resolved "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + +object-is@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/object-is/download/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" + +object-keys@^1.0.10, object-keys@^1.0.8: + version "1.0.11" + resolved "http://registry.npm.taobao.org/object-keys/download/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object.assign@^4.0.4: + version "4.0.4" + resolved "http://registry.npm.taobao.org/object.assign/download/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc" + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.0" + object-keys "^1.0.10" + +object.entries@^1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/object.entries/download/object.entries-1.0.3.tgz#f42cc75363a4f9aa7037bcfb3bab3be4ffc78027" + dependencies: + define-properties "^1.1.1" + es-abstract "^1.3.2" + function-bind "^1.0.2" + has "^1.0.1" + +object.omit@^2.0.0: + version "2.0.1" + resolved "http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.values@^1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/object.values/download/object.values-1.0.3.tgz#a7774ba050893fe6a5d5958acd05823e0f426bef" + dependencies: + define-properties "^1.1.1" + es-abstract "^1.3.2" + function-bind "^1.0.2" + has "^1.0.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/on-headers/download/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" + +once@^1.3.0, once@1.x: + version "1.4.0" + resolved "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +once@~1.3.3: + version "1.3.3" + resolved "http://registry.npm.taobao.org/once/download/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + dependencies: + wrappy "1" + +onetime@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/onetime/download/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + +open@0.0.5: + version "0.0.5" + resolved "http://registry.npm.taobao.org/open/download/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc" + +opn@4.0.2: + version "4.0.2" + resolved "http://registry.npm.taobao.org/opn/download/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +optimist@^0.6.1, optimist@~0.6.0, optimist@~0.6.1: + version "0.6.1" + resolved "http://registry.npm.taobao.org/optimist/download/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.1, optionator@^0.8.2: + version "0.8.2" + resolved "http://registry.npm.taobao.org/optionator/download/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" + +original@>=0.0.5: + version "1.0.0" + resolved "http://registry.npm.taobao.org/original/download/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" + dependencies: + url-parse "1.0.x" + +os-browserify@~0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/os-browserify/download/os-browserify-0.1.2.tgz#49ca0293e0b19590a5f5de10c7f265a617d8fe54" + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^1.4.0: + version "1.4.0" + resolved "http://registry.npm.taobao.org/os-locale/download/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + +os-tmpdir@^1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +pako@~0.2.0: + version "0.2.9" + resolved "http://registry.npm.taobao.org/pako/download/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + +param-case@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/param-case/download/param-case-2.1.0.tgz#2619f90fd6c829ed0b958f1c84ed03a745a6d70a" + dependencies: + no-case "^2.2.0" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "http://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parse5@^1.5.1: + version "1.5.1" + resolved "http://registry.npm.taobao.org/parse5/download/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" + +parseurl@~1.3.1: + version "1.3.1" + resolved "http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" + +pascal-case@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/pascal-case/download/pascal-case-2.0.0.tgz#39c248bde5a8dc02d5160696bdb01e044d016ee1" + dependencies: + camel-case "^3.0.0" + upper-case-first "^1.1.0" + +path-browserify@0.0.0: + version "0.0.0" + resolved "http://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-case@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/path-case/download/path-case-2.1.0.tgz#5ac491de642936e5dfe0e18d16c461b8be8cf073" + dependencies: + no-case "^2.2.0" + +path-exists@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/path-exists/download/path-exists-1.0.0.tgz#d5a8998eb71ef37a74c34eb0d9eba6e878eea081" + +path-exists@^2.0.0, path-exists@2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-parse@^1.0.5: + version "1.0.5" + resolved "http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "http://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + +path-type@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +pbkdf2-compat@2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/pbkdf2-compat/download/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" + +pify@^2.0.0: + version "2.3.0" + resolved "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "http://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "http://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/pkg-dir/download/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + dependencies: + find-up "^1.0.0" + +pkg-up@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/pkg-up/download/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26" + dependencies: + find-up "^1.0.0" + +pluralize@^1.2.1: + version "1.2.1" + resolved "http://registry.npm.taobao.org/pluralize/download/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + +postcss-calc@^5.2.0: + version "5.3.1" + resolved "http://registry.npm.taobao.org/postcss-calc/download/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" + dependencies: + postcss "^5.0.2" + postcss-message-helpers "^2.0.0" + reduce-css-calc "^1.2.6" + +postcss-colormin@^2.1.8: + version "2.2.1" + resolved "http://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-2.2.1.tgz#dc5421b6ae6f779ef6bfd47352b94abe59d0316b" + dependencies: + colormin "^1.0.5" + postcss "^5.0.13" + postcss-value-parser "^3.2.3" + +postcss-convert-values@^2.3.4: + version "2.4.1" + resolved "http://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-2.4.1.tgz#45dce4d4e33b7d967b97a4d937f270ea98d2fe7a" + dependencies: + postcss "^5.0.11" + postcss-value-parser "^3.1.2" + +postcss-discard-comments@^2.0.4: + version "2.0.4" + resolved "http://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" + dependencies: + postcss "^5.0.14" + +postcss-discard-duplicates@^2.0.1: + version "2.0.2" + resolved "http://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-2.0.2.tgz#02be520e91571ffb10738766a981d5770989bb32" + dependencies: + postcss "^5.0.4" + +postcss-discard-empty@^2.0.1: + version "2.1.0" + resolved "http://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" + dependencies: + postcss "^5.0.14" + +postcss-discard-overridden@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" + dependencies: + postcss "^5.0.16" + +postcss-discard-unused@^2.2.1: + version "2.2.2" + resolved "http://registry.npm.taobao.org/postcss-discard-unused/download/postcss-discard-unused-2.2.2.tgz#5d72f7d05d11de0a9589e001958067ccae1b4931" + dependencies: + postcss "^5.0.14" + uniqs "^2.0.0" + +postcss-filter-plugins@^2.0.0: + version "2.0.2" + resolved "http://registry.npm.taobao.org/postcss-filter-plugins/download/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" + dependencies: + postcss "^5.0.4" + uniqid "^4.0.0" + +postcss-load-config@^1.0.0-rc: + version "1.0.0" + resolved "http://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-1.0.0.tgz#1399f60dcd6bd9c3124b2eb22960f77f9dc08b3d" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + postcss-load-options "^1.0.2" + postcss-load-plugins "^2.0.0" + +postcss-load-options@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/postcss-load-options/download/postcss-load-options-1.0.2.tgz#b99eb5759a588f4b2dd8b6471c6985f72060e7b0" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + +postcss-load-plugins@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/postcss-load-plugins/download/postcss-load-plugins-2.0.0.tgz#2840d8df1d1c57ebcb1d41b5f60d45796504b43f" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + +postcss-loader@1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/postcss-loader/download/postcss-loader-1.0.0.tgz#e3b65d0c8596c1658f79d7db2d291310748d5d2a" + dependencies: + loader-utils "^0.2.16" + object-assign "^4.1.0" + postcss "^5.2.4" + postcss-load-config "^1.0.0-rc" + +postcss-merge-idents@^2.1.5: + version "2.1.7" + resolved "http://registry.npm.taobao.org/postcss-merge-idents/download/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" + dependencies: + has "^1.0.1" + postcss "^5.0.10" + postcss-value-parser "^3.1.1" + +postcss-merge-longhand@^2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-2.0.1.tgz#ff59b5dec6d586ce2cea183138f55c5876fa9cdc" + dependencies: + postcss "^5.0.4" + +postcss-merge-rules@^2.0.3: + version "2.0.10" + resolved "http://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-2.0.10.tgz#54b360be804e7e69a5c7222635247b92a3569e9b" + dependencies: + postcss "^5.0.4" + vendors "^1.0.0" + +postcss-message-helpers@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/postcss-message-helpers/download/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" + +postcss-minify-font-values@^1.0.2: + version "1.0.5" + resolved "http://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" + dependencies: + object-assign "^4.0.1" + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-minify-gradients@^1.0.1: + version "1.0.5" + resolved "http://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" + dependencies: + postcss "^5.0.12" + postcss-value-parser "^3.3.0" + +postcss-minify-params@^1.0.4: + version "1.0.5" + resolved "http://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-1.0.5.tgz#82d602643b8616a61fb3634d7ede0289836d67f9" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.2" + postcss-value-parser "^3.0.2" + uniqs "^2.0.0" + +postcss-minify-selectors@^2.0.4: + version "2.0.7" + resolved "http://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-2.0.7.tgz#bfb9248fe14db33770f036572de6b4897c48d81c" + dependencies: + alphanum-sort "^1.0.2" + has "^1.0.1" + postcss "^5.0.14" + postcss-selector-parser "^2.0.0" + +postcss-modules-extract-imports@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-1.0.1.tgz#8fb3fef9a6dd0420d3f6d4353cf1ff73f2b2a341" + dependencies: + postcss "^5.0.4" + +postcss-modules-local-by-default@^1.0.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-1.1.1.tgz#29a10673fa37d19251265ca2ba3150d9040eb4ce" + dependencies: + css-selector-tokenizer "^0.6.0" + postcss "^5.0.4" + +postcss-modules-scope@^1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-1.0.2.tgz#ff977395e5e06202d7362290b88b1e8cd049de29" + dependencies: + css-selector-tokenizer "^0.6.0" + postcss "^5.0.4" + +postcss-modules-values@^1.1.0: + version "1.2.2" + resolved "http://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-1.2.2.tgz#f0e7d476fe1ed88c5e4c7f97533a3e772ad94ca1" + dependencies: + icss-replace-symbols "^1.0.2" + postcss "^5.0.14" + +postcss-normalize-charset@^1.1.0: + version "1.1.1" + resolved "http://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" + dependencies: + postcss "^5.0.5" + +postcss-normalize-url@^3.0.7: + version "3.0.7" + resolved "http://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-3.0.7.tgz#6bd90d0a4bc5a1df22c26ea65c53257dc3829f4e" + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^1.4.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + +postcss-ordered-values@^2.1.0: + version "2.2.2" + resolved "http://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-2.2.2.tgz#be8b511741fab2dac8e614a2302e9d10267b0771" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.1" + +postcss-reduce-idents@^2.2.2: + version "2.3.1" + resolved "http://registry.npm.taobao.org/postcss-reduce-idents/download/postcss-reduce-idents-2.3.1.tgz#024e8e219f52773313408573db9645ba62d2d2fe" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-reduce-initial@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-1.0.0.tgz#8f739b938289ef2e48936d7101783e4741ca9bbb" + dependencies: + postcss "^5.0.4" + +postcss-reduce-transforms@^1.0.3: + version "1.0.4" + resolved "http://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" + dependencies: + has "^1.0.1" + postcss "^5.0.8" + postcss-value-parser "^3.0.1" + +postcss-selector-parser@^2.0.0: + version "2.2.2" + resolved "http://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-2.2.2.tgz#3d70f5adda130da51c7c0c2fc023f56b1374fe08" + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^2.1.1: + version "2.1.5" + resolved "http://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-2.1.5.tgz#46fc0363f01bab6a36a9abb01c229fcc45363094" + dependencies: + is-svg "^2.0.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + svgo "^0.7.0" + +postcss-unique-selectors@^2.0.2: + version "2.0.2" + resolved "http://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: + version "3.3.0" + resolved "http://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" + +postcss-zindex@^2.0.1: + version "2.1.1" + resolved "http://registry.npm.taobao.org/postcss-zindex/download/postcss-zindex-2.1.1.tgz#ea3fbe656c9738aa8729e2ee96ec2a46089b720f" + dependencies: + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.4, postcss@^5.2.5: + version "5.2.5" + resolved "http://registry.npm.taobao.org/postcss/download/postcss-5.2.5.tgz#ec428c27dffc7fac65961340a9b022fa4af5f056" + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.1.2" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +prepend-http@^1.0.0: + version "1.0.4" + resolved "http://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +pretty-error@^2.0.2: + version "2.0.2" + resolved "http://registry.npm.taobao.org/pretty-error/download/pretty-error-2.0.2.tgz#a7db19cbb529ca9f0af3d3a2f77d5caf8e5dec23" + dependencies: + renderkid "~2.0.0" + utila "~0.4" + +pretty-format@~4.2.1: + version "4.2.3" + resolved "http://registry.npm.taobao.org/pretty-format/download/pretty-format-4.2.3.tgz#8894c2ac81419cf801629d8f66320a25380d8b05" + +private@^0.1.6, private@~0.1.5: + version "0.1.6" + resolved "http://registry.npm.taobao.org/private/download/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +process@^0.11.0, process@~0.11.0: + version "0.11.9" + resolved "http://registry.npm.taobao.org/process/download/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" + +progress@^1.1.8: + version "1.1.8" + resolved "http://registry.npm.taobao.org/progress/download/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + +promise@^7.1.1, promise@7.1.1: + version "7.1.1" + resolved "http://registry.npm.taobao.org/promise/download/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" + dependencies: + asap "~2.0.3" + +proxy-addr@~1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/proxy-addr/download/proxy-addr-1.1.2.tgz#b4cc5f22610d9535824c123aef9d3cf73c40ba37" + dependencies: + forwarded "~0.1.0" + ipaddr.js "1.1.1" + +prr@~0.0.0: + version "0.0.0" + resolved "http://registry.npm.taobao.org/prr/download/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" + +pseudomap@^1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +punycode@1.3.2: + version "1.3.2" + resolved "http://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +q@^1.1.2: + version "1.4.1" + resolved "http://registry.npm.taobao.org/q/download/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" + +qs@~6.3.0: + version "6.3.0" + resolved "http://registry.npm.taobao.org/qs/download/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" + +qs@6.2.0: + version "6.2.0" + resolved "http://registry.npm.taobao.org/qs/download/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" + +query-string@^4.1.0: + version "4.2.3" + resolved "http://registry.npm.taobao.org/query-string/download/query-string-4.2.3.tgz#9f27273d207a25a8ee4c7b8c74dcd45d556db822" + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@~0.2.0: + version "0.2.1" + resolved "http://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +querystringify@0.0.x: + version "0.0.4" + resolved "http://registry.npm.taobao.org/querystringify/download/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" + +randomatic@^1.1.3: + version "1.1.5" + resolved "http://registry.npm.taobao.org/randomatic/download/randomatic-1.1.5.tgz#5e9ef5f2d573c67bd2b8124ae90b5156e457840b" + dependencies: + is-number "^2.0.2" + kind-of "^3.0.2" + +range-parser@^1.0.3, range-parser@~1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/range-parser/download/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +rc@~1.1.6: + version "1.1.6" + resolved "http://registry.npm.taobao.org/rc/download/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~1.0.4" + +react-addons-test-utils: + version "15.3.2" + resolved "http://registry.npm.taobao.org/react-addons-test-utils/download/react-addons-test-utils-15.3.2.tgz#c09a44f583425a4a9c1b38444d7a6c3e6f0f41f6" + +react-bootstrap: + version "0.30.6" + resolved "http://registry.npm.taobao.org/react-bootstrap/download/react-bootstrap-0.30.6.tgz#288662a245f9dbb79f7740ee595e4ec931d6a4a9" + dependencies: + babel-runtime "^6.11.6" + classnames "^2.2.5" + dom-helpers "^2.4.0" + invariant "^2.2.1" + keycode "^2.1.2" + react-overlays "^0.6.10" + react-prop-types "^0.4.0" + uncontrollable "^4.0.1" + warning "^3.0.0" + +react-dev-utils@^0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/react-dev-utils/download/react-dev-utils-0.3.0.tgz#4a0527062a757579cb316fa254681aecca09d038" + dependencies: + ansi-html "0.0.5" + chalk "1.1.3" + escape-string-regexp "1.0.5" + html-entities "1.2.0" + opn "4.0.2" + sockjs-client "1.0.3" + strip-ansi "3.0.1" + +react-dom@^15.3.2: + version "15.3.2" + resolved "http://registry.npm.taobao.org/react-dom/download/react-dom-15.3.2.tgz#c46b0aa5380d7b838e7a59c4a7beff2ed315531f" + +react-overlays@^0.6.10: + version "0.6.10" + resolved "http://registry.npm.taobao.org/react-overlays/download/react-overlays-0.6.10.tgz#e7e52dad47f00a0fc784eb044428c3a9e874bfa3" + dependencies: + classnames "^2.2.5" + dom-helpers "^2.4.0" + react-prop-types "^0.4.0" + warning "^3.0.0" + +react-prop-types@^0.4.0: + version "0.4.0" + resolved "http://registry.npm.taobao.org/react-prop-types/download/react-prop-types-0.4.0.tgz#f99b0bfb4006929c9af2051e7c1414a5c75b93d0" + dependencies: + warning "^3.0.0" + +react-redux: + version "4.4.6" + resolved "http://registry.npm.taobao.org/react-redux/download/react-redux-4.4.6.tgz#4b9d32985307a11096a2dd61561980044fcc6209" + dependencies: + hoist-non-react-statics "^1.0.3" + invariant "^2.0.0" + lodash "^4.2.0" + loose-envify "^1.1.0" + +react-scripts@0.7.0: + version "0.7.0" + resolved "http://registry.npm.taobao.org/react-scripts/download/react-scripts-0.7.0.tgz#e499ebaf8bb077f7045770eaef1df5cfe308e3e0" + dependencies: + autoprefixer "6.5.1" + babel-core "6.17.0" + babel-eslint "7.0.0" + babel-jest "16.0.0" + babel-loader "6.2.5" + babel-preset-react-app "^1.0.0" + case-sensitive-paths-webpack-plugin "1.1.4" + chalk "1.1.3" + connect-history-api-fallback "1.3.0" + cross-spawn "4.0.2" + css-loader "0.25.0" + detect-port "1.0.1" + dotenv "2.0.0" + eslint "3.8.1" + eslint-config-react-app "^0.3.0" + eslint-loader "1.6.0" + eslint-plugin-flowtype "2.21.0" + eslint-plugin-import "2.0.1" + eslint-plugin-jsx-a11y "2.2.3" + eslint-plugin-react "6.4.1" + extract-text-webpack-plugin "1.0.1" + file-loader "0.9.0" + filesize "3.3.0" + find-cache-dir "0.1.1" + fs-extra "0.30.0" + gzip-size "3.0.0" + html-webpack-plugin "2.24.0" + http-proxy-middleware "0.17.2" + jest "16.0.2" + json-loader "0.5.4" + object-assign "4.1.0" + path-exists "2.1.0" + postcss-loader "1.0.0" + promise "7.1.1" + react-dev-utils "^0.3.0" + recursive-readdir "2.1.0" + rimraf "2.5.4" + strip-ansi "3.0.1" + style-loader "0.13.1" + url-loader "0.5.7" + webpack "1.13.2" + webpack-dev-server "1.16.2" + webpack-manifest-plugin "1.1.0" + whatwg-fetch "1.0.0" + optionalDependencies: + fsevents "1.0.14" + +react@^15.3.2: + version "15.3.2" + resolved "http://registry.npm.taobao.org/react/download/react-15.3.2.tgz#a7bccd2fee8af126b0317e222c28d1d54528d09e" + dependencies: + fbjs "^0.8.4" + loose-envify "^1.1.0" + object-assign "^4.1.0" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +readable-stream@^1.0.27-1, readable-stream@^1.1.13: + version "1.1.14" + resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2: + version "2.2.2" + resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" + dependencies: + buffer-shims "^1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +readable-stream@~2.0.0: + version "2.0.6" + resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +readable-stream@~2.1.4: + version "2.1.5" + resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" + dependencies: + buffer-shims "^1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +readable-stream@1.0: + version "1.0.34" + resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdirp@^2.0.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/readdirp/download/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +readline2@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/readline2/download/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + mute-stream "0.0.5" + +recursive-readdir@2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/recursive-readdir/download/recursive-readdir-2.1.0.tgz#78b7bfd79582d3d7596b8ff1bd29fbd50229f6aa" + dependencies: + minimatch "3.0.2" + +redeyed@~1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/redeyed/download/redeyed-1.0.1.tgz#e96c193b40c0816b00aec842698e61185e55498a" + dependencies: + esprima "~3.0.0" + +reduce-css-calc@^1.2.6: + version "1.3.0" + resolved "http://registry.npm.taobao.org/reduce-css-calc/download/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" + dependencies: + balanced-match "^0.4.2" + math-expression-evaluator "^1.2.14" + reduce-function-call "^1.0.1" + +reduce-function-call@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/reduce-function-call/download/reduce-function-call-1.0.1.tgz#fa02e126e695824263cab91d3a5b0fdc1dd27a9a" + dependencies: + balanced-match "~0.1.0" + +redux: + version "3.6.0" + resolved "http://registry.npm.taobao.org/redux/download/redux-3.6.0.tgz#887c2b3d0b9bd86eca2be70571c27654c19e188d" + dependencies: + lodash "^4.2.1" + lodash-es "^4.2.1" + loose-envify "^1.1.0" + symbol-observable "^1.0.2" + +redux-mock-store@^1.2.1: + version "1.2.1" + resolved "http://registry.npm.taobao.org/redux-mock-store/download/redux-mock-store-1.2.1.tgz#630c0e2642927d1417c844d935266b501f2fc231" + +redux-thunk@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/redux-thunk/download/redux-thunk-2.1.0.tgz#c724bfee75dbe352da2e3ba9bc14302badd89a98" + +regenerate@^1.2.1: + version "1.3.2" + resolved "http://registry.npm.taobao.org/regenerate/download/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" + +regenerator-runtime@^0.9.5: + version "0.9.6" + resolved "http://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.9.6.tgz#d33eb95d0d2001a4be39659707c51b0cb71ce029" + +regex-cache@^0.4.2: + version "0.4.3" + resolved "http://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + dependencies: + is-equal-shallow "^0.1.3" + is-primitive "^2.0.0" + +regexpu-core@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/regjsgen/download/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "http://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +relateurl@0.2.x: + version "0.2.7" + resolved "http://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + +renderkid@~2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/renderkid/download/renderkid-2.0.0.tgz#1859753e7a5adbf35443aba0d4e4579e78abee85" + dependencies: + css-select "^1.1.0" + dom-converter "~0.1" + htmlparser2 "~3.3.0" + strip-ansi "^3.0.0" + utila "~0.3" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "http://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "http://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +request@^2.55.0, request@^2.75.0: + version "2.78.0" + resolved "http://registry.npm.taobao.org/request/download/request-2.78.0.tgz#e1c8dec346e1c81923b24acdb337f11decabe9cc" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.11.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~2.0.6" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + node-uuid "~1.4.7" + oauth-sign "~0.8.1" + qs "~6.3.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + +require-directory@^2.1.1: + version "2.1.1" + resolved "http://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-from-string@^1.1.0: + version "1.2.1" + resolved "http://registry.npm.taobao.org/require-from-string/download/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +require-uncached@^1.0.2: + version "1.0.3" + resolved "http://registry.npm.taobao.org/require-uncached/download/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +requires-port@1.0.x, requires-port@1.x.x: + version "1.0.0" + resolved "http://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/resolve-from/download/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve@^1.1.6, resolve@1.1.7, resolve@1.1.x: + version "1.1.7" + resolved "http://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +restore-cursor@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + +right-align@^0.1.1: + version "0.1.3" + resolved "http://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@^2.2.8, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@~2.5.1, rimraf@~2.5.4, rimraf@2, rimraf@2.5.4: + version "2.5.4" + resolved "http://registry.npm.taobao.org/rimraf/download/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" + dependencies: + glob "^7.0.5" + +ripemd160@0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/ripemd160/download/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" + +run-async@^0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/run-async/download/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" + dependencies: + once "^1.3.0" + +rx-lite@^3.1.2: + version "3.1.2" + resolved "http://registry.npm.taobao.org/rx-lite/download/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + +sane@~1.4.1: + version "1.4.1" + resolved "http://registry.npm.taobao.org/sane/download/sane-1.4.1.tgz#88f763d74040f5f0c256b6163db399bf110ac715" + dependencies: + exec-sh "^0.2.0" + fb-watchman "^1.8.0" + minimatch "^3.0.2" + minimist "^1.1.1" + walker "~1.0.5" + watch "~0.10.0" + +sax@^1.1.4, sax@~1.2.1: + version "1.2.1" + resolved "http://registry.npm.taobao.org/sax/download/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" + +semver@^5.1.0, semver@^5.3.0, semver@~5.3.0, "semver@2 || 3 || 4 || 5": + version "5.3.0" + resolved "http://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +send@0.14.1: + version "0.14.1" + resolved "http://registry.npm.taobao.org/send/download/send-0.14.1.tgz#a954984325392f51532a7760760e459598c89f7a" + dependencies: + debug "~2.2.0" + depd "~1.1.0" + destroy "~1.0.4" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.7.0" + fresh "0.3.0" + http-errors "~1.5.0" + mime "1.3.4" + ms "0.7.1" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.3.0" + +sentence-case@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/sentence-case/download/sentence-case-2.1.0.tgz#d592fbed457fd1a59e3af0ee17e99f6fd70d7efd" + dependencies: + no-case "^2.2.0" + upper-case-first "^1.1.2" + +serve-index@^1.7.2: + version "1.8.0" + resolved "http://registry.npm.taobao.org/serve-index/download/serve-index-1.8.0.tgz#7c5d96c13fb131101f93c1c5774f8516a1e78d3b" + dependencies: + accepts "~1.3.3" + batch "0.5.3" + debug "~2.2.0" + escape-html "~1.0.3" + http-errors "~1.5.0" + mime-types "~2.1.11" + parseurl "~1.3.1" + +serve-static@~1.11.1: + version "1.11.1" + resolved "http://registry.npm.taobao.org/serve-static/download/serve-static-1.11.1.tgz#d6cce7693505f733c759de57befc1af76c0f0805" + dependencies: + encodeurl "~1.0.1" + escape-html "~1.0.3" + parseurl "~1.3.1" + send "0.14.1" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +setprototypeof@1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.0.1.tgz#52009b27888c4dc48f591949c0a8275834c1ca7e" + +sha.js@2.2.6: + version "2.2.6" + resolved "http://registry.npm.taobao.org/sha.js/download/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +shelljs@^0.6.0: + version "0.6.1" + resolved "http://registry.npm.taobao.org/shelljs/download/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8" + +shellwords@^0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/shellwords/download/shellwords-0.1.0.tgz#66afd47b6a12932d9071cbfd98a52e785cd0ba14" + +signal-exit@^3.0.0: + version "3.0.1" + resolved "http://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.1.tgz#5a4c884992b63a7acd9badb7894c3ee9cfccad81" + +slash@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "http://registry.npm.taobao.org/slice-ansi/download/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + +snake-case@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/snake-case/download/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f" + dependencies: + no-case "^2.2.0" + +sntp@1.x.x: + version "1.0.9" + resolved "http://registry.npm.taobao.org/sntp/download/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +sockjs-client@^1.0.3: + version "1.1.1" + resolved "http://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.1.1.tgz#284843e9a9784d7c474b1571b3240fca9dda4bb0" + dependencies: + debug "^2.2.0" + eventsource "~0.1.6" + faye-websocket "~0.11.0" + inherits "^2.0.1" + json3 "^3.3.2" + url-parse "^1.1.1" + +sockjs-client@1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.0.3.tgz#b0d8280998460eb2564c5d79d7e3d7cfd8a353ad" + dependencies: + debug "^2.1.0" + eventsource "^0.1.3" + faye-websocket "~0.7.3" + inherits "^2.0.1" + json3 "^3.3.2" + url-parse "^1.0.1" + +sockjs@^0.3.15: + version "0.3.18" + resolved "http://registry.npm.taobao.org/sockjs/download/sockjs-0.3.18.tgz#d9b289316ca7df77595ef299e075f0f937eb4207" + dependencies: + faye-websocket "^0.10.0" + uuid "^2.0.2" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "http://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^0.1.4, source-list-map@~0.1.0: + version "0.1.6" + resolved "http://registry.npm.taobao.org/source-list-map/download/source-list-map-0.1.6.tgz#e1e6f94f0b40c4d28dcf8f5b8766e0e45636877f" + +source-map-support@^0.4.2: + version "0.4.6" + resolved "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.6.tgz#32552aa64b458392a85eab3b0b5ee61527167aeb" + dependencies: + source-map "^0.5.3" + +source-map@^0.4.4, source-map@~0.4.1, source-map@0.4.x: + version "0.4.4" + resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: + version "0.5.6" + resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + +source-map@~0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + dependencies: + amdefine ">=0.0.4" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/spdx-correct/download/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "http://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "http://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk@^1.7.0: + version "1.10.1" + resolved "http://registry.npm.taobao.org/sshpk/download/sshpk-1.10.1.tgz#30e1a5d329244974a1af61511339d595af6638b0" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jodid25519 "^1.0.0" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +"statuses@>= 1.3.0 < 2", statuses@~1.3.0: + version "1.3.1" + resolved "http://registry.npm.taobao.org/statuses/download/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + +stream-browserify@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/stream-browserify/download/stream-browserify-1.0.0.tgz#bf9b4abfb42b274d751479e44e0ff2656b6f1193" + dependencies: + inherits "~2.0.1" + readable-stream "^1.0.27-1" + +stream-cache@~0.0.1: + version "0.0.2" + resolved "http://registry.npm.taobao.org/stream-cache/download/stream-cache-0.0.2.tgz#1ac5ad6832428ca55667dbdee395dad4e6db118f" + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + +string_decoder@~0.10.25, string_decoder@~0.10.x: + version "0.10.31" + resolved "http://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/string-width/download/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^3.0.0" + +string.prototype.codepointat@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/string.prototype.codepointat/download/string.prototype.codepointat-0.2.0.tgz#6b26e9bd3afcaa7be3b4269b526de1b82000ac78" + +stringstream@~0.0.4: + version "0.0.5" + resolved "http://registry.npm.taobao.org/stringstream/download/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1, strip-ansi@3.0.1: + version "3.0.1" + resolved "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-json-comments@~1.0.1, strip-json-comments@~1.0.4: + version "1.0.4" + resolved "http://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" + +style-loader@0.13.1: + version "0.13.1" + resolved "http://registry.npm.taobao.org/style-loader/download/style-loader-0.13.1.tgz#468280efbc0473023cd3a6cd56e33b5a1d7fc3a9" + dependencies: + loader-utils "^0.2.7" + +supports-color@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^3.1.0, supports-color@^3.1.1, supports-color@^3.1.2: + version "3.1.2" + resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + dependencies: + has-flag "^1.0.0" + +svgo@^0.7.0: + version "0.7.1" + resolved "http://registry.npm.taobao.org/svgo/download/svgo-0.7.1.tgz#287320fed972cb097e72c2bb1685f96fe08f8034" + dependencies: + coa "~1.0.1" + colors "~1.1.2" + csso "~2.2.1" + js-yaml "~3.6.1" + mkdirp "~0.5.1" + sax "~1.2.1" + whet.extend "~0.9.9" + +swap-case@^1.1.0: + version "1.1.2" + resolved "http://registry.npm.taobao.org/swap-case/download/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3" + dependencies: + lower-case "^1.1.1" + upper-case "^1.1.1" + +symbol-observable@^1.0.2: + version "1.0.4" + resolved "http://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" + +"symbol-tree@>= 3.1.0 < 4.0.0": + version "3.1.4" + resolved "http://registry.npm.taobao.org/symbol-tree/download/symbol-tree-3.1.4.tgz#02b279348d337debc39694c5c95f882d448a312a" + +table@^3.7.8: + version "3.8.3" + resolved "http://registry.npm.taobao.org/table/download/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" + dependencies: + ajv "^4.7.0" + ajv-keywords "^1.0.0" + chalk "^1.1.1" + lodash "^4.0.0" + slice-ansi "0.0.4" + string-width "^2.0.0" + +tapable@^0.1.8, tapable@~0.1.8: + version "0.1.10" + resolved "http://registry.npm.taobao.org/tapable/download/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" + +tar-pack@~3.3.0: + version "3.3.0" + resolved "http://registry.npm.taobao.org/tar-pack/download/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" + dependencies: + debug "~2.2.0" + fstream "~1.0.10" + fstream-ignore "~1.0.5" + once "~1.3.3" + readable-stream "~2.1.4" + rimraf "~2.5.1" + tar "~2.2.1" + uid-number "~0.0.6" + +tar@~2.2.1: + version "2.2.1" + resolved "http://registry.npm.taobao.org/tar/download/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +test-exclude@^2.1.1: + version "2.1.3" + resolved "http://registry.npm.taobao.org/test-exclude/download/test-exclude-2.1.3.tgz#a8d8968e1da83266f9864f2852c55e220f06434a" + dependencies: + arrify "^1.0.1" + micromatch "^2.3.11" + object-assign "^4.1.0" + read-pkg-up "^1.0.1" + require-main-filename "^1.0.1" + +testcheck@^0.1.0: + version "0.1.4" + resolved "http://registry.npm.taobao.org/testcheck/download/testcheck-0.1.4.tgz#90056edd48d11997702616ce6716f197d8190164" + +text-table@~0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +throat@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/throat/download/throat-3.0.0.tgz#e7c64c867cbb3845f10877642f7b60055b8ec0d6" + +through@^2.3.6: + version "2.3.8" + resolved "http://registry.npm.taobao.org/through/download/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +timers-browserify@^1.0.1: + version "1.4.2" + resolved "http://registry.npm.taobao.org/timers-browserify/download/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + dependencies: + process "~0.11.0" + +title-case@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/title-case/download/title-case-2.1.0.tgz#c68ccb4232079ded64f94b91b4941ade91391979" + dependencies: + no-case "^2.2.0" + upper-case "^1.0.3" + +tmpl@1.0.x: + version "1.0.4" + resolved "http://registry.npm.taobao.org/tmpl/download/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + +to-fast-properties@^1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" + +toposort@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/toposort/download/toposort-1.0.0.tgz#b66cf385a1a8a8e68e45b8259e7f55875e8b06ef" + +tough-cookie@^2.3.1, tough-cookie@~2.3.0: + version "2.3.2" + resolved "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + dependencies: + punycode "^1.4.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "http://registry.npm.taobao.org/tr46/download/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + +tryit@^1.0.1: + version "1.0.3" + resolved "http://registry.npm.taobao.org/tryit/download/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "http://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + +tunnel-agent@~0.4.1: + version "0.4.3" + resolved "http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.3" + resolved "http://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.3.tgz#3da382f670f25ded78d7b3d1792119bca0b7132d" + +type-check@~0.3.2: + version "0.3.2" + resolved "http://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +type-is@~1.6.13: + version "1.6.13" + resolved "http://registry.npm.taobao.org/type-is/download/type-is-1.6.13.tgz#6e83ba7bc30cd33a7bb0b7fb00737a2085bf9d08" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.11" + +typedarray@~0.0.5: + version "0.0.6" + resolved "http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +ua-parser-js@^0.7.9: + version "0.7.12" + resolved "http://registry.npm.taobao.org/ua-parser-js/download/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" + +uglify-js@^2.6, uglify-js@2.7.x: + version "2.7.4" + resolved "http://registry.npm.taobao.org/uglify-js/download/uglify-js-2.7.4.tgz#a295a0de12b6a650c031c40deb0dc40b14568bd2" + dependencies: + async "~0.2.6" + source-map "~0.5.1" + uglify-to-browserify "~1.0.0" + yargs "~3.10.0" + +uglify-js@~2.6.0: + version "2.6.4" + resolved "http://registry.npm.taobao.org/uglify-js/download/uglify-js-2.6.4.tgz#65ea2fb3059c9394692f15fed87c2b36c16b9adf" + dependencies: + async "~0.2.6" + source-map "~0.5.1" + uglify-to-browserify "~1.0.0" + yargs "~3.10.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uid-number@~0.0.6: + version "0.0.6" + resolved "http://registry.npm.taobao.org/uid-number/download/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +uncontrollable@^4.0.1: + version "4.0.3" + resolved "http://registry.npm.taobao.org/uncontrollable/download/uncontrollable-4.0.3.tgz#06ec76cb9e02914756085d9cea0354fc746b09b4" + dependencies: + invariant "^2.1.0" + +uniq@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + +uniqid@^4.0.0: + version "4.1.0" + resolved "http://registry.npm.taobao.org/uniqid/download/uniqid-4.1.0.tgz#33d9679f65022f48988a03fd24e7dcaf8f109eca" + dependencies: + macaddress "^0.2.8" + +uniqs@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + +unpipe@~1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +upper-case-first@^1.1.0, upper-case-first@^1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/upper-case-first/download/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115" + dependencies: + upper-case "^1.1.1" + +upper-case@^1.0.3, upper-case@^1.1.0, upper-case@^1.1.1, upper-case@^1.1.3: + version "1.1.3" + resolved "http://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + +url-loader@0.5.7: + version "0.5.7" + resolved "http://registry.npm.taobao.org/url-loader/download/url-loader-0.5.7.tgz#67e8779759f8000da74994906680c943a9b0925d" + dependencies: + loader-utils "0.2.x" + mime "1.2.x" + +url-parse@^1.0.1, url-parse@^1.1.1: + version "1.1.7" + resolved "http://registry.npm.taobao.org/url-parse/download/url-parse-1.1.7.tgz#025cff999653a459ab34232147d89514cc87d74a" + dependencies: + querystringify "0.0.x" + requires-port "1.0.x" + +url-parse@1.0.x: + version "1.0.5" + resolved "http://registry.npm.taobao.org/url-parse/download/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" + dependencies: + querystringify "0.0.x" + requires-port "1.0.x" + +url@~0.10.1: + version "0.10.3" + resolved "http://registry.npm.taobao.org/url/download/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +user-home@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/user-home/download/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + dependencies: + os-homedir "^1.0.0" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util@~0.10.3, util@0.10.3: + version "0.10.3" + resolved "http://registry.npm.taobao.org/util/download/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +utila@~0.3: + version "0.3.3" + resolved "http://registry.npm.taobao.org/utila/download/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226" + +utila@~0.4: + version "0.4.0" + resolved "http://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + +utils-merge@1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" + +uuid@^2.0.2, uuid@^2.0.3: + version "2.0.3" + resolved "http://registry.npm.taobao.org/uuid/download/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "http://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + +vary@~1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/vary/download/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140" + +vendors@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/vendors/download/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22" + +verror@1.3.6: + version "1.3.6" + resolved "http://registry.npm.taobao.org/verror/download/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" + dependencies: + extsprintf "1.0.2" + +vm-browserify@0.0.4: + version "0.0.4" + resolved "http://registry.npm.taobao.org/vm-browserify/download/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +walker@~1.0.5: + version "1.0.7" + resolved "http://registry.npm.taobao.org/walker/download/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + dependencies: + makeerror "1.0.x" + +warning@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/warning/download/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" + dependencies: + loose-envify "^1.0.0" + +watch@~0.10.0: + version "0.10.0" + resolved "http://registry.npm.taobao.org/watch/download/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" + +watchpack@^0.2.1: + version "0.2.9" + resolved "http://registry.npm.taobao.org/watchpack/download/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b" + dependencies: + async "^0.9.0" + chokidar "^1.0.0" + graceful-fs "^4.1.2" + +webidl-conversions@^3.0.0, webidl-conversions@^3.0.1: + version "3.0.1" + resolved "http://registry.npm.taobao.org/webidl-conversions/download/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + +webpack-core@~0.6.0: + version "0.6.8" + resolved "http://registry.npm.taobao.org/webpack-core/download/webpack-core-0.6.8.tgz#edf9135de00a6a3c26dd0f14b208af0aa4af8d0a" + dependencies: + source-list-map "~0.1.0" + source-map "~0.4.1" + +webpack-dev-middleware@^1.4.0: + version "1.8.4" + resolved "http://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-1.8.4.tgz#e8765c9122887ce9e3abd4cc9c3eb31b61e0948d" + dependencies: + memory-fs "~0.3.0" + mime "^1.3.4" + path-is-absolute "^1.0.0" + range-parser "^1.0.3" + +webpack-dev-server@1.16.2: + version "1.16.2" + resolved "http://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-1.16.2.tgz#8bebc2c4ce1c45a15c72dd769d9ba08db306a793" + dependencies: + compression "^1.5.2" + connect-history-api-fallback "^1.3.0" + express "^4.13.3" + http-proxy-middleware "~0.17.1" + open "0.0.5" + optimist "~0.6.1" + serve-index "^1.7.2" + sockjs "^0.3.15" + sockjs-client "^1.0.3" + stream-cache "~0.0.1" + strip-ansi "^3.0.0" + supports-color "^3.1.1" + webpack-dev-middleware "^1.4.0" + +webpack-manifest-plugin@1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/webpack-manifest-plugin/download/webpack-manifest-plugin-1.1.0.tgz#6b6c718aade8a2537995784b46bd2e9836057caa" + dependencies: + fs-extra "^0.30.0" + lodash ">=3.5 <5" + +webpack-sources@^0.1.0: + version "0.1.3" + resolved "http://registry.npm.taobao.org/webpack-sources/download/webpack-sources-0.1.3.tgz#15ce2fb79d0a1da727444ba7c757bf164294f310" + dependencies: + source-list-map "~0.1.0" + source-map "~0.5.3" + +webpack@1.13.2: + version "1.13.2" + resolved "http://registry.npm.taobao.org/webpack/download/webpack-1.13.2.tgz#f11a96f458eb752970a86abe746c0704fabafaf3" + dependencies: + acorn "^3.0.0" + async "^1.3.0" + clone "^1.0.2" + enhanced-resolve "~0.9.0" + interpret "^0.6.4" + loader-utils "^0.2.11" + memory-fs "~0.3.0" + mkdirp "~0.5.0" + node-libs-browser "^0.6.0" + optimist "~0.6.0" + supports-color "^3.1.0" + tapable "~0.1.8" + uglify-js "~2.6.0" + watchpack "^0.2.1" + webpack-core "~0.6.0" + +websocket-driver@>=0.3.6, websocket-driver@>=0.5.1: + version "0.6.5" + resolved "http://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + dependencies: + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" + +whatwg-encoding@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/whatwg-encoding/download/whatwg-encoding-1.0.1.tgz#3c6c451a198ee7aec55b1ec61d0920c67801a5f4" + dependencies: + iconv-lite "0.4.13" + +whatwg-fetch@>=0.10.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/whatwg-fetch/download/whatwg-fetch-2.0.0.tgz#cde428ac2b1dab717c96bc6785feb557619b249e" + +whatwg-fetch@1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/whatwg-fetch/download/whatwg-fetch-1.0.0.tgz#01c2ac4df40e236aaa18480e3be74bd5c8eb798e" + +whatwg-url@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/whatwg-url/download/whatwg-url-3.0.0.tgz#b9033c50c7ce763e91d78777ce825a6d7f56dac5" + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +whet.extend@~0.9.9: + version "0.9.9" + resolved "http://registry.npm.taobao.org/whet.extend/download/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" + +which-module@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/which-module/download/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + +which@^1.0.5, which@^1.1.1, which@^1.2.9: + version "1.2.12" + resolved "http://registry.npm.taobao.org/which/download/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" + dependencies: + isexe "^1.1.1" + +wide-align@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/wide-align/download/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" + dependencies: + string-width "^1.0.1" + +window-size@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/window-size/download/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" + +window-size@0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +wordwrap@^1.0.0, wordwrap@~1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wordwrap@0.0.2: + version "0.0.2" + resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +worker-farm@^1.3.1: + version "1.3.1" + resolved "http://registry.npm.taobao.org/worker-farm/download/worker-farm-1.3.1.tgz#4333112bb49b17aa050b87895ca6b2cacf40e5ff" + dependencies: + errno ">=0.1.1 <0.2.0-0" + xtend ">=4.0.0 <4.1.0-0" + +wrap-ansi@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.0.0.tgz#7d30f8f873f9a5bbc3a64dabc8d177e071ae426f" + dependencies: + string-width "^1.0.1" + +wrappy@1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write@^0.2.1: + version "0.2.1" + resolved "http://registry.npm.taobao.org/write/download/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +xml-char-classes@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/xml-char-classes/download/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d" + +"xml-name-validator@>= 2.0.1 < 3.0.0": + version "2.0.1" + resolved "http://registry.npm.taobao.org/xml-name-validator/download/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" + +xtend@^4.0.0, "xtend@>=4.0.0 <4.1.0-0": + version "4.0.1" + resolved "http://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.1: + version "3.2.1" + resolved "http://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yallist@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/yallist/download/yallist-2.0.0.tgz#306c543835f09ee1a4cb23b7bce9ab341c91cdd4" + +yargs-parser@^3.2.0: + version "3.2.0" + resolved "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-3.2.0.tgz#5081355d19d9d0c8c5d81ada908cb4e6d186664f" + dependencies: + camelcase "^3.0.0" + lodash.assign "^4.1.0" + +yargs@^5.0.0: + version "5.0.0" + resolved "http://registry.npm.taobao.org/yargs/download/yargs-5.0.0.tgz#3355144977d05757dbb86d6e38ec056123b3a66e" + dependencies: + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + lodash.assign "^4.2.0" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + window-size "^0.2.0" + y18n "^3.2.1" + yargs-parser "^3.2.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "http://registry.npm.taobao.org/yargs/download/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + From 863aea568a66b754e13a4ac4b7f60b15122b58af Mon Sep 17 00:00:00 2001 From: lewis617 <897473127@qq.com> Date: Wed, 16 Nov 2016 19:23:17 +0800 Subject: [PATCH 02/59] update r2-bs-alert style --- r2-bs-alert/src/App.css | 1 + r2-bs-alert/src/App.test.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/r2-bs-alert/src/App.css b/r2-bs-alert/src/App.css index 680aa6f..71eb8ca 100644 --- a/r2-bs-alert/src/App.css +++ b/r2-bs-alert/src/App.css @@ -1,3 +1,4 @@ .App{ width: 500px; + padding: 20px; } \ No newline at end of file diff --git a/r2-bs-alert/src/App.test.js b/r2-bs-alert/src/App.test.js index bcd02da..6a08045 100644 --- a/r2-bs-alert/src/App.test.js +++ b/r2-bs-alert/src/App.test.js @@ -4,7 +4,7 @@ import { createStore, combineReducers, applyMiddleware } from 'redux'; import { Provider } from 'react-redux'; import thunk from 'redux-thunk'; import App from './App'; -import { reducer as alertsReducer, alertMessage } from './alert'; +import { reducer as alertsReducer } from './alert'; import 'bootstrap/dist/css/bootstrap.css'; const store = createStore( From 45453ddfe619716eb4313717debc071404417f34 Mon Sep 17 00:00:00 2001 From: lewis617 <897473127@qq.com> Date: Wed, 16 Nov 2016 21:15:22 +0800 Subject: [PATCH 03/59] add gif --- r2-bs-alert/public/r2-bs-alert.gif | Bin 0 -> 144744 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 r2-bs-alert/public/r2-bs-alert.gif diff --git a/r2-bs-alert/public/r2-bs-alert.gif b/r2-bs-alert/public/r2-bs-alert.gif new file mode 100644 index 0000000000000000000000000000000000000000..2cdb85fab6814ccfe9632dd2c0a45a8c5a474796 GIT binary patch literal 144744 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 YoLauIRKzsf-|V?=;Q=gC1^{;cABV(^w*UYD literal 0 HcmV?d00001 From 9f1ab68416a7c1aa13868445d674adaa4a7b9e58 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Wed, 16 Nov 2016 21:20:51 +0800 Subject: [PATCH 04/59] Update README.md --- r2-bs-alert/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/r2-bs-alert/README.md b/r2-bs-alert/README.md index a2d3fb5..038e333 100644 --- a/r2-bs-alert/README.md +++ b/r2-bs-alert/README.md @@ -1 +1,3 @@ -# React Redux Bootstrap Alert Example \ No newline at end of file +# React Redux Bootstrap Alert Example + +![](https://raw.githubusercontent.com/lewis617/react-redux-tutorial/master/r2-bs-alert/public/r2-bs-alert.gif) From 51ff19ef2b6643044853d4e2d1b45d089eb537a3 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Thu, 17 Nov 2016 10:34:55 +0800 Subject: [PATCH 05/59] Published with https://stackedit.io/ --- r2-bs-alert/README.md | 286 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 284 insertions(+), 2 deletions(-) diff --git a/r2-bs-alert/README.md b/r2-bs-alert/README.md index 038e333..80463eb 100644 --- a/r2-bs-alert/README.md +++ b/r2-bs-alert/README.md @@ -1,3 +1,285 @@ -# React Redux Bootstrap Alert Example -![](https://raw.githubusercontent.com/lewis617/react-redux-tutorial/master/r2-bs-alert/public/r2-bs-alert.gif) +# 使用 React、Redux 和 Bootstrap 实现Alert + +今天,我们来学习使用 React、Redux 和 Bootstrap 实现Alert。 + +## 例子 + +这个例子实现了弹出不同类型信息的功能,这些信息默认会在5秒后消失,你也可以手动点击使其消失。如果你在服务端有信息要提示,还可以通过 Redux 的单一数据源传到客户端在渲染页面时显示出来。 + + +源代码: + +https://github.com/lewis617/react-redux-tutorial/tree/master/r2-bs-alert + +安装: + +```sh +npm i +``` + +开发环境下运行: + +```sh +npm start +``` + +生产环境下构建: + +```sh +npm run build +``` + +测试: + +```sh +npm test +``` + +## 为何使用 Redux ? + +React 有自己的局部状态(Local State),可以帮助我们在不同状态下渲染不同的界面。那么实现 Alert 为何要使用 Redux ?众所周知,Alert 通常都是要在程序中全局使用的: + + - 用户操作可能会发出 Alert。 + - 网络请求等异步事件的处理器(Event Handler)可能会发出 Alert。 + - 甚至服务器渲染页面时,也可能会给客户端带来一个Alert(比如,你提交表单出错了,服务器重定向到表单页面,并显示错误提示)。 + +知道了 Alert 要全局使用,我们再来看 Redux。Redux 有一个全局单一的数据源,这个数据源可以通过 react-redux 连接到程序的任意一个组件。不但如此,更新这个数据源的 action,也可以全局使用: + + - 用户操作可以发起 action。 + - 网络请求等异步事件的处理器(Event Handler)可能会发起 action。 + - 甚至在服务器端也可以发起 action,然后将单一数据源传给客户端继续使用。 + +Redux 牛逼的设计让处理全局状态变得特别方便,实现 Universal 渲染(有些人喜欢叫SSR,但我觉得不准确)也变得非常容易。这与实现 Alert 的需求非常吻合,因此,本文通过 Redux 来辅助实现 Alert。 +从另一个方面来说,一些不在全局使用的组件和功能,一般使用React的局部状态就可以了,切记不要什么功能都用 Redux 实现。 + +了解了为何要使用 Redux,我们就开始动工吧! + +## 快速创建项目 + +搭建一个 React APP 的成本是很高的,你需要: + + - 使用 Webpack 打包。 + - 使用 Babel 编译。 + - 搭建开发服务器。 + - 使用 ESLint 进行语法检查。 + - 使用 Mocha 或 Jest 进行测试。 + - …… + +很多人诟病这一点,不过这些东西都是重复性的体力活,社区早就造好了轮子,来提高生产力。本文就使用了 [create-react-app](https://github.com/facebookincubator/create-react-app) 来快速搭建项目。All you need is these command: + +```sh +npm install -g create-react-app + +create-react-app my-app +cd my-app/ +npm start +``` + +然后上述所有东西就都有了! + +>注意,要将 npm 设为淘宝源或你自己公司的私有 npm 源(只要快就行),否则速度会非常慢,甚至可能导致安装失败。 + +接下来,我们就开始编写代码。 + +## 设计编写 Redux + +在一个 React 与 Redux 中的程序中,React 负责程序界面,而 Redux 负责程序功能。由于本例界面比较容易,所以我们先来设计 Redux。 + +我们期望的Alert 的功能包括: + + - 显示一条信息。 + - 隐藏一条信息。 + - 显示一条信息,过几秒自动隐藏。 + - 如果服务器传来有信息,在页面渲染完,过几秒也自动隐藏。 + +功能明确了,让我们把它们写成函数: + + - alertShow + - alertHide + - alertMessage + - hideAllAlert + +src/alert/redux.js + +```js +export const ALERT_SHOW = 'ALERT_SHOW'; +export const ALERT_HIDE = 'ALERT_HIDE'; + +export function alertShow(messageText, messageType, key) { + return { + type: ALERT_SHOW, + payload: { + messageText, messageType, key + } + }; +} + +export function alertHide(key) { + return { + type: ALERT_HIDE, + payload: { key } + }; +} + +export function alertMessage(messageText, messageType, delay = 5000) { + return (dispatch, getState) => { + if (typeof messageText === 'string' && ['success', 'warning', 'danger', 'info'].indexOf(messageType) > -1) { + const key = getState().alerts.lastKey + 1; + dispatch(alertShow(messageText, messageType, key)); + setTimeout(() => dispatch(alertHide(key)), delay); + } else { + console.error('messageText must be string and messageType must be success, warning, danger, info'); + } + }; +} + +export function hideAllAlert(delay = 5000) { + return (dispatch, getState) => { + getState().alerts.items.forEach((item) => { + setTimeout(() => { + dispatch(alertHide(item.key)); + }, delay); + }); + }; +} +``` +尽管部分逻辑有点复杂,但都封装在 action 创建函数中了,多么清晰和模块化!接下来,我们编写 reducer 来根据这些 action,进行 state 的更新。 +src/alert/redux.js + +export default function (state = { lastKey: -1, items: [] }, action) { + switch (action.type) { + case ALERT_SHOW: + return { + ...state, + items: [...state.items, action.payload], + lastKey: state.lastKey + 1 + }; + case ALERT_HIDE: + return { + ...state, + items: state.items.filter(item => (item.key !== action.payload.key)) + }; + default: + return state; + } +} +这里使用了解构赋值和重写的语法来保证 state 的不可变(Immutable)。 + +>Redux 的 state 要求是不可变数据,这么做的原因是方便进行快速变更检查,进而有利于React组件判断是否需要重新渲染(re-render)。另外,不可变数据还有利于进行状态回退,错误追踪。不可变数据是函数式编程中一个常用的概念。关于不可变以及函数式编程在 React 与 Redux 中的应用,《React与Redux开发实例精解》这本书中有非常详细的介绍,推荐阅读参考。 + +至此,Redux的编写就完成了。它的输出有四个: + + - reducer函数,用于创建store。 + - alertHide 函数用于隐藏指定信息。 + - alertMessage 函数用于显示一条信息,并在几秒后隐藏。 + - hideAllAlert 函数用于在渲染完页面后,过几秒隐藏服务器传来的信息。 + +接下来,我们来编写 React 组件。 + +## 设计编写 React 组件 + +React 组件的功能包括三个: + + - 渲染要显示的信息,并根据类型渲染成不同颜色。 + - 为每条信息渲染一个按钮,使用户可以通过点击按钮隐藏该信息。 + - 在第一次渲染后,过几秒隐藏来自服务器的信息。 + +为此,我们做了以下几件事: + + - 首先,使用 react-redux 的 connect 将 Redux 的 state 和 action 创建函数传给组件。 + - 然后在组件中遍历渲染出所有信息(使用了 react-bootstrap 提供的 Alert 组件)。 + - 最后,将 alertHide 函数绑在按钮的点击事件上,将 hideAllAlert 函数绑在组件渲染后的生命周期钩子上。 + +组件功能就实现了! + +```js +src/alert/AlertList.js + +import React, { Component, PropTypes } from 'react'; +import { connect } from 'react-redux'; +import Alert from 'react-bootstrap/lib/Alert'; +import { hideAllAlert, alertHide } from './redux'; + +class AlertList extends Component { + static propTypes = { + alerts: PropTypes.array.isRequired, + hideAllAlert: PropTypes.func.isRequired, + alertHide: PropTypes.func.isRequired + }; + + componentDidMount() { + this.props.hideAllAlert(); + } + + render() { + const { alerts, alertHide } = this.props; + return ( +

+ {alerts.map((item, i) => ( + alertHide(item.key)} + > + {item.messageText} + + ))} +
+ ); + } +} + +export default connect( + state => ({ + alerts: state.alerts.items + }), + { hideAllAlert, alertHide } +)(AlertList); + +``` + +为了让 connect 可以获取到 Redux 的 state 和 dispatch 方法,我们还需要在组件顶部提供store。 + +src/index.js + +```js +// 三个参数分别为 reducer、initialState 和 enhancer +const store = createStore( + combineReducers({ alerts: alertsReducer }), + {}, + applyMiddleware(thunk) +); + +// 在渲染之前发起action,用于模拟从服务器传来的信息 +store.dispatch(alertMessage('message from server', 'info')); + +ReactDOM.render( + + + , + document.getElementById('root') +); +``` + +为了使用 bootstrap,还需要安装 bootstrap,并引用它的样式文件。 + +```sh +npm i bootstrap@3 --save +``` + +src/index.js + +```js +import 'bootstrap/dist/css/bootstrap.css'; +``` + +至此,所有功能就都实现了!在后续的文章中,我们将介绍如何测试本例编写的 Redux 函数以及 React 组件。要知道,写测试是一个工程师走向成熟的必经之路,而且在 React 与 Redux 的应用中编写测试简直太方便了! + +总结 + + - Redux 适合实现全局性的组件和功能,一些局部使用的功能使用 React 的局部状态即可。 + - 推荐使用 create-react-app 来快速搭建React应用。 + - Redux 的 action 创建函数与要实现的功能一一对应。 + - Redux 的 state 为不可变数据。 + - 使用 react-redux 的 connect 将 Redux 的 state 和 action 创建函数连接到组件,进而渲染界面,绑定事件。 \ No newline at end of file From b68ce5b5b81f513a2f4a52a09d5b6f203c38722d Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Thu, 17 Nov 2016 10:36:32 +0800 Subject: [PATCH 06/59] Published with https://stackedit.io/ --- r2-bs-alert/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/r2-bs-alert/README.md b/r2-bs-alert/README.md index 80463eb..3e8cb39 100644 --- a/r2-bs-alert/README.md +++ b/r2-bs-alert/README.md @@ -7,6 +7,7 @@ 这个例子实现了弹出不同类型信息的功能,这些信息默认会在5秒后消失,你也可以手动点击使其消失。如果你在服务端有信息要提示,还可以通过 Redux 的单一数据源传到客户端在渲染页面时显示出来。 +![](https://raw.githubusercontent.com/lewis617/react-redux-tutorial/master/r2-bs-alert/public/r2-bs-alert.gif) 源代码: From 1f370b7de7d0067049ab9041ceb29210cf1304e0 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Thu, 17 Nov 2016 10:42:54 +0800 Subject: [PATCH 07/59] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 48b580c..d953adf 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,8 @@ [react+redux教程(八)连接数据库的redux程序](http://www.cnblogs.com/lewis617/p/5180097.html) +[react+redux教程(九)使用 React、Redux 和 Bootstrap 实现 Alert](https://github.com/lewis617/react-redux-tutorial/tree/master/r2-bs-alert) + ## React+Reflux教程 [react+reflux入门教程](http://www.cnblogs.com/lewis617/p/5129609.html) From a1b6a4e3faa18bec8ca39b20ba2de9d57edaac6d Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Thu, 17 Nov 2016 10:46:30 +0800 Subject: [PATCH 08/59] Published with https://stackedit.io/ --- r2-bs-alert/README.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/r2-bs-alert/README.md b/r2-bs-alert/README.md index 3e8cb39..8f5d996 100644 --- a/r2-bs-alert/README.md +++ b/r2-bs-alert/README.md @@ -1,5 +1,5 @@ -# 使用 React、Redux 和 Bootstrap 实现Alert +# 使用 React、Redux 和 Bootstrap 实现 Alert 今天,我们来学习使用 React、Redux 和 Bootstrap 实现Alert。 @@ -277,10 +277,17 @@ import 'bootstrap/dist/css/bootstrap.css'; 至此,所有功能就都实现了!在后续的文章中,我们将介绍如何测试本例编写的 Redux 函数以及 React 组件。要知道,写测试是一个工程师走向成熟的必经之路,而且在 React 与 Redux 的应用中编写测试简直太方便了! -总结 +## 总结 - Redux 适合实现全局性的组件和功能,一些局部使用的功能使用 React 的局部状态即可。 - 推荐使用 create-react-app 来快速搭建React应用。 - Redux 的 action 创建函数与要实现的功能一一对应。 - Redux 的 state 为不可变数据。 - - 使用 react-redux 的 connect 将 Redux 的 state 和 action 创建函数连接到组件,进而渲染界面,绑定事件。 \ No newline at end of file + - 使用 react-redux 的 connect 将 Redux 的 state 和 action 创建函数连接到组件,进而渲染界面,绑定事件。 + + +## 教程源代码及目录 + +如果您觉得本博客教程帮到了您,就赏颗星吧! + +[https://github.com/lewis617/react-redux-tutorial](https://github.com/lewis617/react-redux-tutorial) \ No newline at end of file From 87945aec64b2592f473f949c6f3453253395ebcc Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Thu, 17 Nov 2016 12:00:17 +0800 Subject: [PATCH 09/59] Update README.md --- r2-bs-alert/README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/r2-bs-alert/README.md b/r2-bs-alert/README.md index 8f5d996..e264518 100644 --- a/r2-bs-alert/README.md +++ b/r2-bs-alert/README.md @@ -148,6 +148,7 @@ export function hideAllAlert(delay = 5000) { 尽管部分逻辑有点复杂,但都封装在 action 创建函数中了,多么清晰和模块化!接下来,我们编写 reducer 来根据这些 action,进行 state 的更新。 src/alert/redux.js +```js export default function (state = { lastKey: -1, items: [] }, action) { switch (action.type) { case ALERT_SHOW: @@ -165,6 +166,8 @@ export default function (state = { lastKey: -1, items: [] }, action) { return state; } } +``` + 这里使用了解构赋值和重写的语法来保证 state 的不可变(Immutable)。 >Redux 的 state 要求是不可变数据,这么做的原因是方便进行快速变更检查,进而有利于React组件判断是否需要重新渲染(re-render)。另外,不可变数据还有利于进行状态回退,错误追踪。不可变数据是函数式编程中一个常用的概念。关于不可变以及函数式编程在 React 与 Redux 中的应用,《React与Redux开发实例精解》这本书中有非常详细的介绍,推荐阅读参考。 @@ -290,4 +293,4 @@ import 'bootstrap/dist/css/bootstrap.css'; 如果您觉得本博客教程帮到了您,就赏颗星吧! -[https://github.com/lewis617/react-redux-tutorial](https://github.com/lewis617/react-redux-tutorial) \ No newline at end of file +[https://github.com/lewis617/react-redux-tutorial](https://github.com/lewis617/react-redux-tutorial) From 2f4762309fc489871ec058d554e38e26f34b79ea Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Thu, 17 Nov 2016 12:35:24 +0800 Subject: [PATCH 10/59] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d953adf..5518321 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ [react+redux教程(八)连接数据库的redux程序](http://www.cnblogs.com/lewis617/p/5180097.html) -[react+redux教程(九)使用 React、Redux 和 Bootstrap 实现 Alert](https://github.com/lewis617/react-redux-tutorial/tree/master/r2-bs-alert) +[react+redux教程(九)使用 React、Redux 和 Bootstrap 实现 Alert](https://zhuanlan.zhihu.com/p/23717533) ## React+Reflux教程 [react+reflux入门教程](http://www.cnblogs.com/lewis617/p/5129609.html) From cb65e13863488ded5bb7a3b216ba8a0d7c8bb7c3 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Fri, 18 Nov 2016 10:54:48 +0800 Subject: [PATCH 11/59] Update README.md --- r2-bs-alert/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/r2-bs-alert/README.md b/r2-bs-alert/README.md index e264518..19df7d1 100644 --- a/r2-bs-alert/README.md +++ b/r2-bs-alert/README.md @@ -170,7 +170,7 @@ export default function (state = { lastKey: -1, items: [] }, action) { 这里使用了解构赋值和重写的语法来保证 state 的不可变(Immutable)。 ->Redux 的 state 要求是不可变数据,这么做的原因是方便进行快速变更检查,进而有利于React组件判断是否需要重新渲染(re-render)。另外,不可变数据还有利于进行状态回退,错误追踪。不可变数据是函数式编程中一个常用的概念。关于不可变以及函数式编程在 React 与 Redux 中的应用,《React与Redux开发实例精解》这本书中有非常详细的介绍,推荐阅读参考。 +>Redux 的 state 要求是不可变数据,这么做的原因是方便进行快速变更检查,进而有利于React组件判断是否需要重新渲染(re-render)。另外,不可变数据还有利于进行状态回退,错误追踪。不可变数据是函数式编程中一个常用的概念。关于不可变以及函数式编程在 React 与 Redux 中的应用,[《React与Redux开发实例精解》](https://item.jd.com/12010463.html)这本书中有非常详细的介绍,推荐阅读参考。 至此,Redux的编写就完成了。它的输出有四个: From 0ebd012369082361228ac7b85b105e447418c2ef Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Fri, 18 Nov 2016 11:27:30 +0800 Subject: [PATCH 12/59] Published with https://stackedit.io/ --- README.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5518321..47676bf 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ + ## React+Redux系列教程 [react+redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](http://www.cnblogs.com/lewis617/p/5145073.html) @@ -23,4 +24,17 @@ ## Angular2教程 [Angular2教程](https://github.com/lewis617/angular2-tutorial) -*如果您觉得本程序或者博客帮到了您,就赏颗星吧!* + +##《React 与 Redux 开发实例精解》 + +### 关于 React 与 Redux + +React 与 Redux, 一个快如鬼魅,一个清晰明了,各个巨头在生产环境对其进行了无数次的测试,强大的社区又为其提供了无数个场景的解决方案,是目前国际上最主流,最先进的前端技术选型。 + +### 关于这本书 + +《React 与 Redux 开发实例精解》这本书不仅讲解了 React 与 Redux 的基础和实战,更注重 Universal 渲染、函数式编程和大型项目架构的介绍。笔者一直在360的生产环境中使用这本书上的技术,感觉非常靠谱。希望读者可以喜欢这本书,也希望这本书能帮到更多的人,更希望国内有更多的基于 React 与 Redux 搭建的优秀项目出现! + +### 售书链接 + +[京东](https://item.jd.com/12010463.html) From 4868a6207b3f1f53ba2406b625deb3a8c0c4b0fd Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Fri, 18 Nov 2016 11:29:18 +0800 Subject: [PATCH 13/59] Published with https://stackedit.io/ --- README.md | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 47676bf..b9cc1f7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,19 @@ +##《React 与 Redux 开发实例精解》 + +### 关于 React 与 Redux + +React 与 Redux, 一个快如鬼魅,一个清晰明了,各个巨头在生产环境对其进行了无数次的测试,强大的社区又为其提供了无数个场景的解决方案,是目前国际上最主流,最先进的前端技术选型。 + +### 关于这本书 + +《React 与 Redux 开发实例精解》这本书不仅讲解了 React 与 Redux 的基础和实战,更注重 Universal 渲染、函数式编程和大型项目架构的介绍。笔者一直在360的生产环境中使用这本书上的技术,感觉非常靠谱。希望读者可以喜欢这本书,也希望这本书能帮到更多的人,更希望国内有更多的基于 React 与 Redux 搭建的优秀项目出现! + +### 售书链接 + +[京东](https://item.jd.com/12010463.html) + + ## React+Redux系列教程 [react+redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](http://www.cnblogs.com/lewis617/p/5145073.html) @@ -25,16 +40,3 @@ [Angular2教程](https://github.com/lewis617/angular2-tutorial) -##《React 与 Redux 开发实例精解》 - -### 关于 React 与 Redux - -React 与 Redux, 一个快如鬼魅,一个清晰明了,各个巨头在生产环境对其进行了无数次的测试,强大的社区又为其提供了无数个场景的解决方案,是目前国际上最主流,最先进的前端技术选型。 - -### 关于这本书 - -《React 与 Redux 开发实例精解》这本书不仅讲解了 React 与 Redux 的基础和实战,更注重 Universal 渲染、函数式编程和大型项目架构的介绍。笔者一直在360的生产环境中使用这本书上的技术,感觉非常靠谱。希望读者可以喜欢这本书,也希望这本书能帮到更多的人,更希望国内有更多的基于 React 与 Redux 搭建的优秀项目出现! - -### 售书链接 - -[京东](https://item.jd.com/12010463.html) From d18026153defce0821166d19eb91c4a1695d7652 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Fri, 18 Nov 2016 13:50:54 +0800 Subject: [PATCH 14/59] Published with https://stackedit.io/ --- README.md | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index b9cc1f7..25e2df2 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,4 @@ -##《React 与 Redux 开发实例精解》 - -### 关于 React 与 Redux - -React 与 Redux, 一个快如鬼魅,一个清晰明了,各个巨头在生产环境对其进行了无数次的测试,强大的社区又为其提供了无数个场景的解决方案,是目前国际上最主流,最先进的前端技术选型。 - -### 关于这本书 - -《React 与 Redux 开发实例精解》这本书不仅讲解了 React 与 Redux 的基础和实战,更注重 Universal 渲染、函数式编程和大型项目架构的介绍。笔者一直在360的生产环境中使用这本书上的技术,感觉非常靠谱。希望读者可以喜欢这本书,也希望这本书能帮到更多的人,更希望国内有更多的基于 React 与 Redux 搭建的优秀项目出现! - -### 售书链接 - -[京东](https://item.jd.com/12010463.html) - - ## React+Redux系列教程 [react+redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](http://www.cnblogs.com/lewis617/p/5145073.html) @@ -39,4 +24,16 @@ React 与 Redux, 一个快如鬼魅,一个清晰明了,各个巨头在生 ## Angular2教程 [Angular2教程](https://github.com/lewis617/angular2-tutorial) +##《React 与 Redux 开发实例精解》 + +### 关于 React 与 Redux +React 与 Redux, 一个快如鬼魅,一个清晰明了,各个巨头在生产环境对其进行了无数次的测试,强大的社区又为其提供了无数个场景的解决方案,是目前国际上最主流,最先进的前端技术选型。 + +### 关于这本书 + +《React 与 Redux 开发实例精解》这本书不仅讲解了 React 与 Redux 的基础和实战,更注重 Universal 渲染、函数式编程和大型项目架构的介绍。笔者一直在360的生产环境中使用这本书上的技术,感觉非常靠谱。希望读者可以喜欢这本书,也希望这本书能帮到更多的人,更希望国内有更多的基于 React 与 Redux 搭建的优秀项目出现! + +### 售书链接 + +[京东](https://item.jd.com/12010463.html) From 42e6eb22ab80c1b2179c2fed3656a65408d84934 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sun, 20 Nov 2016 15:46:57 +0800 Subject: [PATCH 15/59] Update README.md --- README.md | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 25e2df2..50a74e6 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,30 @@ ## React+Redux系列教程 -[react+redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](http://www.cnblogs.com/lewis617/p/5145073.html) -[react+redux教程(二)redux的单一状态树完全替代了react的状态机?](http://www.cnblogs.com/lewis617/p/5147445.html) + [React与Redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](https://lewis617.github.io/2016/01/19/r2-counter/) + + [React与Redux教程(二)Redux的单一状态树完全替代了React的状态机?](https://lewis617.github.io/2016/01/20/r2-state/) + + [React与Redux教程(三)reduce()、filter()、map()、some()、every()、...展开属性](https://lewis617.github.io/2016/01/21/r2-array/) + + [React与Redux教程(四)undo、devtools、router](https://lewis617.github.io/2016/01/26/r2-undo/) -[react+redux教程(三)reduce()、filter()、map()、some()、every()、...展开属性](http://www.cnblogs.com/lewis617/p/5149006.html) + [React与Redux教程(五)异步、单一state树结构、componentWillReceiveProps](https://lewis617.github.io/2016/01/29/r2-async/) -[react+redux教程(四)undo、devtools、router](http://www.cnblogs.com/lewis617/p/5161003.html) + [React与Redux教程(六)redux服务端渲染流程](https://lewis617.github.io/2016/01/31/r2-ssr/) -[react+redux教程(五)异步、单一state树结构、componentWillReceiveProps](http://www.cnblogs.com/lewis617/p/5170835.html) + [React与Redux教程(七)自定义Redux中间件](https://lewis617.github.io/2016/02/02/r2-middleware/) -[react+redux教程(六)redux服务端渲染流程](http://www.cnblogs.com/lewis617/p/5174861.html) + [React与Redux教程(八)连接数据库的Redux程序](https://lewis617.github.io/2016/02/03/r2-database/) -[react+redux教程(七)自定义redux中间件](http://www.cnblogs.com/lewis617/p/5177852.html) - -[react+redux教程(八)连接数据库的redux程序](http://www.cnblogs.com/lewis617/p/5180097.html) - -[react+redux教程(九)使用 React、Redux 和 Bootstrap 实现 Alert](https://zhuanlan.zhihu.com/p/23717533) + [React与Redux教程(八)使用 React、Redux 和 Bootstrap 实现 Alert](https://lewis617.github.io/2016/11/16/r2-bs-alert/) ## React+Reflux教程 -[react+reflux入门教程](http://www.cnblogs.com/lewis617/p/5129609.html) + +[React+Reflux入门教程](https://lewis617.github.io/2016/01/13/react-reflux/) ## Angular2教程 + [Angular2教程](https://github.com/lewis617/angular2-tutorial) ##《React 与 Redux 开发实例精解》 From a417b306e6afb50a6ebe3bad512beb8cb45bc41a Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sun, 20 Nov 2016 15:55:34 +0800 Subject: [PATCH 16/59] Update README.md --- README.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/README.md b/README.md index 50a74e6..39ba5d6 100644 --- a/README.md +++ b/README.md @@ -29,14 +29,4 @@ ##《React 与 Redux 开发实例精解》 -### 关于 React 与 Redux - -React 与 Redux, 一个快如鬼魅,一个清晰明了,各个巨头在生产环境对其进行了无数次的测试,强大的社区又为其提供了无数个场景的解决方案,是目前国际上最主流,最先进的前端技术选型。 - -### 关于这本书 - -《React 与 Redux 开发实例精解》这本书不仅讲解了 React 与 Redux 的基础和实战,更注重 Universal 渲染、函数式编程和大型项目架构的介绍。笔者一直在360的生产环境中使用这本书上的技术,感觉非常靠谱。希望读者可以喜欢这本书,也希望这本书能帮到更多的人,更希望国内有更多的基于 React 与 Redux 搭建的优秀项目出现! - -### 售书链接 - [京东](https://item.jd.com/12010463.html) From 6878d82ff1f11650eeb0ea415d548424a44731c7 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sun, 20 Nov 2016 18:58:20 +0800 Subject: [PATCH 17/59] Update README.md --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 39ba5d6..50a74e6 100644 --- a/README.md +++ b/README.md @@ -29,4 +29,14 @@ ##《React 与 Redux 开发实例精解》 +### 关于 React 与 Redux + +React 与 Redux, 一个快如鬼魅,一个清晰明了,各个巨头在生产环境对其进行了无数次的测试,强大的社区又为其提供了无数个场景的解决方案,是目前国际上最主流,最先进的前端技术选型。 + +### 关于这本书 + +《React 与 Redux 开发实例精解》这本书不仅讲解了 React 与 Redux 的基础和实战,更注重 Universal 渲染、函数式编程和大型项目架构的介绍。笔者一直在360的生产环境中使用这本书上的技术,感觉非常靠谱。希望读者可以喜欢这本书,也希望这本书能帮到更多的人,更希望国内有更多的基于 React 与 Redux 搭建的优秀项目出现! + +### 售书链接 + [京东](https://item.jd.com/12010463.html) From 1552b1b114a9e6933bc8d45ebdadf9c9646c17ef Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sun, 20 Nov 2016 21:06:45 +0800 Subject: [PATCH 18/59] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 50a74e6..b129c88 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ [React与Redux教程(八)连接数据库的Redux程序](https://lewis617.github.io/2016/02/03/r2-database/) - [React与Redux教程(八)使用 React、Redux 和 Bootstrap 实现 Alert](https://lewis617.github.io/2016/11/16/r2-bs-alert/) + [React与Redux教程(九)使用 React、Redux 和 Bootstrap 实现 Alert](https://lewis617.github.io/2016/11/16/r2-bs-alert/) ## React+Reflux教程 From 000aa8cc205dfabace7d7a33829607d039d907af Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Tue, 22 Nov 2016 10:23:21 +0800 Subject: [PATCH 19/59] Update README.md --- README.md | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index b129c88..6925080 100644 --- a/README.md +++ b/README.md @@ -27,16 +27,6 @@ [Angular2教程](https://github.com/lewis617/angular2-tutorial) -##《React 与 Redux 开发实例精解》 +##《React 与 Redux 开发实例精解》出版了! -### 关于 React 与 Redux - -React 与 Redux, 一个快如鬼魅,一个清晰明了,各个巨头在生产环境对其进行了无数次的测试,强大的社区又为其提供了无数个场景的解决方案,是目前国际上最主流,最先进的前端技术选型。 - -### 关于这本书 - -《React 与 Redux 开发实例精解》这本书不仅讲解了 React 与 Redux 的基础和实战,更注重 Universal 渲染、函数式编程和大型项目架构的介绍。笔者一直在360的生产环境中使用这本书上的技术,感觉非常靠谱。希望读者可以喜欢这本书,也希望这本书能帮到更多的人,更希望国内有更多的基于 React 与 Redux 搭建的优秀项目出现! - -### 售书链接 - -[京东](https://item.jd.com/12010463.html) +[《React 与 Redux 开发实例精解》出版了!](https://lewis617.github.io/2016/11/20/r2-book/) From f61a0aadfa9bb58aec58eea2b7e86e34039c2776 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Thu, 24 Nov 2016 19:20:48 +0800 Subject: [PATCH 20/59] Published with https://stackedit.io/ --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 6925080..86d79f2 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,27 @@ ## React+Redux系列教程 - [React与Redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](https://lewis617.github.io/2016/01/19/r2-counter/) + [React与Redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](http://lewis617.coding.me/2016/01/19/r2-counter/) - [React与Redux教程(二)Redux的单一状态树完全替代了React的状态机?](https://lewis617.github.io/2016/01/20/r2-state/) + [React与Redux教程(二)Redux的单一状态树完全替代了React的状态机?](http://lewis617.coding.me/2016/01/20/r2-state/) - [React与Redux教程(三)reduce()、filter()、map()、some()、every()、...展开属性](https://lewis617.github.io/2016/01/21/r2-array/) + [React与Redux教程(三)reduce()、filter()、map()、some()、every()、...展开属性](http://lewis617.coding.me/2016/01/21/r2-array/) - [React与Redux教程(四)undo、devtools、router](https://lewis617.github.io/2016/01/26/r2-undo/) + [React与Redux教程(四)undo、devtools、router](http://lewis617.coding.me/2016/01/26/r2-undo/) - [React与Redux教程(五)异步、单一state树结构、componentWillReceiveProps](https://lewis617.github.io/2016/01/29/r2-async/) + [React与Redux教程(五)异步、单一state树结构、componentWillReceiveProps](http://lewis617.coding.me/2016/01/29/r2-async/) - [React与Redux教程(六)redux服务端渲染流程](https://lewis617.github.io/2016/01/31/r2-ssr/) + [React与Redux教程(六)redux服务端渲染流程](http://lewis617.coding.me/2016/01/31/r2-ssr/) - [React与Redux教程(七)自定义Redux中间件](https://lewis617.github.io/2016/02/02/r2-middleware/) + [React与Redux教程(七)自定义Redux中间件](http://lewis617.coding.me/2016/02/02/r2-middleware/) - [React与Redux教程(八)连接数据库的Redux程序](https://lewis617.github.io/2016/02/03/r2-database/) + [React与Redux教程(八)连接数据库的Redux程序](http://lewis617.coding.me/2016/02/03/r2-database/) - [React与Redux教程(九)使用 React、Redux 和 Bootstrap 实现 Alert](https://lewis617.github.io/2016/11/16/r2-bs-alert/) + [React与Redux教程(九)使用 React、Redux 和 Bootstrap 实现 Alert](http://lewis617.coding.me/2016/11/16/r2-bs-alert/) ## React+Reflux教程 -[React+Reflux入门教程](https://lewis617.github.io/2016/01/13/react-reflux/) +[React+Reflux入门教程](http://lewis617.coding.me/2016/01/13/react-reflux/) ## Angular2教程 @@ -29,4 +29,4 @@ ##《React 与 Redux 开发实例精解》出版了! -[《React 与 Redux 开发实例精解》出版了!](https://lewis617.github.io/2016/11/20/r2-book/) +[《React 与 Redux 开发实例精解》出版了!](http://lewis617.coding.me/2016/11/20/r2-book/) From 7c69f92c36fde534850b0bf804dbc21429ec62f0 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Fri, 25 Nov 2016 12:25:42 +0800 Subject: [PATCH 21/59] Published with https://stackedit.io/ --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 86d79f2..6925080 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,27 @@ ## React+Redux系列教程 - [React与Redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](http://lewis617.coding.me/2016/01/19/r2-counter/) + [React与Redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](https://lewis617.github.io/2016/01/19/r2-counter/) - [React与Redux教程(二)Redux的单一状态树完全替代了React的状态机?](http://lewis617.coding.me/2016/01/20/r2-state/) + [React与Redux教程(二)Redux的单一状态树完全替代了React的状态机?](https://lewis617.github.io/2016/01/20/r2-state/) - [React与Redux教程(三)reduce()、filter()、map()、some()、every()、...展开属性](http://lewis617.coding.me/2016/01/21/r2-array/) + [React与Redux教程(三)reduce()、filter()、map()、some()、every()、...展开属性](https://lewis617.github.io/2016/01/21/r2-array/) - [React与Redux教程(四)undo、devtools、router](http://lewis617.coding.me/2016/01/26/r2-undo/) + [React与Redux教程(四)undo、devtools、router](https://lewis617.github.io/2016/01/26/r2-undo/) - [React与Redux教程(五)异步、单一state树结构、componentWillReceiveProps](http://lewis617.coding.me/2016/01/29/r2-async/) + [React与Redux教程(五)异步、单一state树结构、componentWillReceiveProps](https://lewis617.github.io/2016/01/29/r2-async/) - [React与Redux教程(六)redux服务端渲染流程](http://lewis617.coding.me/2016/01/31/r2-ssr/) + [React与Redux教程(六)redux服务端渲染流程](https://lewis617.github.io/2016/01/31/r2-ssr/) - [React与Redux教程(七)自定义Redux中间件](http://lewis617.coding.me/2016/02/02/r2-middleware/) + [React与Redux教程(七)自定义Redux中间件](https://lewis617.github.io/2016/02/02/r2-middleware/) - [React与Redux教程(八)连接数据库的Redux程序](http://lewis617.coding.me/2016/02/03/r2-database/) + [React与Redux教程(八)连接数据库的Redux程序](https://lewis617.github.io/2016/02/03/r2-database/) - [React与Redux教程(九)使用 React、Redux 和 Bootstrap 实现 Alert](http://lewis617.coding.me/2016/11/16/r2-bs-alert/) + [React与Redux教程(九)使用 React、Redux 和 Bootstrap 实现 Alert](https://lewis617.github.io/2016/11/16/r2-bs-alert/) ## React+Reflux教程 -[React+Reflux入门教程](http://lewis617.coding.me/2016/01/13/react-reflux/) +[React+Reflux入门教程](https://lewis617.github.io/2016/01/13/react-reflux/) ## Angular2教程 @@ -29,4 +29,4 @@ ##《React 与 Redux 开发实例精解》出版了! -[《React 与 Redux 开发实例精解》出版了!](http://lewis617.coding.me/2016/11/20/r2-book/) +[《React 与 Redux 开发实例精解》出版了!](https://lewis617.github.io/2016/11/20/r2-book/) From 1ce6cd55bad3810d3cdf38a235d3eab95749c532 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sat, 26 Nov 2016 17:21:06 +0800 Subject: [PATCH 22/59] Update README.md --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6925080..4b5f3a1 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,11 @@ [React与Redux教程(八)连接数据库的Redux程序](https://lewis617.github.io/2016/02/03/r2-database/) - [React与Redux教程(九)使用 React、Redux 和 Bootstrap 实现 Alert](https://lewis617.github.io/2016/11/16/r2-bs-alert/) +## React+Redux系列教程(续) + + [使用 React、Redux 和 Bootstrap 实现 Alert](https://lewis617.github.io/2016/11/16/r2-bs-alert/) + + [React 与 Redux 在生产环境中的实践总结](https://lewis617.github.io/2016/11/26/opendata/) ## React+Reflux教程 From ee260476834a794388d25543bfc7de6b8eedc320 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sat, 26 Nov 2016 17:30:05 +0800 Subject: [PATCH 23/59] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4b5f3a1..57f2b02 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,6 @@ [Angular2教程](https://github.com/lewis617/angular2-tutorial) -##《React 与 Redux 开发实例精解》出版了! +--- -[《React 与 Redux 开发实例精解》出版了!](https://lewis617.github.io/2016/11/20/r2-book/) +欢迎关注我的[微博](http://www.weibo.com/u/2207255374)和[博客](https://lewis617.github.io/),一起探讨技术,共同进步! From f5c2fc1b05fe75730b3852c18c2a47e790cf90ec Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sat, 26 Nov 2016 17:39:13 +0800 Subject: [PATCH 24/59] Update README.md --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 57f2b02..fb3297f 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,4 @@ [Angular2教程](https://github.com/lewis617/angular2-tutorial) ---- - -欢迎关注我的[微博](http://www.weibo.com/u/2207255374)和[博客](https://lewis617.github.io/),一起探讨技术,共同进步! +*如果您觉得本程序或者博客帮到了您,就赏颗星吧!* From 00aa67f2fa573bacd0fcf5e96358258b9f42c502 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Thu, 1 Dec 2016 17:56:18 +0800 Subject: [PATCH 25/59] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index fb3297f..740217c 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,8 @@ [使用 React、Redux 和 Bootstrap 实现 Alert](https://lewis617.github.io/2016/11/16/r2-bs-alert/) [React 与 Redux 在生产环境中的实践总结](https://lewis617.github.io/2016/11/26/opendata/) + + [用更少的代码发起异步action(博主推荐)](https://lewis617.github.io/2016/11/30/redux-amrc/) ## React+Reflux教程 From d6c96097511763e705becbf670cd32cd5bd84d88 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Fri, 2 Dec 2016 13:00:10 +0800 Subject: [PATCH 26/59] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 740217c..10e1fb3 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,8 @@ [使用 React、Redux 和 Bootstrap 实现 Alert](https://lewis617.github.io/2016/11/16/r2-bs-alert/) + [使用 React、Redux 和 Bootstrap 实现 Alert(测试篇)](https://lewis617.github.io/2016/11/17/r2-bs-alert-test/) + [React 与 Redux 在生产环境中的实践总结](https://lewis617.github.io/2016/11/26/opendata/) [用更少的代码发起异步action(博主推荐)](https://lewis617.github.io/2016/11/30/redux-amrc/) From 96a225081f9e8fd84988a90006452f5d97855b27 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Thu, 8 Dec 2016 20:03:54 +0800 Subject: [PATCH 27/59] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 10e1fb3..6ba9f96 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,8 @@ [React 与 Redux 在生产环境中的实践总结](https://lewis617.github.io/2016/11/26/opendata/) [用更少的代码发起异步action(博主推荐)](https://lewis617.github.io/2016/11/30/redux-amrc/) + + [RxJS + Redux + React = Amazing!(听译一)](https://lewis617.github.io/2016/12/08/rxjs-redux-react-amazing-1/) ## React+Reflux教程 From 58e498bd7dbfbbfdc1e517ac7646b4557a59030c Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sat, 10 Dec 2016 16:34:30 +0800 Subject: [PATCH 28/59] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6ba9f96..0337c5e 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,9 @@ [用更少的代码发起异步action(博主推荐)](https://lewis617.github.io/2016/11/30/redux-amrc/) - [RxJS + Redux + React = Amazing!(听译一)](https://lewis617.github.io/2016/12/08/rxjs-redux-react-amazing-1/) + [RxJS + Redux + React = Amazing!(译一)](https://lewis617.github.io/2016/12/08/rxjs-redux-react-amazing-1/) + + [RxJS + Redux + React = Amazing!(译二)](https://lewis617.github.io/2016/12/09/rxjs-redux-react-amazing-2/) ## React+Reflux教程 From fb4ca290084011f8370d21266179047d557f43a0 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sat, 10 Dec 2016 16:37:43 +0800 Subject: [PATCH 29/59] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0337c5e..3b565dc 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,8 @@ [使用 React、Redux 和 Bootstrap 实现 Alert(测试篇)](https://lewis617.github.io/2016/11/17/r2-bs-alert-test/) + [《React 与 Redux 开发实例精解》出版了!](https://lewis617.github.io/2016/11/20/r2-book/) + [React 与 Redux 在生产环境中的实践总结](https://lewis617.github.io/2016/11/26/opendata/) [用更少的代码发起异步action(博主推荐)](https://lewis617.github.io/2016/11/30/redux-amrc/) From 103c63d9fd178f2b8e13183aaed640c47548d4be Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sat, 10 Dec 2016 17:42:17 +0800 Subject: [PATCH 30/59] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 3b565dc..30598b4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ +想第一时间获取我写的最新的文章,可以关注[我的微博](http://www.weibo.com/lewis617)。也欢迎买我的新书——[《React与Redux开发实例精解》](https://lewis617.github.io/2016/11/20/r2-book/)。 + ## React+Redux系列教程 [React与Redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](https://lewis617.github.io/2016/01/19/r2-counter/) From 096e1cea89fc585d3f8857d03002f571c1cf5b1f Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sat, 10 Dec 2016 17:42:49 +0800 Subject: [PATCH 31/59] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 30598b4..9cb8c7a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -想第一时间获取我写的最新的文章,可以关注[我的微博](http://www.weibo.com/lewis617)。也欢迎买我的新书——[《React与Redux开发实例精解》](https://lewis617.github.io/2016/11/20/r2-book/)。 +想第一时间获取我写的最新文章,可以关注[我的微博](http://www.weibo.com/lewis617)。也欢迎买我的新书——[《React与Redux开发实例精解》](https://lewis617.github.io/2016/11/20/r2-book/)。 ## React+Redux系列教程 From 090383dee5cf521736740197b7a91fe8052b673e Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Mon, 12 Dec 2016 23:34:34 +0800 Subject: [PATCH 32/59] Update README.md --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 9cb8c7a..de924e9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,3 @@ - -想第一时间获取我写的最新文章,可以关注[我的微博](http://www.weibo.com/lewis617)。也欢迎买我的新书——[《React与Redux开发实例精解》](https://lewis617.github.io/2016/11/20/r2-book/)。 - ## React+Redux系列教程 [React与Redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](https://lewis617.github.io/2016/01/19/r2-counter/) From edc24803831800a1a82c13a9cf926fa69405f90a Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Thu, 15 Dec 2016 15:13:40 +0800 Subject: [PATCH 33/59] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index de924e9..c10eeab 100644 --- a/README.md +++ b/README.md @@ -40,4 +40,8 @@ [Angular2教程](https://github.com/lewis617/angular2-tutorial) +## 算法随笔集 + +[算法随笔集](https://github.com/lewis617/algorithms-essay) + *如果您觉得本程序或者博客帮到了您,就赏颗星吧!* From 9ad8f4e8fa012d000f833b6602551ec89270e5ce Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Thu, 15 Dec 2016 17:52:51 +0800 Subject: [PATCH 34/59] Update README.md --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index c10eeab..de924e9 100644 --- a/README.md +++ b/README.md @@ -40,8 +40,4 @@ [Angular2教程](https://github.com/lewis617/angular2-tutorial) -## 算法随笔集 - -[算法随笔集](https://github.com/lewis617/algorithms-essay) - *如果您觉得本程序或者博客帮到了您,就赏颗星吧!* From ca11a00cd680dae7bc50466a027312807c2c6c24 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sat, 24 Dec 2016 10:01:31 +0800 Subject: [PATCH 35/59] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index de924e9..eeb6f40 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +> 这套教程是抱着社区志愿者心态写的,虽然篇幅不少,但不够系统。推荐看我的新书[《React与Redux开发实例精解》](https://lewis617.github.io/2016/11/20/r2-book/),干得一点水分都没有! + ## React+Redux系列教程 [React与Redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](https://lewis617.github.io/2016/01/19/r2-counter/) From 4f707ab4681e49fe722153faf8629d95cc8d8854 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sat, 24 Dec 2016 10:02:11 +0800 Subject: [PATCH 36/59] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index eeb6f40..29a8b0a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -> 这套教程是抱着社区志愿者心态写的,虽然篇幅不少,但不够系统。推荐看我的新书[《React与Redux开发实例精解》](https://lewis617.github.io/2016/11/20/r2-book/),干得一点水分都没有! +> 这套教程是以社区志愿者心态写的,虽然篇幅不少,但不够系统。推荐看我的新书[《React与Redux开发实例精解》](https://lewis617.github.io/2016/11/20/r2-book/),干得一点水分都没有! ## React+Redux系列教程 From ad95dc225dd55c9506a67b97c5c5f62268cfd202 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sat, 24 Dec 2016 10:04:30 +0800 Subject: [PATCH 37/59] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 29a8b0a..baed1bd 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -> 这套教程是以社区志愿者心态写的,虽然篇幅不少,但不够系统。推荐看我的新书[《React与Redux开发实例精解》](https://lewis617.github.io/2016/11/20/r2-book/),干得一点水分都没有! +> 这套教程是以社区志愿者心态写的,虽然篇幅不少,但不够系统,推荐看我的新书[《React与Redux开发实例精解》](https://lewis617.github.io/2016/11/20/r2-book/),从头到尾,自内而外,“干”得一点水分都没有! ## React+Redux系列教程 From 7dba7f9b479e2ed23ec4fadec2751c7526abb771 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sat, 24 Dec 2016 10:25:55 +0800 Subject: [PATCH 38/59] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index baed1bd..47e67c6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -> 这套教程是以社区志愿者心态写的,虽然篇幅不少,但不够系统,推荐看我的新书[《React与Redux开发实例精解》](https://lewis617.github.io/2016/11/20/r2-book/),从头到尾,自内而外,“干”得一点水分都没有! +> 这套教程写于2016年1月,是以社区志愿者心态写的,虽然篇幅不少,但既无基础讲解,也无项目实战,有点“前不着村后不着店”,想系统学习React/Redux/Node技术栈的同学可以看我的新书[《React与Redux开发实例精解》](https://lewis617.github.io/2016/11/20/r2-book/),不仅内容更加系统严谨,而且穿插了大量拓展性知识介绍,推荐阅读参考! ## React+Redux系列教程 From 479b4d52b1af30bce6fda7f0251ae7542104d50c Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sat, 24 Dec 2016 10:34:50 +0800 Subject: [PATCH 39/59] Update README.md --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 47e67c6..997c6e1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -> 这套教程写于2016年1月,是以社区志愿者心态写的,虽然篇幅不少,但既无基础讲解,也无项目实战,有点“前不着村后不着店”,想系统学习React/Redux/Node技术栈的同学可以看我的新书[《React与Redux开发实例精解》](https://lewis617.github.io/2016/11/20/r2-book/),不仅内容更加系统严谨,而且穿插了大量拓展性知识介绍,推荐阅读参考! +> 公告:[《React与Redux开发实例精解》出版了!](https://lewis617.github.io/2016/11/20/r2-book/) ## React+Redux系列教程 @@ -24,8 +24,6 @@ [使用 React、Redux 和 Bootstrap 实现 Alert(测试篇)](https://lewis617.github.io/2016/11/17/r2-bs-alert-test/) - [《React 与 Redux 开发实例精解》出版了!](https://lewis617.github.io/2016/11/20/r2-book/) - [React 与 Redux 在生产环境中的实践总结](https://lewis617.github.io/2016/11/26/opendata/) [用更少的代码发起异步action(博主推荐)](https://lewis617.github.io/2016/11/30/redux-amrc/) From ef359db0dbcdce42c0beb064c111ce8f0957ad11 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sat, 24 Dec 2016 10:39:05 +0800 Subject: [PATCH 40/59] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 997c6e1..f316942 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,6 @@ [使用 React、Redux 和 Bootstrap 实现 Alert(测试篇)](https://lewis617.github.io/2016/11/17/r2-bs-alert-test/) - [React 与 Redux 在生产环境中的实践总结](https://lewis617.github.io/2016/11/26/opendata/) - [用更少的代码发起异步action(博主推荐)](https://lewis617.github.io/2016/11/30/redux-amrc/) [RxJS + Redux + React = Amazing!(译一)](https://lewis617.github.io/2016/12/08/rxjs-redux-react-amazing-1/) From efcb56c769f2553ded8fa6caa982052d9888dd7d Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Mon, 2 Jan 2017 22:27:30 +0800 Subject: [PATCH 41/59] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index f316942..e2b32eb 100644 --- a/README.md +++ b/README.md @@ -37,5 +37,3 @@ ## Angular2教程 [Angular2教程](https://github.com/lewis617/angular2-tutorial) - -*如果您觉得本程序或者博客帮到了您,就赏颗星吧!* From 0404dad82404d6e44001da90b12aad5a8ccf221d Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Tue, 3 Jan 2017 15:16:49 +0800 Subject: [PATCH 42/59] Update README.md --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index e2b32eb..e04ad72 100644 --- a/README.md +++ b/README.md @@ -19,10 +19,6 @@ [React与Redux教程(八)连接数据库的Redux程序](https://lewis617.github.io/2016/02/03/r2-database/) ## React+Redux系列教程(续) - - [使用 React、Redux 和 Bootstrap 实现 Alert](https://lewis617.github.io/2016/11/16/r2-bs-alert/) - - [使用 React、Redux 和 Bootstrap 实现 Alert(测试篇)](https://lewis617.github.io/2016/11/17/r2-bs-alert-test/) [用更少的代码发起异步action(博主推荐)](https://lewis617.github.io/2016/11/30/redux-amrc/) From 56c646640586b5ba3153880204f059168dfb2fae Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Tue, 3 Jan 2017 15:44:22 +0800 Subject: [PATCH 43/59] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e04ad72..4a838d9 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,9 @@ [React与Redux教程(七)自定义Redux中间件](https://lewis617.github.io/2016/02/02/r2-middleware/) [React与Redux教程(八)连接数据库的Redux程序](https://lewis617.github.io/2016/02/03/r2-database/) - + + > 本博客教程是2016年1月以社区志愿者心态写的,想系统性学习React与Redux的同学,推荐阅读参考《React与Redux开发实例精解》这本书,质量比博客教程高太多,而且比同类书籍更加详细(看目录就知道了)。 + ## React+Redux系列教程(续) [用更少的代码发起异步action(博主推荐)](https://lewis617.github.io/2016/11/30/redux-amrc/) From 6134c03dfa72a356a43af51684fdcfa765232c1b Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Tue, 3 Jan 2017 15:45:39 +0800 Subject: [PATCH 44/59] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4a838d9..af6da9f 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ [React与Redux教程(八)连接数据库的Redux程序](https://lewis617.github.io/2016/02/03/r2-database/) - > 本博客教程是2016年1月以社区志愿者心态写的,想系统性学习React与Redux的同学,推荐阅读参考《React与Redux开发实例精解》这本书,质量比博客教程高太多,而且比同类书籍更加详细(看目录就知道了)。 + > 本博客教程是2016年1月以社区志愿者心态写的,想系统性学习React与Redux的同学,推荐阅读参考《React与Redux开发实例精解》这本书,质量比博客教程高太多,而且内容比同类书籍更加详细(看目录就知道了)。 ## React+Redux系列教程(续) From 2a1b7af8a6abcaf162718a0438ee62d393bed7eb Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Tue, 3 Jan 2017 15:48:19 +0800 Subject: [PATCH 45/59] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index af6da9f..e8c0344 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ [React与Redux教程(八)连接数据库的Redux程序](https://lewis617.github.io/2016/02/03/r2-database/) - > 本博客教程是2016年1月以社区志愿者心态写的,想系统性学习React与Redux的同学,推荐阅读参考《React与Redux开发实例精解》这本书,质量比博客教程高太多,而且内容比同类书籍更加详细(看目录就知道了)。 + > 注意:本博客教程是2016年1月以社区志愿者心态写的,想系统性学习React与Redux的同学,推荐阅读参考[《React与Redux开发实例精解》](https://lewis617.github.io/2016/11/20/r2-book/)这本书,质量比博客教程高太多,而且内容比同类书籍更加详细(看目录就知道了)。 ## React+Redux系列教程(续) From ad2a684b1f43d7e7b2ebae94af141648837425ec Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Tue, 3 Jan 2017 16:08:46 +0800 Subject: [PATCH 46/59] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e8c0344..c4a60fe 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ [React与Redux教程(八)连接数据库的Redux程序](https://lewis617.github.io/2016/02/03/r2-database/) - > 注意:本博客教程是2016年1月以社区志愿者心态写的,想系统性学习React与Redux的同学,推荐阅读参考[《React与Redux开发实例精解》](https://lewis617.github.io/2016/11/20/r2-book/)这本书,质量比博客教程高太多,而且内容比同类书籍更加详细(看目录就知道了)。 + > 注意:本博客教程是2016年1月以社区志愿者心态写的,想系统性学习React与Redux的同学,推荐阅读参考《React与Redux开发实例精解》这本书,质量比博客教程高太多,而且内容比同类书籍更加详细(看目录就知道了)。 ## React+Redux系列教程(续) From 882188ccca1d623426c7fc49da5b6bad6daf378d Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Wed, 4 Jan 2017 18:20:00 +0800 Subject: [PATCH 47/59] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index c4a60fe..be1b491 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,6 @@ [React与Redux教程(八)连接数据库的Redux程序](https://lewis617.github.io/2016/02/03/r2-database/) - > 注意:本博客教程是2016年1月以社区志愿者心态写的,想系统性学习React与Redux的同学,推荐阅读参考《React与Redux开发实例精解》这本书,质量比博客教程高太多,而且内容比同类书籍更加详细(看目录就知道了)。 - ## React+Redux系列教程(续) [用更少的代码发起异步action(博主推荐)](https://lewis617.github.io/2016/11/30/redux-amrc/) From 1c9d3909fb01b8b5b7cf4ad49ff7ec2d83791f58 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Wed, 15 Feb 2017 13:00:25 +0800 Subject: [PATCH 48/59] Update README.md --- README.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index be1b491..cd25251 100644 --- a/README.md +++ b/README.md @@ -26,10 +26,8 @@ [RxJS + Redux + React = Amazing!(译二)](https://lewis617.github.io/2016/12/09/rxjs-redux-react-amazing-2/) -## React+Reflux教程 - -[React+Reflux入门教程](https://lewis617.github.io/2016/01/13/react-reflux/) - -## Angular2教程 +## 其他教程 [Angular2教程](https://github.com/lewis617/angular2-tutorial) + +[JavaScript 版数据结构与算法](https://github.com/lewis617/javascript-datastructures-algorithms) From 55469792ab1be0fa8c63e9ea0475e8ccdca86b73 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Wed, 15 Feb 2017 13:35:53 +0800 Subject: [PATCH 49/59] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cd25251..4638fbc 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,6 @@ ## 其他教程 -[Angular2教程](https://github.com/lewis617/angular2-tutorial) +### [Angular2教程](https://github.com/lewis617/angular2-tutorial) -[JavaScript 版数据结构与算法](https://github.com/lewis617/javascript-datastructures-algorithms) +### [JavaScript 版数据结构与算法](https://github.com/lewis617/javascript-datastructures-algorithms) From 277e6b90eb30be36c9f28f21f624033108d52504 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Thu, 16 Feb 2017 14:47:05 +0800 Subject: [PATCH 50/59] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4638fbc..cd25251 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,6 @@ ## 其他教程 -### [Angular2教程](https://github.com/lewis617/angular2-tutorial) +[Angular2教程](https://github.com/lewis617/angular2-tutorial) -### [JavaScript 版数据结构与算法](https://github.com/lewis617/javascript-datastructures-algorithms) +[JavaScript 版数据结构与算法](https://github.com/lewis617/javascript-datastructures-algorithms) From 560ef092f96d3b37055719e5b9fdde961367923d Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Tue, 14 Mar 2017 11:32:44 +0800 Subject: [PATCH 51/59] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cd25251..bb07d67 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ [RxJS + Redux + React = Amazing!(译二)](https://lewis617.github.io/2016/12/09/rxjs-redux-react-amazing-2/) -## 其他教程 +## 其他技术博客 [Angular2教程](https://github.com/lewis617/angular2-tutorial) From d48d7f1f7e3021aeb635996a687fa53327f56d4b Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Thu, 18 May 2017 15:54:29 +0800 Subject: [PATCH 52/59] Update README.md --- README.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.md b/README.md index bb07d67..a32bb12 100644 --- a/README.md +++ b/README.md @@ -25,9 +25,3 @@ [RxJS + Redux + React = Amazing!(译一)](https://lewis617.github.io/2016/12/08/rxjs-redux-react-amazing-1/) [RxJS + Redux + React = Amazing!(译二)](https://lewis617.github.io/2016/12/09/rxjs-redux-react-amazing-2/) - -## 其他技术博客 - -[Angular2教程](https://github.com/lewis617/angular2-tutorial) - -[JavaScript 版数据结构与算法](https://github.com/lewis617/javascript-datastructures-algorithms) From 4bce99fa96160e1df05bd6376e6dded8ad154e5f Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Fri, 19 May 2017 11:25:47 +0800 Subject: [PATCH 53/59] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index a32bb12..82098d8 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,3 @@ -> 公告:[《React与Redux开发实例精解》出版了!](https://lewis617.github.io/2016/11/20/r2-book/) - ## React+Redux系列教程 [React与Redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](https://lewis617.github.io/2016/01/19/r2-counter/) From f6351e5a5c0bf8b86527621de527655dc555e1e6 Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Fri, 29 Sep 2017 09:07:29 -0500 Subject: [PATCH 54/59] Update README.md --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 82098d8..38bef48 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,25 @@ ## React+Redux系列教程 - [React与Redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](https://lewis617.github.io/2016/01/19/r2-counter/) + [React与Redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](http://liuyiqi.cn/2016/01/19/r2-counter/) - [React与Redux教程(二)Redux的单一状态树完全替代了React的状态机?](https://lewis617.github.io/2016/01/20/r2-state/) + [React与Redux教程(二)Redux的单一状态树完全替代了React的状态机?](http://liuyiqi.cn/2016/01/20/r2-state/) - [React与Redux教程(三)reduce()、filter()、map()、some()、every()、...展开属性](https://lewis617.github.io/2016/01/21/r2-array/) + [React与Redux教程(三)reduce()、filter()、map()、some()、every()、...展开属性](http://liuyiqi.cn/2016/01/21/r2-array/) - [React与Redux教程(四)undo、devtools、router](https://lewis617.github.io/2016/01/26/r2-undo/) + [React与Redux教程(四)undo、devtools、router](http://liuyiqi.cn/2016/01/26/r2-undo/) - [React与Redux教程(五)异步、单一state树结构、componentWillReceiveProps](https://lewis617.github.io/2016/01/29/r2-async/) + [React与Redux教程(五)异步、单一state树结构、componentWillReceiveProps](http://liuyiqi.cn/2016/01/29/r2-async/) - [React与Redux教程(六)redux服务端渲染流程](https://lewis617.github.io/2016/01/31/r2-ssr/) + [React与Redux教程(六)redux服务端渲染流程](http://liuyiqi.cn/2016/01/31/r2-ssr/) - [React与Redux教程(七)自定义Redux中间件](https://lewis617.github.io/2016/02/02/r2-middleware/) + [React与Redux教程(七)自定义Redux中间件](http://liuyiqi.cn/2016/02/02/r2-middleware/) - [React与Redux教程(八)连接数据库的Redux程序](https://lewis617.github.io/2016/02/03/r2-database/) + [React与Redux教程(八)连接数据库的Redux程序](http://liuyiqi.cn/2016/02/03/r2-database/) ## React+Redux系列教程(续) - [用更少的代码发起异步action(博主推荐)](https://lewis617.github.io/2016/11/30/redux-amrc/) + [用更少的代码发起异步action(博主推荐)](http://liuyiqi.cn/2016/11/30/redux-amrc/) - [RxJS + Redux + React = Amazing!(译一)](https://lewis617.github.io/2016/12/08/rxjs-redux-react-amazing-1/) + [RxJS + Redux + React = Amazing!(译一)](http://liuyiqi.cn/2016/12/08/rxjs-redux-react-amazing-1/) - [RxJS + Redux + React = Amazing!(译二)](https://lewis617.github.io/2016/12/09/rxjs-redux-react-amazing-2/) + [RxJS + Redux + React = Amazing!(译二)](http://liuyiqi.cn/2016/12/09/rxjs-redux-react-amazing-2/) From 8f5b13afe92daca2656eae4f49e788ce87667ecb Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sat, 30 Sep 2017 03:38:27 -0500 Subject: [PATCH 55/59] Update README.md --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 38bef48..cce5f21 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,25 @@ ## React+Redux系列教程 - [React与Redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](http://liuyiqi.cn/2016/01/19/r2-counter/) + [React与Redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](https://liuyiqi.cn/2016/01/19/r2-counter/) - [React与Redux教程(二)Redux的单一状态树完全替代了React的状态机?](http://liuyiqi.cn/2016/01/20/r2-state/) + [React与Redux教程(二)Redux的单一状态树完全替代了React的状态机?](https://liuyiqi.cn/2016/01/20/r2-state/) - [React与Redux教程(三)reduce()、filter()、map()、some()、every()、...展开属性](http://liuyiqi.cn/2016/01/21/r2-array/) + [React与Redux教程(三)reduce()、filter()、map()、some()、every()、...展开属性](https://liuyiqi.cn/2016/01/21/r2-array/) - [React与Redux教程(四)undo、devtools、router](http://liuyiqi.cn/2016/01/26/r2-undo/) + [React与Redux教程(四)undo、devtools、router](https://liuyiqi.cn/2016/01/26/r2-undo/) - [React与Redux教程(五)异步、单一state树结构、componentWillReceiveProps](http://liuyiqi.cn/2016/01/29/r2-async/) + [React与Redux教程(五)异步、单一state树结构、componentWillReceiveProps](https://liuyiqi.cn/2016/01/29/r2-async/) - [React与Redux教程(六)redux服务端渲染流程](http://liuyiqi.cn/2016/01/31/r2-ssr/) + [React与Redux教程(六)redux服务端渲染流程](https://liuyiqi.cn/2016/01/31/r2-ssr/) - [React与Redux教程(七)自定义Redux中间件](http://liuyiqi.cn/2016/02/02/r2-middleware/) + [React与Redux教程(七)自定义Redux中间件](https://liuyiqi.cn/2016/02/02/r2-middleware/) - [React与Redux教程(八)连接数据库的Redux程序](http://liuyiqi.cn/2016/02/03/r2-database/) + [React与Redux教程(八)连接数据库的Redux程序](https://liuyiqi.cn/2016/02/03/r2-database/) ## React+Redux系列教程(续) - [用更少的代码发起异步action(博主推荐)](http://liuyiqi.cn/2016/11/30/redux-amrc/) + [用更少的代码发起异步action(博主推荐)](https://liuyiqi.cn/2016/11/30/redux-amrc/) - [RxJS + Redux + React = Amazing!(译一)](http://liuyiqi.cn/2016/12/08/rxjs-redux-react-amazing-1/) + [RxJS + Redux + React = Amazing!(译一)](https://liuyiqi.cn/2016/12/08/rxjs-redux-react-amazing-1/) - [RxJS + Redux + React = Amazing!(译二)](http://liuyiqi.cn/2016/12/09/rxjs-redux-react-amazing-2/) + [RxJS + Redux + React = Amazing!(译二)](https://liuyiqi.cn/2016/12/09/rxjs-redux-react-amazing-2/) From 9060b109eacd908d58729f87934781718d07541a Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Sat, 30 Sep 2017 07:53:17 -0500 Subject: [PATCH 56/59] Update README.md --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index cce5f21..38bef48 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,25 @@ ## React+Redux系列教程 - [React与Redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](https://liuyiqi.cn/2016/01/19/r2-counter/) + [React与Redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](http://liuyiqi.cn/2016/01/19/r2-counter/) - [React与Redux教程(二)Redux的单一状态树完全替代了React的状态机?](https://liuyiqi.cn/2016/01/20/r2-state/) + [React与Redux教程(二)Redux的单一状态树完全替代了React的状态机?](http://liuyiqi.cn/2016/01/20/r2-state/) - [React与Redux教程(三)reduce()、filter()、map()、some()、every()、...展开属性](https://liuyiqi.cn/2016/01/21/r2-array/) + [React与Redux教程(三)reduce()、filter()、map()、some()、every()、...展开属性](http://liuyiqi.cn/2016/01/21/r2-array/) - [React与Redux教程(四)undo、devtools、router](https://liuyiqi.cn/2016/01/26/r2-undo/) + [React与Redux教程(四)undo、devtools、router](http://liuyiqi.cn/2016/01/26/r2-undo/) - [React与Redux教程(五)异步、单一state树结构、componentWillReceiveProps](https://liuyiqi.cn/2016/01/29/r2-async/) + [React与Redux教程(五)异步、单一state树结构、componentWillReceiveProps](http://liuyiqi.cn/2016/01/29/r2-async/) - [React与Redux教程(六)redux服务端渲染流程](https://liuyiqi.cn/2016/01/31/r2-ssr/) + [React与Redux教程(六)redux服务端渲染流程](http://liuyiqi.cn/2016/01/31/r2-ssr/) - [React与Redux教程(七)自定义Redux中间件](https://liuyiqi.cn/2016/02/02/r2-middleware/) + [React与Redux教程(七)自定义Redux中间件](http://liuyiqi.cn/2016/02/02/r2-middleware/) - [React与Redux教程(八)连接数据库的Redux程序](https://liuyiqi.cn/2016/02/03/r2-database/) + [React与Redux教程(八)连接数据库的Redux程序](http://liuyiqi.cn/2016/02/03/r2-database/) ## React+Redux系列教程(续) - [用更少的代码发起异步action(博主推荐)](https://liuyiqi.cn/2016/11/30/redux-amrc/) + [用更少的代码发起异步action(博主推荐)](http://liuyiqi.cn/2016/11/30/redux-amrc/) - [RxJS + Redux + React = Amazing!(译一)](https://liuyiqi.cn/2016/12/08/rxjs-redux-react-amazing-1/) + [RxJS + Redux + React = Amazing!(译一)](http://liuyiqi.cn/2016/12/08/rxjs-redux-react-amazing-1/) - [RxJS + Redux + React = Amazing!(译二)](https://liuyiqi.cn/2016/12/09/rxjs-redux-react-amazing-2/) + [RxJS + Redux + React = Amazing!(译二)](http://liuyiqi.cn/2016/12/09/rxjs-redux-react-amazing-2/) From 4aaabc26e3d7a6459f74f02fe6b9b1c9c250e07a Mon Sep 17 00:00:00 2001 From: lewis liu <897473127@qq.com> Date: Mon, 23 Apr 2018 18:41:57 +0800 Subject: [PATCH 57/59] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 38bef48..10f8140 100644 --- a/README.md +++ b/README.md @@ -23,3 +23,5 @@ [RxJS + Redux + React = Amazing!(译一)](http://liuyiqi.cn/2016/12/08/rxjs-redux-react-amazing-1/) [RxJS + Redux + React = Amazing!(译二)](http://liuyiqi.cn/2016/12/09/rxjs-redux-react-amazing-2/) + + [使用 render-react-components 来单独渲染每个 React 组件(博主推荐)](http://liuyiqi.cn/2018/04/13/render-react-components/) From 9961fdc9cba6c5f3c40a702be5f104d783584035 Mon Sep 17 00:00:00 2001 From: "tianke.lyq" Date: Sun, 30 Sep 2018 16:56:38 +0800 Subject: [PATCH 58/59] remove bs --- r2-bs-alert/.gitignore | 15 - r2-bs-alert/README.md | 296 - r2-bs-alert/package.json | 26 - r2-bs-alert/public/favicon.ico | Bin 24838 -> 0 bytes r2-bs-alert/public/index.html | 31 - r2-bs-alert/public/r2-bs-alert.gif | Bin 144744 -> 0 bytes r2-bs-alert/src/App.css | 4 - r2-bs-alert/src/App.js | 44 - r2-bs-alert/src/App.test.js | 24 - r2-bs-alert/src/alert/AlertList.js | 40 - .../src/alert/__tests__/AlertList.test.js | 59 - r2-bs-alert/src/alert/__tests__/redux.test.js | 77 - r2-bs-alert/src/alert/index.js | 4 - r2-bs-alert/src/alert/redux.js | 58 - r2-bs-alert/src/index.js | 23 - r2-bs-alert/yarn.lock | 5770 ----------------- 16 files changed, 6471 deletions(-) delete mode 100644 r2-bs-alert/.gitignore delete mode 100644 r2-bs-alert/README.md delete mode 100644 r2-bs-alert/package.json delete mode 100644 r2-bs-alert/public/favicon.ico delete mode 100644 r2-bs-alert/public/index.html delete mode 100644 r2-bs-alert/public/r2-bs-alert.gif delete mode 100644 r2-bs-alert/src/App.css delete mode 100644 r2-bs-alert/src/App.js delete mode 100644 r2-bs-alert/src/App.test.js delete mode 100644 r2-bs-alert/src/alert/AlertList.js delete mode 100644 r2-bs-alert/src/alert/__tests__/AlertList.test.js delete mode 100644 r2-bs-alert/src/alert/__tests__/redux.test.js delete mode 100644 r2-bs-alert/src/alert/index.js delete mode 100644 r2-bs-alert/src/alert/redux.js delete mode 100644 r2-bs-alert/src/index.js delete mode 100644 r2-bs-alert/yarn.lock diff --git a/r2-bs-alert/.gitignore b/r2-bs-alert/.gitignore deleted file mode 100644 index 6c96c5c..0000000 --- a/r2-bs-alert/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -# See http://help.github.com/ignore-files/ for more about ignoring files. - -# dependencies -node_modules - -# testing -coverage - -# production -build - -# misc -.DS_Store -.env -npm-debug.log diff --git a/r2-bs-alert/README.md b/r2-bs-alert/README.md deleted file mode 100644 index 19df7d1..0000000 --- a/r2-bs-alert/README.md +++ /dev/null @@ -1,296 +0,0 @@ - -# 使用 React、Redux 和 Bootstrap 实现 Alert - -今天,我们来学习使用 React、Redux 和 Bootstrap 实现Alert。 - -## 例子 - -这个例子实现了弹出不同类型信息的功能,这些信息默认会在5秒后消失,你也可以手动点击使其消失。如果你在服务端有信息要提示,还可以通过 Redux 的单一数据源传到客户端在渲染页面时显示出来。 - -![](https://raw.githubusercontent.com/lewis617/react-redux-tutorial/master/r2-bs-alert/public/r2-bs-alert.gif) - -源代码: - -https://github.com/lewis617/react-redux-tutorial/tree/master/r2-bs-alert - -安装: - -```sh -npm i -``` - -开发环境下运行: - -```sh -npm start -``` - -生产环境下构建: - -```sh -npm run build -``` - -测试: - -```sh -npm test -``` - -## 为何使用 Redux ? - -React 有自己的局部状态(Local State),可以帮助我们在不同状态下渲染不同的界面。那么实现 Alert 为何要使用 Redux ?众所周知,Alert 通常都是要在程序中全局使用的: - - - 用户操作可能会发出 Alert。 - - 网络请求等异步事件的处理器(Event Handler)可能会发出 Alert。 - - 甚至服务器渲染页面时,也可能会给客户端带来一个Alert(比如,你提交表单出错了,服务器重定向到表单页面,并显示错误提示)。 - -知道了 Alert 要全局使用,我们再来看 Redux。Redux 有一个全局单一的数据源,这个数据源可以通过 react-redux 连接到程序的任意一个组件。不但如此,更新这个数据源的 action,也可以全局使用: - - - 用户操作可以发起 action。 - - 网络请求等异步事件的处理器(Event Handler)可能会发起 action。 - - 甚至在服务器端也可以发起 action,然后将单一数据源传给客户端继续使用。 - -Redux 牛逼的设计让处理全局状态变得特别方便,实现 Universal 渲染(有些人喜欢叫SSR,但我觉得不准确)也变得非常容易。这与实现 Alert 的需求非常吻合,因此,本文通过 Redux 来辅助实现 Alert。 -从另一个方面来说,一些不在全局使用的组件和功能,一般使用React的局部状态就可以了,切记不要什么功能都用 Redux 实现。 - -了解了为何要使用 Redux,我们就开始动工吧! - -## 快速创建项目 - -搭建一个 React APP 的成本是很高的,你需要: - - - 使用 Webpack 打包。 - - 使用 Babel 编译。 - - 搭建开发服务器。 - - 使用 ESLint 进行语法检查。 - - 使用 Mocha 或 Jest 进行测试。 - - …… - -很多人诟病这一点,不过这些东西都是重复性的体力活,社区早就造好了轮子,来提高生产力。本文就使用了 [create-react-app](https://github.com/facebookincubator/create-react-app) 来快速搭建项目。All you need is these command: - -```sh -npm install -g create-react-app - -create-react-app my-app -cd my-app/ -npm start -``` - -然后上述所有东西就都有了! - ->注意,要将 npm 设为淘宝源或你自己公司的私有 npm 源(只要快就行),否则速度会非常慢,甚至可能导致安装失败。 - -接下来,我们就开始编写代码。 - -## 设计编写 Redux - -在一个 React 与 Redux 中的程序中,React 负责程序界面,而 Redux 负责程序功能。由于本例界面比较容易,所以我们先来设计 Redux。 - -我们期望的Alert 的功能包括: - - - 显示一条信息。 - - 隐藏一条信息。 - - 显示一条信息,过几秒自动隐藏。 - - 如果服务器传来有信息,在页面渲染完,过几秒也自动隐藏。 - -功能明确了,让我们把它们写成函数: - - - alertShow - - alertHide - - alertMessage - - hideAllAlert - -src/alert/redux.js - -```js -export const ALERT_SHOW = 'ALERT_SHOW'; -export const ALERT_HIDE = 'ALERT_HIDE'; - -export function alertShow(messageText, messageType, key) { - return { - type: ALERT_SHOW, - payload: { - messageText, messageType, key - } - }; -} - -export function alertHide(key) { - return { - type: ALERT_HIDE, - payload: { key } - }; -} - -export function alertMessage(messageText, messageType, delay = 5000) { - return (dispatch, getState) => { - if (typeof messageText === 'string' && ['success', 'warning', 'danger', 'info'].indexOf(messageType) > -1) { - const key = getState().alerts.lastKey + 1; - dispatch(alertShow(messageText, messageType, key)); - setTimeout(() => dispatch(alertHide(key)), delay); - } else { - console.error('messageText must be string and messageType must be success, warning, danger, info'); - } - }; -} - -export function hideAllAlert(delay = 5000) { - return (dispatch, getState) => { - getState().alerts.items.forEach((item) => { - setTimeout(() => { - dispatch(alertHide(item.key)); - }, delay); - }); - }; -} -``` -尽管部分逻辑有点复杂,但都封装在 action 创建函数中了,多么清晰和模块化!接下来,我们编写 reducer 来根据这些 action,进行 state 的更新。 -src/alert/redux.js - -```js -export default function (state = { lastKey: -1, items: [] }, action) { - switch (action.type) { - case ALERT_SHOW: - return { - ...state, - items: [...state.items, action.payload], - lastKey: state.lastKey + 1 - }; - case ALERT_HIDE: - return { - ...state, - items: state.items.filter(item => (item.key !== action.payload.key)) - }; - default: - return state; - } -} -``` - -这里使用了解构赋值和重写的语法来保证 state 的不可变(Immutable)。 - ->Redux 的 state 要求是不可变数据,这么做的原因是方便进行快速变更检查,进而有利于React组件判断是否需要重新渲染(re-render)。另外,不可变数据还有利于进行状态回退,错误追踪。不可变数据是函数式编程中一个常用的概念。关于不可变以及函数式编程在 React 与 Redux 中的应用,[《React与Redux开发实例精解》](https://item.jd.com/12010463.html)这本书中有非常详细的介绍,推荐阅读参考。 - -至此,Redux的编写就完成了。它的输出有四个: - - - reducer函数,用于创建store。 - - alertHide 函数用于隐藏指定信息。 - - alertMessage 函数用于显示一条信息,并在几秒后隐藏。 - - hideAllAlert 函数用于在渲染完页面后,过几秒隐藏服务器传来的信息。 - -接下来,我们来编写 React 组件。 - -## 设计编写 React 组件 - -React 组件的功能包括三个: - - - 渲染要显示的信息,并根据类型渲染成不同颜色。 - - 为每条信息渲染一个按钮,使用户可以通过点击按钮隐藏该信息。 - - 在第一次渲染后,过几秒隐藏来自服务器的信息。 - -为此,我们做了以下几件事: - - - 首先,使用 react-redux 的 connect 将 Redux 的 state 和 action 创建函数传给组件。 - - 然后在组件中遍历渲染出所有信息(使用了 react-bootstrap 提供的 Alert 组件)。 - - 最后,将 alertHide 函数绑在按钮的点击事件上,将 hideAllAlert 函数绑在组件渲染后的生命周期钩子上。 - -组件功能就实现了! - -```js -src/alert/AlertList.js - -import React, { Component, PropTypes } from 'react'; -import { connect } from 'react-redux'; -import Alert from 'react-bootstrap/lib/Alert'; -import { hideAllAlert, alertHide } from './redux'; - -class AlertList extends Component { - static propTypes = { - alerts: PropTypes.array.isRequired, - hideAllAlert: PropTypes.func.isRequired, - alertHide: PropTypes.func.isRequired - }; - - componentDidMount() { - this.props.hideAllAlert(); - } - - render() { - const { alerts, alertHide } = this.props; - return ( -
- {alerts.map((item, i) => ( - alertHide(item.key)} - > - {item.messageText} - - ))} -
- ); - } -} - -export default connect( - state => ({ - alerts: state.alerts.items - }), - { hideAllAlert, alertHide } -)(AlertList); - -``` - -为了让 connect 可以获取到 Redux 的 state 和 dispatch 方法,我们还需要在组件顶部提供store。 - -src/index.js - -```js -// 三个参数分别为 reducer、initialState 和 enhancer -const store = createStore( - combineReducers({ alerts: alertsReducer }), - {}, - applyMiddleware(thunk) -); - -// 在渲染之前发起action,用于模拟从服务器传来的信息 -store.dispatch(alertMessage('message from server', 'info')); - -ReactDOM.render( - - - , - document.getElementById('root') -); -``` - -为了使用 bootstrap,还需要安装 bootstrap,并引用它的样式文件。 - -```sh -npm i bootstrap@3 --save -``` - -src/index.js - -```js -import 'bootstrap/dist/css/bootstrap.css'; -``` - -至此,所有功能就都实现了!在后续的文章中,我们将介绍如何测试本例编写的 Redux 函数以及 React 组件。要知道,写测试是一个工程师走向成熟的必经之路,而且在 React 与 Redux 的应用中编写测试简直太方便了! - -## 总结 - - - Redux 适合实现全局性的组件和功能,一些局部使用的功能使用 React 的局部状态即可。 - - 推荐使用 create-react-app 来快速搭建React应用。 - - Redux 的 action 创建函数与要实现的功能一一对应。 - - Redux 的 state 为不可变数据。 - - 使用 react-redux 的 connect 将 Redux 的 state 和 action 创建函数连接到组件,进而渲染界面,绑定事件。 - - -## 教程源代码及目录 - -如果您觉得本博客教程帮到了您,就赏颗星吧! - -[https://github.com/lewis617/react-redux-tutorial](https://github.com/lewis617/react-redux-tutorial) diff --git a/r2-bs-alert/package.json b/r2-bs-alert/package.json deleted file mode 100644 index cc7a85a..0000000 --- a/r2-bs-alert/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "r2-bs-alert", - "version": "0.1.0", - "private": true, - "devDependencies": { - "enzyme": "^2.6.0", - "react-addons-test-utils": "^15.3.2", - "react-scripts": "0.7.0", - "redux-mock-store": "^1.2.1", - "redux-thunk": "^2.1.0" - }, - "dependencies": { - "bootstrap": "3", - "react": "^15.3.2", - "react-bootstrap": "^0.30.6", - "react-dom": "^15.3.2", - "react-redux": "^4.4.6", - "redux": "^3.6.0" - }, - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test --env=jsdom", - "eject": "react-scripts eject" - } -} diff --git a/r2-bs-alert/public/favicon.ico b/r2-bs-alert/public/favicon.ico deleted file mode 100644 index 5c125de5d897c1ff5692a656485b3216123dcd89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24838 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 - - - - - - - React App - - -
- - - diff --git a/r2-bs-alert/public/r2-bs-alert.gif b/r2-bs-alert/public/r2-bs-alert.gif deleted file mode 100644 index 2cdb85fab6814ccfe9632dd2c0a45a8c5a474796..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144744 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 YoLauIRKzsf-|V?=;Q=gC1^{;cABV(^w*UYD diff --git a/r2-bs-alert/src/App.css b/r2-bs-alert/src/App.css deleted file mode 100644 index 71eb8ca..0000000 --- a/r2-bs-alert/src/App.css +++ /dev/null @@ -1,4 +0,0 @@ -.App{ - width: 500px; - padding: 20px; -} \ No newline at end of file diff --git a/r2-bs-alert/src/App.js b/r2-bs-alert/src/App.js deleted file mode 100644 index 63762ec..0000000 --- a/r2-bs-alert/src/App.js +++ /dev/null @@ -1,44 +0,0 @@ -import React, { Component } from 'react'; -import { AlertList } from './alert'; -import { ButtonGroup, Button } from 'react-bootstrap'; -import { connect } from 'react-redux'; -import { alertMessage } from './alert'; -import './App.css'; - -class App extends Component { - render() { - return ( -

- - - - - - - -
- ); - } -} - -export default connect()(App); diff --git a/r2-bs-alert/src/App.test.js b/r2-bs-alert/src/App.test.js deleted file mode 100644 index 6a08045..0000000 --- a/r2-bs-alert/src/App.test.js +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import { createStore, combineReducers, applyMiddleware } from 'redux'; -import { Provider } from 'react-redux'; -import thunk from 'redux-thunk'; -import App from './App'; -import { reducer as alertsReducer } from './alert'; -import 'bootstrap/dist/css/bootstrap.css'; - -const store = createStore( - combineReducers({ alerts: alertsReducer }), - {}, - applyMiddleware(thunk) -); - -it('renders without crashing', () => { - const div = document.createElement('div'); - ReactDOM.render( - - - , - div - ); -}); diff --git a/r2-bs-alert/src/alert/AlertList.js b/r2-bs-alert/src/alert/AlertList.js deleted file mode 100644 index b6e774b..0000000 --- a/r2-bs-alert/src/alert/AlertList.js +++ /dev/null @@ -1,40 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import { connect } from 'react-redux'; -import Alert from 'react-bootstrap/lib/Alert'; -import { hideAllAlert, alertHide } from './redux'; - -class CustomAlert extends Component { - static propTypes = { - alerts: PropTypes.array.isRequired, - hideAllAlert: PropTypes.func.isRequired, - alertHide: PropTypes.func.isRequired - }; - - componentDidMount() { - this.props.hideAllAlert(); - } - - render() { - const { alerts, alertHide } = this.props; - return ( -
- {alerts.map((item, i) => ( - alertHide(item.key)} - > - {item.messageText} - - ))} -
- ); - } -} - -export default connect( - state => ({ - alerts: state.alerts.items - }), - { hideAllAlert, alertHide } -)(CustomAlert); diff --git a/r2-bs-alert/src/alert/__tests__/AlertList.test.js b/r2-bs-alert/src/alert/__tests__/AlertList.test.js deleted file mode 100644 index 4e0488b..0000000 --- a/r2-bs-alert/src/alert/__tests__/AlertList.test.js +++ /dev/null @@ -1,59 +0,0 @@ -import React from 'react'; -import { mount } from 'enzyme'; -import { createStore, combineReducers, applyMiddleware } from 'redux'; -import { Provider } from 'react-redux'; -import thunk from 'redux-thunk'; -import { AlertList, reducer } from '../index'; - -function setup(state = {}) { - const store = createStore( - combineReducers({ alerts: reducer }), - state, - applyMiddleware(thunk) - ); - const app = mount( - - - - ); - return { - app, - store - }; -} - -describe('AlertList', () => { - let originalTimeout; - beforeEach(function() { - originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL; - jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000; - }); - - afterEach(function() { - jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout; - }); - it('should display messages and hide all after delay', () => { - const { app } = setup({ alerts: { lastKey: 1, items: [{ key: 0 }, { key: 1 }] } }); - expect(app.find('.alert').length).toBe(2); - return new Promise(resolve => { - setTimeout(() => { - resolve(); - }, 5000) - }).then(() => { - expect(app.find('.alert').length).toBe(0); - }); - }); - - it('should display messages and hide itself after clicked', () => { - const { app } = setup({ - alerts: { - lastKey: 1, - items: [{ key: 0, messageText: 'messageText1' }, { key: 1, messageText: 'messageText2' }] - } - }); - app.find('.alert').at(1).find('button').at(0) - .simulate('click'); - expect(app.find('.alert').text()).not.toMatch(/messageText2/); - expect(app.find('.alert').text()).toMatch(/messageText1/); - }); -}); diff --git a/r2-bs-alert/src/alert/__tests__/redux.test.js b/r2-bs-alert/src/alert/__tests__/redux.test.js deleted file mode 100644 index 8c676ad..0000000 --- a/r2-bs-alert/src/alert/__tests__/redux.test.js +++ /dev/null @@ -1,77 +0,0 @@ -import configureStore from 'redux-mock-store'; -import thunk from 'redux-thunk'; -import reducer, { ALERT_SHOW, ALERT_HIDE, alertShow, alertHide, alertMessage, hideAllAlert } from '../redux'; - -const middlewares = [thunk]; -const mockStore = configureStore(middlewares); - -describe('action test', () => { - it('alertShow should create ALERT_SHOW', () => { - expect(alertShow('message', 'success', 0)) - .toEqual({ - payload: { - messageText: 'message', - messageType: 'success', - key: 0 - }, - type: ALERT_SHOW - }); - }); - it('alertHide should create ALERT_HIDE', () => { - expect(alertHide(0)) - .toEqual({ - payload: { - key: 0 - }, - type: ALERT_HIDE - }); - }); - it('alertMessage should create ALERT_SHOW and create ALERT_HIDE after delay', (done) => { - const expectedActions = [ - alertShow('message', 'success', 1) - ]; - const getState = { alerts: { lastKey: 0, items: [] } }; - const store = mockStore(getState); - store.dispatch(alertMessage('message', 'success', 0)); - expect(store.getActions()).toEqual(expectedActions); - setTimeout(() => { - expect(store.getActions()).toEqual(expectedActions.concat([alertHide(1)])); - done(); - }, 0); - }); - it('hideAllAlert should create multi ALERT_HIDE after delay', (done) => { - const expectedActions = [ - alertHide(0), - alertHide(1) - ]; - const getState = { alerts: { lastKey: 1, items: [{ key: 0 }, { key: 1 }] } }; - const store = mockStore(getState); - store.dispatch(hideAllAlert(0)); - setTimeout(() => { - expect(store.getActions()).toEqual(expectedActions); - done(); - }, 0); - }); -}); - -it('reducer test', () => { - it('should handle alertShow action', () => { - expect(reducer({ items: [], lastKey: -1 }, alertShow('message', 'success', 0))).toEqual({ - items: [{ - messageText: 'message', - messageType: 'success', - key: 0 - }], - lastKey: 0 - }); - }); - it('should handle alertHide action', () => { - expect(reducer({ - items: [{ messageText: 'message', messageType: 'success', key: 0 }], - lastKey: 0 - }, alertHide(0))).toEqual({ items: [], lastKey: 0 }); - }); - it('should handle unknown action', () => { - expect(reducer([], { type: 'unknown' })).toEqual([]); - }); -}); diff --git a/r2-bs-alert/src/alert/index.js b/r2-bs-alert/src/alert/index.js deleted file mode 100644 index 7bd6e35..0000000 --- a/r2-bs-alert/src/alert/index.js +++ /dev/null @@ -1,4 +0,0 @@ -import AlertList from './AlertList'; -export { AlertList }; -import reducer, { alertMessage } from './redux'; -export { reducer, alertMessage }; diff --git a/r2-bs-alert/src/alert/redux.js b/r2-bs-alert/src/alert/redux.js deleted file mode 100644 index 943126d..0000000 --- a/r2-bs-alert/src/alert/redux.js +++ /dev/null @@ -1,58 +0,0 @@ -export const ALERT_SHOW = 'ALERT_SHOW'; -export const ALERT_HIDE = 'ALERT_HIDE'; - -export function alertShow(messageText, messageType, key) { - return { - type: ALERT_SHOW, - payload: { - messageText, messageType, key - } - }; -} - -export function alertHide(key) { - return { - type: ALERT_HIDE, - payload: { key } - }; -} - -export function alertMessage(messageText, messageType, delay = 5000) { - return (dispatch, getState) => { - if (typeof messageText === 'string' && ['success', 'warning', 'danger', 'info'].indexOf(messageType) > -1) { - const key = getState().alerts.lastKey + 1; - dispatch(alertShow(messageText, messageType, key)); - setTimeout(() => dispatch(alertHide(key)), delay); - } else { - console.error('messageText must be string and messageType must be success, warning, danger, info'); - } - }; -} - -export function hideAllAlert(delay = 5000) { - return (dispatch, getState) => { - getState().alerts.items.forEach((item) => { - setTimeout(() => { - dispatch(alertHide(item.key)); - }, delay); - }); - }; -} - -export default function (state = { lastKey: -1, items: [] }, action) { - switch (action.type) { - case ALERT_SHOW: - return { - ...state, - items: [...state.items, action.payload], - lastKey: state.lastKey + 1 - }; - case ALERT_HIDE: - return { - ...state, - items: state.items.filter(item => (item.key !== action.payload.key)) - }; - default: - return state; - } -} diff --git a/r2-bs-alert/src/index.js b/r2-bs-alert/src/index.js deleted file mode 100644 index 9e46f62..0000000 --- a/r2-bs-alert/src/index.js +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import { createStore, combineReducers, applyMiddleware } from 'redux'; -import { Provider } from 'react-redux'; -import thunk from 'redux-thunk'; -import App from './App'; -import { reducer as alertsReducer, alertMessage } from './alert'; -import 'bootstrap/dist/css/bootstrap.css'; - -const store = createStore( - combineReducers({ alerts: alertsReducer }), - {}, - applyMiddleware(thunk) -); - -store.dispatch(alertMessage('message from server', 'info')); - -ReactDOM.render( - - - , - document.getElementById('root') -); diff --git a/r2-bs-alert/yarn.lock b/r2-bs-alert/yarn.lock deleted file mode 100644 index f1b68dd..0000000 --- a/r2-bs-alert/yarn.lock +++ /dev/null @@ -1,5770 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 -abab@^1.0.0: - version "1.0.3" - resolved "http://registry.npm.taobao.org/abab/download/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d" - -abbrev@1, abbrev@1.0.x: - version "1.0.9" - resolved "http://registry.npm.taobao.org/abbrev/download/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" - -accepts@~1.3.3: - version "1.3.3" - resolved "http://registry.npm.taobao.org/accepts/download/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" - dependencies: - mime-types "~2.1.11" - negotiator "0.6.1" - -acorn-globals@^1.0.4: - version "1.0.9" - resolved "http://registry.npm.taobao.org/acorn-globals/download/acorn-globals-1.0.9.tgz#55bb5e98691507b74579d0513413217c380c54cf" - dependencies: - acorn "^2.1.0" - -acorn-jsx@^3.0.0, acorn-jsx@^3.0.1: - version "3.0.1" - resolved "http://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - dependencies: - acorn "^3.0.4" - -acorn@^2.1.0, acorn@^2.4.0: - version "2.7.0" - resolved "http://registry.npm.taobao.org/acorn/download/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" - -acorn@^3.0.0, acorn@^3.0.4: - version "3.3.0" - resolved "http://registry.npm.taobao.org/acorn/download/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - -acorn@^4.0.1: - version "4.0.3" - resolved "http://registry.npm.taobao.org/acorn/download/acorn-4.0.3.tgz#1a3e850b428e73ba6b09d1cc527f5aaad4d03ef1" - -ajv-keywords@^1.0.0: - version "1.1.1" - resolved "http://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-1.1.1.tgz#02550bc605a3e576041565628af972e06c549d50" - -ajv@^4.7.0: - version "4.9.0" - resolved "http://registry.npm.taobao.org/ajv/download/ajv-4.9.0.tgz#5a358085747b134eb567d6d15e015f1d7802f45c" - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" - -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "http://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: - version "1.0.2" - resolved "http://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "http://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - -ansi-escapes@^1.1.0, ansi-escapes@^1.4.0: - version "1.4.0" - resolved "http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" - -ansi-html@0.0.5: - version "0.0.5" - resolved "http://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.5.tgz#0dcaa5a081206866bc240a3b773a184ea3b88b64" - -ansi-regex@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -ansicolors@~0.2.1: - version "0.2.1" - resolved "http://registry.npm.taobao.org/ansicolors/download/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef" - -anymatch@^1.3.0: - version "1.3.0" - resolved "http://registry.npm.taobao.org/anymatch/download/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" - dependencies: - arrify "^1.0.0" - micromatch "^2.1.5" - -append-transform@^0.3.0: - version "0.3.0" - resolved "http://registry.npm.taobao.org/append-transform/download/append-transform-0.3.0.tgz#d6933ce4a85f09445d9ccc4cc119051b7381a813" - -aproba@^1.0.3: - version "1.0.4" - resolved "http://registry.npm.taobao.org/aproba/download/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" - -are-we-there-yet@~1.1.2: - version "1.1.2" - resolved "http://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.0 || ^1.1.13" - -argparse@^1.0.7: - version "1.0.9" - resolved "http://registry.npm.taobao.org/argparse/download/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-flatten@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" - -array-differ@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/array-differ/download/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" - -array-equal@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/array-equal/download/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - -array-flatten@1.1.1: - version "1.1.1" - resolved "http://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - -array-union@^1.0.1: - version "1.0.2" - resolved "http://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "http://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - -array-unique@^0.2.1: - version "0.2.1" - resolved "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -arrify@^1.0.0, arrify@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - -asap@~2.0.3: - version "2.0.5" - resolved "http://registry.npm.taobao.org/asap/download/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" - -asn1@~0.2.3: - version "0.2.3" - resolved "http://registry.npm.taobao.org/asn1/download/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "http://registry.npm.taobao.org/assert-plus/download/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - -assert-plus@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert@^1.1.1: - version "1.4.1" - resolved "http://registry.npm.taobao.org/assert/download/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - dependencies: - util "0.10.3" - -async-each@^1.0.0: - version "1.0.1" - resolved "http://registry.npm.taobao.org/async-each/download/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async@^0.9.0: - version "0.9.2" - resolved "http://registry.npm.taobao.org/async/download/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - -async@^1.3.0, async@^1.4.0, async@^1.4.2, async@^1.5.0, async@1.x: - version "1.5.2" - resolved "http://registry.npm.taobao.org/async/download/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - -async@~0.2.6: - version "0.2.10" - resolved "http://registry.npm.taobao.org/async/download/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" - -asynckit@^0.4.0: - version "0.4.0" - resolved "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -autoprefixer@^6.3.1: - version "6.5.3" - resolved "http://registry.npm.taobao.org/autoprefixer/download/autoprefixer-6.5.3.tgz#2d853af66d04449fcf50db3066279ab54c3e4b01" - dependencies: - browserslist "~1.4.0" - caniuse-db "^1.0.30000578" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^5.2.5" - postcss-value-parser "^3.2.3" - -autoprefixer@6.5.1: - version "6.5.1" - resolved "http://registry.npm.taobao.org/autoprefixer/download/autoprefixer-6.5.1.tgz#ae759a5221e709f3da17c2d656230e67c43cbb75" - dependencies: - browserslist "~1.4.0" - caniuse-db "^1.0.30000554" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^5.2.4" - postcss-value-parser "^3.2.3" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - -aws4@^1.2.1: - version "1.5.0" - resolved "http://registry.npm.taobao.org/aws4/download/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" - -babel-code-frame@^6.11.0, babel-code-frame@^6.16.0: - version "6.16.0" - resolved "http://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.16.0.tgz#f90e60da0862909d3ce098733b5d3987c97cb8de" - dependencies: - chalk "^1.1.0" - esutils "^2.0.2" - js-tokens "^2.0.0" - -babel-core@^6.0.0, babel-core@^6.11.4, babel-core@^6.18.0: - version "6.18.2" - resolved "http://registry.npm.taobao.org/babel-core/download/babel-core-6.18.2.tgz#d8bb14dd6986fa4f3566a26ceda3964fa0e04e5b" - dependencies: - babel-code-frame "^6.16.0" - babel-generator "^6.18.0" - babel-helpers "^6.16.0" - babel-messages "^6.8.0" - babel-register "^6.18.0" - babel-runtime "^6.9.1" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - babylon "^6.11.0" - convert-source-map "^1.1.0" - debug "^2.1.1" - json5 "^0.5.0" - lodash "^4.2.0" - minimatch "^3.0.2" - path-is-absolute "^1.0.0" - private "^0.1.6" - slash "^1.0.0" - source-map "^0.5.0" - -babel-core@6.17.0: - version "6.17.0" - resolved "http://registry.npm.taobao.org/babel-core/download/babel-core-6.17.0.tgz#6c4576447df479e241e58c807e4bc7da4db7f425" - dependencies: - babel-code-frame "^6.16.0" - babel-generator "^6.17.0" - babel-helpers "^6.16.0" - babel-messages "^6.8.0" - babel-register "^6.16.0" - babel-runtime "^6.9.1" - babel-template "^6.16.0" - babel-traverse "^6.16.0" - babel-types "^6.16.0" - babylon "^6.11.0" - convert-source-map "^1.1.0" - debug "^2.1.1" - json5 "^0.4.0" - lodash "^4.2.0" - minimatch "^3.0.2" - path-exists "^1.0.0" - path-is-absolute "^1.0.0" - private "^0.1.6" - shebang-regex "^1.0.0" - slash "^1.0.0" - source-map "^0.5.0" - -babel-eslint@7.0.0: - version "7.0.0" - resolved "http://registry.npm.taobao.org/babel-eslint/download/babel-eslint-7.0.0.tgz#54e51b4033f54ac81326ecea4c646a779935196d" - dependencies: - babel-traverse "^6.15.0" - babel-types "^6.15.0" - babylon "^6.11.2" - lodash.pickby "^4.6.0" - -babel-generator@^6.17.0, babel-generator@^6.18.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-generator/download/babel-generator-6.18.0.tgz#e4f104cb3063996d9850556a45aae4a022060a07" - dependencies: - babel-messages "^6.8.0" - babel-runtime "^6.9.0" - babel-types "^6.18.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.2.0" - source-map "^0.5.0" - -babel-helper-builder-binary-assignment-operator-visitor@^6.8.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-helper-builder-binary-assignment-operator-visitor/download/babel-helper-builder-binary-assignment-operator-visitor-6.18.0.tgz#8ae814989f7a53682152e3401a04fabd0bb333a6" - dependencies: - babel-helper-explode-assignable-expression "^6.18.0" - babel-runtime "^6.0.0" - babel-types "^6.18.0" - -babel-helper-builder-react-jsx@^6.8.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-helper-builder-react-jsx/download/babel-helper-builder-react-jsx-6.18.0.tgz#ab02f19a2eb7ace936dd87fa55896d02be59bf71" - dependencies: - babel-runtime "^6.9.0" - babel-types "^6.18.0" - esutils "^2.0.0" - lodash "^4.2.0" - -babel-helper-call-delegate@^6.18.0, babel-helper-call-delegate@^6.8.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-helper-call-delegate/download/babel-helper-call-delegate-6.18.0.tgz#05b14aafa430884b034097ef29e9f067ea4133bd" - dependencies: - babel-helper-hoist-variables "^6.18.0" - babel-runtime "^6.0.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-helper-define-map@^6.18.0, babel-helper-define-map@^6.8.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-helper-define-map/download/babel-helper-define-map-6.18.0.tgz#8d6c85dc7fbb4c19be3de40474d18e97c3676ec2" - dependencies: - babel-helper-function-name "^6.18.0" - babel-runtime "^6.9.0" - babel-types "^6.18.0" - lodash "^4.2.0" - -babel-helper-explode-assignable-expression@^6.18.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.18.0.tgz#14b8e8c2d03ad735d4b20f1840b24cd1f65239fe" - dependencies: - babel-runtime "^6.0.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-helper-function-name@^6.18.0, babel-helper-function-name@^6.8.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-helper-function-name/download/babel-helper-function-name-6.18.0.tgz#68ec71aeba1f3e28b2a6f0730190b754a9bf30e6" - dependencies: - babel-helper-get-function-arity "^6.18.0" - babel-runtime "^6.0.0" - babel-template "^6.8.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-helper-get-function-arity@^6.18.0, babel-helper-get-function-arity@^6.8.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.18.0.tgz#a5b19695fd3f9cdfc328398b47dafcd7094f9f24" - dependencies: - babel-runtime "^6.0.0" - babel-types "^6.18.0" - -babel-helper-hoist-variables@^6.18.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.18.0.tgz#a835b5ab8b46d6de9babefae4d98ea41e866b82a" - dependencies: - babel-runtime "^6.0.0" - babel-types "^6.18.0" - -babel-helper-optimise-call-expression@^6.18.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.18.0.tgz#9261d0299ee1a4f08a6dd28b7b7c777348fd8f0f" - dependencies: - babel-runtime "^6.0.0" - babel-types "^6.18.0" - -babel-helper-regex@^6.8.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-helper-regex/download/babel-helper-regex-6.18.0.tgz#ae0ebfd77de86cb2f1af258e2cc20b5fe893ecc6" - dependencies: - babel-runtime "^6.9.0" - babel-types "^6.18.0" - lodash "^4.2.0" - -babel-helper-remap-async-to-generator@^6.16.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.18.0.tgz#336cdf3cab650bb191b02fc16a3708e7be7f9ce5" - dependencies: - babel-helper-function-name "^6.18.0" - babel-runtime "^6.0.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-helper-replace-supers@^6.18.0, babel-helper-replace-supers@^6.8.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-helper-replace-supers/download/babel-helper-replace-supers-6.18.0.tgz#28ec69877be4144dbd64f4cc3a337e89f29a924e" - dependencies: - babel-helper-optimise-call-expression "^6.18.0" - babel-messages "^6.8.0" - babel-runtime "^6.0.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-helpers@^6.16.0: - version "6.16.0" - resolved "http://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.16.0.tgz#1095ec10d99279460553e67eb3eee9973d3867e3" - dependencies: - babel-runtime "^6.0.0" - babel-template "^6.16.0" - -babel-jest@^16.0.0, babel-jest@16.0.0: - version "16.0.0" - resolved "http://registry.npm.taobao.org/babel-jest/download/babel-jest-16.0.0.tgz#348729aea6d624a4774b8a934d07a40dd2cfd640" - dependencies: - babel-core "^6.0.0" - babel-plugin-istanbul "^2.0.0" - babel-preset-jest "^16.0.0" - -babel-loader@6.2.5: - version "6.2.5" - resolved "http://registry.npm.taobao.org/babel-loader/download/babel-loader-6.2.5.tgz#576d548520689a5e6b70c65b85d76af1ffedd005" - dependencies: - loader-utils "^0.2.11" - mkdirp "^0.5.1" - object-assign "^4.0.1" - -babel-messages@^6.8.0: - version "6.8.0" - resolved "http://registry.npm.taobao.org/babel-messages/download/babel-messages-6.8.0.tgz#bf504736ca967e6d65ef0adb5a2a5f947c8e0eb9" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-check-es2015-constants@^6.3.13: - version "6.8.0" - resolved "http://registry.npm.taobao.org/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.8.0.tgz#dbf024c32ed37bfda8dee1e76da02386a8d26fe7" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-istanbul@^2.0.0: - version "2.0.3" - resolved "http://registry.npm.taobao.org/babel-plugin-istanbul/download/babel-plugin-istanbul-2.0.3.tgz#266b304b9109607d60748474394676982f660df4" - dependencies: - find-up "^1.1.2" - istanbul-lib-instrument "^1.1.4" - object-assign "^4.1.0" - test-exclude "^2.1.1" - -babel-plugin-jest-hoist@^16.0.0: - version "16.0.0" - resolved "http://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-16.0.0.tgz#b58ca3f770982a7e7c25b5614b2e57e9dafc6e76" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "http://registry.npm.taobao.org/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-class-properties@^6.8.0: - version "6.13.0" - resolved "http://registry.npm.taobao.org/babel-plugin-syntax-class-properties/download/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "http://registry.npm.taobao.org/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-flow@^6.18.0, babel-plugin-syntax-flow@^6.3.13: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-plugin-syntax-flow/download/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" - -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-plugin-syntax-jsx/download/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - -babel-plugin-syntax-object-rest-spread@^6.8.0: - version "6.13.0" - resolved "http://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - -babel-plugin-syntax-trailing-function-commas@^6.13.0, babel-plugin-syntax-trailing-function-commas@^6.8.0: - version "6.13.0" - resolved "http://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-6.13.0.tgz#2b84b7d53dd744f94ff1fad7669406274b23f541" - -babel-plugin-transform-async-to-generator@^6.16.0, babel-plugin-transform-async-to-generator@^6.8.0: - version "6.16.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-async-to-generator/download/babel-plugin-transform-async-to-generator-6.16.0.tgz#19ec36cb1486b59f9f468adfa42ce13908ca2999" - dependencies: - babel-helper-remap-async-to-generator "^6.16.0" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.0.0" - -babel-plugin-transform-class-properties@6.16.0: - version "6.16.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-class-properties/download/babel-plugin-transform-class-properties-6.16.0.tgz#969bca24d34e401d214f36b8af5c1346859bc904" - dependencies: - babel-helper-function-name "^6.8.0" - babel-plugin-syntax-class-properties "^6.8.0" - babel-runtime "^6.9.1" - -babel-plugin-transform-es2015-arrow-functions@^6.3.13: - version "6.8.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-arrow-functions/download/babel-plugin-transform-es2015-arrow-functions-6.8.0.tgz#5b63afc3181bdc9a8c4d481b5a4f3f7d7fef3d9d" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.3.13: - version "6.8.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoped-functions/download/babel-plugin-transform-es2015-block-scoped-functions-6.8.0.tgz#ed95d629c4b5a71ae29682b998f70d9833eb366d" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-es2015-block-scoping@^6.18.0, babel-plugin-transform-es2015-block-scoping@^6.6.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoping/download/babel-plugin-transform-es2015-block-scoping-6.18.0.tgz#3bfdcfec318d46df22525cdea88f1978813653af" - dependencies: - babel-runtime "^6.9.0" - babel-template "^6.15.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - lodash "^4.2.0" - -babel-plugin-transform-es2015-classes@^6.18.0, babel-plugin-transform-es2015-classes@^6.6.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-classes/download/babel-plugin-transform-es2015-classes-6.18.0.tgz#ffe7a17321bf83e494dcda0ae3fc72df48ffd1d9" - dependencies: - babel-helper-define-map "^6.18.0" - babel-helper-function-name "^6.18.0" - babel-helper-optimise-call-expression "^6.18.0" - babel-helper-replace-supers "^6.18.0" - babel-messages "^6.8.0" - babel-runtime "^6.9.0" - babel-template "^6.14.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-plugin-transform-es2015-computed-properties@^6.3.13: - version "6.8.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-computed-properties/download/babel-plugin-transform-es2015-computed-properties-6.8.0.tgz#f51010fd61b3bd7b6b60a5fdfd307bb7a5279870" - dependencies: - babel-helper-define-map "^6.8.0" - babel-runtime "^6.0.0" - babel-template "^6.8.0" - -babel-plugin-transform-es2015-destructuring@^6.18.0, babel-plugin-transform-es2015-destructuring@^6.6.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.18.0.tgz#a08fb89415ab82058649558bedb7bf8dafa76ba5" - dependencies: - babel-runtime "^6.9.0" - -babel-plugin-transform-es2015-destructuring@6.16.0: - version "6.16.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.16.0.tgz#050fe0866f5d53b36062ee10cdf5bfe64f929627" - dependencies: - babel-runtime "^6.9.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.6.0: - version "6.8.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-duplicate-keys/download/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz#fd8f7f7171fc108cc1c70c3164b9f15a81c25f7d" - dependencies: - babel-runtime "^6.0.0" - babel-types "^6.8.0" - -babel-plugin-transform-es2015-for-of@^6.18.0, babel-plugin-transform-es2015-for-of@^6.6.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-for-of/download/babel-plugin-transform-es2015-for-of-6.18.0.tgz#4c517504db64bf8cfc119a6b8f177211f2028a70" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-es2015-function-name@^6.3.13, babel-plugin-transform-es2015-function-name@^6.9.0: - version "6.9.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.9.0.tgz#8c135b17dbd064e5bba56ec511baaee2fca82719" - dependencies: - babel-helper-function-name "^6.8.0" - babel-runtime "^6.9.0" - babel-types "^6.9.0" - -babel-plugin-transform-es2015-literals@^6.3.13: - version "6.8.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-literals/download/babel-plugin-transform-es2015-literals-6.8.0.tgz#50aa2e5c7958fc2ab25d74ec117e0cc98f046468" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-es2015-modules-amd@^6.18.0, babel-plugin-transform-es2015-modules-amd@^6.8.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-amd/download/babel-plugin-transform-es2015-modules-amd-6.18.0.tgz#49a054cbb762bdf9ae2d8a807076cfade6141e40" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.18.0" - babel-runtime "^6.0.0" - babel-template "^6.8.0" - -babel-plugin-transform-es2015-modules-commonjs@^6.18.0, babel-plugin-transform-es2015-modules-commonjs@^6.6.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.18.0.tgz#c15ae5bb11b32a0abdcc98a5837baa4ee8d67bcc" - dependencies: - babel-plugin-transform-strict-mode "^6.18.0" - babel-runtime "^6.0.0" - babel-template "^6.16.0" - babel-types "^6.18.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.12.0, babel-plugin-transform-es2015-modules-systemjs@^6.18.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-systemjs/download/babel-plugin-transform-es2015-modules-systemjs-6.18.0.tgz#f09294707163edae4d3b3e8bfacecd01d920b7ad" - dependencies: - babel-helper-hoist-variables "^6.18.0" - babel-runtime "^6.11.6" - babel-template "^6.14.0" - -babel-plugin-transform-es2015-modules-umd@^6.12.0, babel-plugin-transform-es2015-modules-umd@^6.18.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-umd/download/babel-plugin-transform-es2015-modules-umd-6.18.0.tgz#23351770ece5c1f8e83ed67cb1d7992884491e50" - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.18.0" - babel-runtime "^6.0.0" - babel-template "^6.8.0" - -babel-plugin-transform-es2015-object-super@^6.3.13: - version "6.8.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-object-super/download/babel-plugin-transform-es2015-object-super-6.8.0.tgz#1b858740a5a4400887c23dcff6f4d56eea4a24c5" - dependencies: - babel-helper-replace-supers "^6.8.0" - babel-runtime "^6.0.0" - -babel-plugin-transform-es2015-parameters@^6.18.0, babel-plugin-transform-es2015-parameters@^6.6.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.18.0.tgz#9b2cfe238c549f1635ba27fc1daa858be70608b1" - dependencies: - babel-helper-call-delegate "^6.18.0" - babel-helper-get-function-arity "^6.18.0" - babel-runtime "^6.9.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-plugin-transform-es2015-parameters@6.17.0: - version "6.17.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.17.0.tgz#e06d30cef897f46adb4734707bbe128a0d427d58" - dependencies: - babel-helper-call-delegate "^6.8.0" - babel-helper-get-function-arity "^6.8.0" - babel-runtime "^6.9.0" - babel-template "^6.16.0" - babel-traverse "^6.16.0" - babel-types "^6.16.0" - -babel-plugin-transform-es2015-shorthand-properties@^6.18.0, babel-plugin-transform-es2015-shorthand-properties@^6.3.13: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-shorthand-properties/download/babel-plugin-transform-es2015-shorthand-properties-6.18.0.tgz#e2ede3b7df47bf980151926534d1dd0cbea58f43" - dependencies: - babel-runtime "^6.0.0" - babel-types "^6.18.0" - -babel-plugin-transform-es2015-spread@^6.3.13: - version "6.8.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.8.0.tgz#0217f737e3b821fa5a669f187c6ed59205f05e9c" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-es2015-sticky-regex@^6.3.13: - version "6.8.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.8.0.tgz#e73d300a440a35d5c64f5c2a344dc236e3df47be" - dependencies: - babel-helper-regex "^6.8.0" - babel-runtime "^6.0.0" - babel-types "^6.8.0" - -babel-plugin-transform-es2015-template-literals@^6.6.0: - version "6.8.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-template-literals/download/babel-plugin-transform-es2015-template-literals-6.8.0.tgz#86eb876d0a2c635da4ec048b4f7de9dfc897e66b" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.18.0, babel-plugin-transform-es2015-typeof-symbol@^6.6.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-typeof-symbol/download/babel-plugin-transform-es2015-typeof-symbol-6.18.0.tgz#0b14c48629c90ff47a0650077f6aa699bee35798" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-es2015-unicode-regex@^6.3.13: - version "6.11.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.11.0.tgz#6298ceabaad88d50a3f4f392d8de997260f6ef2c" - dependencies: - babel-helper-regex "^6.8.0" - babel-runtime "^6.0.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.3.13, babel-plugin-transform-exponentiation-operator@^6.8.0: - version "6.8.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-exponentiation-operator/download/babel-plugin-transform-exponentiation-operator-6.8.0.tgz#db25742e9339eade676ca9acec46f955599a68a4" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.8.0" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.0.0" - -babel-plugin-transform-flow-strip-types@^6.3.13: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-flow-strip-types/download/babel-plugin-transform-flow-strip-types-6.18.0.tgz#4d3e642158661e9b40db457c004a30817fa32592" - dependencies: - babel-plugin-syntax-flow "^6.18.0" - babel-runtime "^6.0.0" - -babel-plugin-transform-object-rest-spread@6.16.0: - version "6.16.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-object-rest-spread/download/babel-plugin-transform-object-rest-spread-6.16.0.tgz#db441d56fffc1999052fdebe2e2f25ebd28e36a9" - dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.0.0" - -babel-plugin-transform-react-constant-elements@6.9.1: - version "6.9.1" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-react-constant-elements/download/babel-plugin-transform-react-constant-elements-6.9.1.tgz#125b86d96cb322e2139b607fd749ad5fbb17f005" - dependencies: - babel-runtime "^6.9.1" - -babel-plugin-transform-react-display-name@^6.3.13: - version "6.8.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-react-display-name/download/babel-plugin-transform-react-display-name-6.8.0.tgz#f7a084977383d728bdbdc2835bba0159577f660e" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-react-jsx-self@^6.11.0, babel-plugin-transform-react-jsx-self@6.11.0: - version "6.11.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-react-jsx-self/download/babel-plugin-transform-react-jsx-self-6.11.0.tgz#605c9450c1429f97a930f7e1dfe3f0d9d0dbd0f4" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.9.0" - -babel-plugin-transform-react-jsx-source@^6.3.13, babel-plugin-transform-react-jsx-source@6.9.0: - version "6.9.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-react-jsx-source/download/babel-plugin-transform-react-jsx-source-6.9.0.tgz#af684a05c2067a86e0957d4f343295ccf5dccf00" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.9.0" - -babel-plugin-transform-react-jsx@^6.3.13: - version "6.8.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-react-jsx/download/babel-plugin-transform-react-jsx-6.8.0.tgz#94759942f70af18c617189aa7f3593f1644a71ab" - dependencies: - babel-helper-builder-react-jsx "^6.8.0" - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.0.0" - -babel-plugin-transform-regenerator@^6.16.0, babel-plugin-transform-regenerator@^6.6.0, babel-plugin-transform-regenerator@6.16.1: - version "6.16.1" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-regenerator/download/babel-plugin-transform-regenerator-6.16.1.tgz#a75de6b048a14154aae14b0122756c5bed392f59" - dependencies: - babel-runtime "^6.9.0" - babel-types "^6.16.0" - private "~0.1.5" - -babel-plugin-transform-runtime@6.15.0: - version "6.15.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-runtime/download/babel-plugin-transform-runtime-6.15.0.tgz#3d75b4d949ad81af157570273846fb59aeb0d57c" - dependencies: - babel-runtime "^6.9.0" - -babel-plugin-transform-strict-mode@^6.18.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.18.0.tgz#df7cf2991fe046f44163dcd110d5ca43bc652b9d" - dependencies: - babel-runtime "^6.0.0" - babel-types "^6.18.0" - -babel-preset-env@0.0.6: - version "0.0.6" - resolved "http://registry.npm.taobao.org/babel-preset-env/download/babel-preset-env-0.0.6.tgz#cda63a020069098fad12272a7a447a7c5bafb3c8" - dependencies: - babel-plugin-check-es2015-constants "^6.3.13" - babel-plugin-syntax-trailing-function-commas "^6.13.0" - babel-plugin-transform-async-to-generator "^6.8.0" - babel-plugin-transform-es2015-arrow-functions "^6.3.13" - babel-plugin-transform-es2015-block-scoped-functions "^6.3.13" - babel-plugin-transform-es2015-block-scoping "^6.6.0" - babel-plugin-transform-es2015-classes "^6.6.0" - babel-plugin-transform-es2015-computed-properties "^6.3.13" - babel-plugin-transform-es2015-destructuring "^6.6.0" - babel-plugin-transform-es2015-duplicate-keys "^6.6.0" - babel-plugin-transform-es2015-for-of "^6.6.0" - babel-plugin-transform-es2015-function-name "^6.3.13" - babel-plugin-transform-es2015-literals "^6.3.13" - babel-plugin-transform-es2015-modules-amd "^6.8.0" - babel-plugin-transform-es2015-modules-commonjs "^6.6.0" - babel-plugin-transform-es2015-modules-systemjs "^6.12.0" - babel-plugin-transform-es2015-modules-umd "^6.12.0" - babel-plugin-transform-es2015-object-super "^6.3.13" - babel-plugin-transform-es2015-parameters "^6.6.0" - babel-plugin-transform-es2015-shorthand-properties "^6.3.13" - babel-plugin-transform-es2015-spread "^6.3.13" - babel-plugin-transform-es2015-sticky-regex "^6.3.13" - babel-plugin-transform-es2015-template-literals "^6.6.0" - babel-plugin-transform-es2015-typeof-symbol "^6.6.0" - babel-plugin-transform-es2015-unicode-regex "^6.3.13" - babel-plugin-transform-exponentiation-operator "^6.8.0" - babel-plugin-transform-regenerator "^6.6.0" - browserslist "^1.4.0" - -babel-preset-es2015@^6.16.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-preset-es2015/download/babel-preset-es2015-6.18.0.tgz#b8c70df84ec948c43dcf2bf770e988eb7da88312" - dependencies: - babel-plugin-check-es2015-constants "^6.3.13" - babel-plugin-transform-es2015-arrow-functions "^6.3.13" - babel-plugin-transform-es2015-block-scoped-functions "^6.3.13" - babel-plugin-transform-es2015-block-scoping "^6.18.0" - babel-plugin-transform-es2015-classes "^6.18.0" - babel-plugin-transform-es2015-computed-properties "^6.3.13" - babel-plugin-transform-es2015-destructuring "^6.18.0" - babel-plugin-transform-es2015-duplicate-keys "^6.6.0" - babel-plugin-transform-es2015-for-of "^6.18.0" - babel-plugin-transform-es2015-function-name "^6.9.0" - babel-plugin-transform-es2015-literals "^6.3.13" - babel-plugin-transform-es2015-modules-amd "^6.18.0" - babel-plugin-transform-es2015-modules-commonjs "^6.18.0" - babel-plugin-transform-es2015-modules-systemjs "^6.18.0" - babel-plugin-transform-es2015-modules-umd "^6.18.0" - babel-plugin-transform-es2015-object-super "^6.3.13" - babel-plugin-transform-es2015-parameters "^6.18.0" - babel-plugin-transform-es2015-shorthand-properties "^6.18.0" - babel-plugin-transform-es2015-spread "^6.3.13" - babel-plugin-transform-es2015-sticky-regex "^6.3.13" - babel-plugin-transform-es2015-template-literals "^6.6.0" - babel-plugin-transform-es2015-typeof-symbol "^6.18.0" - babel-plugin-transform-es2015-unicode-regex "^6.3.13" - babel-plugin-transform-regenerator "^6.16.0" - -babel-preset-es2016@^6.16.0: - version "6.16.0" - resolved "http://registry.npm.taobao.org/babel-preset-es2016/download/babel-preset-es2016-6.16.0.tgz#c7daf5feedeee99c867813bdf0d573d94ca12812" - dependencies: - babel-plugin-transform-exponentiation-operator "^6.3.13" - -babel-preset-es2017@^6.16.0: - version "6.16.0" - resolved "http://registry.npm.taobao.org/babel-preset-es2017/download/babel-preset-es2017-6.16.0.tgz#536c6287778a758948ddd092b466b6ef50b786fa" - dependencies: - babel-plugin-syntax-trailing-function-commas "^6.8.0" - babel-plugin-transform-async-to-generator "^6.16.0" - -babel-preset-jest@^16.0.0: - version "16.0.0" - resolved "http://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-16.0.0.tgz#417aabc2d7d93170f43c20ef1ea0145e8f7f2db5" - dependencies: - babel-plugin-jest-hoist "^16.0.0" - -babel-preset-latest@6.16.0: - version "6.16.0" - resolved "http://registry.npm.taobao.org/babel-preset-latest/download/babel-preset-latest-6.16.0.tgz#5b87e19e250bb1213f13af4ec9dc7a51d53f388d" - dependencies: - babel-preset-es2015 "^6.16.0" - babel-preset-es2016 "^6.16.0" - babel-preset-es2017 "^6.16.0" - -babel-preset-react-app@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/babel-preset-react-app/download/babel-preset-react-app-1.0.0.tgz#e7613500859d96f177ba7a38a3ed0a923ee50da8" - dependencies: - babel-plugin-transform-class-properties "6.16.0" - babel-plugin-transform-es2015-destructuring "6.16.0" - babel-plugin-transform-es2015-parameters "6.17.0" - babel-plugin-transform-object-rest-spread "6.16.0" - babel-plugin-transform-react-constant-elements "6.9.1" - babel-plugin-transform-react-jsx-self "6.11.0" - babel-plugin-transform-react-jsx-source "6.9.0" - babel-plugin-transform-regenerator "6.16.1" - babel-plugin-transform-runtime "6.15.0" - babel-preset-env "0.0.6" - babel-preset-latest "6.16.0" - babel-preset-react "6.16.0" - babel-runtime "6.11.6" - -babel-preset-react@6.16.0: - version "6.16.0" - resolved "http://registry.npm.taobao.org/babel-preset-react/download/babel-preset-react-6.16.0.tgz#aa117d60de0928607e343c4828906e4661824316" - dependencies: - babel-plugin-syntax-flow "^6.3.13" - babel-plugin-syntax-jsx "^6.3.13" - babel-plugin-transform-flow-strip-types "^6.3.13" - babel-plugin-transform-react-display-name "^6.3.13" - babel-plugin-transform-react-jsx "^6.3.13" - babel-plugin-transform-react-jsx-self "^6.11.0" - babel-plugin-transform-react-jsx-source "^6.3.13" - -babel-register@^6.16.0, babel-register@^6.18.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-register/download/babel-register-6.18.0.tgz#892e2e03865078dd90ad2c715111ec4449b32a68" - dependencies: - babel-core "^6.18.0" - babel-runtime "^6.11.6" - core-js "^2.4.0" - home-or-tmp "^2.0.0" - lodash "^4.2.0" - mkdirp "^0.5.1" - source-map-support "^0.4.2" - -babel-runtime@^6.0.0, babel-runtime@^6.11.6, babel-runtime@^6.9.0, babel-runtime@^6.9.1: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.18.0.tgz#0f4177ffd98492ef13b9f823e9994a02584c9078" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.9.5" - -babel-runtime@6.11.6: - version "6.11.6" - resolved "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.11.6.tgz#6db707fef2d49c49bfa3cb64efdb436b518b8222" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.9.5" - -babel-template@^6.14.0, babel-template@^6.15.0, babel-template@^6.16.0, babel-template@^6.8.0: - version "6.16.0" - resolved "http://registry.npm.taobao.org/babel-template/download/babel-template-6.16.0.tgz#e149dd1a9f03a35f817ddbc4d0481988e7ebc8ca" - dependencies: - babel-runtime "^6.9.0" - babel-traverse "^6.16.0" - babel-types "^6.16.0" - babylon "^6.11.0" - lodash "^4.2.0" - -babel-traverse@^6.15.0, babel-traverse@^6.16.0, babel-traverse@^6.18.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.18.0.tgz#5aeaa980baed2a07c8c47329cd90c3b90c80f05e" - dependencies: - babel-code-frame "^6.16.0" - babel-messages "^6.8.0" - babel-runtime "^6.9.0" - babel-types "^6.18.0" - babylon "^6.11.0" - debug "^2.2.0" - globals "^9.0.0" - invariant "^2.2.0" - lodash "^4.2.0" - -babel-types@^6.15.0, babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.8.0, babel-types@^6.9.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-types/download/babel-types-6.18.0.tgz#1f7d5a73474c59eb9151b2417bbff4e4fce7c3f8" - dependencies: - babel-runtime "^6.9.1" - esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^1.0.1" - -babylon@^6.11.0, babylon@^6.11.2, babylon@^6.13.0: - version "6.13.1" - resolved "http://registry.npm.taobao.org/babylon/download/babylon-6.13.1.tgz#adca350e088f0467647157652bafead6ddb8dfdb" - -balanced-match@^0.4.1, balanced-match@^0.4.2: - version "0.4.2" - resolved "http://registry.npm.taobao.org/balanced-match/download/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - -balanced-match@~0.1.0: - version "0.1.0" - resolved "http://registry.npm.taobao.org/balanced-match/download/balanced-match-0.1.0.tgz#b504bd05869b39259dd0c5efc35d843176dccc4a" - -base64-js@^1.0.2: - version "1.2.0" - resolved "http://registry.npm.taobao.org/base64-js/download/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" - -Base64@~0.2.0: - version "0.2.1" - resolved "http://registry.npm.taobao.org/Base64/download/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028" - -batch@0.5.3: - version "0.5.3" - resolved "http://registry.npm.taobao.org/batch/download/batch-0.5.3.tgz#3f3414f380321743bfc1042f9a83ff1d5824d464" - -bcrypt-pbkdf@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4" - dependencies: - tweetnacl "^0.14.3" - -big.js@^3.1.3: - version "3.1.3" - resolved "http://registry.npm.taobao.org/big.js/download/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" - -binary-extensions@^1.0.0: - version "1.7.0" - resolved "http://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d" - -block-stream@*: - version "0.0.9" - resolved "http://registry.npm.taobao.org/block-stream/download/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" - -bluebird@^3.4.6: - version "3.4.6" - resolved "http://registry.npm.taobao.org/bluebird/download/bluebird-3.4.6.tgz#01da8d821d87813d158967e743d5fe6c62cf8c0f" - -boolbase@~1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - -boom@2.x.x: - version "2.10.1" - resolved "http://registry.npm.taobao.org/boom/download/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -bootstrap@3: - version "3.3.7" - resolved "http://registry.npm.taobao.org/bootstrap/download/bootstrap-3.3.7.tgz#5a389394549f23330875a3b150656574f8a9eb71" - -brace-expansion@^1.0.0: - version "1.1.6" - resolved "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" - dependencies: - balanced-match "^0.4.1" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -browser-resolve@^1.11.2: - version "1.11.2" - resolved "http://registry.npm.taobao.org/browser-resolve/download/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" - dependencies: - resolve "1.1.7" - -browserify-zlib@~0.1.4: - version "0.1.4" - resolved "http://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" - dependencies: - pako "~0.2.0" - -browserslist@^1.4.0, browserslist@~1.4.0: - version "1.4.0" - resolved "http://registry.npm.taobao.org/browserslist/download/browserslist-1.4.0.tgz#9cfdcf5384d9158f5b70da2aa00b30e8ff019049" - dependencies: - caniuse-db "^1.0.30000539" - -bser@^1.0.2: - version "1.0.2" - resolved "http://registry.npm.taobao.org/bser/download/bser-1.0.2.tgz#381116970b2a6deea5646dd15dd7278444b56169" - dependencies: - node-int64 "^0.4.0" - -buffer-shims@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/buffer-shims/download/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" - -buffer@^4.9.0: - version "4.9.1" - resolved "http://registry.npm.taobao.org/buffer/download/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-modules@^1.0.0, builtin-modules@^1.1.1: - version "1.1.1" - resolved "http://registry.npm.taobao.org/builtin-modules/download/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -bytes@2.3.0: - version "2.3.0" - resolved "http://registry.npm.taobao.org/bytes/download/bytes-2.3.0.tgz#d5b680a165b6201739acb611542aabc2d8ceb070" - -caller-path@^0.1.0: - version "0.1.0" - resolved "http://registry.npm.taobao.org/caller-path/download/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - dependencies: - callsites "^0.2.0" - -callsites@^0.2.0: - version "0.2.0" - resolved "http://registry.npm.taobao.org/callsites/download/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - -callsites@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - -camel-case@^3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -camelcase@^1.0.2: - version "1.2.1" - resolved "http://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -camelcase@^3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/camelcase/download/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - -caniuse-db@^1.0.30000539, caniuse-db@^1.0.30000554, caniuse-db@^1.0.30000578: - version "1.0.30000581" - resolved "http://registry.npm.taobao.org/caniuse-db/download/caniuse-db-1.0.30000581.tgz#9a707e1cff67a36bf624636d4662ea9fe041f3a8" - -cardinal@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/cardinal/download/cardinal-1.0.0.tgz#50e21c1b0aa37729f9377def196b5a9cec932ee9" - dependencies: - ansicolors "~0.2.1" - redeyed "~1.0.0" - -case-sensitive-paths-webpack-plugin@1.1.4: - version "1.1.4" - resolved "http://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-1.1.4.tgz#8aaedd5699a86cac2b34cf40d9b4145758978472" - -caseless@~0.11.0: - version "0.11.0" - resolved "http://registry.npm.taobao.org/caseless/download/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" - -center-align@^0.1.1: - version "0.1.3" - resolved "http://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - -chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3, chalk@1.1.3: - version "1.1.3" - resolved "http://registry.npm.taobao.org/chalk/download/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" - -change-case@3.0.x: - version "3.0.0" - resolved "http://registry.npm.taobao.org/change-case/download/change-case-3.0.0.tgz#6c9c8e35f8790870a82b6b0745be8c3cbef9b081" - dependencies: - camel-case "^3.0.0" - constant-case "^2.0.0" - dot-case "^2.1.0" - header-case "^1.0.0" - is-lower-case "^1.1.0" - is-upper-case "^1.1.0" - lower-case "^1.1.1" - lower-case-first "^1.0.0" - no-case "^2.2.0" - param-case "^2.1.0" - pascal-case "^2.0.0" - path-case "^2.1.0" - sentence-case "^2.1.0" - snake-case "^2.1.0" - swap-case "^1.1.0" - title-case "^2.1.0" - upper-case "^1.1.1" - upper-case-first "^1.1.0" - -cheerio@^0.22.0: - version "0.22.0" - resolved "http://registry.npm.taobao.org/cheerio/download/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" - dependencies: - css-select "~1.2.0" - dom-serializer "~0.1.0" - entities "~1.1.1" - htmlparser2 "^3.9.1" - lodash.assignin "^4.0.9" - lodash.bind "^4.1.4" - lodash.defaults "^4.0.1" - lodash.filter "^4.4.0" - lodash.flatten "^4.2.0" - lodash.foreach "^4.3.0" - lodash.map "^4.4.0" - lodash.merge "^4.4.0" - lodash.pick "^4.2.1" - lodash.reduce "^4.4.0" - lodash.reject "^4.4.0" - lodash.some "^4.4.0" - -chokidar@^1.0.0: - version "1.6.1" - resolved "http://registry.npm.taobao.org/chokidar/download/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - -ci-info@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/ci-info/download/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534" - -circular-json@^0.3.0: - version "0.3.1" - resolved "http://registry.npm.taobao.org/circular-json/download/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" - -clap@^1.0.9: - version "1.1.1" - resolved "http://registry.npm.taobao.org/clap/download/clap-1.1.1.tgz#a8a93e0bfb7581ac199c4f001a5525a724ce696d" - dependencies: - chalk "^1.1.3" - -classnames@^2.2.5: - version "2.2.5" - resolved "http://registry.npm.taobao.org/classnames/download/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" - -clean-css@3.4.x: - version "3.4.20" - resolved "http://registry.npm.taobao.org/clean-css/download/clean-css-3.4.20.tgz#c0d8963b5448e030f0bcd3ddd0dac4dfe3dea501" - dependencies: - commander "2.8.x" - source-map "0.4.x" - -cli-cursor@^1.0.1: - version "1.0.2" - resolved "http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" - dependencies: - restore-cursor "^1.0.1" - -cli-table@^0.3.1: - version "0.3.1" - resolved "http://registry.npm.taobao.org/cli-table/download/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" - dependencies: - colors "1.0.3" - -cli-usage@^0.1.1: - version "0.1.4" - resolved "http://registry.npm.taobao.org/cli-usage/download/cli-usage-0.1.4.tgz#7c01e0dc706c234b39c933838c8e20b2175776e2" - dependencies: - marked "^0.3.6" - marked-terminal "^1.6.2" - -cli-width@^2.0.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/cli-width/download/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" - -cliui@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - -cliui@^3.2.0: - version "3.2.0" - resolved "http://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -clone@^1.0.2: - version "1.0.2" - resolved "http://registry.npm.taobao.org/clone/download/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" - -co@^4.6.0: - version "4.6.0" - resolved "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -coa@~1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/coa/download/coa-1.0.1.tgz#7f959346cfc8719e3f7233cd6852854a7c67d8a3" - dependencies: - q "^1.1.2" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -color-convert@^1.3.0: - version "1.8.2" - resolved "http://registry.npm.taobao.org/color-convert/download/color-convert-1.8.2.tgz#be868184d7c8631766d54e7078e2672d7c7e3339" - dependencies: - color-name "^1.1.1" - -color-name@^1.0.0, color-name@^1.1.1: - version "1.1.1" - resolved "http://registry.npm.taobao.org/color-name/download/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" - -color-string@^0.3.0: - version "0.3.0" - resolved "http://registry.npm.taobao.org/color-string/download/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" - dependencies: - color-name "^1.0.0" - -color@^0.11.0: - version "0.11.4" - resolved "http://registry.npm.taobao.org/color/download/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" - dependencies: - clone "^1.0.2" - color-convert "^1.3.0" - color-string "^0.3.0" - -colormin@^1.0.5: - version "1.1.2" - resolved "http://registry.npm.taobao.org/colormin/download/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" - dependencies: - color "^0.11.0" - css-color-names "0.0.4" - has "^1.0.1" - -colors@~1.1.2: - version "1.1.2" - resolved "http://registry.npm.taobao.org/colors/download/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - -colors@1.0.3: - version "1.0.3" - resolved "http://registry.npm.taobao.org/colors/download/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" - -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" - dependencies: - delayed-stream "~1.0.0" - -commander@^2.9.0, commander@2.9.x: - version "2.9.0" - resolved "http://registry.npm.taobao.org/commander/download/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - dependencies: - graceful-readlink ">= 1.0.0" - -commander@~2.8.1, commander@2.8.x: - version "2.8.1" - resolved "http://registry.npm.taobao.org/commander/download/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" - dependencies: - graceful-readlink ">= 1.0.0" - -commondir@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - -compressible@~2.0.8: - version "2.0.9" - resolved "http://registry.npm.taobao.org/compressible/download/compressible-2.0.9.tgz#6daab4e2b599c2770dd9e21e7a891b1c5a755425" - dependencies: - mime-db ">= 1.24.0 < 2" - -compression@^1.5.2: - version "1.6.2" - resolved "http://registry.npm.taobao.org/compression/download/compression-1.6.2.tgz#cceb121ecc9d09c52d7ad0c3350ea93ddd402bc3" - dependencies: - accepts "~1.3.3" - bytes "2.3.0" - compressible "~2.0.8" - debug "~2.2.0" - on-headers "~1.0.1" - vary "~1.1.0" - -concat-map@0.0.1: - version "0.0.1" - resolved "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@^1.4.6: - version "1.5.2" - resolved "http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" - dependencies: - inherits "~2.0.1" - readable-stream "~2.0.0" - typedarray "~0.0.5" - -connect-history-api-fallback@^1.3.0, connect-history-api-fallback@1.3.0: - version "1.3.0" - resolved "http://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" - -console-browserify@^1.1.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/console-browserify/download/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -constant-case@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/constant-case/download/constant-case-2.0.0.tgz#4175764d389d3fa9c8ecd29186ed6005243b6a46" - dependencies: - snake-case "^2.1.0" - upper-case "^1.1.1" - -constants-browserify@0.0.1: - version "0.0.1" - resolved "http://registry.npm.taobao.org/constants-browserify/download/constants-browserify-0.0.1.tgz#92577db527ba6c4cf0a4568d84bc031f441e21f2" - -contains-path@^0.1.0: - version "0.1.0" - resolved "http://registry.npm.taobao.org/contains-path/download/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - -content-disposition@0.5.1: - version "0.5.1" - resolved "http://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.1.tgz#87476c6a67c8daa87e32e87616df883ba7fb071b" - -content-type-parser@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/content-type-parser/download/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94" - -content-type@~1.0.2: - version "1.0.2" - resolved "http://registry.npm.taobao.org/content-type/download/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" - -convert-source-map@^1.1.0: - version "1.3.0" - resolved "http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "http://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - -cookie@0.3.1: - version "0.3.1" - resolved "http://registry.npm.taobao.org/cookie/download/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - -core-js@^1.0.0: - version "1.2.7" - resolved "http://registry.npm.taobao.org/core-js/download/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" - -core-js@^2.4.0: - version "2.4.1" - resolved "http://registry.npm.taobao.org/core-js/download/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" - -core-util-is@~1.0.0: - version "1.0.2" - resolved "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -cosmiconfig@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-2.1.0.tgz#26e384a2055ea4e087050e5e08d53eb4eac8f86e" - dependencies: - graceful-fs "^4.1.2" - js-yaml "^3.4.3" - minimist "^1.2.0" - object-assign "^4.1.0" - os-homedir "^1.0.1" - parse-json "^2.2.0" - require-from-string "^1.1.0" - -cross-spawn@4.0.2: - version "4.0.2" - resolved "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - -cryptiles@2.x.x: - version "2.0.5" - resolved "http://registry.npm.taobao.org/cryptiles/download/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -crypto-browserify@~3.2.6: - version "3.2.8" - resolved "http://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.2.8.tgz#b9b11dbe6d9651dd882a01e6cc467df718ecf189" - dependencies: - pbkdf2-compat "2.0.1" - ripemd160 "0.2.0" - sha.js "2.2.6" - -css-color-names@0.0.4: - version "0.0.4" - resolved "http://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - -css-loader@0.25.0: - version "0.25.0" - resolved "http://registry.npm.taobao.org/css-loader/download/css-loader-0.25.0.tgz#c3febc8ce28f4c83576b6b13707f47f90c390223" - dependencies: - babel-code-frame "^6.11.0" - css-selector-tokenizer "^0.6.0" - cssnano ">=2.6.1 <4" - loader-utils "~0.2.2" - lodash.camelcase "^3.0.1" - object-assign "^4.0.1" - postcss "^5.0.6" - postcss-modules-extract-imports "^1.0.0" - postcss-modules-local-by-default "^1.0.1" - postcss-modules-scope "^1.0.0" - postcss-modules-values "^1.1.0" - source-list-map "^0.1.4" - -css-select@^1.1.0, css-select@~1.2.0: - version "1.2.0" - resolved "http://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - -css-selector-tokenizer@^0.6.0: - version "0.6.0" - resolved "http://registry.npm.taobao.org/css-selector-tokenizer/download/css-selector-tokenizer-0.6.0.tgz#6445f582c7930d241dcc5007a43d6fcb8f073152" - dependencies: - cssesc "^0.1.0" - fastparse "^1.1.1" - regexpu-core "^1.0.0" - -css-what@2.1: - version "2.1.0" - resolved "http://registry.npm.taobao.org/css-what/download/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" - -cssesc@^0.1.0: - version "0.1.0" - resolved "http://registry.npm.taobao.org/cssesc/download/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" - -"cssnano@>=2.6.1 <4": - version "3.8.0" - resolved "http://registry.npm.taobao.org/cssnano/download/cssnano-3.8.0.tgz#bb90ac5292f42b679d9a05f6da0e9697556bb80d" - dependencies: - autoprefixer "^6.3.1" - decamelize "^1.1.2" - defined "^1.0.0" - has "^1.0.1" - object-assign "^4.0.1" - postcss "^5.0.14" - postcss-calc "^5.2.0" - postcss-colormin "^2.1.8" - postcss-convert-values "^2.3.4" - postcss-discard-comments "^2.0.4" - postcss-discard-duplicates "^2.0.1" - postcss-discard-empty "^2.0.1" - postcss-discard-overridden "^0.1.1" - postcss-discard-unused "^2.2.1" - postcss-filter-plugins "^2.0.0" - postcss-merge-idents "^2.1.5" - postcss-merge-longhand "^2.0.1" - postcss-merge-rules "^2.0.3" - postcss-minify-font-values "^1.0.2" - postcss-minify-gradients "^1.0.1" - postcss-minify-params "^1.0.4" - postcss-minify-selectors "^2.0.4" - postcss-normalize-charset "^1.1.0" - postcss-normalize-url "^3.0.7" - postcss-ordered-values "^2.1.0" - postcss-reduce-idents "^2.2.2" - postcss-reduce-initial "^1.0.0" - postcss-reduce-transforms "^1.0.3" - postcss-svgo "^2.1.1" - postcss-unique-selectors "^2.0.2" - postcss-value-parser "^3.2.3" - postcss-zindex "^2.0.1" - -csso@~2.2.1: - version "2.2.1" - resolved "http://registry.npm.taobao.org/csso/download/csso-2.2.1.tgz#51fbb5347e50e81e6ed51668a48490ae6fe2afe2" - dependencies: - clap "^1.0.9" - source-map "^0.5.3" - -"cssom@>= 0.3.0 < 0.4.0", cssom@0.3.x: - version "0.3.1" - resolved "http://registry.npm.taobao.org/cssom/download/cssom-0.3.1.tgz#c9e37ef2490e64f6d1baa10fda852257082c25d3" - -"cssstyle@>= 0.2.36 < 0.3.0": - version "0.2.37" - resolved "http://registry.npm.taobao.org/cssstyle/download/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" - dependencies: - cssom "0.3.x" - -d@^0.1.1, d@~0.1.1: - version "0.1.1" - resolved "http://registry.npm.taobao.org/d/download/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" - dependencies: - es5-ext "~0.10.2" - -damerau-levenshtein@^1.0.0: - version "1.0.3" - resolved "http://registry.npm.taobao.org/damerau-levenshtein/download/damerau-levenshtein-1.0.3.tgz#ae4f4ce0b62acae10ff63a01bb08f652f5213af2" - -dashdash@^1.12.0: - version "1.14.0" - resolved "http://registry.npm.taobao.org/dashdash/download/dashdash-1.14.0.tgz#29e486c5418bf0f356034a993d51686a33e84141" - dependencies: - assert-plus "^1.0.0" - -date-now@^0.1.4: - version "0.1.4" - resolved "http://registry.npm.taobao.org/date-now/download/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - -debug@^2.1.0, debug@^2.1.1, debug@^2.2.0: - version "2.3.2" - resolved "http://registry.npm.taobao.org/debug/download/debug-2.3.2.tgz#94cb466ef7d6d2c7e5245cdd6e4104f2d0d70d30" - dependencies: - ms "0.7.2" - -debug@~2.2.0, debug@2.2.0: - version "2.2.0" - resolved "http://registry.npm.taobao.org/debug/download/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" - dependencies: - ms "0.7.1" - -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: - version "1.2.0" - resolved "http://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -deep-extend@~0.4.0: - version "0.4.1" - resolved "http://registry.npm.taobao.org/deep-extend/download/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" - -deep-is@~0.1.3: - version "0.1.3" - resolved "http://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - -define-properties@^1.1.1, define-properties@^1.1.2: - version "1.1.2" - resolved "http://registry.npm.taobao.org/define-properties/download/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" - dependencies: - foreach "^2.0.5" - object-keys "^1.0.8" - -defined@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - -del@^2.0.2: - version "2.2.2" - resolved "http://registry.npm.taobao.org/del/download/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" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -delegates@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - -depd@~1.1.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/depd/download/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" - -destroy@~1.0.4: - version "1.0.4" - resolved "http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - -detect-indent@^4.0.0: - version "4.0.0" - resolved "http://registry.npm.taobao.org/detect-indent/download/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - -detect-port@1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/detect-port/download/detect-port-1.0.1.tgz#3e1aa6a7ff6677bb60894b291172529d880c1e85" - dependencies: - commander "~2.8.1" - -diff@^3.0.0: - version "3.0.1" - resolved "http://registry.npm.taobao.org/diff/download/diff-3.0.1.tgz#a52d90cc08956994be00877bff97110062582c35" - -doctrine@^1.2.2: - version "1.5.0" - resolved "http://registry.npm.taobao.org/doctrine/download/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -doctrine@1.3.x: - version "1.3.0" - resolved "http://registry.npm.taobao.org/doctrine/download/doctrine-1.3.0.tgz#13e75682b55518424276f7c173783456ef913d26" - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -dom-converter@~0.1: - version "0.1.4" - resolved "http://registry.npm.taobao.org/dom-converter/download/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b" - dependencies: - utila "~0.3" - -dom-helpers@^2.4.0: - version "2.4.0" - resolved "http://registry.npm.taobao.org/dom-helpers/download/dom-helpers-2.4.0.tgz#9bb4b245f637367b1fa670274272aa28fe06c367" - -dom-serializer@~0.1.0, dom-serializer@0: - version "0.1.0" - resolved "http://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" - dependencies: - domelementtype "~1.1.1" - entities "~1.1.1" - -domain-browser@^1.1.1: - version "1.1.7" - resolved "http://registry.npm.taobao.org/domain-browser/download/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" - -domelementtype@^1.3.0, domelementtype@1: - version "1.3.0" - resolved "http://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" - -domelementtype@~1.1.1: - version "1.1.3" - resolved "http://registry.npm.taobao.org/domelementtype/download/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" - -domhandler@^2.3.0: - version "2.3.0" - resolved "http://registry.npm.taobao.org/domhandler/download/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" - dependencies: - domelementtype "1" - -domhandler@2.1: - version "2.1.0" - resolved "http://registry.npm.taobao.org/domhandler/download/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" - dependencies: - domelementtype "1" - -domutils@^1.5.1, domutils@1.5.1: - version "1.5.1" - resolved "http://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@1.1: - version "1.1.6" - resolved "http://registry.npm.taobao.org/domutils/download/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" - dependencies: - domelementtype "1" - -dot-case@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/dot-case/download/dot-case-2.1.0.tgz#4b43dd0d7403c34cb645424add397e80bfe85ca6" - dependencies: - no-case "^2.2.0" - -dotenv@2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/dotenv/download/dotenv-2.0.0.tgz#bd759c357aaa70365e01c96b7b0bec08a6e0d949" - -duplexer@^0.1.1: - version "0.1.1" - resolved "http://registry.npm.taobao.org/duplexer/download/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - -ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "http://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: - jsbn "~0.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - -emojis-list@^2.0.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - -encodeurl@~1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" - -encoding@^0.1.11: - version "0.1.12" - resolved "http://registry.npm.taobao.org/encoding/download/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - dependencies: - iconv-lite "~0.4.13" - -enhanced-resolve@~0.9.0: - version "0.9.1" - resolved "http://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.2.0" - tapable "^0.1.8" - -entities@^1.1.1, entities@~1.1.1: - version "1.1.1" - resolved "http://registry.npm.taobao.org/entities/download/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" - -enzyme: - version "2.6.0" - resolved "http://registry.npm.taobao.org/enzyme/download/enzyme-2.6.0.tgz#148d742b25e2565f7e80870a0c92aea9be1b90ea" - dependencies: - cheerio "^0.22.0" - function.prototype.name "^1.0.0" - in-publish "^2.0.0" - is-subset "^0.1.1" - lodash "^4.16.4" - object-is "^1.0.1" - object.assign "^4.0.4" - object.entries "^1.0.3" - object.values "^1.0.3" - uuid "^2.0.3" - -errno@^0.1.3, "errno@>=0.1.1 <0.2.0-0": - version "0.1.4" - resolved "http://registry.npm.taobao.org/errno/download/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" - dependencies: - prr "~0.0.0" - -error-ex@^1.2.0: - version "1.3.0" - resolved "http://registry.npm.taobao.org/error-ex/download/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9" - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.3.2: - version "1.6.1" - resolved "http://registry.npm.taobao.org/es-abstract/download/es-abstract-1.6.1.tgz#bb8a2064120abcf928a086ea3d9043114285ec99" - dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.0" - is-callable "^1.1.3" - is-regex "^1.0.3" - -es-to-primitive@^1.1.1: - version "1.1.1" - resolved "http://registry.npm.taobao.org/es-to-primitive/download/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" - -es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0.10.7: - version "0.10.12" - resolved "http://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.12.tgz#aa84641d4db76b62abba5e45fd805ecbab140047" - dependencies: - es6-iterator "2" - es6-symbol "~3.1" - -es6-iterator@2: - version "2.0.0" - resolved "http://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac" - dependencies: - d "^0.1.1" - es5-ext "^0.10.7" - es6-symbol "3" - -es6-map@^0.1.3: - version "0.1.4" - resolved "http://registry.npm.taobao.org/es6-map/download/es6-map-0.1.4.tgz#a34b147be224773a4d7da8072794cefa3632b897" - dependencies: - d "~0.1.1" - es5-ext "~0.10.11" - es6-iterator "2" - es6-set "~0.1.3" - es6-symbol "~3.1.0" - event-emitter "~0.3.4" - -es6-set@~0.1.3: - version "0.1.4" - resolved "http://registry.npm.taobao.org/es6-set/download/es6-set-0.1.4.tgz#9516b6761c2964b92ff479456233a247dc707ce8" - dependencies: - d "~0.1.1" - es5-ext "~0.10.11" - es6-iterator "2" - es6-symbol "3" - event-emitter "~0.3.4" - -es6-symbol@~3.1, es6-symbol@~3.1.0, es6-symbol@3: - version "3.1.0" - resolved "http://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa" - dependencies: - d "~0.1.1" - es5-ext "~0.10.11" - -es6-weak-map@^2.0.1: - version "2.0.1" - resolved "http://registry.npm.taobao.org/es6-weak-map/download/es6-weak-map-2.0.1.tgz#0d2bbd8827eb5fb4ba8f97fbfea50d43db21ea81" - dependencies: - d "^0.1.1" - es5-ext "^0.10.8" - es6-iterator "2" - es6-symbol "3" - -escape-html@~1.0.3: - version "1.0.3" - resolved "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5, escape-string-regexp@1.0.5: - version "1.0.5" - resolved "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -escodegen@^1.6.1, escodegen@1.8.x: - version "1.8.1" - resolved "http://registry.npm.taobao.org/escodegen/download/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" - dependencies: - esprima "^2.7.1" - estraverse "^1.9.1" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.2.0" - -escope@^3.6.0: - version "3.6.0" - resolved "http://registry.npm.taobao.org/escope/download/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" - dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-config-react-app@^0.3.0: - version "0.3.0" - resolved "http://registry.npm.taobao.org/eslint-config-react-app/download/eslint-config-react-app-0.3.0.tgz#29a768eda157eb0bc22f8136d36136b8a4374e3d" - -eslint-import-resolver-node@^0.2.0: - version "0.2.3" - resolved "http://registry.npm.taobao.org/eslint-import-resolver-node/download/eslint-import-resolver-node-0.2.3.tgz#5add8106e8c928db2cba232bcd9efa846e3da16c" - dependencies: - debug "^2.2.0" - object-assign "^4.0.1" - resolve "^1.1.6" - -eslint-loader@1.6.0: - version "1.6.0" - resolved "http://registry.npm.taobao.org/eslint-loader/download/eslint-loader-1.6.0.tgz#38f9a1e6c602a4f1f3f3516289726e5d26e6e165" - dependencies: - find-cache-dir "^0.1.1" - loader-utils "^0.2.7" - object-assign "^4.0.1" - -eslint-module-utils@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/eslint-module-utils/download/eslint-module-utils-1.0.0.tgz#c4a57fd3a53efd8426cc2d5550aadab9bbd05fd0" - dependencies: - debug "2.2.0" - pkg-dir "^1.0.0" - -eslint-plugin-flowtype@2.21.0: - version "2.21.0" - resolved "http://registry.npm.taobao.org/eslint-plugin-flowtype/download/eslint-plugin-flowtype-2.21.0.tgz#a47e85abcdd181d37a336054bd552149ae387d9c" - dependencies: - lodash "^4.15.0" - -eslint-plugin-import@2.0.1: - version "2.0.1" - resolved "http://registry.npm.taobao.org/eslint-plugin-import/download/eslint-plugin-import-2.0.1.tgz#dcfe96357d476b3f822570d42c29bec66f5d9c5c" - dependencies: - builtin-modules "^1.1.1" - contains-path "^0.1.0" - debug "^2.2.0" - doctrine "1.3.x" - eslint-import-resolver-node "^0.2.0" - eslint-module-utils "^1.0.0" - has "^1.0.1" - lodash.cond "^4.3.0" - minimatch "^3.0.3" - pkg-up "^1.0.0" - -eslint-plugin-jsx-a11y@2.2.3: - version "2.2.3" - resolved "http://registry.npm.taobao.org/eslint-plugin-jsx-a11y/download/eslint-plugin-jsx-a11y-2.2.3.tgz#4e35cb71b8a7db702ac415c806eb8e8d9ea6c65d" - dependencies: - damerau-levenshtein "^1.0.0" - jsx-ast-utils "^1.0.0" - object-assign "^4.0.1" - -eslint-plugin-react@6.4.1: - version "6.4.1" - resolved "http://registry.npm.taobao.org/eslint-plugin-react/download/eslint-plugin-react-6.4.1.tgz#7d1aade747db15892f71eee1fea4addf97bcfa2b" - dependencies: - doctrine "^1.2.2" - jsx-ast-utils "^1.3.1" - -eslint@3.8.1: - version "3.8.1" - resolved "http://registry.npm.taobao.org/eslint/download/eslint-3.8.1.tgz#7d02db44cd5aaf4fa7aa489e1f083baa454342ba" - dependencies: - chalk "^1.1.3" - concat-stream "^1.4.6" - debug "^2.1.1" - doctrine "^1.2.2" - escope "^3.6.0" - espree "^3.3.1" - estraverse "^4.2.0" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - glob "^7.0.3" - globals "^9.2.0" - ignore "^3.1.5" - imurmurhash "^0.1.4" - inquirer "^0.12.0" - is-my-json-valid "^2.10.0" - is-resolvable "^1.0.0" - js-yaml "^3.5.1" - json-stable-stringify "^1.0.0" - levn "^0.3.0" - lodash "^4.0.0" - mkdirp "^0.5.0" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.1" - pluralize "^1.2.1" - progress "^1.1.8" - require-uncached "^1.0.2" - shelljs "^0.6.0" - strip-bom "^3.0.0" - strip-json-comments "~1.0.1" - table "^3.7.8" - text-table "~0.2.0" - user-home "^2.0.0" - -espree@^3.3.1: - version "3.3.2" - resolved "http://registry.npm.taobao.org/espree/download/espree-3.3.2.tgz#dbf3fadeb4ecb4d4778303e50103b3d36c88b89c" - dependencies: - acorn "^4.0.1" - acorn-jsx "^3.0.0" - -esprima@^2.6.0, esprima@^2.7.1, esprima@2.7.x: - version "2.7.3" - resolved "http://registry.npm.taobao.org/esprima/download/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - -esprima@~3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/esprima/download/esprima-3.0.0.tgz#53cf247acda77313e551c3aa2e73342d3fb4f7d9" - -esrecurse@^4.1.0: - version "4.1.0" - resolved "http://registry.npm.taobao.org/esrecurse/download/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" - dependencies: - estraverse "~4.1.0" - object-assign "^4.0.1" - -estraverse@^1.9.1: - version "1.9.3" - resolved "http://registry.npm.taobao.org/estraverse/download/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" - -estraverse@^4.1.1, estraverse@^4.2.0: - version "4.2.0" - resolved "http://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -estraverse@~4.1.0: - version "4.1.1" - resolved "http://registry.npm.taobao.org/estraverse/download/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" - -esutils@^2.0.0, esutils@^2.0.2: - version "2.0.2" - resolved "http://registry.npm.taobao.org/esutils/download/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -etag@~1.7.0: - version "1.7.0" - resolved "http://registry.npm.taobao.org/etag/download/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8" - -event-emitter@~0.3.4: - version "0.3.4" - resolved "http://registry.npm.taobao.org/event-emitter/download/event-emitter-0.3.4.tgz#8d63ddfb4cfe1fae3b32ca265c4c720222080bb5" - dependencies: - d "~0.1.1" - es5-ext "~0.10.7" - -eventemitter3@1.x.x: - version "1.2.0" - resolved "http://registry.npm.taobao.org/eventemitter3/download/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" - -events@^1.0.0: - version "1.1.1" - resolved "http://registry.npm.taobao.org/events/download/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - -eventsource@^0.1.3, eventsource@~0.1.6: - version "0.1.6" - resolved "http://registry.npm.taobao.org/eventsource/download/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" - dependencies: - original ">=0.0.5" - -exec-sh@^0.2.0: - version "0.2.0" - resolved "http://registry.npm.taobao.org/exec-sh/download/exec-sh-0.2.0.tgz#14f75de3f20d286ef933099b2ce50a90359cef10" - dependencies: - merge "^1.1.3" - -exit-hook@^1.0.0: - version "1.1.1" - resolved "http://registry.npm.taobao.org/exit-hook/download/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-range@^1.8.1: - version "1.8.2" - resolved "http://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -express@^4.13.3: - version "4.14.0" - resolved "http://registry.npm.taobao.org/express/download/express-4.14.0.tgz#c1ee3f42cdc891fb3dc650a8922d51ec847d0d66" - dependencies: - accepts "~1.3.3" - array-flatten "1.1.1" - content-disposition "0.5.1" - content-type "~1.0.2" - cookie "0.3.1" - cookie-signature "1.0.6" - debug "~2.2.0" - depd "~1.1.0" - encodeurl "~1.0.1" - escape-html "~1.0.3" - etag "~1.7.0" - finalhandler "0.5.0" - fresh "0.3.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.1" - path-to-regexp "0.1.7" - proxy-addr "~1.1.2" - qs "6.2.0" - range-parser "~1.2.0" - send "0.14.1" - serve-static "~1.11.1" - type-is "~1.6.13" - utils-merge "1.0.0" - vary "~1.1.0" - -extend@~3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/extend/download/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" - -extglob@^0.3.1: - version "0.3.2" - resolved "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extract-text-webpack-plugin@1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/extract-text-webpack-plugin/download/extract-text-webpack-plugin-1.0.1.tgz#c95bf3cbaac49dc96f1dc6e072549fbb654ccd2c" - dependencies: - async "^1.5.0" - loader-utils "^0.2.3" - webpack-sources "^0.1.0" - -extsprintf@1.0.2: - version "1.0.2" - resolved "http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" - -fast-levenshtein@~2.0.4: - version "2.0.5" - resolved "http://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.5.tgz#bd33145744519ab1c36c3ee9f31f08e9079b67f2" - -fastparse@^1.1.1: - version "1.1.1" - resolved "http://registry.npm.taobao.org/fastparse/download/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" - -faye-websocket@^0.10.0: - version "0.10.0" - resolved "http://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.0: - version "0.11.0" - resolved "http://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.0.tgz#d9ccf0e789e7db725d74bc4877d23aa42972ac50" - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.7.3: - version "0.7.3" - resolved "http://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.7.3.tgz#cc4074c7f4a4dfd03af54dd65c354b135132ce11" - dependencies: - websocket-driver ">=0.3.6" - -fb-watchman@^1.8.0, fb-watchman@^1.9.0: - version "1.9.0" - resolved "http://registry.npm.taobao.org/fb-watchman/download/fb-watchman-1.9.0.tgz#6f268f1f347a6b3c875d1e89da7e1ed79adfc0ec" - dependencies: - bser "^1.0.2" - -fbjs@^0.8.4: - version "0.8.6" - resolved "http://registry.npm.taobao.org/fbjs/download/fbjs-0.8.6.tgz#7eb67d6986b2d5007a9b6e92e0e7cb6f75cad290" - dependencies: - core-js "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - ua-parser-js "^0.7.9" - -figures@^1.3.5: - version "1.7.0" - resolved "http://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - -file-loader@0.9.0: - version "0.9.0" - resolved "http://registry.npm.taobao.org/file-loader/download/file-loader-0.9.0.tgz#1d2daddd424ce6d1b07cfe3f79731bed3617ab42" - dependencies: - loader-utils "~0.2.5" - -filename-regex@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" - -fileset@0.2.x: - version "0.2.1" - resolved "http://registry.npm.taobao.org/fileset/download/fileset-0.2.1.tgz#588ef8973c6623b2a76df465105696b96aac8067" - dependencies: - glob "5.x" - minimatch "2.x" - -filesize@3.3.0: - version "3.3.0" - resolved "http://registry.npm.taobao.org/filesize/download/filesize-3.3.0.tgz#53149ea3460e3b2e024962a51648aa572cf98122" - -fill-range@^2.1.0: - version "2.2.3" - resolved "http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^1.1.3" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -finalhandler@0.5.0: - version "0.5.0" - resolved "http://registry.npm.taobao.org/finalhandler/download/finalhandler-0.5.0.tgz#e9508abece9b6dba871a6942a1d7911b91911ac7" - dependencies: - debug "~2.2.0" - escape-html "~1.0.3" - on-finished "~2.3.0" - statuses "~1.3.0" - unpipe "~1.0.0" - -find-cache-dir@^0.1.1, find-cache-dir@0.1.1: - version "0.1.1" - resolved "http://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" - dependencies: - commondir "^1.0.1" - mkdirp "^0.5.1" - pkg-dir "^1.0.0" - -find-up@^1.0.0, find-up@^1.1.2: - version "1.1.2" - resolved "http://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -flat-cache@^1.2.1: - version "1.2.1" - resolved "http://registry.npm.taobao.org/flat-cache/download/flat-cache-1.2.1.tgz#6c837d6225a7de5659323740b36d5361f71691ff" - dependencies: - circular-json "^0.3.0" - del "^2.0.2" - graceful-fs "^4.1.2" - write "^0.2.1" - -flatten@^1.0.2: - version "1.0.2" - resolved "http://registry.npm.taobao.org/flatten/download/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" - -for-in@^0.1.5: - version "0.1.6" - resolved "http://registry.npm.taobao.org/for-in/download/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" - -for-own@^0.1.4: - version "0.1.4" - resolved "http://registry.npm.taobao.org/for-own/download/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" - dependencies: - for-in "^0.1.5" - -foreach@^2.0.5: - version "2.0.5" - resolved "http://registry.npm.taobao.org/foreach/download/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "http://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~2.1.1: - version "2.1.2" - resolved "http://registry.npm.taobao.org/form-data/download/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -forwarded@~0.1.0: - version "0.1.0" - resolved "http://registry.npm.taobao.org/forwarded/download/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" - -fresh@0.3.0: - version "0.3.0" - resolved "http://registry.npm.taobao.org/fresh/download/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f" - -fs-extra@^0.30.0, fs-extra@0.30.0: - version "0.30.0" - resolved "http://registry.npm.taobao.org/fs-extra/download/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.0.0: - version "1.0.15" - resolved "http://registry.npm.taobao.org/fsevents/download/fsevents-1.0.15.tgz#fa63f590f3c2ad91275e4972a6cea545fb0aae44" - dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.29" - -fsevents@1.0.14: - version "1.0.14" - resolved "http://registry.npm.taobao.org/fsevents/download/fsevents-1.0.14.tgz#558e8cc38643d8ef40fe45158486d0d25758eee4" - dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.29" - -fstream-ignore@~1.0.5: - version "1.0.5" - resolved "http://registry.npm.taobao.org/fstream-ignore/download/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" - dependencies: - fstream "^1.0.0" - inherits "2" - minimatch "^3.0.0" - -fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: - version "1.0.10" - resolved "http://registry.npm.taobao.org/fstream/download/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-bind@^1.0.2, function-bind@^1.1.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/function-bind/download/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" - -function.prototype.name@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/function.prototype.name/download/function.prototype.name-1.0.0.tgz#5f523ca64e491a5f95aba80cc1e391080a14482e" - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.0" - is-callable "^1.1.2" - -gauge@~2.6.0: - version "2.6.0" - resolved "http://registry.npm.taobao.org/gauge/download/gauge-2.6.0.tgz#d35301ad18e96902b4751dcbbe40f4218b942a46" - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-color "^0.1.7" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -generate-function@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/generate-function/download/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "http://registry.npm.taobao.org/generate-object-property/download/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - dependencies: - is-property "^1.0.0" - -get-caller-file@^1.0.1: - version "1.0.2" - resolved "http://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" - -getpass@^0.1.1: - version "0.1.6" - resolved "http://registry.npm.taobao.org/getpass/download/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" - dependencies: - assert-plus "^1.0.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "http://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob@^5.0.15, glob@5.x: - version "5.0.15" - resolved "http://registry.npm.taobao.org/glob/download/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.3, glob@^7.0.5: - version "7.1.1" - resolved "http://registry.npm.taobao.org/glob/download/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^9.0.0, globals@^9.2.0: - version "9.13.0" - resolved "http://registry.npm.taobao.org/globals/download/globals-9.13.0.tgz#d97706b61600d8dbe94708c367d3fdcf48470b8f" - -globby@^5.0.0: - version "5.0.0" - resolved "http://registry.npm.taobao.org/globby/download/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, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.1.10" - resolved "http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.10.tgz#f2d720c22092f743228775c75e3612632501f131" - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "http://registry.npm.taobao.org/graceful-readlink/download/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - -growly@^1.2.0: - version "1.3.0" - resolved "http://registry.npm.taobao.org/growly/download/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - -gzip-size@3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/gzip-size/download/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520" - dependencies: - duplexer "^0.1.1" - -handlebars@^4.0.1, handlebars@^4.0.3: - version "4.0.6" - resolved "http://registry.npm.taobao.org/handlebars/download/handlebars-4.0.6.tgz#2ce4484850537f9c97a8026d5399b935c4ed4ed7" - dependencies: - async "^1.4.0" - optimist "^0.6.1" - source-map "^0.4.4" - optionalDependencies: - uglify-js "^2.6" - -har-validator@~2.0.6: - version "2.0.6" - resolved "http://registry.npm.taobao.org/har-validator/download/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" - dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-color@^0.1.7: - version "0.1.7" - resolved "http://registry.npm.taobao.org/has-color/download/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" - -has-flag@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "http://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - -has@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/has/download/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" - dependencies: - function-bind "^1.0.2" - -hawk@~3.1.3: - version "3.1.3" - resolved "http://registry.npm.taobao.org/hawk/download/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -he@1.1.x: - version "1.1.0" - resolved "http://registry.npm.taobao.org/he/download/he-1.1.0.tgz#29319d49beec13a9b1f3c4f9b2a6dde4859bb2a7" - -header-case@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/header-case/download/header-case-1.0.0.tgz#d9e335909505d56051ec16a0106821889e910781" - dependencies: - no-case "^2.2.0" - upper-case "^1.1.3" - -hoek@2.x.x: - version "2.16.3" - resolved "http://registry.npm.taobao.org/hoek/download/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -hoist-non-react-statics@^1.0.3: - version "1.2.0" - resolved "http://registry.npm.taobao.org/hoist-non-react-statics/download/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/home-or-tmp/download/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -hosted-git-info@^2.1.4: - version "2.1.5" - resolved "http://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b" - -html-comment-regex@^1.1.0: - version "1.1.1" - resolved "http://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" - -html-encoding-sniffer@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/html-encoding-sniffer/download/html-encoding-sniffer-1.0.1.tgz#79bf7a785ea495fe66165e734153f363ff5437da" - dependencies: - whatwg-encoding "^1.0.1" - -html-entities@1.2.0: - version "1.2.0" - resolved "http://registry.npm.taobao.org/html-entities/download/html-entities-1.2.0.tgz#41948caf85ce82fed36e4e6a0ed371a6664379e2" - -html-minifier@^3.1.0: - version "3.1.1" - resolved "http://registry.npm.taobao.org/html-minifier/download/html-minifier-3.1.1.tgz#73bd0600fc9d68f536b13a788360245b6d76eb9c" - dependencies: - change-case "3.0.x" - clean-css "3.4.x" - commander "2.9.x" - he "1.1.x" - ncname "1.0.x" - relateurl "0.2.x" - uglify-js "2.7.x" - -html-webpack-plugin@2.24.0: - version "2.24.0" - resolved "http://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-2.24.0.tgz#53697cea79a9f3cd1f8c239ac71f949d5673cacb" - dependencies: - bluebird "^3.4.6" - html-minifier "^3.1.0" - loader-utils "^0.2.16" - lodash "^4.16.4" - pretty-error "^2.0.2" - toposort "^1.0.0" - -htmlparser2@^3.9.1: - version "3.9.2" - resolved "http://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" - dependencies: - domelementtype "^1.3.0" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^2.0.2" - -htmlparser2@~3.3.0: - version "3.3.0" - resolved "http://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" - dependencies: - domelementtype "1" - domhandler "2.1" - domutils "1.1" - readable-stream "1.0" - -http-browserify@^1.3.2: - version "1.7.0" - resolved "http://registry.npm.taobao.org/http-browserify/download/http-browserify-1.7.0.tgz#33795ade72df88acfbfd36773cefeda764735b20" - dependencies: - Base64 "~0.2.0" - inherits "~2.0.1" - -http-errors@~1.5.0: - version "1.5.0" - resolved "http://registry.npm.taobao.org/http-errors/download/http-errors-1.5.0.tgz#b1cb3d8260fd8e2386cad3189045943372d48211" - dependencies: - inherits "2.0.1" - setprototypeof "1.0.1" - statuses ">= 1.3.0 < 2" - -http-proxy-middleware@~0.17.1, http-proxy-middleware@0.17.2: - version "0.17.2" - resolved "http://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.17.2.tgz#572d517a6d2fb1063a469de294eed96066352007" - dependencies: - http-proxy "^1.15.1" - is-glob "^3.0.0" - lodash "^4.16.2" - micromatch "^2.3.11" - -http-proxy@^1.15.1: - version "1.15.2" - resolved "http://registry.npm.taobao.org/http-proxy/download/http-proxy-1.15.2.tgz#642fdcaffe52d3448d2bda3b0079e9409064da31" - dependencies: - eventemitter3 "1.x.x" - requires-port "1.x.x" - -http-signature@~1.1.0: - version "1.1.1" - resolved "http://registry.npm.taobao.org/http-signature/download/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" - dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@0.0.0: - version "0.0.0" - resolved "http://registry.npm.taobao.org/https-browserify/download/https-browserify-0.0.0.tgz#b3ffdfe734b2a3d4a9efd58e8654c91fce86eafd" - -iconv-lite@^0.4.13, iconv-lite@~0.4.13, iconv-lite@0.4.13: - version "0.4.13" - resolved "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" - -icss-replace-symbols@^1.0.2: - version "1.0.2" - resolved "http://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.0.2.tgz#cb0b6054eb3af6edc9ab1d62d01933e2d4c8bfa5" - -ieee754@^1.1.4: - version "1.1.8" - resolved "http://registry.npm.taobao.org/ieee754/download/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" - -ignore@^3.1.5: - version "3.2.0" - resolved "http://registry.npm.taobao.org/ignore/download/ignore-3.2.0.tgz#8d88f03c3002a0ac52114db25d2c673b0bf1e435" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "http://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - -in-publish@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/in-publish/download/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" - -indexes-of@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - -indexof@0.0.1: - version "0.0.1" - resolved "http://registry.npm.taobao.org/indexof/download/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - -inflight@^1.0.4: - version "1.0.6" - resolved "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@2: - version "2.0.3" - resolved "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -inherits@2.0.1: - version "2.0.1" - resolved "http://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - -ini@~1.3.0: - version "1.3.4" - resolved "http://registry.npm.taobao.org/ini/download/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" - -inquirer@^0.12.0: - version "0.12.0" - resolved "http://registry.npm.taobao.org/inquirer/download/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" - dependencies: - ansi-escapes "^1.1.0" - ansi-regex "^2.0.0" - chalk "^1.0.0" - cli-cursor "^1.0.1" - cli-width "^2.0.0" - figures "^1.3.5" - lodash "^4.3.0" - readline2 "^1.0.1" - run-async "^0.1.0" - rx-lite "^3.1.2" - string-width "^1.0.1" - strip-ansi "^3.0.0" - through "^2.3.6" - -interpret@^0.6.4: - version "0.6.6" - resolved "http://registry.npm.taobao.org/interpret/download/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" - -invariant@^2.0.0, invariant@^2.1.0, invariant@^2.2.0, invariant@^2.2.1: - version "2.2.2" - resolved "http://registry.npm.taobao.org/invariant/download/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - -ipaddr.js@1.1.1: - version "1.1.1" - resolved "http://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.1.1.tgz#c791d95f52b29c1247d5df80ada39b8a73647230" - -is-absolute-url@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.0.0.tgz#9c4b20b0e5c0cbef9a479a367ede6f991679f359" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "http://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.0.2: - version "1.1.4" - resolved "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/is-builtin-module/download/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - -is-callable@^1.1.1, is-callable@^1.1.2, is-callable@^1.1.3: - version "1.1.3" - resolved "http://registry.npm.taobao.org/is-callable/download/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" - -is-ci@^1.0.9: - version "1.0.10" - resolved "http://registry.npm.taobao.org/is-ci/download/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" - dependencies: - ci-info "^1.0.0" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - -is-dotfile@^1.0.0: - version "1.0.2" - resolved "http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.1: - version "0.1.1" - resolved "http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-extglob@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.0.tgz#33411a482b046bf95e6b0cb27ee2711af4cf15ad" - -is-finite@^1.0.0: - version "1.0.2" - resolved "http://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-glob@^3.0.0: - version "3.1.0" - resolved "http://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - dependencies: - is-extglob "^2.1.0" - -is-lower-case@^1.1.0: - version "1.1.3" - resolved "http://registry.npm.taobao.org/is-lower-case/download/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393" - dependencies: - lower-case "^1.1.0" - -is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: - version "2.15.0" - resolved "http://registry.npm.taobao.org/is-my-json-valid/download/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" - dependencies: - generate-function "^2.0.0" - generate-object-property "^1.1.0" - jsonpointer "^4.0.0" - xtend "^4.0.0" - -is-number@^2.0.2, is-number@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - -is-path-in-cwd@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" - dependencies: - path-is-inside "^1.0.1" - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-property@^1.0.0: - version "1.0.2" - resolved "http://registry.npm.taobao.org/is-property/download/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - -is-regex@^1.0.3: - version "1.0.3" - resolved "http://registry.npm.taobao.org/is-regex/download/is-regex-1.0.3.tgz#0d55182bddf9f2fde278220aec3a75642c908637" - -is-resolvable@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" - dependencies: - tryit "^1.0.1" - -is-stream@^1.0.1: - version "1.1.0" - resolved "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-subset@^0.1.1: - version "0.1.1" - resolved "http://registry.npm.taobao.org/is-subset/download/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" - -is-svg@^2.0.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/is-svg/download/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" - dependencies: - html-comment-regex "^1.1.0" - -is-symbol@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -is-upper-case@^1.1.0: - version "1.1.2" - resolved "http://registry.npm.taobao.org/is-upper-case/download/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" - dependencies: - upper-case "^1.1.0" - -is-utf8@^0.2.0: - version "0.2.1" - resolved "http://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - -isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isarray@0.0.1: - version "0.0.1" - resolved "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isexe@^1.1.1: - version "1.1.2" - resolved "http://registry.npm.taobao.org/isexe/download/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" - -isobject@^2.0.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isomorphic-fetch@^2.1.1: - version "2.2.1" - resolved "http://registry.npm.taobao.org/isomorphic-fetch/download/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - -isstream@~0.1.2: - version "0.1.2" - resolved "http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -istanbul-api@^1.0.0-aplha.10: - version "1.0.0-aplha.10" - resolved "http://registry.npm.taobao.org/istanbul-api/download/istanbul-api-1.0.0-aplha.10.tgz#902edf5cf5404e0eba7e00ef46408488a0d3e337" - dependencies: - async "1.x" - clone "^1.0.2" - fileset "0.2.x" - istanbul-lib-coverage "^1.0.0-alpha" - istanbul-lib-hook "^1.0.0-alpha" - istanbul-lib-instrument "^1.0.0-alpha" - istanbul-lib-report "^1.0.0-alpha" - istanbul-lib-source-maps "^1.0.0-alpha" - istanbul-reports "^1.0.0-alpha" - js-yaml "3.x" - mkdirp "0.5.x" - once "1.x" - -istanbul-lib-coverage@^1.0.0, istanbul-lib-coverage@^1.0.0-alpha, istanbul-lib-coverage@^1.0.0-alpha.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-1.0.0.tgz#c3f9b6d226da12424064cce87fce0fb57fdfa7a2" - -istanbul-lib-hook@^1.0.0-alpha: - version "1.0.0-alpha.4" - resolved "http://registry.npm.taobao.org/istanbul-lib-hook/download/istanbul-lib-hook-1.0.0-alpha.4.tgz#8c5bb9f6fbd8526e0ae6cf639af28266906b938f" - dependencies: - append-transform "^0.3.0" - -istanbul-lib-instrument@^1.0.0-alpha, istanbul-lib-instrument@^1.1.1, istanbul-lib-instrument@^1.1.4: - version "1.3.0" - resolved "http://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-1.3.0.tgz#19f0a973397454989b98330333063a5b56df0e58" - dependencies: - babel-generator "^6.18.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - babylon "^6.13.0" - istanbul-lib-coverage "^1.0.0" - semver "^5.3.0" - -istanbul-lib-report@^1.0.0-alpha: - version "1.0.0-alpha.3" - resolved "http://registry.npm.taobao.org/istanbul-lib-report/download/istanbul-lib-report-1.0.0-alpha.3.tgz#32d5f6ec7f33ca3a602209e278b2e6ff143498af" - dependencies: - async "^1.4.2" - istanbul-lib-coverage "^1.0.0-alpha" - mkdirp "^0.5.1" - path-parse "^1.0.5" - rimraf "^2.4.3" - supports-color "^3.1.2" - -istanbul-lib-source-maps@^1.0.0-alpha: - version "1.1.0" - resolved "http://registry.npm.taobao.org/istanbul-lib-source-maps/download/istanbul-lib-source-maps-1.1.0.tgz#9d429218f35b823560ea300a96ff0c3bbdab785f" - dependencies: - istanbul-lib-coverage "^1.0.0-alpha.0" - mkdirp "^0.5.1" - rimraf "^2.4.4" - source-map "^0.5.3" - -istanbul-reports@^1.0.0-alpha: - version "1.0.0" - resolved "http://registry.npm.taobao.org/istanbul-reports/download/istanbul-reports-1.0.0.tgz#24b4eb2b1d29d50f103b369bd422f6e640aa0777" - dependencies: - handlebars "^4.0.3" - -istanbul@^0.4.5: - version "0.4.5" - resolved "http://registry.npm.taobao.org/istanbul/download/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b" - dependencies: - abbrev "1.0.x" - async "1.x" - escodegen "1.8.x" - esprima "2.7.x" - glob "^5.0.15" - handlebars "^4.0.1" - js-yaml "3.x" - mkdirp "0.5.x" - nopt "3.x" - once "1.x" - resolve "1.1.x" - supports-color "^3.1.0" - which "^1.1.1" - wordwrap "^1.0.0" - -jasmine-check@^0.1.4: - version "0.1.5" - resolved "http://registry.npm.taobao.org/jasmine-check/download/jasmine-check-0.1.5.tgz#dbad7eec56261c4b3d175ada55fe59b09ac9e415" - dependencies: - testcheck "^0.1.0" - -jest-changed-files@^16.0.0: - version "16.0.0" - resolved "http://registry.npm.taobao.org/jest-changed-files/download/jest-changed-files-16.0.0.tgz#7931deff4424182b8173d80e06800d7363b19c45" - -jest-cli@^16.0.2: - version "16.0.2" - resolved "http://registry.npm.taobao.org/jest-cli/download/jest-cli-16.0.2.tgz#d439b28affa7189aa3d046d2af931f7ebb9af69d" - dependencies: - ansi-escapes "^1.4.0" - callsites "^2.0.0" - chalk "^1.1.1" - graceful-fs "^4.1.6" - is-ci "^1.0.9" - istanbul-api "^1.0.0-aplha.10" - istanbul-lib-coverage "^1.0.0" - istanbul-lib-instrument "^1.1.1" - jest-changed-files "^16.0.0" - jest-config "^16.0.2" - jest-environment-jsdom "^16.0.2" - jest-file-exists "^15.0.0" - jest-haste-map "^16.0.2" - jest-jasmine2 "^16.0.2" - jest-mock "^16.0.2" - jest-resolve "^16.0.2" - jest-resolve-dependencies "^16.0.2" - jest-runtime "^16.0.2" - jest-snapshot "^16.0.2" - jest-util "^16.0.2" - json-stable-stringify "^1.0.0" - node-notifier "^4.6.1" - sane "~1.4.1" - strip-ansi "^3.0.1" - throat "^3.0.0" - which "^1.1.1" - worker-farm "^1.3.1" - yargs "^5.0.0" - -jest-config@^16.0.2: - version "16.0.2" - resolved "http://registry.npm.taobao.org/jest-config/download/jest-config-16.0.2.tgz#8e82a9c08846f23dc7fd42b5c0a1f596c385772a" - dependencies: - chalk "^1.1.1" - istanbul "^0.4.5" - jest-environment-jsdom "^16.0.2" - jest-environment-node "^16.0.2" - jest-jasmine2 "^16.0.2" - jest-mock "^16.0.2" - jest-resolve "^16.0.2" - jest-util "^16.0.2" - json-stable-stringify "^1.0.0" - -jest-diff@^16.0.0: - version "16.0.0" - resolved "http://registry.npm.taobao.org/jest-diff/download/jest-diff-16.0.0.tgz#4a5d13b1e36c5b8020d5d9e69639e486a675ce14" - dependencies: - chalk "^1.1.3" - diff "^3.0.0" - jest-matcher-utils "^16.0.0" - pretty-format "~4.2.1" - -jest-environment-jsdom@^16.0.2: - version "16.0.2" - resolved "http://registry.npm.taobao.org/jest-environment-jsdom/download/jest-environment-jsdom-16.0.2.tgz#548d883b68f8ed0bd6466d8703986296724c1ef7" - dependencies: - jest-mock "^16.0.2" - jest-util "^16.0.2" - jsdom "^9.8.0" - -jest-environment-node@^16.0.2: - version "16.0.2" - resolved "http://registry.npm.taobao.org/jest-environment-node/download/jest-environment-node-16.0.2.tgz#eb7b3a4a9c63b728ce023828d4b5661aad8c7a08" - dependencies: - jest-mock "^16.0.2" - jest-util "^16.0.2" - -jest-file-exists@^15.0.0: - version "15.0.0" - resolved "http://registry.npm.taobao.org/jest-file-exists/download/jest-file-exists-15.0.0.tgz#b7fefdd3f4b227cb686bb156ecc7661ee6935a88" - -jest-haste-map@^16.0.2: - version "16.0.2" - resolved "http://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-16.0.2.tgz#4562915b25171ae2d0d75118c992f0e97536a2ed" - dependencies: - fb-watchman "^1.9.0" - graceful-fs "^4.1.6" - multimatch "^2.1.0" - worker-farm "^1.3.1" - -jest-jasmine2@^16.0.2: - version "16.0.2" - resolved "http://registry.npm.taobao.org/jest-jasmine2/download/jest-jasmine2-16.0.2.tgz#c91ae170d127aae22180dbfe181d77655a5da8c3" - dependencies: - graceful-fs "^4.1.6" - jasmine-check "^0.1.4" - jest-matchers "^16.0.2" - jest-snapshot "^16.0.2" - jest-util "^16.0.2" - -jest-matcher-utils@^16.0.0: - version "16.0.0" - resolved "http://registry.npm.taobao.org/jest-matcher-utils/download/jest-matcher-utils-16.0.0.tgz#705af3ff85944bec1c25bc813f427aff8642b0cd" - dependencies: - chalk "^1.1.3" - pretty-format "~4.2.1" - -jest-matchers@^16.0.2: - version "16.0.2" - resolved "http://registry.npm.taobao.org/jest-matchers/download/jest-matchers-16.0.2.tgz#c078c28cfe05b9b1f295f9ab27b5991f1095bbbf" - dependencies: - jest-diff "^16.0.0" - jest-matcher-utils "^16.0.0" - jest-util "^16.0.2" - -jest-mock@^16.0.2: - version "16.0.2" - resolved "http://registry.npm.taobao.org/jest-mock/download/jest-mock-16.0.2.tgz#97b533343295d0082e9474a73ac4eb474d1636fe" - -jest-resolve-dependencies@^16.0.2: - version "16.0.2" - resolved "http://registry.npm.taobao.org/jest-resolve-dependencies/download/jest-resolve-dependencies-16.0.2.tgz#b204166d50141469d10667dc216239c0be865729" - dependencies: - jest-file-exists "^15.0.0" - jest-resolve "^16.0.2" - -jest-resolve@^16.0.2: - version "16.0.2" - resolved "http://registry.npm.taobao.org/jest-resolve/download/jest-resolve-16.0.2.tgz#46b92b9c2a44aa7ddd9a6b73dc234e9503e8c609" - dependencies: - browser-resolve "^1.11.2" - jest-file-exists "^15.0.0" - jest-haste-map "^16.0.2" - resolve "^1.1.6" - -jest-runtime@^16.0.2: - version "16.0.2" - resolved "http://registry.npm.taobao.org/jest-runtime/download/jest-runtime-16.0.2.tgz#a741e8d55a7b5f011bbe17a22c673a83d278a45d" - dependencies: - babel-core "^6.11.4" - babel-jest "^16.0.0" - babel-plugin-istanbul "^2.0.0" - chalk "^1.1.3" - graceful-fs "^4.1.6" - jest-config "^16.0.2" - jest-file-exists "^15.0.0" - jest-haste-map "^16.0.2" - jest-mock "^16.0.2" - jest-resolve "^16.0.2" - jest-snapshot "^16.0.2" - jest-util "^16.0.2" - json-stable-stringify "^1.0.0" - multimatch "^2.1.0" - yargs "^5.0.0" - -jest-snapshot@^16.0.2: - version "16.0.2" - resolved "http://registry.npm.taobao.org/jest-snapshot/download/jest-snapshot-16.0.2.tgz#f137a4176d661bd4058910850191d1816bebdaae" - dependencies: - jest-diff "^16.0.0" - jest-file-exists "^15.0.0" - jest-matcher-utils "^16.0.0" - jest-util "^16.0.2" - natural-compare "^1.4.0" - pretty-format "~4.2.1" - -jest-util@^16.0.2: - version "16.0.2" - resolved "http://registry.npm.taobao.org/jest-util/download/jest-util-16.0.2.tgz#db5123358278e7a34a6d9f837409d649a0db5d54" - dependencies: - chalk "^1.1.1" - diff "^3.0.0" - graceful-fs "^4.1.6" - jest-file-exists "^15.0.0" - jest-mock "^16.0.2" - mkdirp "^0.5.1" - -jest@16.0.2: - version "16.0.2" - resolved "http://registry.npm.taobao.org/jest/download/jest-16.0.2.tgz#4a2f7f3527465168a0bafe0c3d55055188253f3a" - dependencies: - jest-cli "^16.0.2" - -jodid25519@^1.0.0: - version "1.0.2" - resolved "http://registry.npm.taobao.org/jodid25519/download/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" - dependencies: - jsbn "~0.1.0" - -js-base64@^2.1.9: - version "2.1.9" - resolved "http://registry.npm.taobao.org/js-base64/download/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" - -js-tokens@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/js-tokens/download/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" - -js-yaml@^3.4.3, js-yaml@^3.5.1, js-yaml@3.x: - version "3.7.0" - resolved "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - -js-yaml@~3.6.1: - version "3.6.1" - resolved "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - -jsbn@~0.1.0: - version "0.1.0" - resolved "http://registry.npm.taobao.org/jsbn/download/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" - -jsdom@^9.8.0: - version "9.8.3" - resolved "http://registry.npm.taobao.org/jsdom/download/jsdom-9.8.3.tgz#fde29c109c32a1131e0b6c65914e64198f97c370" - dependencies: - abab "^1.0.0" - acorn "^2.4.0" - acorn-globals "^1.0.4" - array-equal "^1.0.0" - content-type-parser "^1.0.1" - cssom ">= 0.3.0 < 0.4.0" - cssstyle ">= 0.2.36 < 0.3.0" - escodegen "^1.6.1" - html-encoding-sniffer "^1.0.1" - iconv-lite "^0.4.13" - nwmatcher ">= 1.3.7 < 2.0.0" - parse5 "^1.5.1" - request "^2.55.0" - sax "^1.1.4" - symbol-tree ">= 3.1.0 < 4.0.0" - tough-cookie "^2.3.1" - webidl-conversions "^3.0.1" - whatwg-encoding "^1.0.1" - whatwg-url "^3.0.0" - xml-name-validator ">= 2.0.1 < 3.0.0" - -jsesc@^1.3.0: - version "1.3.0" - resolved "http://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - -jsesc@~0.5.0: - version "0.5.0" - resolved "http://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - -json-loader@0.5.4: - version "0.5.4" - resolved "http://registry.npm.taobao.org/json-loader/download/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" - -json-schema@0.2.3: - version "0.2.3" - resolved "http://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -json3@^3.3.2: - version "3.3.2" - resolved "http://registry.npm.taobao.org/json3/download/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" - -json5@^0.4.0: - version "0.4.0" - resolved "http://registry.npm.taobao.org/json5/download/json5-0.4.0.tgz#054352e4c4c80c86c0923877d449de176a732c8d" - -json5@^0.5.0: - version "0.5.0" - resolved "http://registry.npm.taobao.org/json5/download/json5-0.5.0.tgz#9b20715b026cbe3778fd769edccd822d8332a5b2" - -jsonfile@^2.1.0: - version "2.4.0" - resolved "http://registry.npm.taobao.org/jsonfile/download/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "http://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -jsonpointer@^4.0.0: - version "4.0.0" - resolved "http://registry.npm.taobao.org/jsonpointer/download/jsonpointer-4.0.0.tgz#6661e161d2fc445f19f98430231343722e1fcbd5" - -jsprim@^1.2.2: - version "1.3.1" - resolved "http://registry.npm.taobao.org/jsprim/download/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" - dependencies: - extsprintf "1.0.2" - json-schema "0.2.3" - verror "1.3.6" - -jsx-ast-utils@^1.0.0, jsx-ast-utils@^1.3.1: - version "1.3.4" - resolved "http://registry.npm.taobao.org/jsx-ast-utils/download/jsx-ast-utils-1.3.4.tgz#0257ed1cc4b1e65b39d7d9940f9fb4f20f7ba0a9" - dependencies: - acorn-jsx "^3.0.1" - object-assign "^4.1.0" - -keycode@^2.1.2: - version "2.1.7" - resolved "http://registry.npm.taobao.org/keycode/download/keycode-2.1.7.tgz#7b9255919f6cff562b09a064d222dca70b020f5c" - -kind-of@^3.0.2: - version "3.0.4" - resolved "http://registry.npm.taobao.org/kind-of/download/kind-of-3.0.4.tgz#7b8ecf18a4e17f8269d73b501c9f232c96887a74" - dependencies: - is-buffer "^1.0.2" - -klaw@^1.0.0: - version "1.3.1" - resolved "http://registry.npm.taobao.org/klaw/download/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - optionalDependencies: - graceful-fs "^4.1.9" - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "http://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - -lcid@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/lcid/download/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - dependencies: - invert-kv "^1.0.0" - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0.2.3, loader-utils@^0.2.7, loader-utils@~0.2.2, loader-utils@~0.2.5, loader-utils@0.2.x: - version "0.2.16" - resolved "http://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -lodash-es@^4.2.1: - version "4.17.2" - resolved "http://registry.npm.taobao.org/lodash-es/download/lodash-es-4.17.2.tgz#59011b585166e613eb9dd5fc256b2cd1a30f3712" - -lodash._arraycopy@^3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/lodash._arraycopy/download/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1" - -lodash._arrayeach@^3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/lodash._arrayeach/download/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e" - -lodash._baseassign@^3.0.0: - version "3.2.0" - resolved "http://registry.npm.taobao.org/lodash._baseassign/download/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" - dependencies: - lodash._basecopy "^3.0.0" - lodash.keys "^3.0.0" - -lodash._baseclone@^3.0.0: - version "3.3.0" - resolved "http://registry.npm.taobao.org/lodash._baseclone/download/lodash._baseclone-3.3.0.tgz#303519bf6393fe7e42f34d8b630ef7794e3542b7" - dependencies: - lodash._arraycopy "^3.0.0" - lodash._arrayeach "^3.0.0" - lodash._baseassign "^3.0.0" - lodash._basefor "^3.0.0" - lodash.isarray "^3.0.0" - lodash.keys "^3.0.0" - -lodash._basecopy@^3.0.0: - version "3.0.1" - resolved "http://registry.npm.taobao.org/lodash._basecopy/download/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" - -lodash._basefor@^3.0.0: - version "3.0.3" - resolved "http://registry.npm.taobao.org/lodash._basefor/download/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2" - -lodash._bindcallback@^3.0.0: - version "3.0.1" - resolved "http://registry.npm.taobao.org/lodash._bindcallback/download/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" - -lodash._createcompounder@^3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/lodash._createcompounder/download/lodash._createcompounder-3.0.0.tgz#5dd2cb55372d6e70e0e2392fb2304d6631091075" - dependencies: - lodash.deburr "^3.0.0" - lodash.words "^3.0.0" - -lodash._getnative@^3.0.0: - version "3.9.1" - resolved "http://registry.npm.taobao.org/lodash._getnative/download/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" - -lodash._root@^3.0.0: - version "3.0.1" - resolved "http://registry.npm.taobao.org/lodash._root/download/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" - -lodash.assign@^4.1.0, lodash.assign@^4.2.0: - version "4.2.0" - resolved "http://registry.npm.taobao.org/lodash.assign/download/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" - -lodash.assignin@^4.0.9: - version "4.2.0" - resolved "http://registry.npm.taobao.org/lodash.assignin/download/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" - -lodash.bind@^4.1.4: - version "4.2.1" - resolved "http://registry.npm.taobao.org/lodash.bind/download/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" - -lodash.camelcase@^3.0.1: - version "3.0.1" - resolved "http://registry.npm.taobao.org/lodash.camelcase/download/lodash.camelcase-3.0.1.tgz#932c8b87f8a4377897c67197533282f97aeac298" - dependencies: - lodash._createcompounder "^3.0.0" - -lodash.clonedeep@^3.0.0: - version "3.0.2" - resolved "http://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-3.0.2.tgz#a0a1e40d82a5ea89ff5b147b8444ed63d92827db" - dependencies: - lodash._baseclone "^3.0.0" - lodash._bindcallback "^3.0.0" - -lodash.cond@^4.3.0: - version "4.5.2" - resolved "http://registry.npm.taobao.org/lodash.cond/download/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" - -lodash.deburr@^3.0.0: - version "3.2.0" - resolved "http://registry.npm.taobao.org/lodash.deburr/download/lodash.deburr-3.2.0.tgz#6da8f54334a366a7cf4c4c76ef8d80aa1b365ed5" - dependencies: - lodash._root "^3.0.0" - -lodash.defaults@^4.0.1: - version "4.2.0" - resolved "http://registry.npm.taobao.org/lodash.defaults/download/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - -lodash.filter@^4.4.0: - version "4.6.0" - resolved "http://registry.npm.taobao.org/lodash.filter/download/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" - -lodash.flatten@^4.2.0: - version "4.4.0" - resolved "http://registry.npm.taobao.org/lodash.flatten/download/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - -lodash.foreach@^4.3.0: - version "4.5.0" - resolved "http://registry.npm.taobao.org/lodash.foreach/download/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" - -lodash.indexof@^4.0.5: - version "4.0.5" - resolved "http://registry.npm.taobao.org/lodash.indexof/download/lodash.indexof-4.0.5.tgz#53714adc2cddd6ed87638f893aa9b6c24e31ef3c" - -lodash.isarguments@^3.0.0: - version "3.1.0" - resolved "http://registry.npm.taobao.org/lodash.isarguments/download/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - -lodash.isarray@^3.0.0: - version "3.0.4" - resolved "http://registry.npm.taobao.org/lodash.isarray/download/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" - -lodash.keys@^3.0.0: - version "3.1.2" - resolved "http://registry.npm.taobao.org/lodash.keys/download/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" - dependencies: - lodash._getnative "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" - -lodash.map@^4.4.0: - version "4.6.0" - resolved "http://registry.npm.taobao.org/lodash.map/download/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" - -lodash.merge@^4.4.0: - version "4.6.0" - resolved "http://registry.npm.taobao.org/lodash.merge/download/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" - -lodash.pick@^4.2.1: - version "4.4.0" - resolved "http://registry.npm.taobao.org/lodash.pick/download/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - -lodash.pickby@^4.6.0: - version "4.6.0" - resolved "http://registry.npm.taobao.org/lodash.pickby/download/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" - -lodash.reduce@^4.4.0: - version "4.6.0" - resolved "http://registry.npm.taobao.org/lodash.reduce/download/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" - -lodash.reject@^4.4.0: - version "4.6.0" - resolved "http://registry.npm.taobao.org/lodash.reject/download/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" - -lodash.some@^4.4.0: - version "4.6.0" - resolved "http://registry.npm.taobao.org/lodash.some/download/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" - -lodash.words@^3.0.0: - version "3.2.0" - resolved "http://registry.npm.taobao.org/lodash.words/download/lodash.words-3.2.0.tgz#4e2a8649bc08745b17c695b1a3ce8fee596623b3" - dependencies: - lodash._root "^3.0.0" - -lodash@^4.0.0, lodash@^4.15.0, lodash@^4.16.2, lodash@^4.16.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, "lodash@>=3.5 <5": - version "4.17.2" - resolved "http://registry.npm.taobao.org/lodash/download/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42" - -longest@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - -loose-envify@^1.0.0, loose-envify@^1.1.0: - version "1.3.0" - resolved "http://registry.npm.taobao.org/loose-envify/download/loose-envify-1.3.0.tgz#6b26248c42f6d4fa4b0d8542f78edfcde35642a8" - dependencies: - js-tokens "^2.0.0" - -lower-case-first@^1.0.0: - version "1.0.2" - resolved "http://registry.npm.taobao.org/lower-case-first/download/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1" - dependencies: - lower-case "^1.1.2" - -lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2: - version "1.1.3" - resolved "http://registry.npm.taobao.org/lower-case/download/lower-case-1.1.3.tgz#c92393d976793eee5ba4edb583cf8eae35bd9bfb" - -lru-cache@^4.0.1: - version "4.0.1" - resolved "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.0.1.tgz#1343955edaf2e37d9b9e7ee7241e27c4b9fb72be" - dependencies: - pseudomap "^1.0.1" - yallist "^2.0.0" - -macaddress@^0.2.8: - version "0.2.8" - resolved "http://registry.npm.taobao.org/macaddress/download/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" - -makeerror@1.0.x: - version "1.0.11" - resolved "http://registry.npm.taobao.org/makeerror/download/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" - dependencies: - tmpl "1.0.x" - -marked-terminal@^1.6.2: - version "1.7.0" - resolved "http://registry.npm.taobao.org/marked-terminal/download/marked-terminal-1.7.0.tgz#c8c460881c772c7604b64367007ee5f77f125904" - dependencies: - cardinal "^1.0.0" - chalk "^1.1.3" - cli-table "^0.3.1" - lodash.assign "^4.2.0" - node-emoji "^1.4.1" - -marked@^0.3.6: - version "0.3.6" - resolved "http://registry.npm.taobao.org/marked/download/marked-0.3.6.tgz#b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7" - -math-expression-evaluator@^1.2.14: - version "1.2.14" - resolved "http://registry.npm.taobao.org/math-expression-evaluator/download/math-expression-evaluator-1.2.14.tgz#39511771ed9602405fba9affff17eb4d2a3843ab" - dependencies: - lodash.indexof "^4.0.5" - -media-typer@0.3.0: - version "0.3.0" - resolved "http://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - -memory-fs@^0.2.0: - version "0.2.0" - resolved "http://registry.npm.taobao.org/memory-fs/download/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" - -memory-fs@~0.3.0: - version "0.3.0" - resolved "http://registry.npm.taobao.org/memory-fs/download/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - -merge@^1.1.3: - version "1.2.0" - resolved "http://registry.npm.taobao.org/merge/download/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" - -methods@~1.1.2: - version "1.1.2" - resolved "http://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - -micromatch@^2.1.5, micromatch@^2.3.11: - version "2.3.11" - resolved "http://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -"mime-db@>= 1.24.0 < 2": - version "1.25.0" - resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.25.0.tgz#c18dbd7c73a5dbf6f44a024dc0d165a1e7b1c392" - -mime-db@~1.24.0: - version "1.24.0" - resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.24.0.tgz#e2d13f939f0016c6e4e9ad25a8652f126c467f0c" - -mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.7: - version "2.1.12" - resolved "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.12.tgz#152ba256777020dd4663f54c2e7bc26381e71729" - dependencies: - mime-db "~1.24.0" - -mime@^1.3.4, mime@1.3.4: - version "1.3.4" - resolved "http://registry.npm.taobao.org/mime/download/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" - -mime@1.2.x: - version "1.2.11" - resolved "http://registry.npm.taobao.org/mime/download/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" - -minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, "minimatch@2 || 3": - version "3.0.3" - resolved "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" - dependencies: - brace-expansion "^1.0.0" - -minimatch@2.x: - version "2.0.10" - resolved "http://registry.npm.taobao.org/minimatch/download/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" - dependencies: - brace-expansion "^1.0.0" - -minimatch@3.0.2: - version "3.0.2" - resolved "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.2.tgz#0f398a7300ea441e9c348c83d98ab8c9dbf9c40a" - dependencies: - brace-expansion "^1.0.0" - -minimist@^1.1.1, minimist@^1.2.0: - version "1.2.0" - resolved "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -minimist@~0.0.1: - version "0.0.10" - resolved "http://registry.npm.taobao.org/minimist/download/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - -minimist@0.0.8: - version "0.0.8" - resolved "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0, mkdirp@~0.5.1, mkdirp@0.5.x: - version "0.5.1" - resolved "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -ms@0.7.1: - version "0.7.1" - resolved "http://registry.npm.taobao.org/ms/download/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" - -ms@0.7.2: - version "0.7.2" - resolved "http://registry.npm.taobao.org/ms/download/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" - -multimatch@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/multimatch/download/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" - dependencies: - array-differ "^1.0.0" - array-union "^1.0.1" - arrify "^1.0.0" - minimatch "^3.0.0" - -mute-stream@0.0.5: - version "0.0.5" - resolved "http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" - -nan@^2.3.0: - version "2.4.0" - resolved "http://registry.npm.taobao.org/nan/download/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "http://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - -ncname@1.0.x: - version "1.0.0" - resolved "http://registry.npm.taobao.org/ncname/download/ncname-1.0.0.tgz#5b57ad18b1ca092864ef62b0b1ed8194f383b71c" - dependencies: - xml-char-classes "^1.0.0" - -negotiator@0.6.1: - version "0.6.1" - resolved "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" - -no-case@^2.2.0: - version "2.3.0" - resolved "http://registry.npm.taobao.org/no-case/download/no-case-2.3.0.tgz#ca2825ccb76b18e6f79d573dcfbf1eace33dd164" - dependencies: - lower-case "^1.1.1" - -node-emoji@^1.4.1: - version "1.4.1" - resolved "http://registry.npm.taobao.org/node-emoji/download/node-emoji-1.4.1.tgz#c9fa0cf91094335bcb967a6f42b2305c15af2ebc" - dependencies: - string.prototype.codepointat "^0.2.0" - -node-fetch@^1.0.1: - version "1.6.3" - resolved "http://registry.npm.taobao.org/node-fetch/download/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - -node-int64@^0.4.0: - version "0.4.0" - resolved "http://registry.npm.taobao.org/node-int64/download/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - -node-libs-browser@^0.6.0: - version "0.6.0" - resolved "http://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-0.6.0.tgz#244806d44d319e048bc8607b5cc4eaf9a29d2e3c" - dependencies: - assert "^1.1.1" - browserify-zlib "~0.1.4" - buffer "^4.9.0" - console-browserify "^1.1.0" - constants-browserify "0.0.1" - crypto-browserify "~3.2.6" - domain-browser "^1.1.1" - events "^1.0.0" - http-browserify "^1.3.2" - https-browserify "0.0.0" - os-browserify "~0.1.2" - path-browserify "0.0.0" - process "^0.11.0" - punycode "^1.2.4" - querystring-es3 "~0.2.0" - readable-stream "^1.1.13" - stream-browserify "^1.0.0" - string_decoder "~0.10.25" - timers-browserify "^1.0.1" - tty-browserify "0.0.0" - url "~0.10.1" - util "~0.10.3" - vm-browserify "0.0.4" - -node-notifier@^4.6.1: - version "4.6.1" - resolved "http://registry.npm.taobao.org/node-notifier/download/node-notifier-4.6.1.tgz#056d14244f3dcc1ceadfe68af9cff0c5473a33f3" - dependencies: - cli-usage "^0.1.1" - growly "^1.2.0" - lodash.clonedeep "^3.0.0" - minimist "^1.1.1" - semver "^5.1.0" - shellwords "^0.1.0" - which "^1.0.5" - -node-pre-gyp@^0.6.29: - version "0.6.31" - resolved "http://registry.npm.taobao.org/node-pre-gyp/download/node-pre-gyp-0.6.31.tgz#d8a00ddaa301a940615dbcc8caad4024d58f6017" - dependencies: - mkdirp "~0.5.1" - nopt "~3.0.6" - npmlog "^4.0.0" - rc "~1.1.6" - request "^2.75.0" - rimraf "~2.5.4" - semver "~5.3.0" - tar "~2.2.1" - tar-pack "~3.3.0" - -node-uuid@~1.4.7: - version "1.4.7" - resolved "http://registry.npm.taobao.org/node-uuid/download/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" - -nopt@~3.0.6, nopt@3.x: - version "3.0.6" - resolved "http://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - dependencies: - abbrev "1" - -normalize-package-data@^2.3.2: - version "2.3.5" - resolved "http://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df" - 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" - -normalize-path@^2.0.1: - version "2.0.1" - resolved "http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" - -normalize-range@^0.1.2: - version "0.1.2" - resolved "http://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - -normalize-url@^1.4.0: - version "1.8.0" - resolved "http://registry.npm.taobao.org/normalize-url/download/normalize-url-1.8.0.tgz#a9550b079aa3523c85d78df24eef1959fce359ab" - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - -npmlog@^4.0.0: - version "4.0.0" - resolved "http://registry.npm.taobao.org/npmlog/download/npmlog-4.0.0.tgz#e094503961c70c1774eb76692080e8d578a9f88f" - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.6.0" - set-blocking "~2.0.0" - -nth-check@~1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/nth-check/download/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" - dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "http://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "http://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -"nwmatcher@>= 1.3.7 < 2.0.0": - version "1.3.9" - resolved "http://registry.npm.taobao.org/nwmatcher/download/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a" - -oauth-sign@~0.8.1: - version "0.8.2" - resolved "http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@4.1.0: - version "4.1.0" - resolved "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" - -object-is@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/object-is/download/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" - -object-keys@^1.0.10, object-keys@^1.0.8: - version "1.0.11" - resolved "http://registry.npm.taobao.org/object-keys/download/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" - -object.assign@^4.0.4: - version "4.0.4" - resolved "http://registry.npm.taobao.org/object.assign/download/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc" - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.0" - object-keys "^1.0.10" - -object.entries@^1.0.3: - version "1.0.3" - resolved "http://registry.npm.taobao.org/object.entries/download/object.entries-1.0.3.tgz#f42cc75363a4f9aa7037bcfb3bab3be4ffc78027" - dependencies: - define-properties "^1.1.1" - es-abstract "^1.3.2" - function-bind "^1.0.2" - has "^1.0.1" - -object.omit@^2.0.0: - version "2.0.1" - resolved "http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -object.values@^1.0.3: - version "1.0.3" - resolved "http://registry.npm.taobao.org/object.values/download/object.values-1.0.3.tgz#a7774ba050893fe6a5d5958acd05823e0f426bef" - dependencies: - define-properties "^1.1.1" - es-abstract "^1.3.2" - function-bind "^1.0.2" - has "^1.0.1" - -on-finished@~2.3.0: - version "2.3.0" - resolved "http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/on-headers/download/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" - -once@^1.3.0, once@1.x: - version "1.4.0" - resolved "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -once@~1.3.3: - version "1.3.3" - resolved "http://registry.npm.taobao.org/once/download/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" - dependencies: - wrappy "1" - -onetime@^1.0.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/onetime/download/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" - -open@0.0.5: - version "0.0.5" - resolved "http://registry.npm.taobao.org/open/download/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc" - -opn@4.0.2: - version "4.0.2" - resolved "http://registry.npm.taobao.org/opn/download/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - -optimist@^0.6.1, optimist@~0.6.0, optimist@~0.6.1: - version "0.6.1" - resolved "http://registry.npm.taobao.org/optimist/download/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optionator@^0.8.1, optionator@^0.8.2: - version "0.8.2" - resolved "http://registry.npm.taobao.org/optionator/download/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" - -original@>=0.0.5: - version "1.0.0" - resolved "http://registry.npm.taobao.org/original/download/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" - dependencies: - url-parse "1.0.x" - -os-browserify@~0.1.2: - version "0.1.2" - resolved "http://registry.npm.taobao.org/os-browserify/download/os-browserify-0.1.2.tgz#49ca0293e0b19590a5f5de10c7f265a617d8fe54" - -os-homedir@^1.0.0, os-homedir@^1.0.1: - version "1.0.2" - resolved "http://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^1.4.0: - version "1.4.0" - resolved "http://registry.npm.taobao.org/os-locale/download/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - dependencies: - lcid "^1.0.0" - -os-tmpdir@^1.0.1: - version "1.0.2" - resolved "http://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -pako@~0.2.0: - version "0.2.9" - resolved "http://registry.npm.taobao.org/pako/download/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" - -param-case@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/param-case/download/param-case-2.1.0.tgz#2619f90fd6c829ed0b958f1c84ed03a745a6d70a" - dependencies: - no-case "^2.2.0" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "http://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - dependencies: - error-ex "^1.2.0" - -parse5@^1.5.1: - version "1.5.1" - resolved "http://registry.npm.taobao.org/parse5/download/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" - -parseurl@~1.3.1: - version "1.3.1" - resolved "http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" - -pascal-case@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/pascal-case/download/pascal-case-2.0.0.tgz#39c248bde5a8dc02d5160696bdb01e044d016ee1" - dependencies: - camel-case "^3.0.0" - upper-case-first "^1.1.0" - -path-browserify@0.0.0: - version "0.0.0" - resolved "http://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" - -path-case@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/path-case/download/path-case-2.1.0.tgz#5ac491de642936e5dfe0e18d16c461b8be8cf073" - dependencies: - no-case "^2.2.0" - -path-exists@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/path-exists/download/path-exists-1.0.0.tgz#d5a8998eb71ef37a74c34eb0d9eba6e878eea081" - -path-exists@^2.0.0, path-exists@2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - dependencies: - pinkie-promise "^2.0.0" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-is-inside@^1.0.1: - version "1.0.2" - resolved "http://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - -path-parse@^1.0.5: - version "1.0.5" - resolved "http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "http://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - -path-type@^1.0.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -pbkdf2-compat@2.0.1: - version "2.0.1" - resolved "http://registry.npm.taobao.org/pbkdf2-compat/download/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" - -pify@^2.0.0: - version "2.3.0" - resolved "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "http://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "http://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -pkg-dir@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/pkg-dir/download/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - dependencies: - find-up "^1.0.0" - -pkg-up@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/pkg-up/download/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26" - dependencies: - find-up "^1.0.0" - -pluralize@^1.2.1: - version "1.2.1" - resolved "http://registry.npm.taobao.org/pluralize/download/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" - -postcss-calc@^5.2.0: - version "5.3.1" - resolved "http://registry.npm.taobao.org/postcss-calc/download/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" - dependencies: - postcss "^5.0.2" - postcss-message-helpers "^2.0.0" - reduce-css-calc "^1.2.6" - -postcss-colormin@^2.1.8: - version "2.2.1" - resolved "http://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-2.2.1.tgz#dc5421b6ae6f779ef6bfd47352b94abe59d0316b" - dependencies: - colormin "^1.0.5" - postcss "^5.0.13" - postcss-value-parser "^3.2.3" - -postcss-convert-values@^2.3.4: - version "2.4.1" - resolved "http://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-2.4.1.tgz#45dce4d4e33b7d967b97a4d937f270ea98d2fe7a" - dependencies: - postcss "^5.0.11" - postcss-value-parser "^3.1.2" - -postcss-discard-comments@^2.0.4: - version "2.0.4" - resolved "http://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" - dependencies: - postcss "^5.0.14" - -postcss-discard-duplicates@^2.0.1: - version "2.0.2" - resolved "http://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-2.0.2.tgz#02be520e91571ffb10738766a981d5770989bb32" - dependencies: - postcss "^5.0.4" - -postcss-discard-empty@^2.0.1: - version "2.1.0" - resolved "http://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" - dependencies: - postcss "^5.0.14" - -postcss-discard-overridden@^0.1.1: - version "0.1.1" - resolved "http://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" - dependencies: - postcss "^5.0.16" - -postcss-discard-unused@^2.2.1: - version "2.2.2" - resolved "http://registry.npm.taobao.org/postcss-discard-unused/download/postcss-discard-unused-2.2.2.tgz#5d72f7d05d11de0a9589e001958067ccae1b4931" - dependencies: - postcss "^5.0.14" - uniqs "^2.0.0" - -postcss-filter-plugins@^2.0.0: - version "2.0.2" - resolved "http://registry.npm.taobao.org/postcss-filter-plugins/download/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" - dependencies: - postcss "^5.0.4" - uniqid "^4.0.0" - -postcss-load-config@^1.0.0-rc: - version "1.0.0" - resolved "http://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-1.0.0.tgz#1399f60dcd6bd9c3124b2eb22960f77f9dc08b3d" - dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - postcss-load-options "^1.0.2" - postcss-load-plugins "^2.0.0" - -postcss-load-options@^1.0.2: - version "1.0.2" - resolved "http://registry.npm.taobao.org/postcss-load-options/download/postcss-load-options-1.0.2.tgz#b99eb5759a588f4b2dd8b6471c6985f72060e7b0" - dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - -postcss-load-plugins@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/postcss-load-plugins/download/postcss-load-plugins-2.0.0.tgz#2840d8df1d1c57ebcb1d41b5f60d45796504b43f" - dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - -postcss-loader@1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/postcss-loader/download/postcss-loader-1.0.0.tgz#e3b65d0c8596c1658f79d7db2d291310748d5d2a" - dependencies: - loader-utils "^0.2.16" - object-assign "^4.1.0" - postcss "^5.2.4" - postcss-load-config "^1.0.0-rc" - -postcss-merge-idents@^2.1.5: - version "2.1.7" - resolved "http://registry.npm.taobao.org/postcss-merge-idents/download/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" - dependencies: - has "^1.0.1" - postcss "^5.0.10" - postcss-value-parser "^3.1.1" - -postcss-merge-longhand@^2.0.1: - version "2.0.1" - resolved "http://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-2.0.1.tgz#ff59b5dec6d586ce2cea183138f55c5876fa9cdc" - dependencies: - postcss "^5.0.4" - -postcss-merge-rules@^2.0.3: - version "2.0.10" - resolved "http://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-2.0.10.tgz#54b360be804e7e69a5c7222635247b92a3569e9b" - dependencies: - postcss "^5.0.4" - vendors "^1.0.0" - -postcss-message-helpers@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/postcss-message-helpers/download/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" - -postcss-minify-font-values@^1.0.2: - version "1.0.5" - resolved "http://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" - dependencies: - object-assign "^4.0.1" - postcss "^5.0.4" - postcss-value-parser "^3.0.2" - -postcss-minify-gradients@^1.0.1: - version "1.0.5" - resolved "http://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" - dependencies: - postcss "^5.0.12" - postcss-value-parser "^3.3.0" - -postcss-minify-params@^1.0.4: - version "1.0.5" - resolved "http://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-1.0.5.tgz#82d602643b8616a61fb3634d7ede0289836d67f9" - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.2" - postcss-value-parser "^3.0.2" - uniqs "^2.0.0" - -postcss-minify-selectors@^2.0.4: - version "2.0.7" - resolved "http://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-2.0.7.tgz#bfb9248fe14db33770f036572de6b4897c48d81c" - dependencies: - alphanum-sort "^1.0.2" - has "^1.0.1" - postcss "^5.0.14" - postcss-selector-parser "^2.0.0" - -postcss-modules-extract-imports@^1.0.0: - version "1.0.1" - resolved "http://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-1.0.1.tgz#8fb3fef9a6dd0420d3f6d4353cf1ff73f2b2a341" - dependencies: - postcss "^5.0.4" - -postcss-modules-local-by-default@^1.0.1: - version "1.1.1" - resolved "http://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-1.1.1.tgz#29a10673fa37d19251265ca2ba3150d9040eb4ce" - dependencies: - css-selector-tokenizer "^0.6.0" - postcss "^5.0.4" - -postcss-modules-scope@^1.0.0: - version "1.0.2" - resolved "http://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-1.0.2.tgz#ff977395e5e06202d7362290b88b1e8cd049de29" - dependencies: - css-selector-tokenizer "^0.6.0" - postcss "^5.0.4" - -postcss-modules-values@^1.1.0: - version "1.2.2" - resolved "http://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-1.2.2.tgz#f0e7d476fe1ed88c5e4c7f97533a3e772ad94ca1" - dependencies: - icss-replace-symbols "^1.0.2" - postcss "^5.0.14" - -postcss-normalize-charset@^1.1.0: - version "1.1.1" - resolved "http://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" - dependencies: - postcss "^5.0.5" - -postcss-normalize-url@^3.0.7: - version "3.0.7" - resolved "http://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-3.0.7.tgz#6bd90d0a4bc5a1df22c26ea65c53257dc3829f4e" - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^1.4.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - -postcss-ordered-values@^2.1.0: - version "2.2.2" - resolved "http://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-2.2.2.tgz#be8b511741fab2dac8e614a2302e9d10267b0771" - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.1" - -postcss-reduce-idents@^2.2.2: - version "2.3.1" - resolved "http://registry.npm.taobao.org/postcss-reduce-idents/download/postcss-reduce-idents-2.3.1.tgz#024e8e219f52773313408573db9645ba62d2d2fe" - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.2" - -postcss-reduce-initial@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-1.0.0.tgz#8f739b938289ef2e48936d7101783e4741ca9bbb" - dependencies: - postcss "^5.0.4" - -postcss-reduce-transforms@^1.0.3: - version "1.0.4" - resolved "http://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" - dependencies: - has "^1.0.1" - postcss "^5.0.8" - postcss-value-parser "^3.0.1" - -postcss-selector-parser@^2.0.0: - version "2.2.2" - resolved "http://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-2.2.2.tgz#3d70f5adda130da51c7c0c2fc023f56b1374fe08" - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-svgo@^2.1.1: - version "2.1.5" - resolved "http://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-2.1.5.tgz#46fc0363f01bab6a36a9abb01c229fcc45363094" - dependencies: - is-svg "^2.0.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - svgo "^0.7.0" - -postcss-unique-selectors@^2.0.2: - version "2.0.2" - resolved "http://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: - version "3.3.0" - resolved "http://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" - -postcss-zindex@^2.0.1: - version "2.1.1" - resolved "http://registry.npm.taobao.org/postcss-zindex/download/postcss-zindex-2.1.1.tgz#ea3fbe656c9738aa8729e2ee96ec2a46089b720f" - dependencies: - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.4, postcss@^5.2.5: - version "5.2.5" - resolved "http://registry.npm.taobao.org/postcss/download/postcss-5.2.5.tgz#ec428c27dffc7fac65961340a9b022fa4af5f056" - dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.1.2" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "http://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - -prepend-http@^1.0.0: - version "1.0.4" - resolved "http://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - -preserve@^0.2.0: - version "0.2.0" - resolved "http://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -pretty-error@^2.0.2: - version "2.0.2" - resolved "http://registry.npm.taobao.org/pretty-error/download/pretty-error-2.0.2.tgz#a7db19cbb529ca9f0af3d3a2f77d5caf8e5dec23" - dependencies: - renderkid "~2.0.0" - utila "~0.4" - -pretty-format@~4.2.1: - version "4.2.3" - resolved "http://registry.npm.taobao.org/pretty-format/download/pretty-format-4.2.3.tgz#8894c2ac81419cf801629d8f66320a25380d8b05" - -private@^0.1.6, private@~0.1.5: - version "0.1.6" - resolved "http://registry.npm.taobao.org/private/download/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1" - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - -process@^0.11.0, process@~0.11.0: - version "0.11.9" - resolved "http://registry.npm.taobao.org/process/download/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" - -progress@^1.1.8: - version "1.1.8" - resolved "http://registry.npm.taobao.org/progress/download/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" - -promise@^7.1.1, promise@7.1.1: - version "7.1.1" - resolved "http://registry.npm.taobao.org/promise/download/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" - dependencies: - asap "~2.0.3" - -proxy-addr@~1.1.2: - version "1.1.2" - resolved "http://registry.npm.taobao.org/proxy-addr/download/proxy-addr-1.1.2.tgz#b4cc5f22610d9535824c123aef9d3cf73c40ba37" - dependencies: - forwarded "~0.1.0" - ipaddr.js "1.1.1" - -prr@~0.0.0: - version "0.0.0" - resolved "http://registry.npm.taobao.org/prr/download/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" - -pseudomap@^1.0.1: - version "1.0.2" - resolved "http://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -punycode@1.3.2: - version "1.3.2" - resolved "http://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - -q@^1.1.2: - version "1.4.1" - resolved "http://registry.npm.taobao.org/q/download/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" - -qs@~6.3.0: - version "6.3.0" - resolved "http://registry.npm.taobao.org/qs/download/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" - -qs@6.2.0: - version "6.2.0" - resolved "http://registry.npm.taobao.org/qs/download/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" - -query-string@^4.1.0: - version "4.2.3" - resolved "http://registry.npm.taobao.org/query-string/download/query-string-4.2.3.tgz#9f27273d207a25a8ee4c7b8c74dcd45d556db822" - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@~0.2.0: - version "0.2.1" - resolved "http://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - -querystring@0.2.0: - version "0.2.0" - resolved "http://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - -querystringify@0.0.x: - version "0.0.4" - resolved "http://registry.npm.taobao.org/querystringify/download/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" - -randomatic@^1.1.3: - version "1.1.5" - resolved "http://registry.npm.taobao.org/randomatic/download/randomatic-1.1.5.tgz#5e9ef5f2d573c67bd2b8124ae90b5156e457840b" - dependencies: - is-number "^2.0.2" - kind-of "^3.0.2" - -range-parser@^1.0.3, range-parser@~1.2.0: - version "1.2.0" - resolved "http://registry.npm.taobao.org/range-parser/download/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - -rc@~1.1.6: - version "1.1.6" - resolved "http://registry.npm.taobao.org/rc/download/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" - dependencies: - deep-extend "~0.4.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~1.0.4" - -react-addons-test-utils: - version "15.3.2" - resolved "http://registry.npm.taobao.org/react-addons-test-utils/download/react-addons-test-utils-15.3.2.tgz#c09a44f583425a4a9c1b38444d7a6c3e6f0f41f6" - -react-bootstrap: - version "0.30.6" - resolved "http://registry.npm.taobao.org/react-bootstrap/download/react-bootstrap-0.30.6.tgz#288662a245f9dbb79f7740ee595e4ec931d6a4a9" - dependencies: - babel-runtime "^6.11.6" - classnames "^2.2.5" - dom-helpers "^2.4.0" - invariant "^2.2.1" - keycode "^2.1.2" - react-overlays "^0.6.10" - react-prop-types "^0.4.0" - uncontrollable "^4.0.1" - warning "^3.0.0" - -react-dev-utils@^0.3.0: - version "0.3.0" - resolved "http://registry.npm.taobao.org/react-dev-utils/download/react-dev-utils-0.3.0.tgz#4a0527062a757579cb316fa254681aecca09d038" - dependencies: - ansi-html "0.0.5" - chalk "1.1.3" - escape-string-regexp "1.0.5" - html-entities "1.2.0" - opn "4.0.2" - sockjs-client "1.0.3" - strip-ansi "3.0.1" - -react-dom@^15.3.2: - version "15.3.2" - resolved "http://registry.npm.taobao.org/react-dom/download/react-dom-15.3.2.tgz#c46b0aa5380d7b838e7a59c4a7beff2ed315531f" - -react-overlays@^0.6.10: - version "0.6.10" - resolved "http://registry.npm.taobao.org/react-overlays/download/react-overlays-0.6.10.tgz#e7e52dad47f00a0fc784eb044428c3a9e874bfa3" - dependencies: - classnames "^2.2.5" - dom-helpers "^2.4.0" - react-prop-types "^0.4.0" - warning "^3.0.0" - -react-prop-types@^0.4.0: - version "0.4.0" - resolved "http://registry.npm.taobao.org/react-prop-types/download/react-prop-types-0.4.0.tgz#f99b0bfb4006929c9af2051e7c1414a5c75b93d0" - dependencies: - warning "^3.0.0" - -react-redux: - version "4.4.6" - resolved "http://registry.npm.taobao.org/react-redux/download/react-redux-4.4.6.tgz#4b9d32985307a11096a2dd61561980044fcc6209" - dependencies: - hoist-non-react-statics "^1.0.3" - invariant "^2.0.0" - lodash "^4.2.0" - loose-envify "^1.1.0" - -react-scripts@0.7.0: - version "0.7.0" - resolved "http://registry.npm.taobao.org/react-scripts/download/react-scripts-0.7.0.tgz#e499ebaf8bb077f7045770eaef1df5cfe308e3e0" - dependencies: - autoprefixer "6.5.1" - babel-core "6.17.0" - babel-eslint "7.0.0" - babel-jest "16.0.0" - babel-loader "6.2.5" - babel-preset-react-app "^1.0.0" - case-sensitive-paths-webpack-plugin "1.1.4" - chalk "1.1.3" - connect-history-api-fallback "1.3.0" - cross-spawn "4.0.2" - css-loader "0.25.0" - detect-port "1.0.1" - dotenv "2.0.0" - eslint "3.8.1" - eslint-config-react-app "^0.3.0" - eslint-loader "1.6.0" - eslint-plugin-flowtype "2.21.0" - eslint-plugin-import "2.0.1" - eslint-plugin-jsx-a11y "2.2.3" - eslint-plugin-react "6.4.1" - extract-text-webpack-plugin "1.0.1" - file-loader "0.9.0" - filesize "3.3.0" - find-cache-dir "0.1.1" - fs-extra "0.30.0" - gzip-size "3.0.0" - html-webpack-plugin "2.24.0" - http-proxy-middleware "0.17.2" - jest "16.0.2" - json-loader "0.5.4" - object-assign "4.1.0" - path-exists "2.1.0" - postcss-loader "1.0.0" - promise "7.1.1" - react-dev-utils "^0.3.0" - recursive-readdir "2.1.0" - rimraf "2.5.4" - strip-ansi "3.0.1" - style-loader "0.13.1" - url-loader "0.5.7" - webpack "1.13.2" - webpack-dev-server "1.16.2" - webpack-manifest-plugin "1.1.0" - whatwg-fetch "1.0.0" - optionalDependencies: - fsevents "1.0.14" - -react@^15.3.2: - version "15.3.2" - resolved "http://registry.npm.taobao.org/react/download/react-15.3.2.tgz#a7bccd2fee8af126b0317e222c28d1d54528d09e" - dependencies: - fbjs "^0.8.4" - loose-envify "^1.1.0" - object-assign "^4.1.0" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -readable-stream@^1.0.27-1, readable-stream@^1.1.13: - version "1.1.14" - resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2: - version "2.2.2" - resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" - dependencies: - buffer-shims "^1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readable-stream@~2.0.0: - version "2.0.6" - resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readable-stream@~2.1.4: - version "2.1.5" - resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" - dependencies: - buffer-shims "^1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readable-stream@1.0: - version "1.0.34" - resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readdirp@^2.0.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/readdirp/download/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" - dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" - readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" - -readline2@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/readline2/download/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - mute-stream "0.0.5" - -recursive-readdir@2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/recursive-readdir/download/recursive-readdir-2.1.0.tgz#78b7bfd79582d3d7596b8ff1bd29fbd50229f6aa" - dependencies: - minimatch "3.0.2" - -redeyed@~1.0.0: - version "1.0.1" - resolved "http://registry.npm.taobao.org/redeyed/download/redeyed-1.0.1.tgz#e96c193b40c0816b00aec842698e61185e55498a" - dependencies: - esprima "~3.0.0" - -reduce-css-calc@^1.2.6: - version "1.3.0" - resolved "http://registry.npm.taobao.org/reduce-css-calc/download/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" - dependencies: - balanced-match "^0.4.2" - math-expression-evaluator "^1.2.14" - reduce-function-call "^1.0.1" - -reduce-function-call@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/reduce-function-call/download/reduce-function-call-1.0.1.tgz#fa02e126e695824263cab91d3a5b0fdc1dd27a9a" - dependencies: - balanced-match "~0.1.0" - -redux: - version "3.6.0" - resolved "http://registry.npm.taobao.org/redux/download/redux-3.6.0.tgz#887c2b3d0b9bd86eca2be70571c27654c19e188d" - dependencies: - lodash "^4.2.1" - lodash-es "^4.2.1" - loose-envify "^1.1.0" - symbol-observable "^1.0.2" - -redux-mock-store@^1.2.1: - version "1.2.1" - resolved "http://registry.npm.taobao.org/redux-mock-store/download/redux-mock-store-1.2.1.tgz#630c0e2642927d1417c844d935266b501f2fc231" - -redux-thunk@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/redux-thunk/download/redux-thunk-2.1.0.tgz#c724bfee75dbe352da2e3ba9bc14302badd89a98" - -regenerate@^1.2.1: - version "1.3.2" - resolved "http://registry.npm.taobao.org/regenerate/download/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" - -regenerator-runtime@^0.9.5: - version "0.9.6" - resolved "http://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.9.6.tgz#d33eb95d0d2001a4be39659707c51b0cb71ce029" - -regex-cache@^0.4.2: - version "0.4.3" - resolved "http://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" - dependencies: - is-equal-shallow "^0.1.3" - is-primitive "^2.0.0" - -regexpu-core@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "http://registry.npm.taobao.org/regjsgen/download/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - -regjsparser@^0.1.4: - version "0.1.5" - resolved "http://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - dependencies: - jsesc "~0.5.0" - -relateurl@0.2.x: - version "0.2.7" - resolved "http://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - -renderkid@~2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/renderkid/download/renderkid-2.0.0.tgz#1859753e7a5adbf35443aba0d4e4579e78abee85" - dependencies: - css-select "^1.1.0" - dom-converter "~0.1" - htmlparser2 "~3.3.0" - strip-ansi "^3.0.0" - utila "~0.3" - -repeat-element@^1.1.2: - version "1.1.2" - resolved "http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" - -repeat-string@^1.5.2: - version "1.6.1" - resolved "http://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "http://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -request@^2.55.0, request@^2.75.0: - version "2.78.0" - resolved "http://registry.npm.taobao.org/request/download/request-2.78.0.tgz#e1c8dec346e1c81923b24acdb337f11decabe9cc" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~2.0.6" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - node-uuid "~1.4.7" - oauth-sign "~0.8.1" - qs "~6.3.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - -require-directory@^2.1.1: - version "2.1.1" - resolved "http://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - -require-from-string@^1.1.0: - version "1.2.1" - resolved "http://registry.npm.taobao.org/require-from-string/download/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - -require-uncached@^1.0.2: - version "1.0.3" - resolved "http://registry.npm.taobao.org/require-uncached/download/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - -requires-port@1.0.x, requires-port@1.x.x: - version "1.0.0" - resolved "http://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - -resolve-from@^1.0.0: - version "1.0.1" - resolved "http://registry.npm.taobao.org/resolve-from/download/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - -resolve@^1.1.6, resolve@1.1.7, resolve@1.1.x: - version "1.1.7" - resolved "http://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - -restore-cursor@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" - dependencies: - exit-hook "^1.0.0" - onetime "^1.0.0" - -right-align@^0.1.1: - version "0.1.3" - resolved "http://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" - -rimraf@^2.2.8, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@~2.5.1, rimraf@~2.5.4, rimraf@2, rimraf@2.5.4: - version "2.5.4" - resolved "http://registry.npm.taobao.org/rimraf/download/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" - dependencies: - glob "^7.0.5" - -ripemd160@0.2.0: - version "0.2.0" - resolved "http://registry.npm.taobao.org/ripemd160/download/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" - -run-async@^0.1.0: - version "0.1.0" - resolved "http://registry.npm.taobao.org/run-async/download/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" - dependencies: - once "^1.3.0" - -rx-lite@^3.1.2: - version "3.1.2" - resolved "http://registry.npm.taobao.org/rx-lite/download/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" - -sane@~1.4.1: - version "1.4.1" - resolved "http://registry.npm.taobao.org/sane/download/sane-1.4.1.tgz#88f763d74040f5f0c256b6163db399bf110ac715" - dependencies: - exec-sh "^0.2.0" - fb-watchman "^1.8.0" - minimatch "^3.0.2" - minimist "^1.1.1" - walker "~1.0.5" - watch "~0.10.0" - -sax@^1.1.4, sax@~1.2.1: - version "1.2.1" - resolved "http://registry.npm.taobao.org/sax/download/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" - -semver@^5.1.0, semver@^5.3.0, semver@~5.3.0, "semver@2 || 3 || 4 || 5": - version "5.3.0" - resolved "http://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - -send@0.14.1: - version "0.14.1" - resolved "http://registry.npm.taobao.org/send/download/send-0.14.1.tgz#a954984325392f51532a7760760e459598c89f7a" - dependencies: - debug "~2.2.0" - depd "~1.1.0" - destroy "~1.0.4" - encodeurl "~1.0.1" - escape-html "~1.0.3" - etag "~1.7.0" - fresh "0.3.0" - http-errors "~1.5.0" - mime "1.3.4" - ms "0.7.1" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.3.0" - -sentence-case@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/sentence-case/download/sentence-case-2.1.0.tgz#d592fbed457fd1a59e3af0ee17e99f6fd70d7efd" - dependencies: - no-case "^2.2.0" - upper-case-first "^1.1.2" - -serve-index@^1.7.2: - version "1.8.0" - resolved "http://registry.npm.taobao.org/serve-index/download/serve-index-1.8.0.tgz#7c5d96c13fb131101f93c1c5774f8516a1e78d3b" - dependencies: - accepts "~1.3.3" - batch "0.5.3" - debug "~2.2.0" - escape-html "~1.0.3" - http-errors "~1.5.0" - mime-types "~2.1.11" - parseurl "~1.3.1" - -serve-static@~1.11.1: - version "1.11.1" - resolved "http://registry.npm.taobao.org/serve-static/download/serve-static-1.11.1.tgz#d6cce7693505f733c759de57befc1af76c0f0805" - dependencies: - encodeurl "~1.0.1" - escape-html "~1.0.3" - parseurl "~1.3.1" - send "0.14.1" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -setprototypeof@1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.0.1.tgz#52009b27888c4dc48f591949c0a8275834c1ca7e" - -sha.js@2.2.6: - version "2.2.6" - resolved "http://registry.npm.taobao.org/sha.js/download/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - -shelljs@^0.6.0: - version "0.6.1" - resolved "http://registry.npm.taobao.org/shelljs/download/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8" - -shellwords@^0.1.0: - version "0.1.0" - resolved "http://registry.npm.taobao.org/shellwords/download/shellwords-0.1.0.tgz#66afd47b6a12932d9071cbfd98a52e785cd0ba14" - -signal-exit@^3.0.0: - version "3.0.1" - resolved "http://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.1.tgz#5a4c884992b63a7acd9badb7894c3ee9cfccad81" - -slash@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - -slice-ansi@0.0.4: - version "0.0.4" - resolved "http://registry.npm.taobao.org/slice-ansi/download/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" - -snake-case@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/snake-case/download/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f" - dependencies: - no-case "^2.2.0" - -sntp@1.x.x: - version "1.0.9" - resolved "http://registry.npm.taobao.org/sntp/download/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -sockjs-client@^1.0.3: - version "1.1.1" - resolved "http://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.1.1.tgz#284843e9a9784d7c474b1571b3240fca9dda4bb0" - dependencies: - debug "^2.2.0" - eventsource "~0.1.6" - faye-websocket "~0.11.0" - inherits "^2.0.1" - json3 "^3.3.2" - url-parse "^1.1.1" - -sockjs-client@1.0.3: - version "1.0.3" - resolved "http://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.0.3.tgz#b0d8280998460eb2564c5d79d7e3d7cfd8a353ad" - dependencies: - debug "^2.1.0" - eventsource "^0.1.3" - faye-websocket "~0.7.3" - inherits "^2.0.1" - json3 "^3.3.2" - url-parse "^1.0.1" - -sockjs@^0.3.15: - version "0.3.18" - resolved "http://registry.npm.taobao.org/sockjs/download/sockjs-0.3.18.tgz#d9b289316ca7df77595ef299e075f0f937eb4207" - dependencies: - faye-websocket "^0.10.0" - uuid "^2.0.2" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "http://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^0.1.4, source-list-map@~0.1.0: - version "0.1.6" - resolved "http://registry.npm.taobao.org/source-list-map/download/source-list-map-0.1.6.tgz#e1e6f94f0b40c4d28dcf8f5b8766e0e45636877f" - -source-map-support@^0.4.2: - version "0.4.6" - resolved "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.6.tgz#32552aa64b458392a85eab3b0b5ee61527167aeb" - dependencies: - source-map "^0.5.3" - -source-map@^0.4.4, source-map@~0.4.1, source-map@0.4.x: - version "0.4.4" - resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - dependencies: - amdefine ">=0.0.4" - -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: - version "0.5.6" - resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - -source-map@~0.2.0: - version "0.2.0" - resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" - dependencies: - amdefine ">=0.0.4" - -spdx-correct@~1.0.0: - version "1.0.2" - resolved "http://registry.npm.taobao.org/spdx-correct/download/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" - dependencies: - spdx-license-ids "^1.0.2" - -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "http://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" - -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "http://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -sshpk@^1.7.0: - version "1.10.1" - resolved "http://registry.npm.taobao.org/sshpk/download/sshpk-1.10.1.tgz#30e1a5d329244974a1af61511339d595af6638b0" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jodid25519 "^1.0.0" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - -"statuses@>= 1.3.0 < 2", statuses@~1.3.0: - version "1.3.1" - resolved "http://registry.npm.taobao.org/statuses/download/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - -stream-browserify@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/stream-browserify/download/stream-browserify-1.0.0.tgz#bf9b4abfb42b274d751479e44e0ff2656b6f1193" - dependencies: - inherits "~2.0.1" - readable-stream "^1.0.27-1" - -stream-cache@~0.0.1: - version "0.0.2" - resolved "http://registry.npm.taobao.org/stream-cache/download/stream-cache-0.0.2.tgz#1ac5ad6832428ca55667dbdee395dad4e6db118f" - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - -string_decoder@~0.10.25, string_decoder@~0.10.x: - version "0.10.31" - resolved "http://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -string-width@^1.0.1, string-width@^1.0.2: - version "1.0.2" - resolved "http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/string-width/download/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^3.0.0" - -string.prototype.codepointat@^0.2.0: - version "0.2.0" - resolved "http://registry.npm.taobao.org/string.prototype.codepointat/download/string.prototype.codepointat-0.2.0.tgz#6b26e9bd3afcaa7be3b4269b526de1b82000ac78" - -stringstream@~0.0.4: - version "0.0.5" - resolved "http://registry.npm.taobao.org/stringstream/download/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1, strip-ansi@3.0.1: - version "3.0.1" - resolved "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - dependencies: - is-utf8 "^0.2.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - -strip-json-comments@~1.0.1, strip-json-comments@~1.0.4: - version "1.0.4" - resolved "http://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" - -style-loader@0.13.1: - version "0.13.1" - resolved "http://registry.npm.taobao.org/style-loader/download/style-loader-0.13.1.tgz#468280efbc0473023cd3a6cd56e33b5a1d7fc3a9" - dependencies: - loader-utils "^0.2.7" - -supports-color@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^3.1.0, supports-color@^3.1.1, supports-color@^3.1.2: - version "3.1.2" - resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" - dependencies: - has-flag "^1.0.0" - -svgo@^0.7.0: - version "0.7.1" - resolved "http://registry.npm.taobao.org/svgo/download/svgo-0.7.1.tgz#287320fed972cb097e72c2bb1685f96fe08f8034" - dependencies: - coa "~1.0.1" - colors "~1.1.2" - csso "~2.2.1" - js-yaml "~3.6.1" - mkdirp "~0.5.1" - sax "~1.2.1" - whet.extend "~0.9.9" - -swap-case@^1.1.0: - version "1.1.2" - resolved "http://registry.npm.taobao.org/swap-case/download/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3" - dependencies: - lower-case "^1.1.1" - upper-case "^1.1.1" - -symbol-observable@^1.0.2: - version "1.0.4" - resolved "http://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" - -"symbol-tree@>= 3.1.0 < 4.0.0": - version "3.1.4" - resolved "http://registry.npm.taobao.org/symbol-tree/download/symbol-tree-3.1.4.tgz#02b279348d337debc39694c5c95f882d448a312a" - -table@^3.7.8: - version "3.8.3" - resolved "http://registry.npm.taobao.org/table/download/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" - dependencies: - ajv "^4.7.0" - ajv-keywords "^1.0.0" - chalk "^1.1.1" - lodash "^4.0.0" - slice-ansi "0.0.4" - string-width "^2.0.0" - -tapable@^0.1.8, tapable@~0.1.8: - version "0.1.10" - resolved "http://registry.npm.taobao.org/tapable/download/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" - -tar-pack@~3.3.0: - version "3.3.0" - resolved "http://registry.npm.taobao.org/tar-pack/download/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" - dependencies: - debug "~2.2.0" - fstream "~1.0.10" - fstream-ignore "~1.0.5" - once "~1.3.3" - readable-stream "~2.1.4" - rimraf "~2.5.1" - tar "~2.2.1" - uid-number "~0.0.6" - -tar@~2.2.1: - version "2.2.1" - resolved "http://registry.npm.taobao.org/tar/download/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" - -test-exclude@^2.1.1: - version "2.1.3" - resolved "http://registry.npm.taobao.org/test-exclude/download/test-exclude-2.1.3.tgz#a8d8968e1da83266f9864f2852c55e220f06434a" - dependencies: - arrify "^1.0.1" - micromatch "^2.3.11" - object-assign "^4.1.0" - read-pkg-up "^1.0.1" - require-main-filename "^1.0.1" - -testcheck@^0.1.0: - version "0.1.4" - resolved "http://registry.npm.taobao.org/testcheck/download/testcheck-0.1.4.tgz#90056edd48d11997702616ce6716f197d8190164" - -text-table@~0.2.0: - version "0.2.0" - resolved "http://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - -throat@^3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/throat/download/throat-3.0.0.tgz#e7c64c867cbb3845f10877642f7b60055b8ec0d6" - -through@^2.3.6: - version "2.3.8" - resolved "http://registry.npm.taobao.org/through/download/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -timers-browserify@^1.0.1: - version "1.4.2" - resolved "http://registry.npm.taobao.org/timers-browserify/download/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" - dependencies: - process "~0.11.0" - -title-case@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/title-case/download/title-case-2.1.0.tgz#c68ccb4232079ded64f94b91b4941ade91391979" - dependencies: - no-case "^2.2.0" - upper-case "^1.0.3" - -tmpl@1.0.x: - version "1.0.4" - resolved "http://registry.npm.taobao.org/tmpl/download/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" - -to-fast-properties@^1.0.1: - version "1.0.2" - resolved "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" - -toposort@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/toposort/download/toposort-1.0.0.tgz#b66cf385a1a8a8e68e45b8259e7f55875e8b06ef" - -tough-cookie@^2.3.1, tough-cookie@~2.3.0: - version "2.3.2" - resolved "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" - dependencies: - punycode "^1.4.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "http://registry.npm.taobao.org/tr46/download/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - -tryit@^1.0.1: - version "1.0.3" - resolved "http://registry.npm.taobao.org/tryit/download/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "http://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - -tunnel-agent@~0.4.1: - version "0.4.3" - resolved "http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.3" - resolved "http://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.3.tgz#3da382f670f25ded78d7b3d1792119bca0b7132d" - -type-check@~0.3.2: - version "0.3.2" - resolved "http://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: - prelude-ls "~1.1.2" - -type-is@~1.6.13: - version "1.6.13" - resolved "http://registry.npm.taobao.org/type-is/download/type-is-1.6.13.tgz#6e83ba7bc30cd33a7bb0b7fb00737a2085bf9d08" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.11" - -typedarray@~0.0.5: - version "0.0.6" - resolved "http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -ua-parser-js@^0.7.9: - version "0.7.12" - resolved "http://registry.npm.taobao.org/ua-parser-js/download/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" - -uglify-js@^2.6, uglify-js@2.7.x: - version "2.7.4" - resolved "http://registry.npm.taobao.org/uglify-js/download/uglify-js-2.7.4.tgz#a295a0de12b6a650c031c40deb0dc40b14568bd2" - dependencies: - async "~0.2.6" - source-map "~0.5.1" - uglify-to-browserify "~1.0.0" - yargs "~3.10.0" - -uglify-js@~2.6.0: - version "2.6.4" - resolved "http://registry.npm.taobao.org/uglify-js/download/uglify-js-2.6.4.tgz#65ea2fb3059c9394692f15fed87c2b36c16b9adf" - dependencies: - async "~0.2.6" - source-map "~0.5.1" - uglify-to-browserify "~1.0.0" - yargs "~3.10.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "http://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -uid-number@~0.0.6: - version "0.0.6" - resolved "http://registry.npm.taobao.org/uid-number/download/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - -uncontrollable@^4.0.1: - version "4.0.3" - resolved "http://registry.npm.taobao.org/uncontrollable/download/uncontrollable-4.0.3.tgz#06ec76cb9e02914756085d9cea0354fc746b09b4" - dependencies: - invariant "^2.1.0" - -uniq@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - -uniqid@^4.0.0: - version "4.1.0" - resolved "http://registry.npm.taobao.org/uniqid/download/uniqid-4.1.0.tgz#33d9679f65022f48988a03fd24e7dcaf8f109eca" - dependencies: - macaddress "^0.2.8" - -uniqs@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - -unpipe@~1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - -upper-case-first@^1.1.0, upper-case-first@^1.1.2: - version "1.1.2" - resolved "http://registry.npm.taobao.org/upper-case-first/download/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115" - dependencies: - upper-case "^1.1.1" - -upper-case@^1.0.3, upper-case@^1.1.0, upper-case@^1.1.1, upper-case@^1.1.3: - version "1.1.3" - resolved "http://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - -url-loader@0.5.7: - version "0.5.7" - resolved "http://registry.npm.taobao.org/url-loader/download/url-loader-0.5.7.tgz#67e8779759f8000da74994906680c943a9b0925d" - dependencies: - loader-utils "0.2.x" - mime "1.2.x" - -url-parse@^1.0.1, url-parse@^1.1.1: - version "1.1.7" - resolved "http://registry.npm.taobao.org/url-parse/download/url-parse-1.1.7.tgz#025cff999653a459ab34232147d89514cc87d74a" - dependencies: - querystringify "0.0.x" - requires-port "1.0.x" - -url-parse@1.0.x: - version "1.0.5" - resolved "http://registry.npm.taobao.org/url-parse/download/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" - dependencies: - querystringify "0.0.x" - requires-port "1.0.x" - -url@~0.10.1: - version "0.10.3" - resolved "http://registry.npm.taobao.org/url/download/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -user-home@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/user-home/download/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" - dependencies: - os-homedir "^1.0.0" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -util@~0.10.3, util@0.10.3: - version "0.10.3" - resolved "http://registry.npm.taobao.org/util/download/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - dependencies: - inherits "2.0.1" - -utila@~0.3: - version "0.3.3" - resolved "http://registry.npm.taobao.org/utila/download/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226" - -utila@~0.4: - version "0.4.0" - resolved "http://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - -utils-merge@1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" - -uuid@^2.0.2, uuid@^2.0.3: - version "2.0.3" - resolved "http://registry.npm.taobao.org/uuid/download/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" - -validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "http://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" - dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" - -vary@~1.1.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/vary/download/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140" - -vendors@^1.0.0: - version "1.0.1" - resolved "http://registry.npm.taobao.org/vendors/download/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22" - -verror@1.3.6: - version "1.3.6" - resolved "http://registry.npm.taobao.org/verror/download/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" - dependencies: - extsprintf "1.0.2" - -vm-browserify@0.0.4: - version "0.0.4" - resolved "http://registry.npm.taobao.org/vm-browserify/download/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - dependencies: - indexof "0.0.1" - -walker@~1.0.5: - version "1.0.7" - resolved "http://registry.npm.taobao.org/walker/download/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" - dependencies: - makeerror "1.0.x" - -warning@^3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/warning/download/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" - dependencies: - loose-envify "^1.0.0" - -watch@~0.10.0: - version "0.10.0" - resolved "http://registry.npm.taobao.org/watch/download/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" - -watchpack@^0.2.1: - version "0.2.9" - resolved "http://registry.npm.taobao.org/watchpack/download/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b" - dependencies: - async "^0.9.0" - chokidar "^1.0.0" - graceful-fs "^4.1.2" - -webidl-conversions@^3.0.0, webidl-conversions@^3.0.1: - version "3.0.1" - resolved "http://registry.npm.taobao.org/webidl-conversions/download/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - -webpack-core@~0.6.0: - version "0.6.8" - resolved "http://registry.npm.taobao.org/webpack-core/download/webpack-core-0.6.8.tgz#edf9135de00a6a3c26dd0f14b208af0aa4af8d0a" - dependencies: - source-list-map "~0.1.0" - source-map "~0.4.1" - -webpack-dev-middleware@^1.4.0: - version "1.8.4" - resolved "http://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-1.8.4.tgz#e8765c9122887ce9e3abd4cc9c3eb31b61e0948d" - dependencies: - memory-fs "~0.3.0" - mime "^1.3.4" - path-is-absolute "^1.0.0" - range-parser "^1.0.3" - -webpack-dev-server@1.16.2: - version "1.16.2" - resolved "http://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-1.16.2.tgz#8bebc2c4ce1c45a15c72dd769d9ba08db306a793" - dependencies: - compression "^1.5.2" - connect-history-api-fallback "^1.3.0" - express "^4.13.3" - http-proxy-middleware "~0.17.1" - open "0.0.5" - optimist "~0.6.1" - serve-index "^1.7.2" - sockjs "^0.3.15" - sockjs-client "^1.0.3" - stream-cache "~0.0.1" - strip-ansi "^3.0.0" - supports-color "^3.1.1" - webpack-dev-middleware "^1.4.0" - -webpack-manifest-plugin@1.1.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/webpack-manifest-plugin/download/webpack-manifest-plugin-1.1.0.tgz#6b6c718aade8a2537995784b46bd2e9836057caa" - dependencies: - fs-extra "^0.30.0" - lodash ">=3.5 <5" - -webpack-sources@^0.1.0: - version "0.1.3" - resolved "http://registry.npm.taobao.org/webpack-sources/download/webpack-sources-0.1.3.tgz#15ce2fb79d0a1da727444ba7c757bf164294f310" - dependencies: - source-list-map "~0.1.0" - source-map "~0.5.3" - -webpack@1.13.2: - version "1.13.2" - resolved "http://registry.npm.taobao.org/webpack/download/webpack-1.13.2.tgz#f11a96f458eb752970a86abe746c0704fabafaf3" - dependencies: - acorn "^3.0.0" - async "^1.3.0" - clone "^1.0.2" - enhanced-resolve "~0.9.0" - interpret "^0.6.4" - loader-utils "^0.2.11" - memory-fs "~0.3.0" - mkdirp "~0.5.0" - node-libs-browser "^0.6.0" - optimist "~0.6.0" - supports-color "^3.1.0" - tapable "~0.1.8" - uglify-js "~2.6.0" - watchpack "^0.2.1" - webpack-core "~0.6.0" - -websocket-driver@>=0.3.6, websocket-driver@>=0.5.1: - version "0.6.5" - resolved "http://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" - dependencies: - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.1" - resolved "http://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" - -whatwg-encoding@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/whatwg-encoding/download/whatwg-encoding-1.0.1.tgz#3c6c451a198ee7aec55b1ec61d0920c67801a5f4" - dependencies: - iconv-lite "0.4.13" - -whatwg-fetch@>=0.10.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/whatwg-fetch/download/whatwg-fetch-2.0.0.tgz#cde428ac2b1dab717c96bc6785feb557619b249e" - -whatwg-fetch@1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/whatwg-fetch/download/whatwg-fetch-1.0.0.tgz#01c2ac4df40e236aaa18480e3be74bd5c8eb798e" - -whatwg-url@^3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/whatwg-url/download/whatwg-url-3.0.0.tgz#b9033c50c7ce763e91d78777ce825a6d7f56dac5" - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -whet.extend@~0.9.9: - version "0.9.9" - resolved "http://registry.npm.taobao.org/whet.extend/download/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" - -which-module@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/which-module/download/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - -which@^1.0.5, which@^1.1.1, which@^1.2.9: - version "1.2.12" - resolved "http://registry.npm.taobao.org/which/download/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" - dependencies: - isexe "^1.1.1" - -wide-align@^1.1.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/wide-align/download/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" - dependencies: - string-width "^1.0.1" - -window-size@^0.2.0: - version "0.2.0" - resolved "http://registry.npm.taobao.org/window-size/download/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" - -window-size@0.1.0: - version "0.1.0" - resolved "http://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -wordwrap@^1.0.0, wordwrap@~1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -wordwrap@~0.0.2: - version "0.0.3" - resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - -wordwrap@0.0.2: - version "0.0.2" - resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -worker-farm@^1.3.1: - version "1.3.1" - resolved "http://registry.npm.taobao.org/worker-farm/download/worker-farm-1.3.1.tgz#4333112bb49b17aa050b87895ca6b2cacf40e5ff" - dependencies: - errno ">=0.1.1 <0.2.0-0" - xtend ">=4.0.0 <4.1.0-0" - -wrap-ansi@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.0.0.tgz#7d30f8f873f9a5bbc3a64dabc8d177e071ae426f" - dependencies: - string-width "^1.0.1" - -wrappy@1: - version "1.0.2" - resolved "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -write@^0.2.1: - version "0.2.1" - resolved "http://registry.npm.taobao.org/write/download/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - dependencies: - mkdirp "^0.5.1" - -xml-char-classes@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/xml-char-classes/download/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d" - -"xml-name-validator@>= 2.0.1 < 3.0.0": - version "2.0.1" - resolved "http://registry.npm.taobao.org/xml-name-validator/download/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" - -xtend@^4.0.0, "xtend@>=4.0.0 <4.1.0-0": - version "4.0.1" - resolved "http://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -y18n@^3.2.1: - version "3.2.1" - resolved "http://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - -yallist@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/yallist/download/yallist-2.0.0.tgz#306c543835f09ee1a4cb23b7bce9ab341c91cdd4" - -yargs-parser@^3.2.0: - version "3.2.0" - resolved "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-3.2.0.tgz#5081355d19d9d0c8c5d81ada908cb4e6d186664f" - dependencies: - camelcase "^3.0.0" - lodash.assign "^4.1.0" - -yargs@^5.0.0: - version "5.0.0" - resolved "http://registry.npm.taobao.org/yargs/download/yargs-5.0.0.tgz#3355144977d05757dbb86d6e38ec056123b3a66e" - dependencies: - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - lodash.assign "^4.2.0" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - window-size "^0.2.0" - y18n "^3.2.1" - yargs-parser "^3.2.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "http://registry.npm.taobao.org/yargs/download/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" - From 3e9d4b60b2b83654e80ea327e6b884f922ec30f4 Mon Sep 17 00:00:00 2001 From: lewis liu Date: Thu, 18 Jun 2020 23:03:38 +0800 Subject: [PATCH 59/59] Update README.md --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 10f8140..2db4722 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,12 @@ +## 精品视频课程 + +[《Node.js仿知乎服务端-深入理解RESTful API》](https://coding.imooc.com/class/354.html) + +[《JS 玩转机器学习-打造你人生中的第一个AI项目》](https://coding.imooc.com/class/408.html) + +[《JS 版数据结构与算法-轻松解决前端算法面试》](https://coding.imooc.com/class/446.html) + + ## React+Redux系列教程 [React与Redux教程(一)connect、applyMiddleware、thunk、webpackHotMiddleware](http://liuyiqi.cn/2016/01/19/r2-counter/)