├── logs └── .gitkeep ├── .gitignore ├── routes ├── all.js ├── partion.js ├── bangumi.js ├── coin.js ├── user.js └── fav.js ├── index.js ├── tools ├── logger.js └── redis.js ├── package.json ├── README.md └── yarn.lock /logs/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | node_modules 3 | npm-debug.log 4 | bilibili2RSS.log* 5 | -------------------------------------------------------------------------------- /routes/all.js: -------------------------------------------------------------------------------- 1 | module.exports = function (req, res, next) { 2 | res.header('Access-Control-Allow-Origin', '*'); 3 | res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild'); 4 | res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS'); 5 | 6 | if (req.method == 'OPTIONS') { 7 | res.send(200); 8 | } 9 | else { 10 | next(); 11 | } 12 | }; -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var logger = require('./tools/logger'); 3 | 4 | logger.info(`🍻 bilibili2RSS start! Cheers!`); 5 | 6 | var app = express(); 7 | app.all('*', require('./routes/all')); 8 | app.get('/user/:uid', require('./routes/user')); 9 | app.get('/user/fav/:uid', require('./routes/fav')); 10 | app.get('/user/coin/:uid', require('./routes/coin')); 11 | app.get('/partion/:tid', require('./routes/partion')); 12 | app.get('/bangumi/:seasonid', require('./routes/bangumi')); 13 | app.listen(1203); -------------------------------------------------------------------------------- /tools/logger.js: -------------------------------------------------------------------------------- 1 | var log4js = require('log4js'); 2 | log4js.configure({ 3 | appenders: { 4 | bilibili2RSS: { 5 | type: 'file', 6 | filename: 'logs/bilibili2RSS.log', 7 | maxLogSize: 20480, 8 | backups: 3, 9 | compress: true 10 | }, 11 | console: { 12 | type: 'console' 13 | } 14 | }, 15 | categories: { default: { appenders: ['bilibili2RSS', 'console'], level: 'INFO' } } 16 | }); 17 | var logger = log4js.getLogger('bilibili2RSS'); 18 | 19 | module.exports = logger; -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bilibili2RSS", 3 | "version": "0.0.1", 4 | "description": "使用RSS订阅喜欢的 bilibili up主和番剧", 5 | "main": "index.js", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/DIYgod/bilibili2RSS.git" 9 | }, 10 | "keywords": [ 11 | "Weibo", 12 | "RSS" 13 | ], 14 | "author": "DIYgod", 15 | "license": "MIT", 16 | "bugs": { 17 | "url": "https://github.com/DIYgod/bilibili2RSS/issues" 18 | }, 19 | "homepage": "https://github.com/DIYgod/bilibili2RSS#readme", 20 | "devDependencies": {}, 21 | "dependencies": { 22 | "express": "^4.16.2", 23 | "log4js": "^2.3.5", 24 | "request": "^2.83.0" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /tools/redis.js: -------------------------------------------------------------------------------- 1 | var logger = require('./logger'); 2 | var redis = require("redis"); 3 | var client; 4 | if (process.env.REDIS_PORT_6379_TCP_ADDR && process.env.REDIS_PORT_6379_TCP_PORT) { 5 | client = redis.createClient({ 6 | host: process.env.REDIS_PORT_6379_TCP_ADDR, 7 | port: process.env.REDIS_PORT_6379_TCP_PORT 8 | }); 9 | } 10 | else { 11 | client = redis.createClient(); 12 | } 13 | 14 | 15 | client.on("error", function (err) { 16 | logger.error('Redis Error ' + err); 17 | }); 18 | 19 | module.exports = { 20 | set: function (key, value) { 21 | client.set(key, value, redis.print); 22 | client.expire(key, 86400); 23 | logger.info('Set redis: ' + key); 24 | }, 25 | client: client 26 | }; -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ⚠️ 此项目已被弃用并合入 [RSSHub](https://github.com/DIYgod/RSSHub),请使用 [RSSHub](https://github.com/DIYgod/RSSHub) 2 | 3 | # bilibili2RSS 4 | 5 | > 使用RSS订阅喜欢的 bilibili up主和番剧 6 | 7 | 8 | 9 | ## 使用 10 | 11 | 订阅UP主:https://api.prprpr.me/bilibili2rss/user/6997378 12 | 13 | 订阅UP主收藏夹:https://api.prprpr.me/bilibili2rss/user/fav/2267573 14 | 15 | 订阅UP主投币视频:https://api.prprpr.me/bilibili2rss/user/coin/2267573 16 | 17 | 订阅番剧:https://api.prprpr.me/bilibili2rss/bangumi/6446 18 | 19 | 订阅分区:https://api.prprpr.me/bilibili2rss/partion/33 20 | 21 | ## Author 22 | 23 | **bilibili2RSS** © [DIYgod](https://github.com/DIYgod), Released under the [MIT](./LICENSE) License.
24 | Authored and maintained by DIYgod with help from contributors ([list](https://github.com/DIYgod/DPlayer/contributors)). 25 | 26 | > Blog [@Anotherhome](https://www.anotherhome.net) · GitHub [@DIYgod](https://github.com/DIYgod) · Twitter [@DIYgod](https://twitter.com/DIYgod) · Telegram Channel [@awesomeDIYgod](https://t.me/awesomeDIYgod) -------------------------------------------------------------------------------- /routes/partion.js: -------------------------------------------------------------------------------- 1 | var logger = require('../tools/logger'); 2 | var request = require('request'); 3 | 4 | module.exports = function (req, res) { 5 | res.header('Content-Type', 'application/xml; charset=utf-8'); 6 | var tid = req.params.tid; 7 | 8 | request.post({ 9 | url: `https://api.bilibili.com/archive_rank/getarchiverankbypartion?tid=${tid}&pn=1`, 10 | headers: { 11 | 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36', 12 | 'Referer': `https://www.bilibili.com`, 13 | 'Origin': 'https://www.bilibili.com' 14 | } 15 | }, function (err, httpResponse, body) { 16 | const data = JSON.parse(body); 17 | const list = data.data.archives || []; 18 | let name = '未知'; 19 | if (list[0] && list[0].tname) { 20 | name = list[0].tname; 21 | } 22 | var rss = 23 | ` 24 | 25 | 26 | bilibili ${name}分区 27 | https://www.bilibili.com 28 | bilibili ${name} 分区 - 使用 bilibili2RSS(https://github.com/DIYgod/bilibili2RSS) 构建 29 | zh-cn 30 | ${new Date().toUTCString()} 31 | 300` 32 | for (var i = 0; i < list.length; i++) { 33 | rss += ` 34 | 35 | <![CDATA[${list[i].title} - ${list[i].author}]]> 36 | ]]> 37 | ${new Date(list[i].create).toUTCString()} 38 | https://www.bilibili.com/video/av${list[i].aid} 39 | https://www.bilibili.com/video/av${list[i].aid} 40 | ` 41 | } 42 | rss += ` 43 | 44 | ` 45 | 46 | res.send(rss); 47 | 48 | }); 49 | 50 | }; -------------------------------------------------------------------------------- /routes/bangumi.js: -------------------------------------------------------------------------------- 1 | var logger = require('../tools/logger'); 2 | var request = require('request'); 3 | 4 | module.exports = function (req, res) { 5 | res.header('Content-Type', 'application/xml; charset=utf-8'); 6 | 7 | var ip = req.headers['x-forwarded-for'] || 8 | req.connection.remoteAddress || 9 | req.socket.remoteAddress || 10 | req.connection.socket.remoteAddress; 11 | 12 | var seasonid = req.params.seasonid; 13 | 14 | logger.info(`bilibili2RSS seasonid ${seasonid}, IP: ${ip}`); 15 | 16 | request.get({ 17 | url: `https://bangumi.bilibili.com/jsonp/seasoninfo/${seasonid}.ver?callback=seasonListCallback&jsonp=jsonp&_=${+new Date()}`, 18 | headers: { 19 | 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36', 20 | 'Referer': `https://bangumi.bilibili.com/anime/${seasonid}/`, 21 | 'Origin': 'https://bangumi.bilibili.com' 22 | } 23 | }, function (err, httpResponse, body) { 24 | var data; 25 | try { 26 | data = JSON.parse(body.match(/^seasonListCallback\((.*)\);$/)[1]); 27 | } 28 | catch(e) { 29 | data = { 30 | result: { 31 | episodes: [] 32 | } 33 | } 34 | } 35 | var result = data.result || { 36 | episodes: [] 37 | }; 38 | var list = result.episodes; 39 | var rss = 40 | ` 41 | 42 | 43 | ${result.title} 44 | https://bangumi.bilibili.com/anime/${seasonid}/ 45 | ${result.evaluate} - 使用 bilibili2RSS(https://github.com/DIYgod/bilibili2RSS) 构建 46 | zh-cn 47 | ${new Date().toUTCString()} 48 | 300` 49 | for (var i = 0; i < list.length; i++) { 50 | rss += ` 51 | 52 | <![CDATA[第${list[i].index}话 ${list[i].index_title}]]> 53 | ]]> 54 | ${new Date(list[i].update_time).toUTCString()} 55 | ${list[i].webplay_url} 56 | ${list[i].webplay_url} 57 | ` 58 | } 59 | rss += ` 60 | 61 | ` 62 | res.send(rss); 63 | }); 64 | }; -------------------------------------------------------------------------------- /routes/coin.js: -------------------------------------------------------------------------------- 1 | var logger = require('../tools/logger'); 2 | var redis = require('../tools/redis'); 3 | var request = require('request'); 4 | 5 | module.exports = function (req, res) { 6 | res.header('Content-Type', 'application/xml; charset=utf-8'); 7 | 8 | var ip = req.headers['x-forwarded-for'] || 9 | req.connection.remoteAddress || 10 | req.socket.remoteAddress || 11 | req.connection.socket.remoteAddress; 12 | var name; 13 | 14 | var uid = req.params.uid; 15 | 16 | redis.client.get(`bilibiliuid${uid}`, function (err, reply) { 17 | if (reply) { 18 | logger.info(`bilibiliuid${uid} form redis, IP: ${ip}`); 19 | name = reply; 20 | getVideos(); 21 | } 22 | else { 23 | logger.info(`bilibiliuid${uid} form origin, IP: ${ip}`); 24 | request.post({ 25 | url: 'https://space.bilibili.com/ajax/member/GetInfo', 26 | headers: { 27 | 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36', 28 | 'Referer': `https://space.bilibili.com/${uid}/`, 29 | 'Origin': 'https://space.bilibili.com' 30 | }, 31 | form: { 32 | mid: uid 33 | } 34 | }, function (err, httpResponse, body) { 35 | name = JSON.parse(body).data.name; 36 | redis.set(`bilibiliuid${uid}`, name); 37 | getVideos(); 38 | }); 39 | } 40 | }); 41 | 42 | function getVideos () { 43 | logger.info(`bilibili2RSS uid ${uid}, IP: ${ip}`); 44 | 45 | request.get({ 46 | url: `https://space.bilibili.com/ajax/member/getCoinVideos?mid=${uid}`, 47 | headers: { 48 | 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36', 49 | 'Referer': `https://space.bilibili.com/${uid}/`, 50 | 'Origin': 'https://space.bilibili.com' 51 | } 52 | }, function (err, httpResponse, body) { 53 | const data = JSON.parse(body); 54 | const list = data.data.list || []; 55 | var rss = 56 | ` 57 | 58 | 59 | ${name}的bilibili投币视频 60 | https://space.bilibili.com/${uid} 61 | ${name}的bilibili投币视频,使用 bilibili2RSS(https://github.com/DIYgod/bilibili2RSS) 构建 62 | zh-cn 63 | ${new Date().toUTCString()} 64 | 300` 65 | for (var i = 0; i < list.length; i++) { 66 | rss += ` 67 | 68 | <![CDATA[${list[i].title}]]> 69 | ]]> 70 | https://www.bilibili.com/video/av${list[i].stat.aid} 71 | https://www.bilibili.com/video/av${list[i].stat.aid} 72 | ` 73 | } 74 | rss += ` 75 | 76 | ` 77 | res.send(rss); 78 | }); 79 | } 80 | }; -------------------------------------------------------------------------------- /routes/user.js: -------------------------------------------------------------------------------- 1 | var logger = require('../tools/logger'); 2 | var redis = require('../tools/redis'); 3 | var request = require('request'); 4 | 5 | module.exports = function (req, res) { 6 | res.header('Content-Type', 'application/xml; charset=utf-8'); 7 | 8 | var ip = req.headers['x-forwarded-for'] || 9 | req.connection.remoteAddress || 10 | req.socket.remoteAddress || 11 | req.connection.socket.remoteAddress; 12 | var name; 13 | 14 | var uid = req.params.uid; 15 | 16 | redis.client.get(`bilibiliuid${uid}`, function(err, reply) { 17 | if (reply) { 18 | logger.info(`bilibiliuid${uid} form redis, IP: ${ip}`); 19 | name = reply; 20 | getVideos(); 21 | } 22 | else { 23 | logger.info(`bilibiliuid${uid} form origin, IP: ${ip}`); 24 | request.post({ 25 | url: 'https://space.bilibili.com/ajax/member/GetInfo', 26 | headers: { 27 | 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36', 28 | 'Referer': `https://space.bilibili.com/${uid}/`, 29 | 'Origin': 'https://space.bilibili.com' 30 | }, 31 | form: { 32 | mid: uid 33 | } 34 | }, function (err, httpResponse, body) { 35 | name = JSON.parse(body).data.name; 36 | redis.set(`bilibiliuid${uid}`, name); 37 | getVideos(); 38 | }); 39 | } 40 | }); 41 | 42 | function getVideos () { 43 | logger.info(`bilibili2RSS uid ${uid}, IP: ${ip}`); 44 | 45 | request.get({ 46 | url: `https://space.bilibili.com/ajax/member/getSubmitVideos?mid=${uid}`, 47 | headers: { 48 | 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36', 49 | 'Referer': `https://space.bilibili.com/${uid}/`, 50 | 'Origin': 'https://space.bilibili.com' 51 | } 52 | }, function (err, httpResponse, body) { 53 | const data = JSON.parse(body); 54 | const list = data.data.vlist || []; 55 | var rss = 56 | ` 57 | 58 | 59 | ${name}的bilibili空间 60 | https://space.bilibili.com/${uid} 61 | ${name}的bilibili空间,使用 bilibili2RSS(https://github.com/DIYgod/bilibili2RSS) 构建 62 | zh-cn 63 | ${new Date().toUTCString()} 64 | 300` 65 | for (var i = 0; i < list.length; i++) { 66 | rss += ` 67 | 68 | <![CDATA[${list[i].title}]]> 69 | ]]> 70 | ${new Date(list[i].created * 1000).toUTCString()} 71 | https://www.bilibili.com/video/av${list[i].aid} 72 | https://www.bilibili.com/video/av${list[i].aid} 73 | ` 74 | } 75 | rss += ` 76 | 77 | ` 78 | res.send(rss); 79 | }); 80 | } 81 | }; -------------------------------------------------------------------------------- /routes/fav.js: -------------------------------------------------------------------------------- 1 | var logger = require('../tools/logger'); 2 | var redis = require('../tools/redis'); 3 | var request = require('request'); 4 | 5 | module.exports = function (req, res) { 6 | res.header('Content-Type', 'application/xml; charset=utf-8'); 7 | 8 | var ip = req.headers['x-forwarded-for'] || 9 | req.connection.remoteAddress || 10 | req.socket.remoteAddress || 11 | req.connection.socket.remoteAddress; 12 | var name; 13 | 14 | var uid = req.params.uid; 15 | 16 | redis.client.get(`bilibiliuid${uid}`, function (err, reply) { 17 | if (reply) { 18 | logger.info(`bilibiliuid${uid} form redis, IP: ${ip}`); 19 | name = reply; 20 | getVideos(); 21 | } 22 | else { 23 | logger.info(`bilibiliuid${uid} form origin, IP: ${ip}`); 24 | request.post({ 25 | url: 'https://space.bilibili.com/ajax/member/GetInfo', 26 | headers: { 27 | 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36', 28 | 'Referer': `https://space.bilibili.com/${uid}/`, 29 | 'Origin': 'https://space.bilibili.com' 30 | }, 31 | form: { 32 | mid: uid 33 | } 34 | }, function (err, httpResponse, body) { 35 | name = JSON.parse(body).data.name; 36 | redis.set(`bilibiliuid${uid}`, name); 37 | getVideos(); 38 | }); 39 | } 40 | }); 41 | 42 | function getVideos () { 43 | logger.info(`bilibili2RSS uid ${uid}, IP: ${ip}`); 44 | 45 | request.get({ 46 | url: `https://api.bilibili.com/x/v2/fav/video?vmid=${uid}&ps=30&tid=0&keyword=&pn=1&order=fav_time`, 47 | headers: { 48 | 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36', 49 | 'Referer': `https://space.bilibili.com/${uid}/#/favlist`, 50 | 'Origin': 'https://space.bilibili.com' 51 | } 52 | }, function (err, httpResponse, body) { 53 | const data = JSON.parse(body); 54 | const list = (data.data && data.data.archives) || []; 55 | var rss = 56 | ` 57 | 58 | 59 | ${name}的bilibili收藏夹 60 | https://space.bilibili.com/${uid}/#/favlist 61 | ${name}的bilibili收藏夹,使用 bilibili2RSS(https://github.com/DIYgod/bilibili2RSS) 构建 62 | zh-cn 63 | ${new Date().toUTCString()} 64 | 300` 65 | for (var i = 0; i < list.length; i++) { 66 | rss += ` 67 | 68 | <![CDATA[${list[i].title}]]> 69 | ]]> 70 | ${new Date(list[i].fav_at * 1000).toUTCString()} 71 | https://www.bilibili.com/video/av${list[i].aid} 72 | https://www.bilibili.com/video/av${list[i].aid} 73 | ` 74 | } 75 | rss += ` 76 | 77 | ` 78 | res.send(rss); 79 | }); 80 | } 81 | }; -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | accepts@~1.3.4: 6 | version "1.3.4" 7 | resolved "http://registry.npm.taobao.org/accepts/download/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" 8 | dependencies: 9 | mime-types "~2.1.16" 10 | negotiator "0.6.1" 11 | 12 | addressparser@1.0.1: 13 | version "1.0.1" 14 | resolved "http://registry.npm.taobao.org/addressparser/download/addressparser-1.0.1.tgz#47afbe1a2a9262191db6838e4fd1d39b40821746" 15 | 16 | agent-base@2: 17 | version "2.1.1" 18 | resolved "http://registry.npm.taobao.org/agent-base/download/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7" 19 | dependencies: 20 | extend "~3.0.0" 21 | semver "~5.0.1" 22 | 23 | ajv@^5.1.0: 24 | version "5.2.3" 25 | resolved "http://registry.npm.taobao.org/ajv/download/ajv-5.2.3.tgz#c06f598778c44c6b161abafe3466b81ad1814ed2" 26 | dependencies: 27 | co "^4.6.0" 28 | fast-deep-equal "^1.0.0" 29 | json-schema-traverse "^0.3.0" 30 | json-stable-stringify "^1.0.1" 31 | 32 | ansi-regex@^2.0.0: 33 | version "2.1.1" 34 | resolved "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 35 | 36 | ansi-styles@^2.2.1: 37 | version "2.2.1" 38 | resolved "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 39 | 40 | array-flatten@1.1.1: 41 | version "1.1.1" 42 | resolved "http://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 43 | 44 | asn1@~0.2.3: 45 | version "0.2.3" 46 | resolved "http://registry.npm.taobao.org/asn1/download/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 47 | 48 | assert-plus@1.0.0, assert-plus@^1.0.0: 49 | version "1.0.0" 50 | resolved "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 51 | 52 | assert-plus@^0.2.0: 53 | version "0.2.0" 54 | resolved "http://registry.npm.taobao.org/assert-plus/download/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" 55 | 56 | ast-types@0.x.x: 57 | version "0.9.14" 58 | resolved "http://registry.npm.taobao.org/ast-types/download/ast-types-0.9.14.tgz#d34ba5dffb9d15a44351fd2a9d82e4ab2838b5ba" 59 | 60 | async@~2.1.2: 61 | version "2.1.5" 62 | resolved "http://registry.npm.taobao.org/async/download/async-2.1.5.tgz#e587c68580994ac67fc56ff86d3ac56bdbe810bc" 63 | dependencies: 64 | lodash "^4.14.0" 65 | 66 | asynckit@^0.4.0: 67 | version "0.4.0" 68 | resolved "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 69 | 70 | aws-sign2@~0.6.0: 71 | version "0.6.0" 72 | resolved "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" 73 | 74 | aws-sign2@~0.7.0: 75 | version "0.7.0" 76 | resolved "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" 77 | 78 | aws4@^1.2.1, aws4@^1.6.0: 79 | version "1.6.0" 80 | resolved "http://registry.npm.taobao.org/aws4/download/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" 81 | 82 | axios@^0.15.3: 83 | version "0.15.3" 84 | resolved "http://registry.npm.taobao.org/axios/download/axios-0.15.3.tgz#2c9d638b2e191a08ea1d6cc988eadd6ba5bdc053" 85 | dependencies: 86 | follow-redirects "1.0.0" 87 | 88 | bcrypt-pbkdf@^1.0.0: 89 | version "1.0.1" 90 | resolved "http://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 91 | dependencies: 92 | tweetnacl "^0.14.3" 93 | 94 | bl@~1.1.2: 95 | version "1.1.2" 96 | resolved "http://registry.npm.taobao.org/bl/download/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398" 97 | dependencies: 98 | readable-stream "~2.0.5" 99 | 100 | body-parser@1.18.2: 101 | version "1.18.2" 102 | resolved "http://registry.npm.taobao.org/body-parser/download/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" 103 | dependencies: 104 | bytes "3.0.0" 105 | content-type "~1.0.4" 106 | debug "2.6.9" 107 | depd "~1.1.1" 108 | http-errors "~1.6.2" 109 | iconv-lite "0.4.19" 110 | on-finished "~2.3.0" 111 | qs "6.5.1" 112 | raw-body "2.3.2" 113 | type-is "~1.6.15" 114 | 115 | boom@2.x.x: 116 | version "2.10.1" 117 | resolved "http://registry.npm.taobao.org/boom/download/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" 118 | dependencies: 119 | hoek "2.x.x" 120 | 121 | boom@4.x.x: 122 | version "4.3.1" 123 | resolved "http://registry.npm.taobao.org/boom/download/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" 124 | dependencies: 125 | hoek "4.x.x" 126 | 127 | boom@5.x.x: 128 | version "5.2.0" 129 | resolved "http://registry.npm.taobao.org/boom/download/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" 130 | dependencies: 131 | hoek "4.x.x" 132 | 133 | buildmail@4.0.1: 134 | version "4.0.1" 135 | resolved "http://registry.npm.taobao.org/buildmail/download/buildmail-4.0.1.tgz#877f7738b78729871c9a105e3b837d2be11a7a72" 136 | dependencies: 137 | addressparser "1.0.1" 138 | libbase64 "0.1.0" 139 | libmime "3.0.0" 140 | libqp "1.1.0" 141 | nodemailer-fetch "1.6.0" 142 | nodemailer-shared "1.1.0" 143 | punycode "1.4.1" 144 | 145 | bytes@3.0.0: 146 | version "3.0.0" 147 | resolved "http://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 148 | 149 | caseless@~0.11.0: 150 | version "0.11.0" 151 | resolved "http://registry.npm.taobao.org/caseless/download/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" 152 | 153 | caseless@~0.12.0: 154 | version "0.12.0" 155 | resolved "http://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 156 | 157 | chalk@^1.1.1: 158 | version "1.1.3" 159 | resolved "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 160 | dependencies: 161 | ansi-styles "^2.2.1" 162 | escape-string-regexp "^1.0.2" 163 | has-ansi "^2.0.0" 164 | strip-ansi "^3.0.0" 165 | supports-color "^2.0.0" 166 | 167 | co@^4.6.0: 168 | version "4.6.0" 169 | resolved "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 170 | 171 | co@~3.0.6: 172 | version "3.0.6" 173 | resolved "http://registry.npm.taobao.org/co/download/co-3.0.6.tgz#1445f226c5eb956138e68c9ac30167ea7d2e6bda" 174 | 175 | combined-stream@^1.0.5, combined-stream@~1.0.5: 176 | version "1.0.5" 177 | resolved "http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" 178 | dependencies: 179 | delayed-stream "~1.0.0" 180 | 181 | commander@^2.9.0: 182 | version "2.11.0" 183 | resolved "http://registry.npm.taobao.org/commander/download/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" 184 | 185 | content-disposition@0.5.2: 186 | version "0.5.2" 187 | resolved "http://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 188 | 189 | content-type@~1.0.4: 190 | version "1.0.4" 191 | resolved "http://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 192 | 193 | cookie-signature@1.0.6: 194 | version "1.0.6" 195 | resolved "http://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 196 | 197 | cookie@0.3.1: 198 | version "0.3.1" 199 | resolved "http://registry.npm.taobao.org/cookie/download/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 200 | 201 | core-util-is@1.0.2, core-util-is@~1.0.0: 202 | version "1.0.2" 203 | resolved "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 204 | 205 | cryptiles@2.x.x: 206 | version "2.0.5" 207 | resolved "http://registry.npm.taobao.org/cryptiles/download/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" 208 | dependencies: 209 | boom "2.x.x" 210 | 211 | cryptiles@3.x.x: 212 | version "3.1.2" 213 | resolved "http://registry.npm.taobao.org/cryptiles/download/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" 214 | dependencies: 215 | boom "5.x.x" 216 | 217 | dashdash@^1.12.0: 218 | version "1.14.1" 219 | resolved "http://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 220 | dependencies: 221 | assert-plus "^1.0.0" 222 | 223 | data-uri-to-buffer@1: 224 | version "1.2.0" 225 | resolved "http://registry.npm.taobao.org/data-uri-to-buffer/download/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835" 226 | 227 | date-format@^1.1.0: 228 | version "1.1.0" 229 | resolved "http://registry.npm.taobao.org/date-format/download/date-format-1.1.0.tgz#be7df68ec270fd9ec78482bd85be68c8fb8fbebc" 230 | 231 | debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.6.8: 232 | version "2.6.9" 233 | resolved "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 234 | dependencies: 235 | ms "2.0.0" 236 | 237 | debug@~2.2.0: 238 | version "2.2.0" 239 | resolved "http://registry.npm.taobao.org/debug/download/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" 240 | dependencies: 241 | ms "0.7.1" 242 | 243 | deep-is@~0.1.3: 244 | version "0.1.3" 245 | resolved "http://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 246 | 247 | degenerator@~1.0.2: 248 | version "1.0.4" 249 | resolved "http://registry.npm.taobao.org/degenerator/download/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095" 250 | dependencies: 251 | ast-types "0.x.x" 252 | escodegen "1.x.x" 253 | esprima "3.x.x" 254 | 255 | delayed-stream@~1.0.0: 256 | version "1.0.0" 257 | resolved "http://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 258 | 259 | depd@1.1.1, depd@~1.1.1: 260 | version "1.1.1" 261 | resolved "http://registry.npm.taobao.org/depd/download/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" 262 | 263 | destroy@~1.0.4: 264 | version "1.0.4" 265 | resolved "http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 266 | 267 | double-ended-queue@^2.1.0-0: 268 | version "2.1.0-0" 269 | resolved "http://registry.npm.taobao.org/double-ended-queue/download/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c" 270 | 271 | ecc-jsbn@~0.1.1: 272 | version "0.1.1" 273 | resolved "http://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 274 | dependencies: 275 | jsbn "~0.1.0" 276 | 277 | ee-first@1.1.1: 278 | version "1.1.1" 279 | resolved "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 280 | 281 | encodeurl@~1.0.1: 282 | version "1.0.1" 283 | resolved "http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" 284 | 285 | encoding@^0.1.11: 286 | version "0.1.12" 287 | resolved "http://registry.npm.taobao.org/encoding/download/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 288 | dependencies: 289 | iconv-lite "~0.4.13" 290 | 291 | escape-html@~1.0.3: 292 | version "1.0.3" 293 | resolved "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 294 | 295 | escape-string-regexp@^1.0.2: 296 | version "1.0.5" 297 | resolved "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 298 | 299 | escodegen@1.x.x: 300 | version "1.9.0" 301 | resolved "http://registry.npm.taobao.org/escodegen/download/escodegen-1.9.0.tgz#9811a2f265dc1cd3894420ee3717064b632b8852" 302 | dependencies: 303 | esprima "^3.1.3" 304 | estraverse "^4.2.0" 305 | esutils "^2.0.2" 306 | optionator "^0.8.1" 307 | optionalDependencies: 308 | source-map "~0.5.6" 309 | 310 | esprima@3.x.x, esprima@^3.1.3: 311 | version "3.1.3" 312 | resolved "http://registry.npm.taobao.org/esprima/download/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" 313 | 314 | estraverse@^4.2.0: 315 | version "4.2.0" 316 | resolved "http://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 317 | 318 | esutils@^2.0.2: 319 | version "2.0.2" 320 | resolved "http://registry.npm.taobao.org/esutils/download/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 321 | 322 | etag@~1.8.1: 323 | version "1.8.1" 324 | resolved "http://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 325 | 326 | express@^4.16.2: 327 | version "4.16.2" 328 | resolved "http://registry.npm.taobao.org/express/download/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" 329 | dependencies: 330 | accepts "~1.3.4" 331 | array-flatten "1.1.1" 332 | body-parser "1.18.2" 333 | content-disposition "0.5.2" 334 | content-type "~1.0.4" 335 | cookie "0.3.1" 336 | cookie-signature "1.0.6" 337 | debug "2.6.9" 338 | depd "~1.1.1" 339 | encodeurl "~1.0.1" 340 | escape-html "~1.0.3" 341 | etag "~1.8.1" 342 | finalhandler "1.1.0" 343 | fresh "0.5.2" 344 | merge-descriptors "1.0.1" 345 | methods "~1.1.2" 346 | on-finished "~2.3.0" 347 | parseurl "~1.3.2" 348 | path-to-regexp "0.1.7" 349 | proxy-addr "~2.0.2" 350 | qs "6.5.1" 351 | range-parser "~1.2.0" 352 | safe-buffer "5.1.1" 353 | send "0.16.1" 354 | serve-static "1.13.1" 355 | setprototypeof "1.1.0" 356 | statuses "~1.3.1" 357 | type-is "~1.6.15" 358 | utils-merge "1.0.1" 359 | vary "~1.1.2" 360 | 361 | extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: 362 | version "3.0.1" 363 | resolved "http://registry.npm.taobao.org/extend/download/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 364 | 365 | extsprintf@1.3.0, extsprintf@^1.2.0: 366 | version "1.3.0" 367 | resolved "http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 368 | 369 | fast-deep-equal@^1.0.0: 370 | version "1.0.0" 371 | resolved "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" 372 | 373 | fast-levenshtein@~2.0.4: 374 | version "2.0.6" 375 | resolved "http://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 376 | 377 | file-uri-to-path@1: 378 | version "1.0.0" 379 | resolved "http://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" 380 | 381 | finalhandler@1.1.0: 382 | version "1.1.0" 383 | resolved "http://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" 384 | dependencies: 385 | debug "2.6.9" 386 | encodeurl "~1.0.1" 387 | escape-html "~1.0.3" 388 | on-finished "~2.3.0" 389 | parseurl "~1.3.2" 390 | statuses "~1.3.1" 391 | unpipe "~1.0.0" 392 | 393 | follow-redirects@1.0.0: 394 | version "1.0.0" 395 | resolved "http://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.0.0.tgz#8e34298cbd2e176f254effec75a1c78cc849fd37" 396 | dependencies: 397 | debug "^2.2.0" 398 | 399 | forever-agent@~0.6.1: 400 | version "0.6.1" 401 | resolved "http://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 402 | 403 | form-data@~2.0.0: 404 | version "2.0.0" 405 | resolved "http://registry.npm.taobao.org/form-data/download/form-data-2.0.0.tgz#6f0aebadcc5da16c13e1ecc11137d85f9b883b25" 406 | dependencies: 407 | asynckit "^0.4.0" 408 | combined-stream "^1.0.5" 409 | mime-types "^2.1.11" 410 | 411 | form-data@~2.1.1: 412 | version "2.1.4" 413 | resolved "http://registry.npm.taobao.org/form-data/download/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" 414 | dependencies: 415 | asynckit "^0.4.0" 416 | combined-stream "^1.0.5" 417 | mime-types "^2.1.12" 418 | 419 | form-data@~2.3.1: 420 | version "2.3.1" 421 | resolved "http://registry.npm.taobao.org/form-data/download/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" 422 | dependencies: 423 | asynckit "^0.4.0" 424 | combined-stream "^1.0.5" 425 | mime-types "^2.1.12" 426 | 427 | forwarded@~0.1.2: 428 | version "0.1.2" 429 | resolved "http://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 430 | 431 | fresh@0.5.2: 432 | version "0.5.2" 433 | resolved "http://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 434 | 435 | ftp@~0.3.10: 436 | version "0.3.10" 437 | resolved "http://registry.npm.taobao.org/ftp/download/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" 438 | dependencies: 439 | readable-stream "1.1.x" 440 | xregexp "2.0.0" 441 | 442 | generate-function@^2.0.0: 443 | version "2.0.0" 444 | resolved "http://registry.npm.taobao.org/generate-function/download/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" 445 | 446 | generate-object-property@^1.1.0: 447 | version "1.2.0" 448 | resolved "http://registry.npm.taobao.org/generate-object-property/download/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" 449 | dependencies: 450 | is-property "^1.0.0" 451 | 452 | get-uri@2: 453 | version "2.0.1" 454 | resolved "http://registry.npm.taobao.org/get-uri/download/get-uri-2.0.1.tgz#dbdcacacd8c608a38316869368117697a1631c59" 455 | dependencies: 456 | data-uri-to-buffer "1" 457 | debug "2" 458 | extend "3" 459 | file-uri-to-path "1" 460 | ftp "~0.3.10" 461 | readable-stream "2" 462 | 463 | getpass@^0.1.1: 464 | version "0.1.7" 465 | resolved "http://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 466 | dependencies: 467 | assert-plus "^1.0.0" 468 | 469 | har-schema@^2.0.0: 470 | version "2.0.0" 471 | resolved "http://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" 472 | 473 | har-validator@~2.0.6: 474 | version "2.0.6" 475 | resolved "http://registry.npm.taobao.org/har-validator/download/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" 476 | dependencies: 477 | chalk "^1.1.1" 478 | commander "^2.9.0" 479 | is-my-json-valid "^2.12.4" 480 | pinkie-promise "^2.0.0" 481 | 482 | har-validator@~5.0.3: 483 | version "5.0.3" 484 | resolved "http://registry.npm.taobao.org/har-validator/download/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" 485 | dependencies: 486 | ajv "^5.1.0" 487 | har-schema "^2.0.0" 488 | 489 | has-ansi@^2.0.0: 490 | version "2.0.0" 491 | resolved "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 492 | dependencies: 493 | ansi-regex "^2.0.0" 494 | 495 | hawk@~3.1.3: 496 | version "3.1.3" 497 | resolved "http://registry.npm.taobao.org/hawk/download/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" 498 | dependencies: 499 | boom "2.x.x" 500 | cryptiles "2.x.x" 501 | hoek "2.x.x" 502 | sntp "1.x.x" 503 | 504 | hawk@~6.0.2: 505 | version "6.0.2" 506 | resolved "http://registry.npm.taobao.org/hawk/download/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" 507 | dependencies: 508 | boom "4.x.x" 509 | cryptiles "3.x.x" 510 | hoek "4.x.x" 511 | sntp "2.x.x" 512 | 513 | hipchat-notifier@^1.1.0: 514 | version "1.1.0" 515 | resolved "http://registry.npm.taobao.org/hipchat-notifier/download/hipchat-notifier-1.1.0.tgz#b6d249755437c191082367799d3ba9a0f23b231e" 516 | dependencies: 517 | lodash "^4.0.0" 518 | request "^2.0.0" 519 | 520 | hoek@2.x.x: 521 | version "2.16.3" 522 | resolved "http://registry.npm.taobao.org/hoek/download/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" 523 | 524 | hoek@4.x.x: 525 | version "4.2.0" 526 | resolved "http://registry.npm.taobao.org/hoek/download/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" 527 | 528 | http-errors@1.6.2, http-errors@~1.6.2: 529 | version "1.6.2" 530 | resolved "http://registry.npm.taobao.org/http-errors/download/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" 531 | dependencies: 532 | depd "1.1.1" 533 | inherits "2.0.3" 534 | setprototypeof "1.0.3" 535 | statuses ">= 1.3.1 < 2" 536 | 537 | http-proxy-agent@1: 538 | version "1.0.0" 539 | resolved "http://registry.npm.taobao.org/http-proxy-agent/download/http-proxy-agent-1.0.0.tgz#cc1ce38e453bf984a0f7702d2dd59c73d081284a" 540 | dependencies: 541 | agent-base "2" 542 | debug "2" 543 | extend "3" 544 | 545 | http-signature@~1.1.0: 546 | version "1.1.1" 547 | resolved "http://registry.npm.taobao.org/http-signature/download/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" 548 | dependencies: 549 | assert-plus "^0.2.0" 550 | jsprim "^1.2.2" 551 | sshpk "^1.7.0" 552 | 553 | http-signature@~1.2.0: 554 | version "1.2.0" 555 | resolved "http://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" 556 | dependencies: 557 | assert-plus "^1.0.0" 558 | jsprim "^1.2.2" 559 | sshpk "^1.7.0" 560 | 561 | httpntlm@1.6.1: 562 | version "1.6.1" 563 | resolved "http://registry.npm.taobao.org/httpntlm/download/httpntlm-1.6.1.tgz#ad01527143a2e8773cfae6a96f58656bb52a34b2" 564 | dependencies: 565 | httpreq ">=0.4.22" 566 | underscore "~1.7.0" 567 | 568 | httpreq@>=0.4.22: 569 | version "0.4.24" 570 | resolved "http://registry.npm.taobao.org/httpreq/download/httpreq-0.4.24.tgz#4335ffd82cd969668a39465c929ac61d6393627f" 571 | 572 | https-proxy-agent@1: 573 | version "1.0.0" 574 | resolved "http://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" 575 | dependencies: 576 | agent-base "2" 577 | debug "2" 578 | extend "3" 579 | 580 | iconv-lite@0.4.15: 581 | version "0.4.15" 582 | resolved "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" 583 | 584 | iconv-lite@0.4.19, iconv-lite@~0.4.13: 585 | version "0.4.19" 586 | resolved "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" 587 | 588 | inflection@~1.10.0: 589 | version "1.10.0" 590 | resolved "http://registry.npm.taobao.org/inflection/download/inflection-1.10.0.tgz#5bffcb1197ad3e81050f8e17e21668087ee9eb2f" 591 | 592 | inflection@~1.3.0: 593 | version "1.3.8" 594 | resolved "http://registry.npm.taobao.org/inflection/download/inflection-1.3.8.tgz#cbd160da9f75b14c3cc63578d4f396784bf3014e" 595 | 596 | inherits@2.0.3, inherits@~2.0.1, inherits@~2.0.3: 597 | version "2.0.3" 598 | resolved "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 599 | 600 | ip@1.0.1: 601 | version "1.0.1" 602 | resolved "http://registry.npm.taobao.org/ip/download/ip-1.0.1.tgz#c7e356cdea225ae71b36d70f2e71a92ba4e42590" 603 | 604 | ip@^1.1.2, ip@^1.1.4: 605 | version "1.1.5" 606 | resolved "http://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" 607 | 608 | ipaddr.js@1.5.2: 609 | version "1.5.2" 610 | resolved "http://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0" 611 | 612 | is-my-json-valid@^2.12.4: 613 | version "2.16.1" 614 | resolved "http://registry.npm.taobao.org/is-my-json-valid/download/is-my-json-valid-2.16.1.tgz#5a846777e2c2620d1e69104e5d3a03b1f6088f11" 615 | dependencies: 616 | generate-function "^2.0.0" 617 | generate-object-property "^1.1.0" 618 | jsonpointer "^4.0.0" 619 | xtend "^4.0.0" 620 | 621 | is-property@^1.0.0: 622 | version "1.0.2" 623 | resolved "http://registry.npm.taobao.org/is-property/download/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" 624 | 625 | is-stream@^1.0.1, is-stream@^1.1.0: 626 | version "1.1.0" 627 | resolved "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 628 | 629 | is-typedarray@~1.0.0: 630 | version "1.0.0" 631 | resolved "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 632 | 633 | isarray@0.0.1: 634 | version "0.0.1" 635 | resolved "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 636 | 637 | isarray@~1.0.0: 638 | version "1.0.0" 639 | resolved "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 640 | 641 | isstream@~0.1.2: 642 | version "0.1.2" 643 | resolved "http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 644 | 645 | jsbn@~0.1.0: 646 | version "0.1.1" 647 | resolved "http://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 648 | 649 | json-schema-traverse@^0.3.0: 650 | version "0.3.1" 651 | resolved "http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 652 | 653 | json-schema@0.2.3: 654 | version "0.2.3" 655 | resolved "http://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 656 | 657 | json-stable-stringify@^1.0.1: 658 | version "1.0.1" 659 | resolved "http://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 660 | dependencies: 661 | jsonify "~0.0.0" 662 | 663 | json-stringify-safe@5.0.x, json-stringify-safe@~5.0.1: 664 | version "5.0.1" 665 | resolved "http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 666 | 667 | jsonify@~0.0.0: 668 | version "0.0.0" 669 | resolved "http://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 670 | 671 | jsonpointer@^4.0.0: 672 | version "4.0.1" 673 | resolved "http://registry.npm.taobao.org/jsonpointer/download/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" 674 | 675 | jsprim@^1.2.2: 676 | version "1.4.1" 677 | resolved "http://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 678 | dependencies: 679 | assert-plus "1.0.0" 680 | extsprintf "1.3.0" 681 | json-schema "0.2.3" 682 | verror "1.10.0" 683 | 684 | levn@~0.3.0: 685 | version "0.3.0" 686 | resolved "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 687 | dependencies: 688 | prelude-ls "~1.1.2" 689 | type-check "~0.3.2" 690 | 691 | libbase64@0.1.0: 692 | version "0.1.0" 693 | resolved "http://registry.npm.taobao.org/libbase64/download/libbase64-0.1.0.tgz#62351a839563ac5ff5bd26f12f60e9830bb751e6" 694 | 695 | libmime@3.0.0: 696 | version "3.0.0" 697 | resolved "http://registry.npm.taobao.org/libmime/download/libmime-3.0.0.tgz#51a1a9e7448ecbd32cda54421675bb21bc093da6" 698 | dependencies: 699 | iconv-lite "0.4.15" 700 | libbase64 "0.1.0" 701 | libqp "1.1.0" 702 | 703 | libqp@1.1.0: 704 | version "1.1.0" 705 | resolved "http://registry.npm.taobao.org/libqp/download/libqp-1.1.0.tgz#f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8" 706 | 707 | lodash@^4.0.0, lodash@^4.14.0, lodash@^4.15.0: 708 | version "4.17.4" 709 | resolved "http://registry.npm.taobao.org/lodash/download/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 710 | 711 | log4js@^2.3.5: 712 | version "2.3.5" 713 | resolved "http://registry.npm.taobao.org/log4js/download/log4js-2.3.5.tgz#36a3db5ed5c684632fdb6724f0c753be30f2f886" 714 | dependencies: 715 | date-format "^1.1.0" 716 | debug "^2.6.8" 717 | semver "^5.3.0" 718 | streamroller "^0.5.2" 719 | optionalDependencies: 720 | axios "^0.15.3" 721 | hipchat-notifier "^1.1.0" 722 | loggly "^1.1.0" 723 | mailgun-js "^0.7.0" 724 | nodemailer "^2.5.0" 725 | redis "^2.7.1" 726 | slack-node "~0.2.0" 727 | 728 | loggly@^1.1.0: 729 | version "1.1.1" 730 | resolved "http://registry.npm.taobao.org/loggly/download/loggly-1.1.1.tgz#0a0fc1d3fa3a5ec44fdc7b897beba2a4695cebee" 731 | dependencies: 732 | json-stringify-safe "5.0.x" 733 | request "2.75.x" 734 | timespan "2.3.x" 735 | 736 | lru-cache@~2.6.5: 737 | version "2.6.5" 738 | resolved "http://registry.npm.taobao.org/lru-cache/download/lru-cache-2.6.5.tgz#e56d6354148ede8d7707b58d143220fd08df0fd5" 739 | 740 | mailcomposer@4.0.1: 741 | version "4.0.1" 742 | resolved "http://registry.npm.taobao.org/mailcomposer/download/mailcomposer-4.0.1.tgz#0e1c44b2a07cf740ee17dc149ba009f19cadfeb4" 743 | dependencies: 744 | buildmail "4.0.1" 745 | libmime "3.0.0" 746 | 747 | mailgun-js@^0.7.0: 748 | version "0.7.15" 749 | resolved "http://registry.npm.taobao.org/mailgun-js/download/mailgun-js-0.7.15.tgz#ee366a20dac64c3c15c03d6c1b3e0ed795252abb" 750 | dependencies: 751 | async "~2.1.2" 752 | debug "~2.2.0" 753 | form-data "~2.1.1" 754 | inflection "~1.10.0" 755 | is-stream "^1.1.0" 756 | path-proxy "~1.0.0" 757 | proxy-agent "~2.0.0" 758 | q "~1.4.0" 759 | tsscmp "~1.0.0" 760 | 761 | media-typer@0.3.0: 762 | version "0.3.0" 763 | resolved "http://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 764 | 765 | merge-descriptors@1.0.1: 766 | version "1.0.1" 767 | resolved "http://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 768 | 769 | methods@~1.1.2: 770 | version "1.1.2" 771 | resolved "http://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 772 | 773 | mime-db@~1.30.0: 774 | version "1.30.0" 775 | resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" 776 | 777 | mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.17, mime-types@~2.1.7: 778 | version "2.1.17" 779 | resolved "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" 780 | dependencies: 781 | mime-db "~1.30.0" 782 | 783 | mime@1.4.1: 784 | version "1.4.1" 785 | resolved "http://registry.npm.taobao.org/mime/download/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" 786 | 787 | minimist@0.0.8: 788 | version "0.0.8" 789 | resolved "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 790 | 791 | mkdirp@^0.5.1: 792 | version "0.5.1" 793 | resolved "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 794 | dependencies: 795 | minimist "0.0.8" 796 | 797 | ms@0.7.1: 798 | version "0.7.1" 799 | resolved "http://registry.npm.taobao.org/ms/download/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" 800 | 801 | ms@2.0.0: 802 | version "2.0.0" 803 | resolved "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 804 | 805 | negotiator@0.6.1: 806 | version "0.6.1" 807 | resolved "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 808 | 809 | netmask@~1.0.4: 810 | version "1.0.6" 811 | resolved "http://registry.npm.taobao.org/netmask/download/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35" 812 | 813 | node-fetch@^1.7.3: 814 | version "1.7.3" 815 | resolved "http://registry.npm.taobao.org/node-fetch/download/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" 816 | dependencies: 817 | encoding "^0.1.11" 818 | is-stream "^1.0.1" 819 | 820 | node-uuid@~1.4.7: 821 | version "1.4.8" 822 | resolved "http://registry.npm.taobao.org/node-uuid/download/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" 823 | 824 | nodemailer-direct-transport@3.3.2: 825 | version "3.3.2" 826 | resolved "http://registry.npm.taobao.org/nodemailer-direct-transport/download/nodemailer-direct-transport-3.3.2.tgz#e96fafb90358560947e569017d97e60738a50a86" 827 | dependencies: 828 | nodemailer-shared "1.1.0" 829 | smtp-connection "2.12.0" 830 | 831 | nodemailer-fetch@1.6.0: 832 | version "1.6.0" 833 | resolved "http://registry.npm.taobao.org/nodemailer-fetch/download/nodemailer-fetch-1.6.0.tgz#79c4908a1c0f5f375b73fe888da9828f6dc963a4" 834 | 835 | nodemailer-shared@1.1.0: 836 | version "1.1.0" 837 | resolved "http://registry.npm.taobao.org/nodemailer-shared/download/nodemailer-shared-1.1.0.tgz#cf5994e2fd268d00f5cf0fa767a08169edb07ec0" 838 | dependencies: 839 | nodemailer-fetch "1.6.0" 840 | 841 | nodemailer-smtp-pool@2.8.2: 842 | version "2.8.2" 843 | resolved "http://registry.npm.taobao.org/nodemailer-smtp-pool/download/nodemailer-smtp-pool-2.8.2.tgz#2eb94d6cf85780b1b4725ce853b9cbd5e8da8c72" 844 | dependencies: 845 | nodemailer-shared "1.1.0" 846 | nodemailer-wellknown "0.1.10" 847 | smtp-connection "2.12.0" 848 | 849 | nodemailer-smtp-transport@2.7.2: 850 | version "2.7.2" 851 | resolved "http://registry.npm.taobao.org/nodemailer-smtp-transport/download/nodemailer-smtp-transport-2.7.2.tgz#03d71c76314f14ac7dbc7bf033a6a6d16d67fb77" 852 | dependencies: 853 | nodemailer-shared "1.1.0" 854 | nodemailer-wellknown "0.1.10" 855 | smtp-connection "2.12.0" 856 | 857 | nodemailer-wellknown@0.1.10: 858 | version "0.1.10" 859 | resolved "http://registry.npm.taobao.org/nodemailer-wellknown/download/nodemailer-wellknown-0.1.10.tgz#586db8101db30cb4438eb546737a41aad0cf13d5" 860 | 861 | nodemailer@^2.5.0: 862 | version "2.7.2" 863 | resolved "http://registry.npm.taobao.org/nodemailer/download/nodemailer-2.7.2.tgz#f242e649aeeae39b6c7ed740ef7b061c404d30f9" 864 | dependencies: 865 | libmime "3.0.0" 866 | mailcomposer "4.0.1" 867 | nodemailer-direct-transport "3.3.2" 868 | nodemailer-shared "1.1.0" 869 | nodemailer-smtp-pool "2.8.2" 870 | nodemailer-smtp-transport "2.7.2" 871 | socks "1.1.9" 872 | 873 | oauth-sign@~0.8.1, oauth-sign@~0.8.2: 874 | version "0.8.2" 875 | resolved "http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 876 | 877 | on-finished@~2.3.0: 878 | version "2.3.0" 879 | resolved "http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 880 | dependencies: 881 | ee-first "1.1.1" 882 | 883 | optionator@^0.8.1: 884 | version "0.8.2" 885 | resolved "http://registry.npm.taobao.org/optionator/download/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 886 | dependencies: 887 | deep-is "~0.1.3" 888 | fast-levenshtein "~2.0.4" 889 | levn "~0.3.0" 890 | prelude-ls "~1.1.2" 891 | type-check "~0.3.2" 892 | wordwrap "~1.0.0" 893 | 894 | pac-proxy-agent@1: 895 | version "1.1.0" 896 | resolved "http://registry.npm.taobao.org/pac-proxy-agent/download/pac-proxy-agent-1.1.0.tgz#34a385dfdf61d2f0ecace08858c745d3e791fd4d" 897 | dependencies: 898 | agent-base "2" 899 | debug "2" 900 | extend "3" 901 | get-uri "2" 902 | http-proxy-agent "1" 903 | https-proxy-agent "1" 904 | pac-resolver "~2.0.0" 905 | raw-body "2" 906 | socks-proxy-agent "2" 907 | 908 | pac-resolver@~2.0.0: 909 | version "2.0.0" 910 | resolved "http://registry.npm.taobao.org/pac-resolver/download/pac-resolver-2.0.0.tgz#99b88d2f193fbdeefc1c9a529c1f3260ab5277cd" 911 | dependencies: 912 | co "~3.0.6" 913 | degenerator "~1.0.2" 914 | ip "1.0.1" 915 | netmask "~1.0.4" 916 | thunkify "~2.1.1" 917 | 918 | parseurl@~1.3.2: 919 | version "1.3.2" 920 | resolved "http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" 921 | 922 | path-proxy@~1.0.0: 923 | version "1.0.0" 924 | resolved "http://registry.npm.taobao.org/path-proxy/download/path-proxy-1.0.0.tgz#18e8a36859fc9d2f1a53b48dee138543c020de5e" 925 | dependencies: 926 | inflection "~1.3.0" 927 | 928 | path-to-regexp@0.1.7: 929 | version "0.1.7" 930 | resolved "http://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 931 | 932 | performance-now@^2.1.0: 933 | version "2.1.0" 934 | resolved "http://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 935 | 936 | pinkie-promise@^2.0.0: 937 | version "2.0.1" 938 | resolved "http://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 939 | dependencies: 940 | pinkie "^2.0.0" 941 | 942 | pinkie@^2.0.0: 943 | version "2.0.4" 944 | resolved "http://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 945 | 946 | prelude-ls@~1.1.2: 947 | version "1.1.2" 948 | resolved "http://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 949 | 950 | process-nextick-args@~1.0.6: 951 | version "1.0.7" 952 | resolved "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 953 | 954 | proxy-addr@~2.0.2: 955 | version "2.0.2" 956 | resolved "http://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec" 957 | dependencies: 958 | forwarded "~0.1.2" 959 | ipaddr.js "1.5.2" 960 | 961 | proxy-agent@~2.0.0: 962 | version "2.0.0" 963 | resolved "http://registry.npm.taobao.org/proxy-agent/download/proxy-agent-2.0.0.tgz#57eb5347aa805d74ec681cb25649dba39c933499" 964 | dependencies: 965 | agent-base "2" 966 | debug "2" 967 | extend "3" 968 | http-proxy-agent "1" 969 | https-proxy-agent "1" 970 | lru-cache "~2.6.5" 971 | pac-proxy-agent "1" 972 | socks-proxy-agent "2" 973 | 974 | punycode@1.4.1, punycode@^1.4.1: 975 | version "1.4.1" 976 | resolved "http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 977 | 978 | q@~1.4.0: 979 | version "1.4.1" 980 | resolved "http://registry.npm.taobao.org/q/download/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" 981 | 982 | qs@6.5.1, qs@~6.5.1: 983 | version "6.5.1" 984 | resolved "http://registry.npm.taobao.org/qs/download/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" 985 | 986 | qs@~6.2.0: 987 | version "6.2.3" 988 | resolved "http://registry.npm.taobao.org/qs/download/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe" 989 | 990 | range-parser@~1.2.0: 991 | version "1.2.0" 992 | resolved "http://registry.npm.taobao.org/range-parser/download/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 993 | 994 | raw-body@2, raw-body@2.3.2: 995 | version "2.3.2" 996 | resolved "http://registry.npm.taobao.org/raw-body/download/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" 997 | dependencies: 998 | bytes "3.0.0" 999 | http-errors "1.6.2" 1000 | iconv-lite "0.4.19" 1001 | unpipe "1.0.0" 1002 | 1003 | readable-stream@1.1.x: 1004 | version "1.1.14" 1005 | resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" 1006 | dependencies: 1007 | core-util-is "~1.0.0" 1008 | inherits "~2.0.1" 1009 | isarray "0.0.1" 1010 | string_decoder "~0.10.x" 1011 | 1012 | readable-stream@2, readable-stream@^2.3.0: 1013 | version "2.3.3" 1014 | resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" 1015 | dependencies: 1016 | core-util-is "~1.0.0" 1017 | inherits "~2.0.3" 1018 | isarray "~1.0.0" 1019 | process-nextick-args "~1.0.6" 1020 | safe-buffer "~5.1.1" 1021 | string_decoder "~1.0.3" 1022 | util-deprecate "~1.0.1" 1023 | 1024 | readable-stream@~2.0.5: 1025 | version "2.0.6" 1026 | resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" 1027 | dependencies: 1028 | core-util-is "~1.0.0" 1029 | inherits "~2.0.1" 1030 | isarray "~1.0.0" 1031 | process-nextick-args "~1.0.6" 1032 | string_decoder "~0.10.x" 1033 | util-deprecate "~1.0.1" 1034 | 1035 | redis-commands@^1.2.0: 1036 | version "1.3.1" 1037 | resolved "http://registry.npm.taobao.org/redis-commands/download/redis-commands-1.3.1.tgz#81d826f45fa9c8b2011f4cd7a0fe597d241d442b" 1038 | 1039 | redis-parser@^2.6.0: 1040 | version "2.6.0" 1041 | resolved "http://registry.npm.taobao.org/redis-parser/download/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b" 1042 | 1043 | redis@^2.7.1: 1044 | version "2.8.0" 1045 | resolved "http://registry.npm.taobao.org/redis/download/redis-2.8.0.tgz#202288e3f58c49f6079d97af7a10e1303ae14b02" 1046 | dependencies: 1047 | double-ended-queue "^2.1.0-0" 1048 | redis-commands "^1.2.0" 1049 | redis-parser "^2.6.0" 1050 | 1051 | request@2.75.x: 1052 | version "2.75.0" 1053 | resolved "http://registry.npm.taobao.org/request/download/request-2.75.0.tgz#d2b8268a286da13eaa5d01adf5d18cc90f657d93" 1054 | dependencies: 1055 | aws-sign2 "~0.6.0" 1056 | aws4 "^1.2.1" 1057 | bl "~1.1.2" 1058 | caseless "~0.11.0" 1059 | combined-stream "~1.0.5" 1060 | extend "~3.0.0" 1061 | forever-agent "~0.6.1" 1062 | form-data "~2.0.0" 1063 | har-validator "~2.0.6" 1064 | hawk "~3.1.3" 1065 | http-signature "~1.1.0" 1066 | is-typedarray "~1.0.0" 1067 | isstream "~0.1.2" 1068 | json-stringify-safe "~5.0.1" 1069 | mime-types "~2.1.7" 1070 | node-uuid "~1.4.7" 1071 | oauth-sign "~0.8.1" 1072 | qs "~6.2.0" 1073 | stringstream "~0.0.4" 1074 | tough-cookie "~2.3.0" 1075 | tunnel-agent "~0.4.1" 1076 | 1077 | request@^2.0.0, request@^2.74.0, request@^2.83.0: 1078 | version "2.83.0" 1079 | resolved "http://registry.npm.taobao.org/request/download/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" 1080 | dependencies: 1081 | aws-sign2 "~0.7.0" 1082 | aws4 "^1.6.0" 1083 | caseless "~0.12.0" 1084 | combined-stream "~1.0.5" 1085 | extend "~3.0.1" 1086 | forever-agent "~0.6.1" 1087 | form-data "~2.3.1" 1088 | har-validator "~5.0.3" 1089 | hawk "~6.0.2" 1090 | http-signature "~1.2.0" 1091 | is-typedarray "~1.0.0" 1092 | isstream "~0.1.2" 1093 | json-stringify-safe "~5.0.1" 1094 | mime-types "~2.1.17" 1095 | oauth-sign "~0.8.2" 1096 | performance-now "^2.1.0" 1097 | qs "~6.5.1" 1098 | safe-buffer "^5.1.1" 1099 | stringstream "~0.0.5" 1100 | tough-cookie "~2.3.3" 1101 | tunnel-agent "^0.6.0" 1102 | uuid "^3.1.0" 1103 | 1104 | requestretry@^1.2.2: 1105 | version "1.12.2" 1106 | resolved "http://registry.npm.taobao.org/requestretry/download/requestretry-1.12.2.tgz#13ce38a4ce4e809f3c9ec6d4ca3b7b9ba4acf26c" 1107 | dependencies: 1108 | extend "^3.0.0" 1109 | lodash "^4.15.0" 1110 | request "^2.74.0" 1111 | when "^3.7.7" 1112 | 1113 | safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1114 | version "5.1.1" 1115 | resolved "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 1116 | 1117 | semver@^5.3.0: 1118 | version "5.4.1" 1119 | resolved "http://registry.npm.taobao.org/semver/download/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" 1120 | 1121 | semver@~5.0.1: 1122 | version "5.0.3" 1123 | resolved "http://registry.npm.taobao.org/semver/download/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" 1124 | 1125 | send@0.16.1: 1126 | version "0.16.1" 1127 | resolved "http://registry.npm.taobao.org/send/download/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" 1128 | dependencies: 1129 | debug "2.6.9" 1130 | depd "~1.1.1" 1131 | destroy "~1.0.4" 1132 | encodeurl "~1.0.1" 1133 | escape-html "~1.0.3" 1134 | etag "~1.8.1" 1135 | fresh "0.5.2" 1136 | http-errors "~1.6.2" 1137 | mime "1.4.1" 1138 | ms "2.0.0" 1139 | on-finished "~2.3.0" 1140 | range-parser "~1.2.0" 1141 | statuses "~1.3.1" 1142 | 1143 | serve-static@1.13.1: 1144 | version "1.13.1" 1145 | resolved "http://registry.npm.taobao.org/serve-static/download/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719" 1146 | dependencies: 1147 | encodeurl "~1.0.1" 1148 | escape-html "~1.0.3" 1149 | parseurl "~1.3.2" 1150 | send "0.16.1" 1151 | 1152 | setprototypeof@1.0.3: 1153 | version "1.0.3" 1154 | resolved "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" 1155 | 1156 | setprototypeof@1.1.0: 1157 | version "1.1.0" 1158 | resolved "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 1159 | 1160 | slack-node@~0.2.0: 1161 | version "0.2.0" 1162 | resolved "http://registry.npm.taobao.org/slack-node/download/slack-node-0.2.0.tgz#de4b8dddaa8b793f61dbd2938104fdabf37dfa30" 1163 | dependencies: 1164 | requestretry "^1.2.2" 1165 | 1166 | smart-buffer@^1.0.13, smart-buffer@^1.0.4: 1167 | version "1.1.15" 1168 | resolved "http://registry.npm.taobao.org/smart-buffer/download/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" 1169 | 1170 | smtp-connection@2.12.0: 1171 | version "2.12.0" 1172 | resolved "http://registry.npm.taobao.org/smtp-connection/download/smtp-connection-2.12.0.tgz#d76ef9127cb23c2259edb1e8349c2e8d5e2d74c1" 1173 | dependencies: 1174 | httpntlm "1.6.1" 1175 | nodemailer-shared "1.1.0" 1176 | 1177 | sntp@1.x.x: 1178 | version "1.0.9" 1179 | resolved "http://registry.npm.taobao.org/sntp/download/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" 1180 | dependencies: 1181 | hoek "2.x.x" 1182 | 1183 | sntp@2.x.x: 1184 | version "2.0.2" 1185 | resolved "http://registry.npm.taobao.org/sntp/download/sntp-2.0.2.tgz#5064110f0af85f7cfdb7d6b67a40028ce52b4b2b" 1186 | dependencies: 1187 | hoek "4.x.x" 1188 | 1189 | socks-proxy-agent@2: 1190 | version "2.1.1" 1191 | resolved "http://registry.npm.taobao.org/socks-proxy-agent/download/socks-proxy-agent-2.1.1.tgz#86ebb07193258637870e13b7bd99f26c663df3d3" 1192 | dependencies: 1193 | agent-base "2" 1194 | extend "3" 1195 | socks "~1.1.5" 1196 | 1197 | socks@1.1.9: 1198 | version "1.1.9" 1199 | resolved "http://registry.npm.taobao.org/socks/download/socks-1.1.9.tgz#628d7e4d04912435445ac0b6e459376cb3e6d691" 1200 | dependencies: 1201 | ip "^1.1.2" 1202 | smart-buffer "^1.0.4" 1203 | 1204 | socks@~1.1.5: 1205 | version "1.1.10" 1206 | resolved "http://registry.npm.taobao.org/socks/download/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a" 1207 | dependencies: 1208 | ip "^1.1.4" 1209 | smart-buffer "^1.0.13" 1210 | 1211 | source-map@~0.5.6: 1212 | version "0.5.7" 1213 | resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 1214 | 1215 | sshpk@^1.7.0: 1216 | version "1.13.1" 1217 | resolved "http://registry.npm.taobao.org/sshpk/download/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" 1218 | dependencies: 1219 | asn1 "~0.2.3" 1220 | assert-plus "^1.0.0" 1221 | dashdash "^1.12.0" 1222 | getpass "^0.1.1" 1223 | optionalDependencies: 1224 | bcrypt-pbkdf "^1.0.0" 1225 | ecc-jsbn "~0.1.1" 1226 | jsbn "~0.1.0" 1227 | tweetnacl "~0.14.0" 1228 | 1229 | "statuses@>= 1.3.1 < 2", statuses@~1.3.1: 1230 | version "1.3.1" 1231 | resolved "http://registry.npm.taobao.org/statuses/download/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" 1232 | 1233 | streamroller@^0.5.2: 1234 | version "0.5.2" 1235 | resolved "http://registry.npm.taobao.org/streamroller/download/streamroller-0.5.2.tgz#2bfe650c25b6a90ab25515a90bb5b9b94e398f0f" 1236 | dependencies: 1237 | date-format "^1.1.0" 1238 | debug "^2.6.8" 1239 | mkdirp "^0.5.1" 1240 | readable-stream "^2.3.0" 1241 | 1242 | string_decoder@~0.10.x: 1243 | version "0.10.31" 1244 | resolved "http://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 1245 | 1246 | string_decoder@~1.0.3: 1247 | version "1.0.3" 1248 | resolved "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" 1249 | dependencies: 1250 | safe-buffer "~5.1.0" 1251 | 1252 | stringstream@~0.0.4, stringstream@~0.0.5: 1253 | version "0.0.5" 1254 | resolved "http://registry.npm.taobao.org/stringstream/download/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 1255 | 1256 | strip-ansi@^3.0.0: 1257 | version "3.0.1" 1258 | resolved "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1259 | dependencies: 1260 | ansi-regex "^2.0.0" 1261 | 1262 | supports-color@^2.0.0: 1263 | version "2.0.0" 1264 | resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1265 | 1266 | thunkify@~2.1.1: 1267 | version "2.1.2" 1268 | resolved "http://registry.npm.taobao.org/thunkify/download/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d" 1269 | 1270 | timespan@2.3.x: 1271 | version "2.3.0" 1272 | resolved "http://registry.npm.taobao.org/timespan/download/timespan-2.3.0.tgz#4902ce040bd13d845c8f59b27e9d59bad6f39929" 1273 | 1274 | tough-cookie@~2.3.0, tough-cookie@~2.3.3: 1275 | version "2.3.3" 1276 | resolved "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" 1277 | dependencies: 1278 | punycode "^1.4.1" 1279 | 1280 | tsscmp@~1.0.0: 1281 | version "1.0.5" 1282 | resolved "http://registry.npm.taobao.org/tsscmp/download/tsscmp-1.0.5.tgz#7dc4a33af71581ab4337da91d85ca5427ebd9a97" 1283 | 1284 | tunnel-agent@^0.6.0: 1285 | version "0.6.0" 1286 | resolved "http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 1287 | dependencies: 1288 | safe-buffer "^5.0.1" 1289 | 1290 | tunnel-agent@~0.4.1: 1291 | version "0.4.3" 1292 | resolved "http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" 1293 | 1294 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 1295 | version "0.14.5" 1296 | resolved "http://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 1297 | 1298 | type-check@~0.3.2: 1299 | version "0.3.2" 1300 | resolved "http://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1301 | dependencies: 1302 | prelude-ls "~1.1.2" 1303 | 1304 | type-is@~1.6.15: 1305 | version "1.6.15" 1306 | resolved "http://registry.npm.taobao.org/type-is/download/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" 1307 | dependencies: 1308 | media-typer "0.3.0" 1309 | mime-types "~2.1.15" 1310 | 1311 | underscore@~1.7.0: 1312 | version "1.7.0" 1313 | resolved "http://registry.npm.taobao.org/underscore/download/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" 1314 | 1315 | unpipe@1.0.0, unpipe@~1.0.0: 1316 | version "1.0.0" 1317 | resolved "http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1318 | 1319 | util-deprecate@~1.0.1: 1320 | version "1.0.2" 1321 | resolved "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1322 | 1323 | utils-merge@1.0.1: 1324 | version "1.0.1" 1325 | resolved "http://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 1326 | 1327 | uuid@^3.1.0: 1328 | version "3.1.0" 1329 | resolved "http://registry.npm.taobao.org/uuid/download/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" 1330 | 1331 | vary@~1.1.2: 1332 | version "1.1.2" 1333 | resolved "http://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 1334 | 1335 | verror@1.10.0: 1336 | version "1.10.0" 1337 | resolved "http://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 1338 | dependencies: 1339 | assert-plus "^1.0.0" 1340 | core-util-is "1.0.2" 1341 | extsprintf "^1.2.0" 1342 | 1343 | when@^3.7.7: 1344 | version "3.7.8" 1345 | resolved "http://registry.npm.taobao.org/when/download/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82" 1346 | 1347 | wordwrap@~1.0.0: 1348 | version "1.0.0" 1349 | resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 1350 | 1351 | xregexp@2.0.0: 1352 | version "2.0.0" 1353 | resolved "http://registry.npm.taobao.org/xregexp/download/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" 1354 | 1355 | xtend@^4.0.0: 1356 | version "4.0.1" 1357 | resolved "http://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 1358 | --------------------------------------------------------------------------------