Commit 3825f097 authored by 姚广胤's avatar 姚广胤

更新构建

parent dc959f54
{
"env": {
"node": true,
"browser": true,
"es6": true,
"mocha": true
},
"parser": "babel-eslint",
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true,
"modules": true,
"arrowFunctions": true,
"binaryLiterals": true,
"blockBindings": true,
"classes": true,
"defaultParams": true,
"destructuring": true,
"forOf": true,
"generators": true,
"objectLiteralComputedProperties": true,
"objectLiteralDuplicateProperties": true,
"objectLiteralShorthandMethods": true,
"objectLiteralShorthandProperties": true,
"octalLiterals": true,
"regexUFlag": true,
"regexYFlag": true,
"restParams": true,
"spread": true,
"superInFunctions": true,
"templateStrings": true,
"unicodeCodePointEscapes": true,
"globalReturn": true,
"experimentalObjectRestSpread": true
}
},
"rules": {
"comma-dangle": [2, "never"],
"no-cond-assign": 0,
"no-console": 0,
"no-constant-condition": 0,
"no-control-regex": 0,
"no-debugger": 2,
"no-dupe-args": 2,
"no-dupe-keys": 2,
"no-duplicate-case": 2,
"no-empty-character-class": 1,
"no-empty": 0,
"no-ex-assign": 1,
"no-extra-boolean-cast": 0,
"no-extra-parens": [1, functions],
"no-extra-semi": 1,
"no-func-assign": 2,
"no-inner-declarations": 0,
"no-invalid-regexp": 1,
"no-irregular-whitespace": 2,
"no-negated-in-lhs": 2,
"no-obj-calls": 2,
"no-regex-spaces": 1,
"no-reserved-keys": 0,
"no-sparse-arrays": 2,
"no-unexpected-multiline": 0,
"no-unreachable": 2,
"use-isnan": 2,
"valid-jsdoc": 0,
"valid-typeof": 2,
"accessor-pairs": [1, {setWithoutGet: true}],
"block-scoped-var": 0,
"complexity": 0,
"consistent-return": 0,
"curly": [2, multi-line],
"default-case": 0,
"dot-notation": 0,
"dot-location": 0,
"eqeqeq": [0, allow-null],
"guard-for-in": 0,
"no-alert": 0,
"no-caller": 2,
"no-div-regex": 0,
"no-else-return": 0,
"no-eq-null": 0,
"no-eval": 2,
"no-extend-native": 1,
"no-extra-bind": 1,
"no-fallthrough": 1,
"no-floating-decimal": 2,
"no-implicit-coercion": 0,
"no-implied-eval": 2,
"no-invalid-this": 0,
"no-iterator": 0,
"no-labels": [2, { "allowLoop": true, "allowSwitch": true }],
"no-lone-blocks": 1,
"no-loop-func": 0,
"no-magic-numbers": 0,
"no-multi-spaces": 0,
"no-multi-str": 0,
"no-native-reassign": [2, {exceptions: [Map, Set, console]}],
"no-new-func": 2,
"no-new-wrappers": 1,
"no-new": 0,
"no-octal-escape": 1,
"no-octal": 1,
"no-param-reassign": 0,
"no-process-env": 0,
"no-proto": 2,
"no-redeclare": 0,
"no-return-assign": 0,
"no-script-url": 0,
"no-self-compare": 1,
"no-sequences": 1,
"no-throw-literal": 0,
"no-unused-expressions": 0,
"no-useless-call": 1,
"no-useless-concat": 1,
"no-void": 0,
"no-warning-comments": 0,
"no-with": 2,
"radix": 2,
"vars-on-top": 0,
"wrap-iife": 0,
"yoda": 0,
"strict": 0,
"init-declarations": 0,
"no-catch-shadow": 0,
"no-delete-var": 2,
"no-label-var": 1,
"no-shadow-restricted-names": 2,
"no-shadow": 0,
"no-undef-init": 0,
"no-undef": "off",
"no-undefined": 0,
"no-unused-vars": [1, {args: none}],
"no-use-before-define": 0,
"callback-return": 0,
"global-require": 0,
"handle-callback-err": 0,
"no-mixed-requires": 0,
"no-new-require": 0,
"no-path-concat": 0,
"no-process-exit": 0,
"no-restricted-modules": 0,
"no-sync": 0,
"array-bracket-spacing": 2,
"block-spacing": 0,
"brace-style": [1, 1tbs, {allowSingleLine: true}],
"camelcase": [1, {"properties": "never"}],
"comma-spacing": [1, {before: false, after: true}],
"comma-style": [1, last],
"computed-property-spacing": [1, never],
"consistent-this": [1, _this],
"eol-last": 0,
"func-names": 0,
"func-style": [0, declaration],
"id-length": 0,
"id-match": 0,
"indent": [1, 2, {"SwitchCase": 1}],
"jsx-quotes": 0,
"key-spacing": [2, {beforeColon: false, afterColon: true}],
"linebreak-style": [0, unix],
"lines-around-comment": 0,
"max-nested-callbacks": 0,
"new-cap": 1,
"new-parens": 2,
"newline-after-var": 0,
"no-array-constructor": 2,
"no-continue": 0,
"no-inline-comments": 1,
"no-lonely-if": 0,
"no-mixed-spaces-and-tabs": 2,
"no-multiple-empty-lines": [2, {max: 2}],
"no-negated-condition": 0,
"no-nested-ternary": 0,
"no-new-object": 2,
"no-restricted-syntax": 0,
"no-spaced-func": 2,
"no-ternary": 0,
"no-trailing-spaces": [1, { "skipBlankLines": true }],
"no-underscore-dangle": 0,
"no-unneeded-ternary": 1,
"object-curly-spacing": 0,
"one-var": [0, never],
"operator-assignment": [1, always],
"operator-linebreak": 0,
"padded-blocks": 0,
"quote-props": [0, as-needed],
"quotes": [2, single, avoid-escape],
"require-jsdoc": 0,
"semi-spacing": [1, {before: false, after: true}],
"semi": 0,
"sort-vars": 0,
"space-before-blocks": [2, always],
"space-before-function-paren": [1, {anonymous: never, named: never}],
"keyword-spacing": [2, {"before": true, "after": true}],
"space-in-parens": [2, never],
"space-infix-ops": [2, {"int32Hint": false}],
"space-unary-ops": [1, {words: true, nonwords: false}],
"spaced-comment": [1, always],
"wrap-regex": 0,
"arrow-spacing": [1, {before: true, after: true}],
"no-const-assign": 2,
"no-this-before-super": 2
},
"globals": {
"$": true,
"jQuery": true
}
}
{
"env": {
"browser": true,
"commonjs": true,
"es6": true,
"node": true
},
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"sourceType": "module"
},
"rules": {
"no-const-assign": "warn",
"no-this-before-super": "warn",
"no-undef": "warn",
"no-unreachable": "warn",
"no-unused-vars": "warn",
"constructor-super": "warn",
"valid-typeof": "warn"
}
}
\ No newline at end of file
{
"compilerOptions": {
"lib": ["es6"]
}
}
\ No newline at end of file
{
"name": "warden",
"description": "an automate performance watcher",
"version": "1.0.0",
"author": "jsholic <junhe0723@gmail.com>",
"contributors": [
{
"email": "ygy@duiba.com.cn",
"name": "ygy"
}
],
"scripts": {
"dev": "cd server && npm run dev && cd ../web && npm run dev",
"install": "cd web && yarn install && cd ../server && yarn install",
"prod": "cd server && npm run prod"
},
"devDependencies": {
"babel-eslint": "^8.2.2",
"eslint": "^4.19.1",
"eslint-config-standard": "^5.1.0",
"eslint-friendly-formatter": "^2.0.5",
"eslint-loader": "^1.3.0",
"eslint-plugin-html": "^1.3.0",
"eslint-plugin-promise": "^1.0.8",
"eslint-plugin-react": "^7.7.0",
"eslint-plugin-standard": "^1.3.2"
},
"license": "MIT"
}
...@@ -2,12 +2,11 @@ ...@@ -2,12 +2,11 @@
* @Author: ygy * @Author: ygy
* @Date: 2018-03-14 19:40:01 * @Date: 2018-03-14 19:40:01
* @Last Modified by: ygy * @Last Modified by: ygy
* @Last Modified time: 2018-03-26 09:43:45 * @Last Modified time: 2018-03-26 14:36:17
*/ */
const Koa = require('koa'); const Koa = require('koa');
const send = require('koa-send'); const send = require('koa-send');
const bodyParser = require('koa-bodyparser'); const bodyParser = require('koa-bodyparser');
const cors = require('koa-cors');
const path = require('path'); const path = require('path');
const router = require('./router'); const router = require('./router');
...@@ -19,8 +18,6 @@ const schedule = require('node-schedule'); ...@@ -19,8 +18,6 @@ const schedule = require('node-schedule');
const app = new Koa(); const app = new Koa();
app.use(cors());
// log request URL: // log request URL:
app.use(async (ctx, next) => { app.use(async (ctx, next) => {
console.log(`Process ${ctx.request.method} ${ctx.request.url}...`); console.log(`Process ${ctx.request.method} ${ctx.request.url}...`);
...@@ -28,7 +25,7 @@ app.use(async (ctx, next) => { ...@@ -28,7 +25,7 @@ app.use(async (ctx, next) => {
}); });
if (process.env.NODE_ENV === 'production') { if (process.env.NODE_ENV === 'production') {
//chek user's login state,except index,login,signin pages // chek user's login state,except index,login,signin pages
app.use(filter.checkLogin); app.use(filter.checkLogin);
} }
...@@ -37,7 +34,8 @@ app.use(bodyParser()); ...@@ -37,7 +34,8 @@ app.use(bodyParser());
// add nunjucks as view: // add nunjucks as view:
app.use(templating('views', { app.use(templating('views', {
noCache: true, //in production ENV,noCache should be changed to false. // in production ENV,noCache should be changed to false.
noCache: true,
watch: true watch: true
})); }));
......
...@@ -3,8 +3,6 @@ const devConfig = './config-dev.js'; ...@@ -3,8 +3,6 @@ const devConfig = './config-dev.js';
var config = null; var config = null;
console.log('===process.env.NODE_ENV***', process.env.NODE_ENV);
if (process.env.NODE_ENV === 'production') { if (process.env.NODE_ENV === 'production') {
console.log(`Load DBconfig ${prodConfig}...`); console.log(`Load DBconfig ${prodConfig}...`);
config = require(prodConfig); config = require(prodConfig);
......
...@@ -5,7 +5,7 @@ let History = model.History; ...@@ -5,7 +5,7 @@ let History = model.History;
// History.sync(); // History.sync();
module.exports = { module.exports = {
createOne: async(fileObj = {}) => { createOne: async (fileObj = {}) => {
const { const {
result, result,
type, type,
......
{ {
"restartable": "rs", "restartable": "rs",
"ignore": [ "ignore": [".git", "upload_store/", "node_modules/**/node_modules"],
".git",
"upload_store/",
"node_modules/**/node_modules"
],
"verbose": true, "verbose": true,
"execMap": { "execMap": {
"js": "node --harmony" "js": "node --harmony"
......
...@@ -4,10 +4,8 @@ ...@@ -4,10 +4,8 @@
"version": "1.0.0", "version": "1.0.0",
"main": "app.js", "main": "app.js",
"scripts": { "scripts": {
"dev": "export NODE_ENV=development&& nodemon --harmony app.js", "dev": "cross-env NODE_ENV=development&& nodemon --harmony app.js",
"devwin": "set NODE_ENV=development&& nodemon --harmony app.js", "prod": "cross-env NODE_ENV=production&& pm2 start pm2.json --env production"
"prod": "pm2 start pm2.json --env production",
"prodwin": "set NODE_ENV=production&& nodemon --harmony app.js"
}, },
"keywords": [ "keywords": [
"koa", "koa",
...@@ -28,9 +26,9 @@ ...@@ -28,9 +26,9 @@
"dependencies": { "dependencies": {
"koa": "^2.3.0", "koa": "^2.3.0",
"koa-bodyparser": "^3.2.0", "koa-bodyparser": "^3.2.0",
"koa-cors": "0.0.16",
"koa-router": "^7.2.1", "koa-router": "^7.2.1",
"koa-send": "^4.1.0", "koa-send": "^4.1.0",
"koa-static": "^4.0.2",
"mime": "^1.3.6", "mime": "^1.3.6",
"mkdirp": "^0.5.1", "mkdirp": "^0.5.1",
"mysql": "^2.14.1", "mysql": "^2.14.1",
...@@ -42,6 +40,7 @@ ...@@ -42,6 +40,7 @@
"sequelize": "^3.24.1" "sequelize": "^3.24.1"
}, },
"devDependencies": { "devDependencies": {
"cross-env": "^5.1.4",
"nodemon": "^1.11.0" "nodemon": "^1.11.0"
} }
} }
{ {
"apps" : [{ "apps": [
"name" : "warden", {
"script" : "./app.js", "name": "warden",
"watch" : false, "script": "./app.js",
"node_args": ["--harmony"], "watch": false,
"env": { "node_args": ["--harmony"],
"NODE_ENV": "default" "env": {
}, "NODE_ENV": "default"
"env_production" : { },
"NODE_ENV": "production" "env_production": {
"NODE_ENV": "production"
}
} }
}] ]
} }
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<body style="background-repeat:no-repeat; background-attachment:fixed;background-size:cover;background-image: url(https://img.xjh.me/random_img.php?type=bg&ctype=nature&return=302);"> <body style="background-repeat:no-repeat; background-attachment:fixed;background-size:cover;background-image: url(https://img.xjh.me/random_img.php?type=bg&ctype=nature&return=302);">
<div id="app"></div> <div id="app"></div>
<script src="http://localhost:5001/dist/public.js"></script> <script src="/dist/public.js"></script>
</body> </body>
</html> </html>
...@@ -6,12 +6,12 @@ ...@@ -6,12 +6,12 @@
<title>守望</title> <title>守望</title>
<link rel="shortcut icon" type="image/x-icon" href="//yun.tuiapple.com/tuia/cdn/heaven.ico"> <link rel="shortcut icon" type="image/x-icon" href="//yun.tuiapple.com/tuia/cdn/heaven.ico">
<link rel="stylesheet" href="//yun.tuiapple.com/tuia/tuia-advertiser/bower_components/bootstrap/dist/css/bootstrap.min.css"> <link rel="stylesheet" href="//yun.tuiapple.com/tuia/tuia-advertiser/bower_components/bootstrap/dist/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/3.8.5/echarts-en.common.min.js"></script> <script src="//yun.duiba.com.cn/tuia/warden/echarts.common.min.js"></script>
</head> </head>
<body style="background-repeat:no-repeat; background-attachment:fixed;background-size:cover;background-image: url(//yun.duiba.com.cn/tuia/cdn/background-logo.jpg);"> <body style="background-repeat:no-repeat; background-attachment:fixed;background-size:cover;background-image: url(//yun.duiba.com.cn/tuia/cdn/background-logo.jpg);">
<div id="app"></div> <div id="app"></div>
<script src="http://localhost:5001/dist/private.js"></script> <script src="/dist/private.js"></script>
</body> </body>
</html> </html>
...@@ -442,7 +442,14 @@ cron-parser@^2.4.0: ...@@ -442,7 +442,14 @@ cron-parser@^2.4.0:
is-nan "^1.2.1" is-nan "^1.2.1"
moment-timezone "^0.5.0" moment-timezone "^0.5.0"
cross-spawn@^5.0.1: cross-env@^5.1.4:
version "5.1.4"
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.1.4.tgz#f61c14291f7cc653bb86457002ea80a04699d022"
dependencies:
cross-spawn "^5.1.0"
is-windows "^1.0.0"
cross-spawn@^5.0.1, cross-spawn@^5.1.0:
version "5.1.0" version "5.1.0"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
dependencies: dependencies:
...@@ -1202,7 +1209,7 @@ is-typedarray@~1.0.0: ...@@ -1202,7 +1209,7 @@ is-typedarray@~1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
is-windows@^1.0.2: is-windows@^1.0.0, is-windows@^1.0.2:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
...@@ -1310,10 +1317,6 @@ koa-convert@^1.2.0: ...@@ -1310,10 +1317,6 @@ koa-convert@^1.2.0:
co "^4.6.0" co "^4.6.0"
koa-compose "^3.0.0" koa-compose "^3.0.0"
koa-cors@0.0.16:
version "0.0.16"
resolved "https://registry.yarnpkg.com/koa-cors/-/koa-cors-0.0.16.tgz#98107993a7909e34c042986c5ec6156d77f3432e"
koa-is-json@^1.0.0: koa-is-json@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/koa-is-json/-/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14" resolved "https://registry.yarnpkg.com/koa-is-json/-/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14"
...@@ -1338,6 +1341,13 @@ koa-send@^4.1.0: ...@@ -1338,6 +1341,13 @@ koa-send@^4.1.0:
mz "^2.6.0" mz "^2.6.0"
resolve-path "^1.4.0" resolve-path "^1.4.0"
koa-static@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/koa-static/-/koa-static-4.0.2.tgz#6cda92d88d771dcaad9f0d825cd94a631c861a1a"
dependencies:
debug "^2.6.8"
koa-send "^4.1.0"
koa@^2.3.0: koa@^2.3.0:
version "2.5.0" version "2.5.0"
resolved "https://registry.yarnpkg.com/koa/-/koa-2.5.0.tgz#b0fbe1e195e43b27588a04fd0be0ddaeca2c154c" resolved "https://registry.yarnpkg.com/koa/-/koa-2.5.0.tgz#b0fbe1e195e43b27588a04fd0be0ddaeca2c154c"
......
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
# web
> A Vue.js project
## Build Setup
``` bash
# install dependencies
npm install
# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build
```
For detailed explanation on how things work, consult the [docs for vue-loader](http://vuejs.github.io/vue-loader).
rm -rf ../server/static/*
cp -r ./dist ../server/static/dist/
var path = require('path'); var path = require('path');
var glob = require('glob'); var glob = require('glob');
const isProd = process.env.NODE_ENV === 'production';
// ----- 动态查找所有入口entry文件 ----- // // ----- 动态查找所有入口entry文件 ----- //
var files = glob.sync('./src/containers/*/main.js'); var files = glob.sync('./src/containers/*/main.js');
var entryList = {}; var entryList = {};
// 匹配入口文件 // 匹配入口文件
files.forEach(function (f) { files.forEach(function(f) {
var mainName = /.*\/(containers\/.*?\/main)\.js/.exec(f)[1]; // 得到containers/mobile/main.js这样的文件名 var mainName = /.*\/(containers\/.*?\/main)\.js/.exec(f)[1];
var mainPath = mainName.split('main')[0]; // 得到containers/mobile/这样的文件名 var mainPath = mainName.split('main')[0];
var fileName = mainPath.split('/')[1]; var fileName = mainPath.split('/')[1];
// 记录入口文件 // 记录入口文件
entryList[fileName] = f; entryList[fileName] = f;
}); });
Object.keys(entryList).forEach(function (k) { Object.keys(entryList).forEach(function(k) {
var arr = []; var arr = [];
arr.push(entryList[k]); arr.push(entryList[k]);
entryList[k] = arr; entryList[k] = arr;
...@@ -25,18 +24,23 @@ module.exports = { ...@@ -25,18 +24,23 @@ module.exports = {
entry: entryList, entry: entryList,
output: { output: {
path: path.resolve(__dirname, '../dist'), path: path.resolve(__dirname, '../dist'),
publicPath: process.env.NODE_ENV === 'production' ? 'http://yun.dui88.com/tuia/cdn/' : '/dist/' , publicPath:
process.env.NODE_ENV === 'production'
? 'http://yun.dui88.com/tuia/cdn/'
: '/dist/',
filename: '[name].js' filename: '[name].js'
}, },
resolve: { resolve: {
extensions: ['.js', '.vue'], extensions: ['.js', '.vue'],
alias: { alias: {
'comcomp': path.resolve(__dirname, '../src/components'), comcomp: path.resolve(__dirname, '../src/components'),
'comstyle': path.resolve(__dirname, '../src/styles') comstyle: path.resolve(__dirname, '../src/styles'),
utils: path.resolve(__dirname, '../src/utils')
} }
}, },
module: { module: {
rules: [{ rules: [
{
test: /\.vue$/, test: /\.vue$/,
loader: 'vue-loader', loader: 'vue-loader',
options: { options: {
...@@ -70,18 +74,4 @@ module.exports = { ...@@ -70,18 +74,4 @@ module.exports = {
} }
] ]
} }
} };
function getIPAdress() {
var interfaces = require('os').networkInterfaces();
for (var devName in interfaces) {
var iface = interfaces[devName];
for (var i = 0; i < iface.length; i++) {
var alias = iface[i];
if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.internal) {
return alias.address;
}
}
}
}
const webpackBaseConfig = require('./webpack.base'); const webpackBaseConfig = require('./webpack.base');
const webpack = require('webpack') const webpack = require('webpack')
Object.keys(webpackBaseConfig.entry).forEach(function (name) { Object.keys(webpackBaseConfig.entry).forEach((name) => {
webpackBaseConfig.entry[name] = webpackBaseConfig.entry[name].concat('webpack-hot-middleware/client?reload=true') webpackBaseConfig.entry[name] = webpackBaseConfig.entry[name].concat('webpack-hot-middleware/client?reload=true')
}) })
......
var webpack = require('webpack'); var webpack = require('webpack');
var base = require('./webpack.base'); var base = require('./webpack.base');
module.exports = Object.assign(base, { module.exports = Object.assign(base, {
performance: { performance: {
hints: false hints: false
}, },
devtool: '#source-map', devtool: '#source-map',
// http://vue-loader.vuejs.org/en/workflow/production.html // http://vue-loader.vuejs.org/en/workflow/production.html
plugins : [ plugins: [
new webpack.DefinePlugin({ new webpack.DefinePlugin({
'process.env': { 'process.env': {
NODE_ENV: '"production"' NODE_ENV: '"production"'
......
{
"code": 0,
"msg": "success",
"dirs": [
"DS-online/",
"activity/",
"admin/",
"aerosol/",
"aerosolXml/",
"apk/",
"apks/",
"app/",
"asdfasdf/",
"baidu/",
"couponcode_daily/",
"couponcode_dev/",
"coupons/",
"db-m/",
"db_games/",
"developer/",
"developer_new/",
"ds/",
"duibaFloorCofig/",
"duibaManagerWeb/",
"egret/",
"floorCode/",
"floorSkin/",
"game/",
"h5-tuia/",
"h5/",
"http:/",
"hwqtest/",
"images/",
"layui/",
"lib/",
"maila/",
"mainMeet/",
"mainmeet/",
"mobile/",
"node_test/",
"node_test_img/",
"pcduiba/",
"pptv/",
"resource/",
"simple-dev/",
"static/",
"test/",
"tuia-media/",
"tuia/",
"upload/",
"webapp/"
],
"files": [
"1.png",
"125_599_Tue Aug 16 18:25:46 CST 2016.txt",
"2.png",
"2016-152-5-jxwy.mp4",
"3.png",
"370-230.jpg",
"462_568_Tue Aug 16 18:38:20 CST 2016.txt",
"640-280-yuan.jpg",
"addObject.js",
"address-v12.24.css",
"bundle.js",
"christmasinfo.min.js",
"coolgirl.jpg",
"coupon-code-template.txt",
"dailyduiba-oss-logdaily-duiba2016-09-22-11-00-00-0001",
"dui88",
"duiba-oss-logduiba2016-09-22-11-00-00-0001",
"face.jpg",
"fd1e859a.library_class.min.js",
"file.js",
"gift.png",
"hwq-test.html",
"hwq-test.js",
"import_log",
"kuyin.css",
"lantern.css",
"node_test1.png",
"pptvIframeHack.min.js",
"rem-responsive.js",
"shot.png",
"shot1.png",
"statistics.js",
"test.js",
"user.js",
"webp4.jpg"
]
}
{
"success": "true",
"code": 0
}
{
"code": 0,
"prefix": "//yun.duiba.com.cn"
}
{
"success": "true",
"code": "0",
"path": "h5-tuia/YJk3a1474684409537.png"
}
{
"success": "true",
"code": 0
}
{
"code": 0,
"desc": "查询成功!",
"totalCount": 26,
"data": [
{
"id": "2f2bb8ae-f4a1-4542-bb9c-e2dc0c101b61",
"name": "1.jpeg",
"path": "tuia/test/1.jpeg",
"type": "image/jpeg",
"size": 4831,
"owner": "管理员",
"sync": false,
"createdAt": 1514964614241,
"updatedAt": 1514964614241,
"version": 0
},
{
"id": "9f824ea1-fc43-49f4-ae92-f3c73c0fb080",
"name": "a336845a2e965ca587a0.codemirror.js",
"path": "tuia/tuia-admin/dist/a336845a2e965ca587a0.codemirror.js",
"type": "text/javascript",
"size": 225070,
"owner": "周成",
"sync": true,
"createdAt": 1513583609452,
"updatedAt": 1513583609452,
"version": 0
},
{
"id": "4c8bf8ff-4cbd-41fd-b85f-d5c77a6c8134",
"name": "dd04863ca08f21d3972f.iScroll.js",
"path": "tuia/tuia-admin/dist/dd04863ca08f21d3972f.iScroll.js",
"type": "text/javascript",
"size": 32949,
"owner": "周成",
"sync": true,
"createdAt": 1513583609065,
"updatedAt": 1513583609065,
"version": 0
},
{
"id": "d606abca-b7e1-4bb9-89dd-923bd04fb8e4",
"name": "vendors.js",
"path": "tuia/media-internal/dist/vendors.js",
"type": "text/javascript",
"size": 1599092,
"owner": "顾灿灿",
"sync": true,
"createdAt": 1513134800634,
"updatedAt": 1513134800634,
"version": 0
},
{
"id": "0a7b1c91-4ffb-48ed-b2f6-1f11f41ed61c",
"name": "Simditor.js",
"path": "tuia/media-internal/dist/Simditor.js",
"type": "text/javascript",
"size": 454689,
"owner": "顾灿灿",
"sync": true,
"createdAt": 1513134797785,
"updatedAt": 1513134797785,
"version": 0
},
{
"id": "95e1d860-c959-4bb1-8e5a-bc2c1dee110e",
"name": "Spectrum.js",
"path": "tuia/media-internal/dist/Spectrum.js",
"type": "text/javascript",
"size": 28189,
"owner": "顾灿灿",
"sync": true,
"createdAt": 1513134797138,
"updatedAt": 1513134797138,
"version": 0
},
{
"id": "9b634012-c56d-420f-b586-353e4a46e6da",
"name": "Sortable.js",
"path": "tuia/media-internal/dist/Sortable.js",
"type": "text/javascript",
"size": 12717,
"owner": "顾灿灿",
"sync": true,
"createdAt": 1513134797096,
"updatedAt": 1513134797096,
"version": 0
},
{
"id": "65e07794-ae28-44c6-9dd3-23cb102a2ef9",
"name": "private.js",
"path": "tuia/media-internal/dist/private.js",
"type": "text/javascript",
"size": 1798600,
"owner": "顾灿灿",
"sync": true,
"createdAt": 1513134796992,
"updatedAt": 1513134796992,
"version": 0
},
{
"id": "6d00dce1-946a-4d38-bce7-17693392c16b",
"name": "DateRangePicker.js",
"path": "tuia/media-internal/dist/DateRangePicker.js",
"type": "text/javascript",
"size": 122351,
"owner": "顾灿灿",
"sync": true,
"createdAt": 1513134796920,
"updatedAt": 1513134796920,
"version": 0
},
{
"id": "caf12054-1134-42a8-bac0-a044d75c9813",
"name": "codemirror.js",
"path": "tuia/media-internal/dist/codemirror.js",
"type": "text/javascript",
"size": 213398,
"owner": "顾灿灿",
"sync": true,
"createdAt": 1513134796766,
"updatedAt": 1513134796766,
"version": 0
},
{
"id": "979fa3d9-b17c-4e01-a7e4-8d4341ca85bd",
"name": "iScroll.js",
"path": "tuia/media-internal/dist/iScroll.js",
"type": "text/javascript",
"size": 33028,
"owner": "顾灿灿",
"sync": true,
"createdAt": 1513134796731,
"updatedAt": 1513134796731,
"version": 0
},
{
"id": "c14c22d1-81b9-47f2-84ac-267add30e429",
"name": "public.js",
"path": "tuia/media-internal/dist/public.js",
"type": "text/javascript",
"size": 15261,
"owner": "顾灿灿",
"sync": true,
"createdAt": 1513134796710,
"updatedAt": 1513134796710,
"version": 0
},
{
"id": "a7c630a7-837b-4400-a758-44c0108303d7",
"name": "html2canvas.js",
"path": "tuia/media-internal/dist/html2canvas.js",
"type": "text/javascript",
"size": 63428,
"owner": "顾灿灿",
"sync": true,
"createdAt": 1513134796531,
"updatedAt": 1513134796531,
"version": 0
},
{
"id": "042db5ac-12c3-4a0c-8add-9d438c2ba71b",
"name": "Jquery.QrCode.js",
"path": "tuia/media-internal/dist/Jquery.QrCode.js",
"type": "text/javascript",
"size": 14025,
"owner": "顾灿灿",
"sync": true,
"createdAt": 1513134796438,
"updatedAt": 1513134796438,
"version": 0
},
{
"id": "b0f68ed6-65b7-442e-801a-8d42cba0c10e",
"name": "detail_dev.css",
"path": "qiho-h5/order/detail_dev.css",
"type": "text/css",
"size": 42614,
"owner": "卢静",
"sync": true,
"createdAt": 1500989998801,
"updatedAt": 1500989998801,
"version": 0
},
{
"id": "2ce1e040-ec4d-4518-a873-6b5a000844fc",
"name": "detail_dev.js",
"path": "qiho-h5/order/detail_dev.js",
"type": "application/javascript",
"size": 27140,
"owner": "卢静",
"sync": true,
"createdAt": 1500989965985,
"updatedAt": 1500989965985,
"version": 0
},
{
"id": "9320dc47-0ab3-4b69-ab84-cd25f47ca224",
"name": "cashier_dev.css",
"path": "qiho-h5/order/cashier_dev.css",
"type": "text/css",
"size": 35531,
"owner": "卢静",
"sync": false,
"createdAt": 1500989952207,
"updatedAt": 1500989952207,
"version": 0
},
{
"id": "f1e84548-89f9-494f-ba23-de03219d53b8",
"name": "success_dev.js",
"path": "qiho-h5/goods/success_dev.js",
"type": "application/javascript",
"size": 47889,
"owner": "卢静",
"sync": true,
"createdAt": 1500946474262,
"updatedAt": 1500946474262,
"version": 0
},
{
"id": "81800d85-90d3-4340-98ee-375b54028744",
"name": "vg_201707241656.css",
"path": "h5-tuia/insurance/shajin/vg_201707241656.css",
"type": "text/css",
"size": 13095,
"owner": "邓沁",
"sync": false,
"createdAt": 1500886594580,
"updatedAt": 1500886594580,
"version": 0
},
{
"id": "654c5f98-a39a-430b-8d9a-b1dab28186c2",
"name": "vg_201707241656.js",
"path": "h5-tuia/insurance/shajin/vg_201707241656.js",
"type": "text/javascript",
"size": 48577,
"owner": "邓沁",
"sync": false,
"createdAt": 1500886593569,
"updatedAt": 1500886593569,
"version": 0
}
]
}
{
"success": "true",
"code": 0
}
{ {
"/todo/list": "/todo/list",
"/todo/delete": "/todo/delete",
"/todo/sync": "/todo/sync",
"/todo/batchDelete": "/todo/delete",
"/todo/batchSync": "/todo/sync",
"/history/list": "/history/list", "/history/list": "/history/list",
"/oss/prefix": "/oss/prefix",
"/oss/list": "/oss/list",
"/oss/newFolder": "/oss/newFolder",
"/oss/upload": "/oss/upload",
"/user/signin": "/user/signin", "/user/signin": "/user/signin",
"/user/signup": "/user/signup", "/user/signup": "/user/signup",
"/user/id": "/user/id", "/user/id": "/user/id",
......
...@@ -10,10 +10,8 @@ ...@@ -10,10 +10,8 @@
} }
], ],
"scripts": { "scripts": {
"start": "cross-env NODE_ENV=development node ./bin/www", "dev": "cross-env NODE_ENV=development node ./bin/www",
"build": "cross-env NODE_ENV=production webpack -p --progress --hide-modules --config build/webpack.prod.config.js", "build": "cross-env NODE_ENV=production webpack -p --progress --hide-modules --config build/webpack.prod.config.js && sh ./build/index.sh"
"taobao": "npm install --registry=https://registry.npm.taobao.org",
"taobaodev": "npm install --only=dev --registry=https://registry.npm.taobao.org"
}, },
"dependencies": { "dependencies": {
"axios": "^0.18.0", "axios": "^0.18.0",
...@@ -32,7 +30,7 @@ ...@@ -32,7 +30,7 @@
"babel-plugin-transform-vue-jsx": "^3.3.0", "babel-plugin-transform-vue-jsx": "^3.3.0",
"babel-preset-env": "^1.6.1", "babel-preset-env": "^1.6.1",
"babel-preset-latest": "^6.0.0", "babel-preset-latest": "^6.0.0",
"cross-env": "^3.0.0", "cross-env": "^5.1.4",
"css-loader": "^0.25.0", "css-loader": "^0.25.0",
"ejs": "^2.5.7", "ejs": "^2.5.7",
"file-loader": "^0.9.0", "file-loader": "^0.9.0",
...@@ -47,5 +45,6 @@ ...@@ -47,5 +45,6 @@
"webpack-dev-server": "^2.9.3", "webpack-dev-server": "^2.9.3",
"webpack-hot-middleware": "^2.20.0", "webpack-hot-middleware": "^2.20.0",
"webpack-merge": "^4.1.0" "webpack-merge": "^4.1.0"
} },
"license": "MIT"
} }
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<title>守望</title> <title>守望</title>
<link rel="shortcut icon" type="image/x-icon" href="//yun.tuiapple.com/tuia/cdn/heaven.ico"> <link rel="shortcut icon" type="image/x-icon" href="//yun.tuiapple.com/tuia/cdn/heaven.ico">
<link rel="stylesheet" href="//yun.tuiapple.com/tuia/tuia-advertiser/bower_components/bootstrap/dist/css/bootstrap.min.css"> <link rel="stylesheet" href="//yun.tuiapple.com/tuia/tuia-advertiser/bower_components/bootstrap/dist/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/3.8.5/echarts-en.common.min.js"></script> <script src="//yun.duiba.com.cn/tuia/warden/echarts.common.min.js"></script>
</head> </head>
<body style="background-repeat:no-repeat; background-attachment:fixed;background-size:cover;background-image: url(//yun.duiba.com.cn/tuia/cdn/background-logo.jpg);"> <body style="background-repeat:no-repeat; background-attachment:fixed;background-size:cover;background-image: url(//yun.duiba.com.cn/tuia/cdn/background-logo.jpg);">
......
<template>
<div class="oss-list wrap">
<NavHeader></NavHeader>
<div class="oss-container">
<el-form :model="ruleForm" :inline="true" :rules="rules" ref="ruleForm" class="search-tool">
<el-form-item label="资源路径" prop="path" class="itemtext">
<el-input type="textarea" v-model="ruleForm.path" placeholder="请输入资源路径,一行一个,回车分隔" class="texturl" :autosize="{ minRows: 20}" required></el-input>
</el-form-item>
<el-button type="primary" @click="_submitForm('ruleForm')" icon="search" size="small" class='submit'>提交</el-button>
<div class='tip'>此过程较慢,请耐心等待</div>
</el-form>
</div>
</div>
</template>
<script>
import NavHeader from '../NavHeader.vue';
import { Message, Loading } from 'element-ui';
import DateUtil from 'comcomp/utils/DateUtil.js';
var checkUrl = (rule, value, callback) => {
let regexp = new RegExp(/(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?$/);
var arr=value.split("\n")
const valArr = arr.map(item => {return regexp.test(item)});
if (valArr.indexOf(false)!== -1) {
callback(new Error('url格式不正确'));
} else {
callback();
}
};
export default {
data() {
return {
ruleForm: {
path: ''
},
rules: {
path: [
{ validator: checkUrl, message: '格式不正确',required: true,trigger: 'blur' }
]
},
tableData: [],
domainPrefix: null
}
},
mounted() {
},
methods: {
_submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
  console.log(valid);
this.refresh();
} else {
console.log('error submit!!');
return false;
}
});
},
refresh() {
this.fetch(this.ruleForm.path);
},
fetch(path = '') {
const loadingInstance = Loading.service({ fullscreen: true });
this.$http.post('/cdn/flush', { urls: path }, {
emulateJSON: true
}).then((response) => {
const {
success,
code
} = response.data;
if (code === 0) {
this.$message.success('刷新成功');
} else {
console.log(desc);
}
loadingInstance.close();
}, (error) => {
console.log(error)
loadingInstance.close();
});
}
},
components: {
NavHeader
}
}
</script>
<style scoped>
.search-tool {
float: left;
margin-left: 100px;
margin-top: 20px;
width: 900px;
}
.itemtext {
width: 750px;
}
.texturl {
width: 350% !important;
}
.submit {
margin-left: 20px;
}
.tip {
margin-top: 20px;
color:#409EFF;
}
</style>
<template>
<div class="oss-list wrap">
<NavHeader></NavHeader>
<div class="oss-container">
<el-form :model="ruleForm" :inline="true" :rules="rules" ref="ruleForm" class="search-tool">
<el-form-item label="路径" prop="path">
<el-input v-model="ruleForm.path" placeholder="请输入路径" size="small"></el-input>
</el-form-item>
<el-button type="primary" @click="_submitForm('ruleForm')" icon="search" size="small">搜索</el-button>
</el-form>
<el-table :data="tableData" highlight-current-row @current-change="_currentChange" stripe style="width: 100%" height="800">
<el-table-column prop="name" label="文件名" width="150">
</el-table-column>
<el-table-column prop="path" label="路径">
</el-table-column>
<el-table-column prop="path" label="复制" width="65">
<template slot-scope="scope">
<el-tooltip class="item" effect="light" :enterable="false" content="点击复制完整路径" placement="top-start">
<button class="btn" data-clipboard-snippet="" v-bind:data-clipboard-text="domainPrefix + scope.row.path">
<img class="clippy" width="13" src="//yun.duiba.com.cn/tuia/cdn/clippy.svg">
</button>
</el-tooltip>
</template>
</el-table-column>
<el-table-column prop="type" label="类型" width="125">
</el-table-column>
<el-table-column prop="action" label="操作类型" width="100">
</el-table-column>
<el-table-column prop="owner" label="操作者" width="100">
</el-table-column>
<el-table-column prop="createdAt" label="操作时间" width="200">
</el-table-column>
</el-table>
<el-pagination @size-change="_sizeChange" @current-change="_pageChange" :current-page="currentPage" :page-size="pageSize" :page-sizes="[20, 50, 100, 200]" layout="total, sizes, prev, pager, next, jumper" :total="totalCount">
</el-pagination>
</div>
</div>
</template>
<script>
import NavHeader from '../NavHeader.vue';
import { Message, Loading } from 'element-ui';
import Clipboard from 'clipboard';
import DateUtil from 'comcomp/utils/DateUtil.js';
let clipboard;
export default {
data() {
return {
ruleForm: {
path: ''
},
rules: {
path: [
{ min: 0, max: 99, message: '不超过99', trigger: 'blur' }
]
},
currentPage: 1,
pageSize: 20,
totalCount: 0,
tableData: [],
domainPrefix: null
}
},
mounted() {
this.refresh();
this.getPrefix();
clipboard = new Clipboard('.btn');
clipboard.on('success', (e) => {
this.$message('已复制到剪贴板');
e.clearSelection();
});
clipboard.on('error', (e) => {
this.$message.error('复制失败');
});
},
beforeDestroy() {
clipboard.destroy();
},
methods: {
_currentChange(val) {
this.currentRow = val;
},
_submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
console.log(this.ruleForm.path);
this.currentPage = 1;
this.refresh();
} else {
console.log('error submit!!');
return false;
}
});
},
_pageChange(val) {
this.currentPage = val;
this.refresh();
},
_sizeChange(val) {
this.pageSize = val;
this.refresh();
},
refresh() {
this.fetch(this.currentPage, this.pageSize, this.ruleForm.path);
},
getPrefix() {
this.$http.get('/oss/prefix?env=online', {}, {
emulateJSON: true
}).then((response) => {
this.domainPrefix = response.data.prefix + '/';
}, (error) => {
console.log(error)
});
},
fetch(currentPage, pageSize, path = '') {
const loadingInstance = Loading.service({ fullscreen: true });
this.$http.get('/history/list', { params: { currentPage, pageSize, path } }, {
emulateJSON: true
}).then((response) => {
const {
data,
code,
totalCount,
desc
} = response.data;
if (code === 0) {
data.map((item) => {
const format = 'yyyy/MM/dd hh:mm:ss';
item.createdAt = DateUtil.dateFormat(item.createdAt, format);
return item;
});
} else {
console.log(desc);
}
this.totalCount = totalCount;
this.tableData = data;
loadingInstance.close();
}, (error) => {
console.log(error)
loadingInstance.close();
});
}
},
components: {
NavHeader
}
}
</script>
<style>
.el-pagination {
float: right;
margin-top: 20px;
}
.search-tool {
float: right;
}
</style>
<template lang="html">
<div class="oss-container">
<div class="row oss-path">
<div class="col-sm-12">
<div class="current-path">
当前路径:
</div>
<ul>
<li class="inline">
<a @click="_rootClick()">root</a>
</li>
<li class="inline" v-for="dir in path.split('/').filter((item)=>{ return !!item;})">
<i class="el-icon-arrow-right el-icon--left"></i><a @click="_pathClick(dir)">{{dir ? dir : ''}}&nbsp;</a>
</li>
</ul>
</div>
</div>
<div class="row mar-top-30">
<div class="col-sm-6">
<div class="row current-path">
<span class="col-sm-4">
<NewFolder :prop="pathObj" :cbRefresh="fetch"> </NewFolder>
</span>
</div>
<div class="row">
<span class="col-sm-6">名称</span>
<span class="col-sm-2">大小</span>
<span class="col-sm-4">最后修改</span>
</div>
<ul id="list">
<li class="oss-item row" v-for="dir in dirs">
<a class="col-sm-6 dir-name" @click="_enterDir(dir)"><img class="folder" width="16" src="//yun.dui88.com/tuia/cdn/folder.svg">{{dir.replace('/', '')}}</a>
<span class="col-sm-2">-</span>
<span class="col-sm-4">-</span>
</li>
<li class="oss-item row" v-for="file in files">
<span class="col-sm-6 file-name"><i class="el-icon-document el-icon--left"></i>{{file}}</span>
<span class="col-sm-2">
<el-tooltip class="item" effect="light" :enterable="false" content="点击复制路径" placement="top-start">
<button class="btn copy-urls-btn" v-bind:data-clipboard-text="domainPrefix + path.replace('/', '') + file">
<img class="clippy" width="14" src="//yun.duiba.com.cn/tuia/cdn/clippy.svg">
</button>
</el-tooltip>
</span>
<span class="col-sm-4">-</span>
</li>
</ul>
</div>
<div class="col-sm-6">
<my-upload
class="upload-demo"
ref="upload"
action="/oss/upload"
:drag="true"
:multiple="true"
:data="pathObj"
:on-preview="_preview"
:on-remove="_remove"
:before-upload="_beforeUpload"
:on-success="_uploadSuccess"
:file-list="fileList"
:auto-upload="false">
<el-button slot="trigger" icon="el-icon-view" type="primary" size="small">选取文件</el-button>
<el-button slot="uploadstart" style="margin-left: 10px;" icon="el-icon-upload" type="success" @click="_submitUpload" size="small">上传到服务器</el-button>
<div slot="tip" class="el-upload__tip">不支持文件夹上传</div>
</my-upload>
<br>
<p>已上传文件URL:</p>
<ul>
<li v-for="file in uploadedFiles">
<div><i class="el-icon-document"></i> <span>{{file.name}}</span></div>
<div><span style="color:#1D8CE0;padding:0 10px;">{{domainPrefix + file.response.path}}</span>
<el-tooltip class="item" effect="light" :enterable="false" content="点击复制完整路径" placement="top-start">
<button class="btn copy-urls-btn" v-bind:data-clipboard-text="domainPrefix + file.response.path">
<img class="clippy" width="12" src="//yun.duiba.com.cn/tuia/cdn/clippy.svg">
</button>
</el-tooltip></div>
</li>
</ul>
<!--<button id="copy-uploadUrls" class="el-button el-button--success is-plain el-button--small copy-urls-btn" v-bind:data-clipboard-text="uploadedUrls">
复制最近上传的URL
</button>-->
</div>
</div>
</div>
</template>
<script>
import NewFolder from './NewFolder.vue';
import {
Loading
} from 'element-ui';
import URLUtil from 'comcomp/utils/URLUtil.js';
import Clipboard from 'clipboard';
import MyUpload from 'comcomp/upload/index.vue';
let clipboard;
let hash;
const SLASH = '/';
function findPrefix(dir, path) {
return path.split(dir)[0];
};
export default {
data() {
hash = window.location.hash.split('?')[0];
const paramPath = URLUtil.getParameterByName('path', window.location.hash);
const path = decodeURIComponent(paramPath ? paramPath : SLASH);
console.log(paramPath);
return {
dirs: [],
files: [],
path,
fileList: [],
pathObj: {},
uploadedUrls: [],
uploadedFiles: [],
domainPrefix: null
}
},
mounted() {
this.fetch(this.path);
this.getPrefix();
clipboard = new Clipboard('.copy-urls-btn');
clipboard.on('success', (e) => {
this.$message('已复制到剪贴板');
this.$refs.upload.clearFiles();
e.clearSelection();
});
clipboard.on('error', (e) => {
this.$message.error('复制失败');
});
},
beforeDestroy() {
clipboard.destroy();
},
methods: {
_enterDir(dir) {
this.path = this.path + dir;
this.fetch(this.path);
},
_pathClick(dir) {
const prefix = findPrefix(dir, this.path);
this.path = prefix + dir + SLASH;
this.fetch(this.path);
},
_rootClick() {
this.path = SLASH;
this.fetch(this.path);
},
_submitUpload(e) {
e.stopPropagation();
this.$refs.upload.submit();
},
_remove(file, fileList) {
console.log(file, fileList);
},
_preview(file) {
console.log(file);
},
_beforeUpload(file) {},
_uploadSuccess(response, file, fileList) {
//等所有上传完成
const filters = fileList.filter(item => {
return item.status === 'success' || item.status === 'error';
});
if (filters.length !== fileList.length) {
return;
}
const uploadedUrls = filters.map((item) => {
return item.response.path;
});
this.uploadedFiles = filters;
console.log(filters);
this.uploadedUrls = uploadedUrls;
this.fetch(this.path);
console.log(this.fileList)
},
getPrefix() {
this.$http.get('/oss/prefix?env=test', {}, {
emulateJSON: true
}).then((response) => {
this.domainPrefix = response.data.prefix + '/';
}, (error) => {
console.log(error)
});
},
fetch(path) {
console.log(path);
const loadingInstance = Loading.service({
fullscreen: true
});
window.location.hash = `${hash}?path=${path}`;
this.pathObj = {
path
};
this.$http.get('/oss/list', {
params: {
path
}
}, {
emulateJSON: true
}).then((response) => {
const {
dirs,
files
} = response.data;
this.dirs = dirs;
this.files = files;
loadingInstance.close();
}, (error) => {
console.log(error)
loadingInstance.close();
});
}
},
components: {
NewFolder,
MyUpload
}
}
</script>
<style lang="css">
a {
cursor: pointer;
}
.inline {
display: inline;
margin: 0 0px;
}
.oss-item {
padding-top: 8px;
padding-bottom: 8px;
border-bottom: 1px solid #f2f6fd;
}
.file-name i{
font-size: 16px;
}
#copy-uploadUrls {
margin-top: 10px;
}
.current-path {
margin-bottom: 8px;
}
.folder {
margin-right: 5px;
position: relative;
top: -2px;
}
.el-upload-dragger {
overflow: auto !important;
position: fixed !important;
width: 100% !important;
height: 100% !important;
cursor: auto !important;
z-index: -1;
top: 0;
left: 0;
background-color: transparent !important;
}
.el-upload-dragger:hover {
border-color: transparent !important;
}
</style>
<template lang="html">
<div class="wrap" @drop.prevent @dragover.prevent @dragleave.prevent>
<NavHeader></NavHeader>
<DirTree></DirTree>
</div>
</template>
<script>
import NavHeader from '../NavHeader.vue'
import DirTree from './DirTree.vue'
export default {
data: () => ({
msg: 'OSS文件管理'
}),
components: {
NavHeader,
DirTree
}
}
</script>
<style lang="css">
.content {
padding: 20px 50px;
}
.button-group {
margin-bottom: 15px;
}
</style>
<template>
<div>
<el-button type="primary" @click="dialogFormVisible = true" icon="el-icon-plus" size="small">新建文件夹</el-button>
<el-dialog title="新建文件夹" :visible.sync="dialogFormVisible">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm">
<el-form-item label="名称" :label-width="formLabelWidth" prop="name">
<el-input v-model="ruleForm.name" placeholder="请输入文件夹名称" auto-complete="off"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取 消</el-button>
<el-button type="primary" @click="_new('ruleForm')">确 定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
props: ['prop', 'cbRefresh'],
data() {
const validateName = (rule, value, callback) => {
if (value === '') {
callback(new Error('必填项'));
} else if (!value.match(/^[0-9a-zA-Z]{1,10}$/)) {
callback(new Error('1-10字,数字和字母'));
} else {
callback();
}
};
return {
dialogFormVisible: false,
ruleForm: {
name: ''
},
rules: {
name: [
{ validator: validateName, trigger: 'blur' }
]
},
formLabelWidth: '120px'
};
},
methods: {
_new(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.post(this.ruleForm.name);
this.dialogFormVisible = false;
} else {
console.log('error submit!!');
return false;
}
});
},
post(name) {
const {
path
} = this.prop;
this.$http.post('/oss/newFolder', { name, path }).then((response) => {
const {
dirs,
files,
code
} = response.data;
if (code === '0') {
this.$message.success('创建文件夹成功');
this.cbRefresh(path);
this.dirs = dirs;
this.files = files;
} else {
this.$message.error('创建文件夹失败');
}
}, (error) => {
console.log(error)
});
}
}
};
</script>
...@@ -11,16 +11,16 @@ ...@@ -11,16 +11,16 @@
</template> </template>
<script> <script>
import CookieUtil from "comcomp/utils/CookieUtil"; import cookie from 'utils/cookie';
export default { export default {
data() { data() {
const hrefArray = window.location.href.split("/"); const hrefArray = window.location.href.split('/');
const activeIndex = hrefArray[hrefArray.length - 1]; const activeIndex = hrefArray[hrefArray.length - 1];
return { return {
activeIndex, activeIndex,
userName: "", userName: '',
user: "" user: ''
}; };
}, },
mounted() { mounted() {
...@@ -29,11 +29,11 @@ export default { ...@@ -29,11 +29,11 @@ export default {
}, },
methods: { methods: {
logout() { logout() {
CookieUtil.clearCookie("wdata-oss"); cookie.clearCookie('wdata-oss');
window.location.replace("/"); window.location.replace('/');
}, },
fetch() { fetch() {
this.$http.get("/user/info").then( this.$http.get('/user/info').then(
response => { response => {
const { data } = response.data; const { data } = response.data;
this.userName = data; this.userName = data;
...@@ -44,7 +44,7 @@ export default { ...@@ -44,7 +44,7 @@ export default {
); );
}, },
fetchUser() { fetchUser() {
this.$http.get("/user/id").then( this.$http.get('/user/id').then(
response => { response => {
const { data } = response.data; const { data } = response.data;
this.user = data; this.user = data;
......
<template>
<div class="oss-list wrap">
<NavHeader></NavHeader>
<div class="oss-container">
<el-form :model="ruleForm" :inline="true" :rules="rules" ref="ruleForm" class="search-tool">
<el-form-item label="路径" prop="path">
<el-input v-model="ruleForm.path" placeholder="请输入路径" size="small"></el-input>
</el-form-item>
<el-button class="search" type="primary" @click="_submitForm('ruleForm')" icon="search" size="small">搜索</el-button>
</el-form>
<el-table ref="multipleTable" :data="tableData" highlight-current-row @selection-change="handleSelectionChange" @row-click="_rowClick" stripe style="width: 100%" height="800">
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column prop="name" label="文件名" width="150">
</el-table-column>
<el-table-column prop="path" label="路径">
</el-table-column>
<el-table-column prop="type" label="类型" width="125">
</el-table-column>
<el-table-column prop="size" label="大小" width="80">
</el-table-column>
<el-table-column prop="owner" label="操作者" width="80">
</el-table-column>
<el-table-column label="操作时间" width="180">
<template slot-scope="scope">
<div title="新增时间">{{ scope.row.createdAt }}</div>
<div title="修改时间">{{ scope.row.updatedAt }} </div>
</template>
</el-table-column>
<el-table-column prop="path" label="复制" width="65">
<template slot-scope="scope">
<el-tooltip class="item" effect="light" :enterable="false" content="点击复制完整路径" placement="top-start">
<button class="btn" v-bind:data-clipboard-text="domainPrefix + scope.row.path">
<img class="clippy" width="13" src="//yun.duiba.com.cn/tuia/cdn/clippy.svg">
</button>
</el-tooltip>
</template>
</el-table-column>
<el-table-column prop="sync" label="状态" width="65">
<template slot-scope="scope">
<el-button @click.native.prevent="_syncRow(scope.$index, tableData)" type="text" size="small">
{{scope.row.sync && (!(user === 'tuia' || user === 'duiba' || user === 'baiqi' || user === 'wawa')) ? '' : '同步'}}
</el-button>
</template>
</el-table-column>
<el-table-column label="操作" width="80">
<template slot-scope="scope">
<el-button @click.native.prevent="_deleteRow(scope.$index, tableData)" type="text" size="small">
移除
</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination @size-change="_sizeChange" @current-change="_pageChange" :current-page="currentPage" :page-size="pageSize" :page-sizes="[20, 50, 100, 200]" layout="total, sizes, prev, pager, next, jumper" :total="totalCount">
</el-pagination>
</div>
</div>
</template>
<script>
import NavHeader from '../NavHeader.vue';
import { Message, Loading } from 'element-ui';
import Clipboard from 'clipboard';
import DateUtil from 'comcomp/utils/DateUtil.js';
let clipboard;
export default {
data() {
return {
ruleForm: {
path: ''
},
rules: {
path: [
{ min: 0, max: 99, message: '不超过99', trigger: 'blur' }
]
},
user: '',
currentPage: 1,
pageSize: 20,
totalCount: 0,
tableData: [],
user: '',
multipleSelection: [],
domainPrefix: null
}
},
mounted() {
this.refresh();
this.fetchUser();
this.getPrefix();
clipboard = new Clipboard('.btn');
clipboard.on('success', (e) => {
this.$message('已复制到剪贴板');
e.clearSelection();
});
clipboard.on('error', (e) => {
this.$message.error('复制失败');
});
},
beforeDestroy() {
clipboard.destroy();
},
methods: {
handleSelectionChange(val) {
this.multipleSelection = val;
},
_rowClick(row, event, column) {
this.$refs.multipleTable.toggleRowSelection(row);
},
_submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
console.log(this.ruleForm.path);
this.currentPage = 1;
this.refresh();
} else {
console.log('error submit!!');
return false;
}
});
},
_pageChange(val) {
this.currentPage = val;
this.refresh();
},
_sizeChange(val) {
this.pageSize = val;
this.refresh();
},
_deleteRow(index, rows) {
const { id } = rows[index];
this.$http.post('/todo/delete', { id }).then((response) => {
const {
code
} = response.data || {};
if (!+code) {
this.$message.success('删除成功');
this.refresh();
} else {
this.$message.error('删除失败');
}
}, (error) => {
this.$message.error('删除失败,网络错误');
throw error;
});
},
_batchDelete() {
if (this.multipleSelection.length === 0) {
this.$message.warning('请至少选择一条');
return;
}
const ids = this.multipleSelection.map((item) => item.id);
this.$http.post('/todo/batchDelete', {ids}).then((response) => {
const {
code
} = response.data;
if (!+code) {
this.$message.success('批量删除成功');
this.refresh();
} else {
this.$message.error('批量删除失败');
}
}, (error) => {
this.$message.error('批量删除失败,网络错误');
throw error;
});
},
_syncRow(index, rows) {
const { id } = rows[index];
this.$http.post('/todo/sync', { id }).then((response) => {
const {
code
} = response.data;
if (!+code) {
this.$message.success('同步成功');
this.refresh();
} else {
this.$message.error('同步失败');
}
}, (error) => {
this.$message.error('同步失败,网络错误');
throw error;
});
},
_batchSync() {
if (this.multipleSelection.length === 0) {
this.$message.warning('请至少选择一条');
return;
}
if (!(this.user === 'tuia' || this.user === 'duiba' || this.user === 'baiqi' || this.user === 'wawa')) {
if (this.multipleSelection.some(item => !!item.sync)) {
this.$message.warning('不允许同步已经同步过的');
return;
}
}
const ids = this.multipleSelection.map((item) => item.id);
this.$http.post('/todo/batchSync', {ids}).then((response) => {
const {
code
} = response.data;
if (!+code) {
this.$message.success('批量同步成功');
this.refresh();
} else {
this.$message.error('批量同步失败');
}
}, (error) => {
this.$message.error('批量同步失败,网络错误');
throw error;
});
},
refresh() {
this.fetch(this.currentPage, this.pageSize, this.ruleForm.path);
},
getPrefix() {
this.$http.get('/oss/prefix?env=test', {}, {
emulateJSON: true
}).then((response) => {
this.domainPrefix = response.data.prefix + '/';
}, (error) => {
console.log(error)
});
},
fetch(currentPage, pageSize, path = '') {
const loadingInstance = Loading.service({ fullscreen: true });
this.$http.get('/todo/list', { params: { currentPage, pageSize, path } }, {
emulateJSON: true
}).then((response) => {
const {
data,
code,
totalCount,
desc
} = response.data;
if (!+code) {
data.map((item, index) => {
const format = 'yyyy/MM/dd hh:mm:ss';
item.createdAt = DateUtil.dateFormat(item.createdAt, format);
item.updatedAt = DateUtil.dateFormat(item.updatedAt, format);
item.index = index;
return item;
});
} else {
console.log(desc);
}
this.totalCount = totalCount;
this.tableData = data;
loadingInstance.close();
}, (error) => {
this.$message.error('网络错误');
loadingInstance.close();
});
},
fetchUser() {
this.$http.get("/user/id").then(
response => {
const { data } = response.data;
this.user = data;
},
error => {
console.log(error);
}
);
}
},
components: {
NavHeader
}
}
</script>
<style>
.el-pagination {
float: right;
margin-top: 20px;
}
.el-form-item {
margin-bottom: 0;
vertical-align: middle !important;
}
.search {
vertical-align: middle;
}
.search-tool {
float: right;
}
.batch-tool {
float: left;
}
.btn {
padding: 2px 6px;
margin-right: 8px;
}
</style>
<template lang="html"> <template lang="html">
<div class="wrap" @drop.prevent @dragover.prevent @dragleave.prevent> <div class="wrap" @drop.prevent @dragover.prevent @dragleave.prevent>
<NavHeader></NavHeader> <Nav></Nav>
<DirTree></DirTree> <Chart></Chart>
</div> </div>
</template> </template>
<script> <script>
import DirTree from './DirTree.vue' import Chart from './chart.vue';
import NavHeader from '../NavHeader.vue'; import Nav from '../nav.vue';
export default { export default {
data: () => ({ components: {
msg: 'OSS文件管理' Chart,
}), Nav
components: { }
DirTree, };
NavHeader
}
}
</script> </script>
<style lang="css"> <style lang="css">
.content { .content {
padding: 20px 50px; padding: 20px 50px;
} }
.button-group { .button-group {
margin-bottom: 15px; margin-bottom: 15px;
} }
</style> </style>
import Vue from 'vue' import Vue from 'vue';
import VueRouter from "vue-router" import VueRouter from 'vue-router';
import VueResource from 'vue-resource' import VueResource from 'vue-resource';
import ElementUI from 'element-ui' import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css' import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue' import App from './App.vue';
import Index from './components/trend/Index.vue' import Index from './components/trend/index.vue';
import Todo from './components/todo/Index.vue'
import History from './components/history/Index.vue'
import Force from './components/force/Index.vue'
import 'comstyle/layout.less'; import 'comstyle/layout.less';
Vue.use(VueRouter) Vue.use(VueRouter);
Vue.use(VueResource) Vue.use(VueResource);
Vue.use(ElementUI) Vue.use(ElementUI);
const router = new VueRouter({ const router = new VueRouter({
base: __dirname, base: __dirname,
routes: [{ routes: [
path: '/', {
redirect: '/home' path: '/',
}, { redirect: '/home'
path: '/home', },
component: Index, {
meta: { path: '/home',
// 需要补全链接 component: Index,
shouldComplementary: true meta: {
// 需要补全链接
shouldComplementary: true
}
} }
}, ]
{ });
path: '/list',
component: Todo
}, {
path: '/log',
component: History
}, {
path: '/force',
component: Force
}]
})
new Vue({ new Vue({
el: '#app', el: '#app',
router: router, router: router,
render: h => h(App) render: h => h(App)
}) });
...@@ -8,39 +8,39 @@ ...@@ -8,39 +8,39 @@
<script> <script>
export default { export default {
data() { data() {
const hrefArray = window.location.href.split('/'); const hrefArray = window.location.href.split('/');
const activeIndex = hrefArray[hrefArray.length - 1]; const activeIndex = hrefArray[hrefArray.length - 1];
return { return {
activeIndex activeIndex
}; };
}, },
methods: { methods: {
handleSelect(key, keyPath) { handleSelect(key, keyPath) {
console.log(key, keyPath); console.log(key, keyPath);
}
} }
} }
};
</script> </script>
<style lang="css"> <style lang="css">
.nav-title { .nav-title {
position: relative; position: relative;
float: left; float: left;
margin: 13px; margin: 13px;
color: #fff; color: #fff;
} }
.el-menu { .el-menu {
padding: 0 20px; padding: 0 20px;
} }
.el-menu-item { .el-menu-item {
font-size: 16px; font-size: 16px;
color: #fff !important; color: #fff !important;
} }
.el-menu-item:hover { .el-menu-item:hover {
background-color: transparent !important; background-color: transparent !important;
} }
</style> </style>
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
</template> </template>
<script> <script>
import NavHeader from '../NavHeader.vue'; import Nav from '../nav.vue';
import { Message, Loading } from 'element-ui'; import { Message, Loading } from 'element-ui';
export default { export default {
...@@ -96,7 +96,7 @@ export default { ...@@ -96,7 +96,7 @@ export default {
} }
}, },
components: { components: {
NavHeader Nav
} }
} }
</script> </script>
......
<template lang="html"> <template lang="html">
<div> <div>
<!-- <NavHeader /> --> <!-- <Nav /> -->
<div class="login-wrap"> <div class="login-wrap">
<el-form :model="ruleForm" label-position="top" :rules="rules" ref="ruleForm" label-width="100px" class="signin-ruleForm"> <el-form :model="ruleForm" label-position="top" :rules="rules" ref="ruleForm" label-width="100px" class="signin-ruleForm">
<el-form-item style="text-align:center;"> <el-form-item style="text-align:center;">
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</template> </template>
<script> <script>
import NavHeader from '../NavHeader.vue'; import Nav from '../nav.vue';
import { Message, Loading } from 'element-ui'; import { Message, Loading } from 'element-ui';
export default { export default {
...@@ -135,7 +135,7 @@ export default { ...@@ -135,7 +135,7 @@ export default {
} }
}, },
components: { components: {
NavHeader Nav
} }
} }
</script> </script>
......
import Vue from 'vue' import Vue from 'vue';
import VueRouter from "vue-router" import VueRouter from 'vue-router';
import VueResource from 'vue-resource' import VueResource from 'vue-resource';
import ElementUI from 'element-ui' import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css' import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue' import App from './App.vue';
import Signin from './components/signin/Signin.vue' import Signin from './components/signin';
import Signup from './components/signup/Signup.vue' import Signup from './components/signup';
Vue.use(VueRouter) Vue.use(VueRouter);
Vue.use(VueResource) Vue.use(VueResource);
Vue.use(ElementUI) Vue.use(ElementUI);
const router = new VueRouter({ const router = new VueRouter({
// mode: 'history', // mode: 'history',
base: __dirname, base: __dirname,
routes: [{ routes: [
path: '/', {
redirect: '/signin' path: '/',
}, { redirect: '/signin'
path: '/signin', },
component: Signin {
}, { path: '/signin',
path: '/signup', component: Signin
component: Signup },
}] {
}) path: '/signup',
component: Signup
}
]
});
new Vue({ new Vue({
el: '#app', el: '#app',
router: router, router: router,
render: h => h(App) render: h => h(App)
}) });
.oss-container { .total-container {
padding: 30px 50px 0; padding: 30px 50px 0;
} }
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@babel/code-frame@7.0.0-beta.42", "@babel/code-frame@^7.0.0-beta.40":
version "7.0.0-beta.42"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.42.tgz#a9c83233fa7cd06b39dc77adbb908616ff4f1962"
dependencies:
"@babel/highlight" "7.0.0-beta.42"
"@babel/generator@7.0.0-beta.42":
version "7.0.0-beta.42"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.42.tgz#777bb50f39c94a7e57f73202d833141f8159af33"
dependencies:
"@babel/types" "7.0.0-beta.42"
jsesc "^2.5.1"
lodash "^4.2.0"
source-map "^0.5.0"
trim-right "^1.0.1"
"@babel/helper-function-name@7.0.0-beta.42":
version "7.0.0-beta.42"
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.42.tgz#b38b8f4f85168d1812c543dd700b5d549b0c4658"
dependencies:
"@babel/helper-get-function-arity" "7.0.0-beta.42"
"@babel/template" "7.0.0-beta.42"
"@babel/types" "7.0.0-beta.42"
"@babel/helper-get-function-arity@7.0.0-beta.42":
version "7.0.0-beta.42"
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.42.tgz#ad072e32f912c033053fc80478169aeadc22191e"
dependencies:
"@babel/types" "7.0.0-beta.42"
"@babel/helper-split-export-declaration@7.0.0-beta.42":
version "7.0.0-beta.42"
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.42.tgz#0d0d5254220a9cc4e7e226240306b939dc210ee7"
dependencies:
"@babel/types" "7.0.0-beta.42"
"@babel/highlight@7.0.0-beta.42":
version "7.0.0-beta.42"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.42.tgz#a502a1c0d6f99b2b0e81d468a1b0c0e81e3f3623"
dependencies:
chalk "^2.0.0"
esutils "^2.0.2"
js-tokens "^3.0.0"
"@babel/template@7.0.0-beta.42":
version "7.0.0-beta.42"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.42.tgz#7186d4e70d44cdec975049ba0a73bdaf5cdee052"
dependencies:
"@babel/code-frame" "7.0.0-beta.42"
"@babel/types" "7.0.0-beta.42"
babylon "7.0.0-beta.42"
lodash "^4.2.0"
"@babel/traverse@^7.0.0-beta.40":
version "7.0.0-beta.42"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.42.tgz#f4bf4d1e33d41baf45205e2d0463591d57326285"
dependencies:
"@babel/code-frame" "7.0.0-beta.42"
"@babel/generator" "7.0.0-beta.42"
"@babel/helper-function-name" "7.0.0-beta.42"
"@babel/helper-split-export-declaration" "7.0.0-beta.42"
"@babel/types" "7.0.0-beta.42"
babylon "7.0.0-beta.42"
debug "^3.1.0"
globals "^11.1.0"
invariant "^2.2.0"
lodash "^4.2.0"
"@babel/types@7.0.0-beta.42", "@babel/types@^7.0.0-beta.40":
version "7.0.0-beta.42"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.42.tgz#1e2118767684880f6963801b272fd2b3348efacc"
dependencies:
esutils "^2.0.2"
lodash "^4.2.0"
to-fast-properties "^2.0.0"
acorn-jsx@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
dependencies:
acorn "^3.0.4"
acorn@^3.0.4:
version "3.3.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
acorn@^5.5.0:
version "5.5.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9"
ajv-keywords@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
ajv@^5.2.3, ajv@^5.3.0:
version "5.5.2"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
dependencies:
co "^4.6.0"
fast-deep-equal "^1.0.0"
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.3.0"
ansi-escapes@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30"
ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
ansi-styles@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
dependencies:
color-convert "^1.9.0"
any-promise@^1.0.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
dependencies:
sprintf-js "~1.0.2"
array-includes@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d"
dependencies:
define-properties "^1.1.2"
es-abstract "^1.7.0"
array-union@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
dependencies:
array-uniq "^1.0.1"
array-uniq@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
arrify@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
asap@~2.0.3:
version "2.0.6"
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
babel-code-frame@^6.22.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
dependencies:
chalk "^1.1.3"
esutils "^2.0.2"
js-tokens "^3.0.2"
babel-eslint@^8.2.2:
version "8.2.2"
resolved "http://registry.npmjs.org/babel-eslint/-/babel-eslint-8.2.2.tgz#1102273354c6f0b29b4ea28a65f97d122296b68b"
dependencies:
"@babel/code-frame" "^7.0.0-beta.40"
"@babel/traverse" "^7.0.0-beta.40"
"@babel/types" "^7.0.0-beta.40"
babylon "^7.0.0-beta.40"
eslint-scope "~3.7.1"
eslint-visitor-keys "^1.0.0"
babylon@7.0.0-beta.42, babylon@^7.0.0-beta.40:
version "7.0.0-beta.42"
resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.42.tgz#67cfabcd4f3ec82999d29031ccdea89d0ba99657"
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
big.js@^3.1.3:
version "3.2.0"
resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
buffer-from@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531"
caller-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
dependencies:
callsites "^0.2.0"
callsites@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
chalk@^1.0.0, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
dependencies:
ansi-styles "^2.2.1"
escape-string-regexp "^1.0.2"
has-ansi "^2.0.0"
strip-ansi "^3.0.0"
supports-color "^2.0.0"
chalk@^2.0.0, chalk@^2.1.0:
version "2.3.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65"
dependencies:
ansi-styles "^3.2.1"
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
chardet@^0.4.0:
version "0.4.2"
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
circular-json@^0.3.1:
version "0.3.3"
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
cli-cursor@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
dependencies:
restore-cursor "^2.0.0"
cli-width@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
color-convert@^1.9.0:
version "1.9.1"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed"
dependencies:
color-name "^1.1.1"
color-name@^1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
concat-stream@^1.6.0:
version "1.6.2"
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
dependencies:
buffer-from "^1.0.0"
inherits "^2.0.3"
readable-stream "^2.2.2"
typedarray "^0.0.6"
core-js@^1.0.0:
version "1.2.7"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
cross-spawn@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
dependencies:
lru-cache "^4.0.1"
shebang-command "^1.2.0"
which "^1.2.9"
debug@^2.6.3, debug@^2.6.8:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
dependencies:
ms "2.0.0"
debug@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
dependencies:
ms "2.0.0"
deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
define-properties@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
dependencies:
foreach "^2.0.5"
object-keys "^1.0.8"
del@^2.0.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
dependencies:
globby "^5.0.0"
is-path-cwd "^1.0.0"
is-path-in-cwd "^1.0.0"
object-assign "^4.0.1"
pify "^2.0.0"
pinkie-promise "^2.0.0"
rimraf "^2.2.8"
depd@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
doctrine@^2.0.2, doctrine@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
dependencies:
esutils "^2.0.2"
dom-serializer@0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
dependencies:
domelementtype "~1.1.1"
entities "~1.1.1"
domelementtype@1, domelementtype@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2"
domelementtype@~1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b"
domhandler@^2.3.0:
version "2.4.1"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259"
dependencies:
domelementtype "1"
domutils@^1.5.1:
version "1.7.0"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
dependencies:
dom-serializer "0"
domelementtype "1"
emojis-list@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
encoding@^0.1.11:
version "0.1.12"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
dependencies:
iconv-lite "~0.4.13"
entities@^1.1.1, entities@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
es-abstract@^1.7.0:
version "1.11.0"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.11.0.tgz#cce87d518f0496893b1a30cd8461835535480681"
dependencies:
es-to-primitive "^1.1.1"
function-bind "^1.1.1"
has "^1.0.1"
is-callable "^1.1.3"
is-regex "^1.0.4"
es-to-primitive@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
dependencies:
is-callable "^1.1.1"
is-date-object "^1.0.1"
is-symbol "^1.0.1"
escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
eslint-config-standard@^5.1.0:
version "5.3.5"
resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-5.3.5.tgz#2b42bb5c9f0049b8527868e109c34ee22b13dcf6"
eslint-friendly-formatter@^2.0.5:
version "2.0.7"
resolved "https://registry.yarnpkg.com/eslint-friendly-formatter/-/eslint-friendly-formatter-2.0.7.tgz#657f95a19af4989636afebb1cc9de6cebbd088ee"
dependencies:
chalk "^1.0.0"
extend "^3.0.0"
minimist "^1.2.0"
text-table "^0.2.0"
eslint-loader@^1.3.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-1.9.0.tgz#7e1be9feddca328d3dcfaef1ad49d5beffe83a13"
dependencies:
loader-fs-cache "^1.0.0"
loader-utils "^1.0.2"
object-assign "^4.0.1"
object-hash "^1.1.4"
rimraf "^2.6.1"
eslint-plugin-html@^1.3.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-html/-/eslint-plugin-html-1.7.0.tgz#2a5b03884d8d56adf9ad9864e9c036480fb629c9"
dependencies:
htmlparser2 "^3.8.2"
eslint-plugin-promise@^1.0.8:
version "1.3.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-1.3.2.tgz#fce332d6f5ff523200a537704863ec3c2422ba7c"
eslint-plugin-react@^7.7.0:
version "7.7.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz#f606c719dbd8a1a2b3d25c16299813878cca0160"
dependencies:
doctrine "^2.0.2"
has "^1.0.1"
jsx-ast-utils "^2.0.1"
prop-types "^15.6.0"
eslint-plugin-standard@^1.3.2:
version "1.3.3"
resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-1.3.3.tgz#a3085451523431e76f409c70cb8f94e32bf0ec7f"
eslint-scope@^3.7.1, eslint-scope@~3.7.1:
version "3.7.1"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
dependencies:
esrecurse "^4.1.0"
estraverse "^4.1.1"
eslint-visitor-keys@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
eslint@^4.19.1:
version "4.19.1"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300"
dependencies:
ajv "^5.3.0"
babel-code-frame "^6.22.0"
chalk "^2.1.0"
concat-stream "^1.6.0"
cross-spawn "^5.1.0"
debug "^3.1.0"
doctrine "^2.1.0"
eslint-scope "^3.7.1"
eslint-visitor-keys "^1.0.0"
espree "^3.5.4"
esquery "^1.0.0"
esutils "^2.0.2"
file-entry-cache "^2.0.0"
functional-red-black-tree "^1.0.1"
glob "^7.1.2"
globals "^11.0.1"
ignore "^3.3.3"
imurmurhash "^0.1.4"
inquirer "^3.0.6"
is-resolvable "^1.0.0"
js-yaml "^3.9.1"
json-stable-stringify-without-jsonify "^1.0.1"
levn "^0.3.0"
lodash "^4.17.4"
minimatch "^3.0.2"
mkdirp "^0.5.1"
natural-compare "^1.4.0"
optionator "^0.8.2"
path-is-inside "^1.0.2"
pluralize "^7.0.0"
progress "^2.0.0"
regexpp "^1.0.1"
require-uncached "^1.0.3"
semver "^5.3.0"
strip-ansi "^4.0.0"
strip-json-comments "~2.0.1"
table "4.0.2"
text-table "~0.2.0"
espree@^3.5.4:
version "3.5.4"
resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7"
dependencies:
acorn "^5.5.0"
acorn-jsx "^3.0.0"
esprima@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
esquery@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa"
dependencies:
estraverse "^4.0.0"
esrecurse@^4.1.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
dependencies:
estraverse "^4.1.0"
estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
version "4.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
extend@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
external-editor@^2.0.4:
version "2.1.0"
resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48"
dependencies:
chardet "^0.4.0"
iconv-lite "^0.4.17"
tmp "^0.0.33"
fast-deep-equal@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
fast-json-stable-stringify@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
fast-levenshtein@~2.0.4:
version "2.0.6"
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
fbjs@^0.8.16:
version "0.8.16"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db"
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"
setimmediate "^1.0.5"
ua-parser-js "^0.7.9"
figures@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
dependencies:
escape-string-regexp "^1.0.5"
file-entry-cache@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
dependencies:
flat-cache "^1.2.1"
object-assign "^4.0.1"
find-cache-dir@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/find-cache-dir/-/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:
version "1.1.2"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
dependencies:
path-exists "^2.0.0"
pinkie-promise "^2.0.0"
flat-cache@^1.2.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
dependencies:
circular-json "^0.3.1"
del "^2.0.2"
graceful-fs "^4.1.2"
write "^0.2.1"
foreach@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
function-bind@^1.0.2, function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
functional-red-black-tree@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
glob@^7.0.3, glob@^7.0.5, glob@^7.1.2:
version "7.1.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
minimatch "^3.0.4"
once "^1.3.0"
path-is-absolute "^1.0.0"
globals@^11.0.1, globals@^11.1.0:
version "11.4.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.4.0.tgz#b85c793349561c16076a3c13549238a27945f1bc"
globby@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
dependencies:
array-union "^1.0.1"
arrify "^1.0.0"
glob "^7.0.3"
object-assign "^4.0.1"
pify "^2.0.0"
pinkie-promise "^2.0.0"
graceful-fs@^4.1.2:
version "4.1.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
has-ansi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
dependencies:
ansi-regex "^2.0.0"
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
has@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
dependencies:
function-bind "^1.0.2"
htmlparser2@^3.8.2:
version "3.9.2"
resolved "https://registry.yarnpkg.com/htmlparser2/-/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"
http-errors@^1.6.1, http-errors@~1.6.2:
version "1.6.2"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
dependencies:
depd "1.1.1"
inherits "2.0.3"
setprototypeof "1.0.3"
statuses ">= 1.3.1 < 2"
iconv-lite@^0.4.17, iconv-lite@~0.4.13:
version "0.4.19"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
ignore@^3.3.3:
version "3.3.7"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021"
imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
dependencies:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
inquirer@^3.0.6:
version "3.3.0"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
dependencies:
ansi-escapes "^3.0.0"
chalk "^2.0.0"
cli-cursor "^2.1.0"
cli-width "^2.0.0"
external-editor "^2.0.4"
figures "^2.0.0"
lodash "^4.3.0"
mute-stream "0.0.7"
run-async "^2.2.0"
rx-lite "^4.0.8"
rx-lite-aggregates "^4.0.8"
string-width "^2.1.0"
strip-ansi "^4.0.0"
through "^2.3.6"
invariant@^2.2.0:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
dependencies:
loose-envify "^1.0.0"
is-callable@^1.1.1, is-callable@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
is-date-object@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
is-fullwidth-code-point@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
is-path-cwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
is-path-in-cwd@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52"
dependencies:
is-path-inside "^1.0.0"
is-path-inside@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
dependencies:
path-is-inside "^1.0.1"
is-promise@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
is-regex@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
dependencies:
has "^1.0.1"
is-resolvable@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
is-stream@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
is-symbol@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
isomorphic-fetch@^2.1.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
dependencies:
node-fetch "^1.0.1"
whatwg-fetch ">=0.10.0"
js-tokens@^3.0.0, js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
js-yaml@^3.9.1:
version "3.11.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef"
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
jsesc@^2.5.1:
version "2.5.1"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe"
json-schema-traverse@^0.3.0:
version "0.3.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
json-stable-stringify-without-jsonify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
json5@^0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
jsx-ast-utils@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f"
dependencies:
array-includes "^3.0.3"
koa-send@^4.1.0:
version "4.1.3"
resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-4.1.3.tgz#0822207bbf5253a414c8f1765ebc29fa41353cb6"
dependencies:
debug "^2.6.3"
http-errors "^1.6.1"
mz "^2.6.0"
resolve-path "^1.4.0"
koa-static@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/koa-static/-/koa-static-4.0.2.tgz#6cda92d88d771dcaad9f0d825cd94a631c861a1a"
dependencies:
debug "^2.6.8"
koa-send "^4.1.0"
levn@^0.3.0, levn@~0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
dependencies:
prelude-ls "~1.1.2"
type-check "~0.3.2"
loader-fs-cache@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz#56e0bf08bd9708b26a765b68509840c8dec9fdbc"
dependencies:
find-cache-dir "^0.1.1"
mkdirp "0.5.1"
loader-utils@^1.0.2:
version "1.1.0"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
dependencies:
big.js "^3.1.3"
emojis-list "^2.0.0"
json5 "^0.5.0"
lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0:
version "4.17.5"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
loose-envify@^1.0.0, loose-envify@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
dependencies:
js-tokens "^3.0.0"
lru-cache@^4.0.1:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f"
dependencies:
pseudomap "^1.0.2"
yallist "^2.1.2"
mimic-fn@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
minimatch@^3.0.2, minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
dependencies:
brace-expansion "^1.1.7"
minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
mkdirp@0.5.1, mkdirp@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
minimist "0.0.8"
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
mute-stream@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
mz@^2.6.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
dependencies:
any-promise "^1.0.0"
object-assign "^4.0.1"
thenify-all "^1.0.0"
natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
node-fetch@^1.0.1:
version "1.7.3"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
dependencies:
encoding "^0.1.11"
is-stream "^1.0.1"
object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
object-hash@^1.1.4:
version "1.3.0"
resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.0.tgz#76d9ba6ff113cf8efc0d996102851fe6723963e2"
object-keys@^1.0.8:
version "1.0.11"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
once@^1.3.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
dependencies:
wrappy "1"
onetime@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
dependencies:
mimic-fn "^1.0.0"
optionator@^0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
dependencies:
deep-is "~0.1.3"
fast-levenshtein "~2.0.4"
levn "~0.3.0"
prelude-ls "~1.1.2"
type-check "~0.3.2"
wordwrap "~1.0.0"
os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
path-exists@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
dependencies:
pinkie-promise "^2.0.0"
path-is-absolute@1.0.1, path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
path-is-inside@^1.0.1, path-is-inside@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
pify@^2.0.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
pinkie-promise@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
dependencies:
pinkie "^2.0.0"
pinkie@^2.0.0:
version "2.0.4"
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
pkg-dir@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
dependencies:
find-up "^1.0.0"
pluralize@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
process-nextick-args@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
progress@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
promise@^7.1.1:
version "7.3.1"
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
dependencies:
asap "~2.0.3"
prop-types@^15.6.0:
version "15.6.1"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.1.tgz#36644453564255ddda391191fb3a125cbdf654ca"
dependencies:
fbjs "^0.8.16"
loose-envify "^1.3.1"
object-assign "^4.1.1"
pseudomap@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
readable-stream@^2.0.2, readable-stream@^2.2.2:
version "2.3.5"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d"
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
isarray "~1.0.0"
process-nextick-args "~2.0.0"
safe-buffer "~5.1.1"
string_decoder "~1.0.3"
util-deprecate "~1.0.1"
regexpp@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.0.1.tgz#d857c3a741dce075c2848dcb019a0a975b190d43"
require-uncached@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
dependencies:
caller-path "^0.1.0"
resolve-from "^1.0.0"
resolve-from@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
resolve-path@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7"
dependencies:
http-errors "~1.6.2"
path-is-absolute "1.0.1"
restore-cursor@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
dependencies:
onetime "^2.0.0"
signal-exit "^3.0.2"
rimraf@^2.2.8, rimraf@^2.6.1:
version "2.6.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
dependencies:
glob "^7.0.5"
run-async@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
dependencies:
is-promise "^2.1.0"
rx-lite-aggregates@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
dependencies:
rx-lite "*"
rx-lite@*, rx-lite@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
semver@^5.3.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
setprototypeof@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
shebang-command@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
dependencies:
shebang-regex "^1.0.0"
shebang-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
signal-exit@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
slice-ansi@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
dependencies:
is-fullwidth-code-point "^2.0.0"
source-map@^0.5.0:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
"statuses@>= 1.3.1 < 2":
version "1.4.0"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
string-width@^2.1.0, string-width@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
dependencies:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
string_decoder@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
dependencies:
safe-buffer "~5.1.0"
strip-ansi@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
dependencies:
ansi-regex "^2.0.0"
strip-ansi@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
dependencies:
ansi-regex "^3.0.0"
strip-json-comments@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
supports-color@^5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0"
dependencies:
has-flag "^3.0.0"
table@4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36"
dependencies:
ajv "^5.2.3"
ajv-keywords "^2.1.0"
chalk "^2.1.0"
lodash "^4.17.4"
slice-ansi "1.0.0"
string-width "^2.1.1"
text-table@^0.2.0, text-table@~0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
thenify-all@^1.0.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
dependencies:
thenify ">= 3.1.0 < 4"
"thenify@>= 3.1.0 < 4":
version "3.3.0"
resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839"
dependencies:
any-promise "^1.0.0"
through@^2.3.6:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
dependencies:
os-tmpdir "~1.0.2"
to-fast-properties@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
trim-right@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
type-check@~0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
dependencies:
prelude-ls "~1.1.2"
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
ua-parser-js@^0.7.9:
version "0.7.17"
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac"
util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
whatwg-fetch@>=0.10.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
which@^1.2.9:
version "1.3.0"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
dependencies:
isexe "^2.0.0"
wordwrap@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
write@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
dependencies:
mkdirp "^0.5.1"
yallist@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment