From cf5af2e6032a1fac36d07c015e711442c85e7bb0 Mon Sep 17 00:00:00 2001 From: zhuangtongfa Date: Thu, 17 Aug 2017 10:57:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BC=93=E5=AD=98=E6=9C=BA?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.js | 94 ++++---- package-lock.json | 343 +++++++---------------------- package.json | 1 + router/simi_playlist.js | 8 +- router/simi_song.js | 8 +- router/song_detail.js | 14 +- router/top_album.js | 19 +- router/top_artists.js | 17 +- router/top_list.js | 55 +++-- router/top_mv.js | 20 +- router/top_playlist.js | 12 +- router/top_playlist_highquality.js | 10 +- router/top_songs.js | 19 +- router/user_detail.js | 12 +- router/user_dj.js | 16 +- router/user_playlist.js | 16 +- router/user_playrecord.js | 14 +- router/user_subcount.js | 10 +- util/crypto.js | 45 ++-- util/util.js | 9 +- 20 files changed, 281 insertions(+), 461 deletions(-) diff --git a/app.js b/app.js index e7eb25a..1b783f7 100644 --- a/app.js +++ b/app.js @@ -1,6 +1,9 @@ const express = require('express') const http = require('http') +const apicache = require('apicache') + const app = express() +let cache = apicache.middleware // 跨域设置 // app.all('*', function (req, res, next) { @@ -13,7 +16,9 @@ const app = express() // next() // }) -app.use(express.static('public')); +app.use(cache('5 minutes')) + +app.use(express.static('public')) // 获取专辑内容 app.use('/album', require('./router/album')) @@ -25,24 +30,20 @@ app.use('/artists', require('./router/artists')) app.use('/artist/album', require('./router/artist_album')) //艺术家-信息 -app.use("/artist/desc", require("./router/artists_desc")) +app.use('/artist/desc', require('./router/artists_desc')) //艺术家-mv -app.use("/artist/mv", require("./router/artists_mv")) - - +app.use('/artist/mv', require('./router/artists_mv')) // 获取 banner app.use('/banner', require('./router/banner')) app.use('/check/music', require('./router/check_music')) - app.use('/comment/music', require('./router/comment_music')) app.use('/comment/mv', require('./router/comment_mv')) - app.use('/comment/album', require('./router/comment_album')) app.use('/comment/playlist', require('./router/comment_playlist')) @@ -53,40 +54,40 @@ app.use('/comment/like', require('./router/comment_like')) app.use('/comment/dj', require('./router/comment_dj')) //签到 -app.use("/daily_signin", require("./router/daily_signin")) +app.use('/daily_signin', require('./router/daily_signin')) //djradio detail -app.use("/dj/detail", require("./router/dj_detail")) +app.use('/dj/detail', require('./router/dj_detail')) //dj主播 radio -app.use("/dj/program", require("./router/dj_program")) +app.use('/dj/program', require('./router/dj_program')) -app.use("/dj/program/detail", require("./router/dj_program_detail")) +app.use('/dj/program/detail', require('./router/dj_program_detail')) -app.use("/dj/sub", require("./router/dj_sub")) +app.use('/dj/sub', require('./router/dj_sub')) -app.use("/dj/catelist", require("./router/dj_catelist")) +app.use('/dj/catelist', require('./router/dj_catelist')) -app.use("/dj/hot", require("./router/dj_hot")) +app.use('/dj/hot', require('./router/dj_hot')) // 精选电台 -app.use("/dj/recommend", require("./router/dj_recommend")) +app.use('/dj/recommend', require('./router/dj_recommend')) //精选电台-分类电台 -app.use("/dj/recommend/type", require("./router/dj_recommend_type")) +app.use('/dj/recommend/type', require('./router/dj_recommend_type')) //获取动态 -app.use("/event", require("./router/event")) +app.use('/event', require('./router/event')) //垃圾桶 -app.use("/fm_trash", require("./router/fm_trash")) +app.use('/fm_trash', require('./router/fm_trash')) -app.use("/follow", require("./router/follow")) +app.use('/follow', require('./router/follow')) // 喜欢歌曲 -app.use("/like", require("./router/like")) +app.use('/like', require('./router/like')) -app.use("/likelist", require("./router/likelist")) +app.use('/likelist', require('./router/likelist')) //手机登录 app.use('/login/cellphone', require('./router/loginCellphone')) @@ -107,31 +108,34 @@ app.use('/lyric', require('./router/lyric')) app.use('/music/url', require('./router/musicUrl')) //最新 mv -app.use("/mv/first", require("./router/mv_first")) +app.use('/mv/first', require('./router/mv_first')) //播放 mv -app.use("/mv/url", require("./router/mv_url")) +app.use('/mv/url', require('./router/mv_url')) //mv -app.use("/mv", require("./router/mv")) +app.use('/mv', require('./router/mv')) // 私人 FM -app.use("/personal_fm", require("./router/personal_fm")) +app.use('/personal_fm', require('./router/personal_fm')) //推荐歌单 -app.use("/personalized", require("./router/personalized")) +app.use('/personalized', require('./router/personalized')) //推荐dj -app.use("/personalized/djprogram", require("./router/personalized_djprogram")) +app.use('/personalized/djprogram', require('./router/personalized_djprogram')) //推荐新音乐 -app.use("/personalized/newsong", require("./router/personalized_newsong")) +app.use('/personalized/newsong', require('./router/personalized_newsong')) //独家放送 -app.use("/personalized/privatecontent", require("./router/personalized_privatecontent")) +app.use( + '/personalized/privatecontent', + require('./router/personalized_privatecontent') +) //推荐mv -app.use("/personalized/mv", require("./router/personalized_mv")) +app.use('/personalized/mv', require('./router/personalized_mv')) // 获取歌单内列表 app.use('/playlist/detail', require('./router/playlist_detail')) @@ -144,7 +148,7 @@ app.use('/playlist/hot', require('./router/playlist_hot')) app.use('/playlist/catlist', require('./router/playlist_catlist')) //推荐节目 -app.use("/program/recommend", require("./router/program_recommend")) +app.use('/program/recommend', require('./router/program_recommend')) // 获取每日推荐歌曲 app.use('/recommend/songs', require('./router/recommend_songs')) @@ -155,7 +159,6 @@ app.use('/recommend/resource', require('./router/recommend_resource')) //取消推荐 app.use('/recommend/dislike', require('./router/recommend_dislike')) - app.use('/resource/like', require('./router/resource_like')) // 搜索 @@ -171,19 +174,19 @@ app.use('/search/multimatch', require('./router/search_multimatch')) app.use('/search/suggest', require('./router/search_suggest')) //simi ,相似歌单 -app.use("/simi/playlist", require("./router/simi_playlist")) +app.use('/simi/playlist', require('./router/simi_playlist')) //simi ,相似歌曲 -app.use("/simi/song", require("./router/simi_song")) +app.use('/simi/song', require('./router/simi_song')) //相似 mv -app.use("/simi/mv", require("./router/simi_mv")) +app.use('/simi/mv', require('./router/simi_mv')) //simi ,相似关注的用户 -app.use("/simi/user", require("./router/simi_user")) +app.use('/simi/user', require('./router/simi_user')) //相似歌手 -app.use("/simi/artist", require("./router/simi_artists")) +app.use('/simi/artist', require('./router/simi_artists')) // 获取音乐详情 app.use('/song/detail', require('./router/song_detail')) @@ -199,10 +202,13 @@ app.use('/top/list', require('./router/top_list')) app.use('/top/mv', require('./router/top_mv')) //分类歌单 -app.use("/top/playlist", require("./router/top_playlist")) +app.use('/top/playlist', require('./router/top_playlist')) //精品歌单 -app.use("/top/playlist/highquality", require("./router/top_playlist_highquality")) +app.use( + '/top/playlist/highquality', + require('./router/top_playlist_highquality') +) app.use('/top/song', require('./router/top_songs')) @@ -219,12 +225,12 @@ app.use('/user/playlist', require('./router/user_playlist')) app.use('/user/audio', require('./router/user_audio')) //云盘数据 -app.use("/user/cloud", require("./router/user_cloud")) +app.use('/user/cloud', require('./router/user_cloud')) //云盘数据详情? 暂时不要使用 -app.use("/user/cloud/search", require("./router/user_cloud_search")) +app.use('/user/cloud/search', require('./router/user_cloud_search')) //用户动态 -app.use("/user/event", require("./router/user_event")) +app.use('/user/event', require('./router/user_event')) app.use('/user/detail', require('./router/user_detail')) @@ -236,9 +242,7 @@ app.use('/user/follows', require('./router/user_follows')) app.use('/user/subcount', require('./router/user_subcount')) -app.use("/user/record", require("./router/user_playrecord")) - - +app.use('/user/record', require('./router/user_playrecord')) const port = process.env.PORT || 3000 diff --git a/package-lock.json b/package-lock.json index c0f9273..c5f7414 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,7 +7,6 @@ "accepts": { "version": "1.3.3", "resolved": "http://registry.npm.taobao.org/accepts/download/accepts-1.3.3.tgz", - "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", "requires": { "mime-types": "2.1.16", "negotiator": "0.6.1" @@ -16,19 +15,16 @@ "acorn": { "version": "5.1.1", "resolved": "http://registry.npm.taobao.org/acorn/download/acorn-5.1.1.tgz", - "integrity": "sha1-U/4WERH5EquZnuiHqQoLxSgi/XU=", "dev": true }, "acorn-es7-plugin": { "version": "1.1.7", "resolved": "http://registry.npm.taobao.org/acorn-es7-plugin/download/acorn-es7-plugin-1.1.7.tgz", - "integrity": "sha1-8u4fMiipDurRJF+asZIusucdM2s=", "dev": true }, "ajv": { "version": "4.11.8", "resolved": "http://registry.npm.taobao.org/ajv/download/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "requires": { "co": "4.6.0", "json-stable-stringify": "1.0.1" @@ -37,30 +33,31 @@ "amdefine": { "version": "1.0.1", "resolved": "http://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true + "dev": true, + "optional": true + }, + "apicache": { + "version": "0.9.0", + "resolved": "http://registry.npm.taobao.org/apicache/download/apicache-0.9.0.tgz", + "integrity": "sha1-5BlPHftigCUDHB9LwhjWODQwdBw=" }, "array-filter": { "version": "1.0.0", "resolved": "http://registry.npm.taobao.org/array-filter/download/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", "dev": true }, "array-find": { "version": "1.0.0", "resolved": "http://registry.npm.taobao.org/array-find/download/array-find-1.0.0.tgz", - "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", "dev": true }, "array-flatten": { "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "resolved": "http://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz" }, "asn1": { "version": "0.2.3", - "resolved": "http://registry.npm.taobao.org/asn1/download/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + "resolved": "http://registry.npm.taobao.org/asn1/download/asn1-0.2.3.tgz" }, "assert-plus": { "version": "0.2.0", @@ -69,29 +66,24 @@ }, "asynckit": { "version": "0.4.0", - "resolved": "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "resolved": "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz" }, "aws-sign2": { "version": "0.6.0", - "resolved": "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + "resolved": "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.6.0.tgz" }, "aws4": { "version": "1.6.0", - "resolved": "http://registry.npm.taobao.org/aws4/download/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + "resolved": "http://registry.npm.taobao.org/aws4/download/aws4-1.6.0.tgz" }, "balanced-match": { "version": "1.0.0", "resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "bcrypt-pbkdf": { "version": "1.0.1", "resolved": "http://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { "tweetnacl": "0.14.5" @@ -99,13 +91,11 @@ }, "big-integer": { "version": "1.6.23", - "resolved": "http://registry.npm.taobao.org/big-integer/download/big-integer-1.6.23.tgz", - "integrity": "sha1-6F1QgiDHTj9DpM5y7tUfPaTblNE=" + "resolved": "http://registry.npm.taobao.org/big-integer/download/big-integer-1.6.23.tgz" }, "boom": { "version": "2.10.1", "resolved": "http://registry.npm.taobao.org/boom/download/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { "hoek": "2.16.3" } @@ -113,7 +103,6 @@ "brace-expansion": { "version": "1.1.8", "resolved": "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { "balanced-match": "1.0.0", @@ -123,13 +112,11 @@ "browser-stdout": { "version": "1.3.0", "resolved": "http://registry.npm.taobao.org/browser-stdout/download/browser-stdout-1.3.0.tgz", - "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", "dev": true }, "call-matcher": { "version": "1.0.1", "resolved": "http://registry.npm.taobao.org/call-matcher/download/call-matcher-1.0.1.tgz", - "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", "dev": true, "requires": { "core-js": "2.5.0", @@ -141,23 +128,19 @@ "call-signature": { "version": "0.0.2", "resolved": "http://registry.npm.taobao.org/call-signature/download/call-signature-0.0.2.tgz", - "integrity": "sha1-qEq8glpV70yysCi9dOIFpluaSZY=", "dev": true }, "caseless": { "version": "0.12.0", - "resolved": "http://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "resolved": "http://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz" }, "co": { "version": "4.6.0", - "resolved": "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + "resolved": "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz" }, "combined-stream": { "version": "1.0.5", "resolved": "http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { "delayed-stream": "1.0.0" } @@ -165,7 +148,6 @@ "commander": { "version": "2.9.0", "resolved": "http://registry.npm.taobao.org/commander/download/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "dev": true, "requires": { "graceful-readlink": "1.0.1" @@ -174,50 +156,41 @@ "concat-map": { "version": "0.0.1", "resolved": "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "content-disposition": { "version": "0.5.2", - "resolved": "http://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + "resolved": "http://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.2.tgz" }, "content-type": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/content-type/download/content-type-1.0.2.tgz", - "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=" + "resolved": "http://registry.npm.taobao.org/content-type/download/content-type-1.0.2.tgz" }, "convert-source-map": { "version": "1.5.0", "resolved": "http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.5.0.tgz", - "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", "dev": true }, "cookie": { "version": "0.3.1", - "resolved": "http://registry.npm.taobao.org/cookie/download/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + "resolved": "http://registry.npm.taobao.org/cookie/download/cookie-0.3.1.tgz" }, "cookie-signature": { "version": "1.0.6", - "resolved": "http://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "resolved": "http://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz" }, "core-js": { "version": "2.5.0", "resolved": "http://registry.npm.taobao.org/core-js/download/core-js-2.5.0.tgz", - "integrity": "sha1-VpwFCRi+ZIazg3VSAorgRmtxcIY=", "dev": true }, "core-util-is": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "resolved": "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz" }, "cryptiles": { "version": "2.0.5", "resolved": "http://registry.npm.taobao.org/cryptiles/download/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { "boom": "2.10.1" } @@ -225,7 +198,6 @@ "d": { "version": "1.0.0", "resolved": "http://registry.npm.taobao.org/d/download/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { "es5-ext": "0.10.27" @@ -234,22 +206,19 @@ "dashdash": { "version": "1.14.1", "resolved": "http://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { "assert-plus": "1.0.0" }, "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "bundled": true } } }, "debug": { "version": "2.6.8", "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", "requires": { "ms": "2.0.0" } @@ -257,19 +226,16 @@ "deep-equal": { "version": "1.0.1", "resolved": "http://registry.npm.taobao.org/deep-equal/download/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", "dev": true }, "deep-is": { "version": "0.1.3", "resolved": "http://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, "define-properties": { "version": "1.1.2", "resolved": "http://registry.npm.taobao.org/define-properties/download/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { "foreach": "2.0.5", @@ -278,41 +244,34 @@ }, "delayed-stream": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "resolved": "http://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz" }, "depd": { "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/depd/download/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + "resolved": "http://registry.npm.taobao.org/depd/download/depd-1.1.1.tgz" }, "destroy": { "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "resolved": "http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz" }, "diff": { "version": "3.2.0", "resolved": "http://registry.npm.taobao.org/diff/download/diff-3.2.0.tgz", - "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=", "dev": true }, "diff-match-patch": { "version": "1.0.0", "resolved": "http://registry.npm.taobao.org/diff-match-patch/download/diff-match-patch-1.0.0.tgz", - "integrity": "sha1-HMPIOkkNZ/ldkeOfatHy4Ia2MEg=", "dev": true }, "eastasianwidth": { "version": "0.1.1", "resolved": "http://registry.npm.taobao.org/eastasianwidth/download/eastasianwidth-0.1.1.tgz", - "integrity": "sha1-RNZW3p2kFWlEZzNTZfsxR7hXK3w=", "dev": true }, "ecc-jsbn": { "version": "0.1.1", "resolved": "http://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { "jsbn": "0.1.1" @@ -320,13 +279,11 @@ }, "ee-first": { "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "resolved": "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz" }, "empower": { "version": "1.2.3", "resolved": "http://registry.npm.taobao.org/empower/download/empower-1.2.3.tgz", - "integrity": "sha1-bw2nNEf07dg4/sXGAxOoi6XLhSs=", "dev": true, "requires": { "core-js": "2.5.0", @@ -336,7 +293,6 @@ "empower-assert": { "version": "1.0.1", "resolved": "http://registry.npm.taobao.org/empower-assert/download/empower-assert-1.0.1.tgz", - "integrity": "sha1-MeMQq8BluqfDoEh+a+W7zGXzwd4=", "dev": true, "requires": { "estraverse": "4.2.0" @@ -345,7 +301,6 @@ "empower-core": { "version": "0.6.2", "resolved": "http://registry.npm.taobao.org/empower-core/download/empower-core-0.6.2.tgz", - "integrity": "sha1-Wt71ZgiOMfuoC6CjbfR9cJQWkUQ=", "dev": true, "requires": { "call-signature": "0.0.2", @@ -354,13 +309,11 @@ }, "encodeurl": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.1.tgz", - "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" + "resolved": "http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.1.tgz" }, "es5-ext": { "version": "0.10.27", "resolved": "http://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.27.tgz", - "integrity": "sha1-v5JrBYxisctd4aiHkwZztqptmmY=", "dev": true, "requires": { "es6-iterator": "2.0.1", @@ -370,7 +323,6 @@ "es6-iterator": { "version": "2.0.1", "resolved": "http://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.1.tgz", - "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", "dev": true, "requires": { "d": "1.0.0", @@ -381,7 +333,6 @@ "es6-map": { "version": "0.1.5", "resolved": "http://registry.npm.taobao.org/es6-map/download/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { "d": "1.0.0", @@ -395,7 +346,6 @@ "es6-set": { "version": "0.1.5", "resolved": "http://registry.npm.taobao.org/es6-set/download/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "dev": true, "requires": { "d": "1.0.0", @@ -408,7 +358,6 @@ "es6-symbol": { "version": "3.1.1", "resolved": "http://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { "d": "1.0.0", @@ -418,7 +367,6 @@ "es6-weak-map": { "version": "2.0.2", "resolved": "http://registry.npm.taobao.org/es6-weak-map/download/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "dev": true, "requires": { "d": "1.0.0", @@ -430,7 +378,6 @@ "escallmatch": { "version": "1.5.0", "resolved": "http://registry.npm.taobao.org/escallmatch/download/escallmatch-1.5.0.tgz", - "integrity": "sha1-UAmdhugJGwkt+N37w/mm+wWgJNA=", "dev": true, "requires": { "call-matcher": "1.0.1", @@ -439,19 +386,16 @@ }, "escape-html": { "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "resolved": "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz" }, "escape-string-regexp": { "version": "1.0.5", "resolved": "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "escodegen": { "version": "1.8.1", "resolved": "http://registry.npm.taobao.org/escodegen/download/escodegen-1.8.1.tgz", - "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", "dev": true, "requires": { "esprima": "2.7.3", @@ -464,7 +408,6 @@ "estraverse": { "version": "1.9.3", "resolved": "http://registry.npm.taobao.org/estraverse/download/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", "dev": true } } @@ -472,7 +415,6 @@ "escope": { "version": "3.6.0", "resolved": "http://registry.npm.taobao.org/escope/download/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "dev": true, "requires": { "es6-map": "0.1.5", @@ -484,7 +426,6 @@ "espower": { "version": "2.1.0", "resolved": "http://registry.npm.taobao.org/espower/download/espower-2.1.0.tgz", - "integrity": "sha1-zh7bPZhwKEH99ZbRy46FvcSujkg=", "dev": true, "requires": { "array-find": "1.0.0", @@ -502,7 +443,6 @@ "source-map": { "version": "0.5.6", "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", "dev": true } } @@ -510,7 +450,6 @@ "espower-loader": { "version": "1.2.2", "resolved": "http://registry.npm.taobao.org/espower-loader/download/espower-loader-1.2.2.tgz", - "integrity": "sha1-7bRsPFmga6yOpzppXIblxaC8gto=", "dev": true, "requires": { "convert-source-map": "1.5.0", @@ -523,7 +462,6 @@ "espower-location-detector": { "version": "1.0.0", "resolved": "http://registry.npm.taobao.org/espower-location-detector/download/espower-location-detector-1.0.0.tgz", - "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", "dev": true, "requires": { "is-url": "1.2.2", @@ -534,8 +472,7 @@ "dependencies": { "source-map": { "version": "0.5.6", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "bundled": true, "dev": true } } @@ -543,7 +480,6 @@ "espower-source": { "version": "2.2.0", "resolved": "http://registry.npm.taobao.org/espower-source/download/espower-source-2.2.0.tgz", - "integrity": "sha1-fgBSVa5HtcE2RIZEs/PYAtUD91I=", "dev": true, "requires": { "acorn": "5.1.1", @@ -562,13 +498,11 @@ "esprima": { "version": "2.7.3", "resolved": "http://registry.npm.taobao.org/esprima/download/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", "dev": true }, "espurify": { "version": "1.7.0", "resolved": "http://registry.npm.taobao.org/espurify/download/espurify-1.7.0.tgz", - "integrity": "sha1-HFz2y8zDLm9jk4C9T5kfq5up0iY=", "dev": true, "requires": { "core-js": "2.5.0" @@ -577,7 +511,6 @@ "esrecurse": { "version": "4.2.0", "resolved": "http://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.0.tgz", - "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", "dev": true, "requires": { "estraverse": "4.2.0", @@ -587,24 +520,20 @@ "estraverse": { "version": "4.2.0", "resolved": "http://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", "dev": true }, "esutils": { "version": "2.0.2", "resolved": "http://registry.npm.taobao.org/esutils/download/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, "etag": { "version": "1.8.0", - "resolved": "http://registry.npm.taobao.org/etag/download/etag-1.8.0.tgz", - "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=" + "resolved": "http://registry.npm.taobao.org/etag/download/etag-1.8.0.tgz" }, "event-emitter": { "version": "0.3.5", "resolved": "http://registry.npm.taobao.org/event-emitter/download/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { "d": "1.0.0", @@ -614,7 +543,6 @@ "express": { "version": "4.15.4", "resolved": "http://registry.npm.taobao.org/express/download/express-4.15.4.tgz", - "integrity": "sha1-Ay4iU0ic+PzgJma+yj0R7XotrtE=", "requires": { "accepts": "1.3.3", "array-flatten": "1.1.1", @@ -648,24 +576,20 @@ }, "extend": { "version": "3.0.1", - "resolved": "http://registry.npm.taobao.org/extend/download/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + "resolved": "http://registry.npm.taobao.org/extend/download/extend-3.0.1.tgz" }, "extsprintf": { "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "resolved": "http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz" }, "fast-levenshtein": { "version": "2.0.6", "resolved": "http://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "finalhandler": { "version": "1.0.4", "resolved": "http://registry.npm.taobao.org/finalhandler/download/finalhandler-1.0.4.tgz", - "integrity": "sha1-GFdPLnxLmLiuOyMMIfIB8xvbP7c=", "requires": { "debug": "2.6.8", "encodeurl": "1.0.1", @@ -679,18 +603,15 @@ "foreach": { "version": "2.0.5", "resolved": "http://registry.npm.taobao.org/foreach/download/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", "dev": true }, "forever-agent": { "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "resolved": "http://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz" }, "form-data": { "version": "2.1.4", "resolved": "http://registry.npm.taobao.org/form-data/download/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "requires": { "asynckit": "0.4.0", "combined-stream": "1.0.5", @@ -699,39 +620,33 @@ }, "forwarded": { "version": "0.1.0", - "resolved": "http://registry.npm.taobao.org/forwarded/download/forwarded-0.1.0.tgz", - "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=" + "resolved": "http://registry.npm.taobao.org/forwarded/download/forwarded-0.1.0.tgz" }, "fresh": { "version": "0.5.0", - "resolved": "http://registry.npm.taobao.org/fresh/download/fresh-0.5.0.tgz", - "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=" + "resolved": "http://registry.npm.taobao.org/fresh/download/fresh-0.5.0.tgz" }, "fs.realpath": { "version": "1.0.0", "resolved": "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "getpass": { "version": "0.1.7", "resolved": "http://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { "assert-plus": "1.0.0" }, "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz" } } }, "glob": { "version": "7.1.1", "resolved": "http://registry.npm.taobao.org/glob/download/glob-7.1.1.tgz", - "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -745,24 +660,20 @@ "graceful-readlink": { "version": "1.0.1", "resolved": "http://registry.npm.taobao.org/graceful-readlink/download/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", "dev": true }, "growl": { "version": "1.9.2", "resolved": "http://registry.npm.taobao.org/growl/download/growl-1.9.2.tgz", - "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", "dev": true }, "har-schema": { "version": "1.0.5", - "resolved": "http://registry.npm.taobao.org/har-schema/download/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" + "resolved": "http://registry.npm.taobao.org/har-schema/download/har-schema-1.0.5.tgz" }, "har-validator": { "version": "4.2.1", "resolved": "http://registry.npm.taobao.org/har-validator/download/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "requires": { "ajv": "4.11.8", "har-schema": "1.0.5" @@ -771,13 +682,11 @@ "has-flag": { "version": "1.0.0", "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, "hawk": { "version": "3.1.3", "resolved": "http://registry.npm.taobao.org/hawk/download/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", @@ -787,13 +696,11 @@ }, "hoek": { "version": "2.16.3", - "resolved": "http://registry.npm.taobao.org/hoek/download/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + "resolved": "http://registry.npm.taobao.org/hoek/download/hoek-2.16.3.tgz" }, "http-errors": { "version": "1.6.2", "resolved": "http://registry.npm.taobao.org/http-errors/download/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", "requires": { "depd": "1.1.1", "inherits": "2.0.3", @@ -804,7 +711,6 @@ "http-signature": { "version": "1.1.1", "resolved": "http://registry.npm.taobao.org/http-signature/download/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "requires": { "assert-plus": "0.2.0", "jsprim": "1.4.1", @@ -814,13 +720,11 @@ "indexof": { "version": "0.0.1", "resolved": "http://registry.npm.taobao.org/indexof/download/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", "dev": true }, "inflight": { "version": "1.0.6", "resolved": "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "1.4.0", @@ -829,13 +733,11 @@ }, "inherits": { "version": "2.0.3", - "resolved": "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "resolved": "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz" }, "intelli-espower-loader": { "version": "1.0.1", "resolved": "http://registry.npm.taobao.org/intelli-espower-loader/download/intelli-espower-loader-1.0.1.tgz", - "integrity": "sha1-LHsDFGvB1GvyENCgOXxckatMorA=", "dev": true, "requires": { "espower-loader": "1.2.2" @@ -843,64 +745,53 @@ }, "ipaddr.js": { "version": "1.4.0", - "resolved": "http://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.4.0.tgz", - "integrity": "sha1-KWrKh4qCGBbluF0KKFqZvP9FgvA=" + "resolved": "http://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.4.0.tgz" }, "is-typedarray": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "resolved": "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz" }, "is-url": { "version": "1.2.2", "resolved": "http://registry.npm.taobao.org/is-url/download/is-url-1.2.2.tgz", - "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY=", "dev": true }, "isstream": { "version": "0.1.2", - "resolved": "http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "resolved": "http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz" }, "jsbn": { "version": "0.1.1", "resolved": "http://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, "json-schema": { "version": "0.2.3", - "resolved": "http://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "resolved": "http://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz" }, "json-stable-stringify": { "version": "1.0.1", "resolved": "http://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "requires": { "jsonify": "0.0.0" } }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "resolved": "http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz" }, "json3": { "version": "3.3.2", "resolved": "http://registry.npm.taobao.org/json3/download/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", "dev": true }, "jsonify": { "version": "0.0.0", - "resolved": "http://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + "resolved": "http://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz" }, "jsprim": { "version": "1.4.1", "resolved": "http://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -910,15 +801,13 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz" } } }, "levn": { "version": "0.3.0", "resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { "prelude-ls": "1.1.2", @@ -928,7 +817,6 @@ "lodash._baseassign": { "version": "3.2.0", "resolved": "http://registry.npm.taobao.org/lodash._baseassign/download/lodash._baseassign-3.2.0.tgz", - "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", "dev": true, "requires": { "lodash._basecopy": "3.0.1", @@ -938,31 +826,26 @@ "lodash._basecopy": { "version": "3.0.1", "resolved": "http://registry.npm.taobao.org/lodash._basecopy/download/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", "dev": true }, "lodash._basecreate": { "version": "3.0.3", "resolved": "http://registry.npm.taobao.org/lodash._basecreate/download/lodash._basecreate-3.0.3.tgz", - "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=", "dev": true }, "lodash._getnative": { "version": "3.9.1", "resolved": "http://registry.npm.taobao.org/lodash._getnative/download/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", "dev": true }, "lodash._isiterateecall": { "version": "3.0.9", "resolved": "http://registry.npm.taobao.org/lodash._isiterateecall/download/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", "dev": true }, "lodash.create": { "version": "3.1.1", "resolved": "http://registry.npm.taobao.org/lodash.create/download/lodash.create-3.1.1.tgz", - "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", "dev": true, "requires": { "lodash._baseassign": "3.2.0", @@ -973,19 +856,16 @@ "lodash.isarguments": { "version": "3.1.0", "resolved": "http://registry.npm.taobao.org/lodash.isarguments/download/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", "dev": true }, "lodash.isarray": { "version": "3.0.4", "resolved": "http://registry.npm.taobao.org/lodash.isarray/download/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", "dev": true }, "lodash.keys": { "version": "3.1.2", "resolved": "http://registry.npm.taobao.org/lodash.keys/download/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", "dev": true, "requires": { "lodash._getnative": "3.9.1", @@ -995,18 +875,15 @@ }, "media-typer": { "version": "0.3.0", - "resolved": "http://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + "resolved": "http://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz" }, "merge-descriptors": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "resolved": "http://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz" }, "merge-estraverse-visitors": { "version": "1.0.0", "resolved": "http://registry.npm.taobao.org/merge-estraverse-visitors/download/merge-estraverse-visitors-1.0.0.tgz", - "integrity": "sha1-65aDOLXe1c7tgs7AMH3sui2OqZQ=", "dev": true, "requires": { "estraverse": "4.2.0" @@ -1014,23 +891,19 @@ }, "methods": { "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "resolved": "http://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz" }, "mime": { "version": "1.3.4", - "resolved": "http://registry.npm.taobao.org/mime/download/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" + "resolved": "http://registry.npm.taobao.org/mime/download/mime-1.3.4.tgz" }, "mime-db": { "version": "1.29.0", - "resolved": "http://registry.npm.taobao.org/mime-db/download/mime-db-1.29.0.tgz", - "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=" + "resolved": "http://registry.npm.taobao.org/mime-db/download/mime-db-1.29.0.tgz" }, "mime-types": { "version": "2.1.16", "resolved": "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.16.tgz", - "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", "requires": { "mime-db": "1.29.0" } @@ -1038,7 +911,6 @@ "minimatch": { "version": "3.0.4", "resolved": "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "dev": true, "requires": { "brace-expansion": "1.1.8" @@ -1047,13 +919,11 @@ "minimist": { "version": "0.0.8", "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mkdirp": { "version": "0.5.1", "resolved": "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -1062,7 +932,6 @@ "mocha": { "version": "3.5.0", "resolved": "http://registry.npm.taobao.org/mocha/download/mocha-3.5.0.tgz", - "integrity": "sha1-EyhWfScX+ZcDD4AGI0vOm4zXJGU=", "dev": true, "requires": { "browser-stdout": "1.3.0", @@ -1080,13 +949,11 @@ }, "ms": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz" }, "multi-stage-sourcemap": { "version": "0.2.1", "resolved": "http://registry.npm.taobao.org/multi-stage-sourcemap/download/multi-stage-sourcemap-0.2.1.tgz", - "integrity": "sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=", "dev": true, "requires": { "source-map": "0.1.43" @@ -1095,40 +962,41 @@ "source-map": { "version": "0.1.43", "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { "amdefine": "1.0.1" + }, + "dependencies": { + "amdefine": { + "version": "1.0.1", + "bundled": true, + "dev": true + } } } } }, "negotiator": { "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + "resolved": "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz" }, "oauth-sign": { "version": "0.8.2", - "resolved": "http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + "resolved": "http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.8.2.tgz" }, "object-assign": { "version": "4.1.1", "resolved": "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object-keys": { "version": "1.0.11", "resolved": "http://registry.npm.taobao.org/object-keys/download/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", "dev": true }, "on-finished": { "version": "2.3.0", "resolved": "http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "requires": { "ee-first": "1.1.1" } @@ -1136,7 +1004,6 @@ "once": { "version": "1.4.0", "resolved": "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1.0.2" @@ -1145,7 +1012,6 @@ "optionator": { "version": "0.8.2", "resolved": "http://registry.npm.taobao.org/optionator/download/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { "deep-is": "0.1.3", @@ -1158,29 +1024,24 @@ }, "parseurl": { "version": "1.3.1", - "resolved": "http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.1.tgz", - "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=" + "resolved": "http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.1.tgz" }, "path-is-absolute": { "version": "1.0.1", "resolved": "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-to-regexp": { "version": "0.1.7", - "resolved": "http://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "resolved": "http://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz" }, "performance-now": { "version": "0.2.0", - "resolved": "http://registry.npm.taobao.org/performance-now/download/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + "resolved": "http://registry.npm.taobao.org/performance-now/download/performance-now-0.2.0.tgz" }, "power-assert": { "version": "1.4.4", "resolved": "http://registry.npm.taobao.org/power-assert/download/power-assert-1.4.4.tgz", - "integrity": "sha1-kpXqdDcZb1pgH95CDwQmMRhtdRc=", "dev": true, "requires": { "define-properties": "1.1.2", @@ -1193,7 +1054,6 @@ "power-assert-context-formatter": { "version": "1.1.1", "resolved": "http://registry.npm.taobao.org/power-assert-context-formatter/download/power-assert-context-formatter-1.1.1.tgz", - "integrity": "sha1-7bo1LT7YpgMRTWZyZazOYNaJzN8=", "dev": true, "requires": { "core-js": "2.5.0", @@ -1203,7 +1063,6 @@ "power-assert-context-reducer-ast": { "version": "1.1.2", "resolved": "http://registry.npm.taobao.org/power-assert-context-reducer-ast/download/power-assert-context-reducer-ast-1.1.2.tgz", - "integrity": "sha1-SEqZ4m9Jc/+IMuXFzHVnAuYJQXQ=", "dev": true, "requires": { "acorn": "4.0.13", @@ -1215,8 +1074,7 @@ "dependencies": { "acorn": { "version": "4.0.13", - "resolved": "http://registry.npm.taobao.org/acorn/download/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "bundled": true, "dev": true } } @@ -1224,7 +1082,6 @@ "power-assert-context-traversal": { "version": "1.1.1", "resolved": "http://registry.npm.taobao.org/power-assert-context-traversal/download/power-assert-context-traversal-1.1.1.tgz", - "integrity": "sha1-iMq8oNE7Y1nwfT0+ivppkmRXftk=", "dev": true, "requires": { "core-js": "2.5.0", @@ -1234,7 +1091,6 @@ "power-assert-formatter": { "version": "1.4.1", "resolved": "http://registry.npm.taobao.org/power-assert-formatter/download/power-assert-formatter-1.4.1.tgz", - "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", "dev": true, "requires": { "core-js": "2.5.0", @@ -1249,7 +1105,6 @@ "power-assert-renderer-assertion": { "version": "1.1.1", "resolved": "http://registry.npm.taobao.org/power-assert-renderer-assertion/download/power-assert-renderer-assertion-1.1.1.tgz", - "integrity": "sha1-y/wOd+AIao+Wrz8djme57n4ozpg=", "dev": true, "requires": { "power-assert-renderer-base": "1.1.1", @@ -1259,13 +1114,11 @@ "power-assert-renderer-base": { "version": "1.1.1", "resolved": "http://registry.npm.taobao.org/power-assert-renderer-base/download/power-assert-renderer-base-1.1.1.tgz", - "integrity": "sha1-lqZQxv0F7hvB9mtUrWFELIs/Y+s=", "dev": true }, "power-assert-renderer-comparison": { "version": "1.1.1", "resolved": "http://registry.npm.taobao.org/power-assert-renderer-comparison/download/power-assert-renderer-comparison-1.1.1.tgz", - "integrity": "sha1-10Odl9hRVr5OMKAPL7WnJRTOPAg=", "dev": true, "requires": { "core-js": "2.5.0", @@ -1278,7 +1131,6 @@ "power-assert-renderer-diagram": { "version": "1.1.2", "resolved": "http://registry.npm.taobao.org/power-assert-renderer-diagram/download/power-assert-renderer-diagram-1.1.2.tgz", - "integrity": "sha1-ZV+PcRk1qbbVQbhjJ2VHF8Y3qYY=", "dev": true, "requires": { "core-js": "2.5.0", @@ -1290,7 +1142,6 @@ "power-assert-renderer-file": { "version": "1.1.1", "resolved": "http://registry.npm.taobao.org/power-assert-renderer-file/download/power-assert-renderer-file-1.1.1.tgz", - "integrity": "sha1-o34rvReMys0E5427eckv40kzxec=", "dev": true, "requires": { "power-assert-renderer-base": "1.1.1" @@ -1299,7 +1150,6 @@ "power-assert-util-string-width": { "version": "1.1.1", "resolved": "http://registry.npm.taobao.org/power-assert-util-string-width/download/power-assert-util-string-width-1.1.1.tgz", - "integrity": "sha1-vmWet5N/3S5smncmjar2S9W3xZI=", "dev": true, "requires": { "eastasianwidth": "0.1.1" @@ -1308,13 +1158,11 @@ "prelude-ls": { "version": "1.1.2", "resolved": "http://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, "proxy-addr": { "version": "1.1.5", "resolved": "http://registry.npm.taobao.org/proxy-addr/download/proxy-addr-1.1.5.tgz", - "integrity": "sha1-ccDuOxAt4/IC87ZPYI0XP8uhqRg=", "requires": { "forwarded": "0.1.0", "ipaddr.js": "1.4.0" @@ -1322,23 +1170,19 @@ }, "punycode": { "version": "1.4.1", - "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz" }, "qs": { "version": "6.5.0", - "resolved": "http://registry.npm.taobao.org/qs/download/qs-6.5.0.tgz", - "integrity": "sha1-jQSVTTZN7z78VbWgeT4eLIsebkk=" + "resolved": "http://registry.npm.taobao.org/qs/download/qs-6.5.0.tgz" }, "range-parser": { "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/range-parser/download/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + "resolved": "http://registry.npm.taobao.org/range-parser/download/range-parser-1.2.0.tgz" }, "request": { "version": "2.81.0", "resolved": "http://registry.npm.taobao.org/request/download/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "requires": { "aws-sign2": "0.6.0", "aws4": "1.6.0", @@ -1366,20 +1210,17 @@ "dependencies": { "qs": { "version": "6.4.0", - "resolved": "http://registry.npm.taobao.org/qs/download/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" + "bundled": true } } }, "safe-buffer": { "version": "5.1.1", - "resolved": "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=" + "resolved": "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.1.tgz" }, "send": { "version": "0.15.4", "resolved": "http://registry.npm.taobao.org/send/download/send-0.15.4.tgz", - "integrity": "sha1-mF+qPihLAnPHkzZKNcZze9k5Bbk=", "requires": { "debug": "2.6.8", "depd": "1.1.1", @@ -1399,7 +1240,6 @@ "serve-static": { "version": "1.12.4", "resolved": "http://registry.npm.taobao.org/serve-static/download/serve-static-1.12.4.tgz", - "integrity": "sha1-m2qpjutyU8Tu3Ewfb9vKYJkBqWE=", "requires": { "encodeurl": "1.0.1", "escape-html": "1.0.3", @@ -1409,13 +1249,11 @@ }, "setprototypeof": { "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + "resolved": "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.0.3.tgz" }, "sntp": { "version": "1.0.9", "resolved": "http://registry.npm.taobao.org/sntp/download/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "requires": { "hoek": "2.16.3" } @@ -1433,7 +1271,6 @@ "source-map-support": { "version": "0.4.15", "resolved": "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.15.tgz", - "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", "dev": true, "requires": { "source-map": "0.5.6" @@ -1442,7 +1279,6 @@ "source-map": { "version": "0.5.6", "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", "dev": true } } @@ -1450,7 +1286,6 @@ "sshpk": { "version": "1.13.1", "resolved": "http://registry.npm.taobao.org/sshpk/download/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", "requires": { "asn1": "0.2.3", "assert-plus": "1.0.0", @@ -1464,20 +1299,17 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "bundled": true } } }, "statuses": { "version": "1.3.1", - "resolved": "http://registry.npm.taobao.org/statuses/download/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + "resolved": "http://registry.npm.taobao.org/statuses/download/statuses-1.3.1.tgz" }, "stringifier": { "version": "1.3.0", "resolved": "http://registry.npm.taobao.org/stringifier/download/stringifier-1.3.0.tgz", - "integrity": "sha1-3vGDQvaTPbDy2/yaoCF1tEjBeVk=", "dev": true, "requires": { "core-js": "2.5.0", @@ -1487,13 +1319,11 @@ }, "stringstream": { "version": "0.0.5", - "resolved": "http://registry.npm.taobao.org/stringstream/download/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + "resolved": "http://registry.npm.taobao.org/stringstream/download/stringstream-0.0.5.tgz" }, "supports-color": { "version": "3.1.2", "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.1.2.tgz", - "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", "dev": true, "requires": { "has-flag": "1.0.0" @@ -1502,7 +1332,6 @@ "tough-cookie": { "version": "2.3.2", "resolved": "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", "requires": { "punycode": "1.4.1" } @@ -1510,13 +1339,11 @@ "traverse": { "version": "0.6.6", "resolved": "http://registry.npm.taobao.org/traverse/download/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", "dev": true }, "tunnel-agent": { "version": "0.6.0", "resolved": "http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { "safe-buffer": "5.1.1" } @@ -1524,13 +1351,11 @@ "tweetnacl": { "version": "0.14.5", "resolved": "http://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, "type-check": { "version": "0.3.2", "resolved": "http://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { "prelude-ls": "1.1.2" @@ -1539,7 +1364,6 @@ "type-is": { "version": "1.6.15", "resolved": "http://registry.npm.taobao.org/type-is/download/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", "requires": { "media-typer": "0.3.0", "mime-types": "2.1.16" @@ -1548,13 +1372,11 @@ "type-name": { "version": "2.0.2", "resolved": "http://registry.npm.taobao.org/type-name/download/type-name-2.0.2.tgz", - "integrity": "sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q=", "dev": true }, "universal-deep-strict-equal": { "version": "1.2.2", "resolved": "http://registry.npm.taobao.org/universal-deep-strict-equal/download/universal-deep-strict-equal-1.2.2.tgz", - "integrity": "sha1-DaSsL3PP95JMgfpN4BjKViyisKc=", "dev": true, "requires": { "array-filter": "1.0.0", @@ -1564,28 +1386,23 @@ }, "unpipe": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "resolved": "http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz" }, "utils-merge": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" + "resolved": "http://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.0.tgz" }, "uuid": { "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/uuid/download/uuid-3.1.0.tgz", - "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=" + "resolved": "http://registry.npm.taobao.org/uuid/download/uuid-3.1.0.tgz" }, "vary": { "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/vary/download/vary-1.1.1.tgz", - "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=" + "resolved": "http://registry.npm.taobao.org/vary/download/vary-1.1.1.tgz" }, "verror": { "version": "1.10.0", "resolved": "http://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { "assert-plus": "1.0.0", "core-util-is": "1.0.2", @@ -1594,27 +1411,23 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "bundled": true } } }, "wordwrap": { "version": "1.0.0", "resolved": "http://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, "wrappy": { "version": "1.0.2", "resolved": "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "xtend": { "version": "4.0.1", "resolved": "http://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", "dev": true } } diff --git a/package.json b/package.json index 4f9eead..9d4eb2f 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "author": "", "license": "MIT", "dependencies": { + "apicache": "^0.9.0", "big-integer": "^1.6.17", "express": "^4.15.2", "request": "^2.81.0" diff --git a/router/simi_playlist.js b/router/simi_playlist.js index b716fc4..4a41208 100644 --- a/router/simi_playlist.js +++ b/router/simi_playlist.js @@ -1,8 +1,8 @@ -const express = require("express") +const express = require('express') const router = express() -const { createWebAPIRequest } = require("../util/util") +const { createWebAPIRequest } = require('../util/util') -router.get("/", (req, res) => { +router.get('/', (req, res) => { const cookie = req.get('Cookie') ? req.get('Cookie') : '' const data = { songid: req.query.id, @@ -22,4 +22,4 @@ router.get("/", (req, res) => { ) }) -module.exports = router \ No newline at end of file +module.exports = router diff --git a/router/simi_song.js b/router/simi_song.js index cd0c252..214fdff 100644 --- a/router/simi_song.js +++ b/router/simi_song.js @@ -1,8 +1,8 @@ -const express = require("express") +const express = require('express') const router = express() -const { createWebAPIRequest } = require("../util/util") +const { createWebAPIRequest } = require('../util/util') -router.get("/", (req, res) => { +router.get('/', (req, res) => { const cookie = req.get('Cookie') ? req.get('Cookie') : '' const data = { songid: req.query.id, @@ -22,4 +22,4 @@ router.get("/", (req, res) => { ) }) -module.exports = router \ No newline at end of file +module.exports = router diff --git a/router/song_detail.js b/router/song_detail.js index bb014bd..5b4f529 100644 --- a/router/song_detail.js +++ b/router/song_detail.js @@ -1,15 +1,15 @@ -const express = require("express") +const express = require('express') const router = express() -const { createWebAPIRequest } = require("../util/util") +const { createWebAPIRequest } = require('../util/util') -router.get("/", (req, res) => { +router.get('/', (req, res) => { const cookie = req.get('Cookie') ? req.get('Cookie') : '' const id = parseInt(req.query.ids) const data = { // "id": id, - 'c': JSON.stringify([{ id: id }]), - "ids": '[' + id + ']', - "csrf_token": "" + c: JSON.stringify([{ id: id }]), + ids: '[' + id + ']', + csrf_token: '' } console.log(data) createWebAPIRequest( @@ -25,4 +25,4 @@ router.get("/", (req, res) => { ) }) -module.exports = router \ No newline at end of file +module.exports = router diff --git a/router/top_album.js b/router/top_album.js index a4ef24a..eca6a2d 100644 --- a/router/top_album.js +++ b/router/top_album.js @@ -1,17 +1,17 @@ //最新mv -const express = require("express") +const express = require('express') const router = express() -const { createWebAPIRequest } = require("../util/util") +const { createWebAPIRequest } = require('../util/util') // type ALL, ZH,EA,KR,JP -router.get("/", (req, res) => { +router.get('/', (req, res) => { const cookie = req.get('Cookie') ? req.get('Cookie') : '' const data = { - 'offset': req.query.offset, - 'total': true, - 'limit': req.query.limit, - 'area': req.query.type, - "csrf_token": "" + offset: req.query.offset, + total: true, + limit: req.query.limit, + area: req.query.type, + csrf_token: '' } createWebAPIRequest( 'music.163.com', @@ -26,5 +26,4 @@ router.get("/", (req, res) => { ) }) - -module.exports = router \ No newline at end of file +module.exports = router diff --git a/router/top_artists.js b/router/top_artists.js index fcfbfc3..f75a1e9 100644 --- a/router/top_artists.js +++ b/router/top_artists.js @@ -1,13 +1,17 @@ -const express = require("express") +const express = require('express') const router = express() -const { createRequest } = require("../util/util") +const { createRequest } = require('../util/util') -router.get("/", (req, res) => { +router.get('/', (req, res) => { const offset = req.query.offset || 0 const limit = req.query.limit || 50 - createRequest(`/api/artist/top?offset=${offset}&total=false&limit=${limit}`, 'GET', null) + createRequest( + `/api/artist/top?offset=${offset}&total=false&limit=${limit}`, + 'GET', + null + ) .then(result => { - res.setHeader("Content-Type", "application/json") + res.setHeader('Content-Type', 'application/json') res.send(result) }) .catch(err => { @@ -15,5 +19,4 @@ router.get("/", (req, res) => { }) }) - -module.exports = router \ No newline at end of file +module.exports = router diff --git a/router/top_list.js b/router/top_list.js index 2ffd26b..a083fe8 100644 --- a/router/top_list.js +++ b/router/top_list.js @@ -1,37 +1,37 @@ const top_list_all = { - "0": ['云音乐新歌榜', '/api/playlist/detail?id=3779629'], - "1": ['云音乐热歌榜', '/api/playlist/detail?id=3778678'], - "2": ['网易原创歌曲榜', '/api/playlist/detail?id=2884035'], - "3": ['云音乐飙升榜', '/api/playlist/detail?id=19723756'], - "4": ['云音乐电音榜', '/api/playlist/detail?id=10520166'], - "5": ['UK排行榜周榜', '/api/playlist/detail?id=180106'], - "6": ['美国Billboard周榜', '/api/playlist/detail?id=60198'], - "7": ['KTV嗨榜', '/api/playlist/detail?id=21845217'], - "8": ['iTunes榜', '/api/playlist/detail?id=11641012'], - "9": ['Hit FM Top榜', '/api/playlist/detail?id=120001'], - "10": ['日本Oricon周榜', '/api/playlist/detail?id=60131'], - "11": ['韩国Melon排行榜周榜', '/api/playlist/detail?id=3733003'], - "12": ['韩国Mnet排行榜周榜', '/api/playlist/detail?id=60255'], - "13": ['韩国Melon原声周榜', '/api/playlist/detail?id=46772709'], - "14": ['中国TOP排行榜(港台榜)', '/api/playlist/detail?id=112504'], - "15": ['中国TOP排行榜(内地榜)', '/api/playlist/detail?id=64016'], - "16": ['香港电台中文歌曲龙虎榜', '/api/playlist/detail?id=10169002'], - "17": ['华语金曲榜', '/api/playlist/detail?id=4395559'], - "18": ['中国嘻哈榜', '/api/playlist/detail?id=1899724'], - "19": ['法国 NRJ EuroHot 30周榜', '/api/playlist/detail?id=27135204'], - "20": ['台湾Hito排行榜', '/api/playlist/detail?id=112463'], - "21": ['Beatport全球电子舞曲榜', '/api/playlist/detail?id=3812895'] + '0': ['云音乐新歌榜', '/api/playlist/detail?id=3779629'], + '1': ['云音乐热歌榜', '/api/playlist/detail?id=3778678'], + '2': ['网易原创歌曲榜', '/api/playlist/detail?id=2884035'], + '3': ['云音乐飙升榜', '/api/playlist/detail?id=19723756'], + '4': ['云音乐电音榜', '/api/playlist/detail?id=10520166'], + '5': ['UK排行榜周榜', '/api/playlist/detail?id=180106'], + '6': ['美国Billboard周榜', '/api/playlist/detail?id=60198'], + '7': ['KTV嗨榜', '/api/playlist/detail?id=21845217'], + '8': ['iTunes榜', '/api/playlist/detail?id=11641012'], + '9': ['Hit FM Top榜', '/api/playlist/detail?id=120001'], + '10': ['日本Oricon周榜', '/api/playlist/detail?id=60131'], + '11': ['韩国Melon排行榜周榜', '/api/playlist/detail?id=3733003'], + '12': ['韩国Mnet排行榜周榜', '/api/playlist/detail?id=60255'], + '13': ['韩国Melon原声周榜', '/api/playlist/detail?id=46772709'], + '14': ['中国TOP排行榜(港台榜)', '/api/playlist/detail?id=112504'], + '15': ['中国TOP排行榜(内地榜)', '/api/playlist/detail?id=64016'], + '16': ['香港电台中文歌曲龙虎榜', '/api/playlist/detail?id=10169002'], + '17': ['华语金曲榜', '/api/playlist/detail?id=4395559'], + '18': ['中国嘻哈榜', '/api/playlist/detail?id=1899724'], + '19': ['法国 NRJ EuroHot 30周榜', '/api/playlist/detail?id=27135204'], + '20': ['台湾Hito排行榜', '/api/playlist/detail?id=112463'], + '21': ['Beatport全球电子舞曲榜', '/api/playlist/detail?id=3812895'] } -const express = require("express") +const express = require('express') const router = express() -const { createRequest } = require("../util/util") +const { createRequest } = require('../util/util') -router.get("/", (req, res) => { +router.get('/', (req, res) => { const idx = req.query.idx const action = 'http://music.163.com' + top_list_all[idx][1] createRequest(`${action}`, 'GET', null) .then(result => { - res.setHeader("Content-Type", "application/json") + res.setHeader('Content-Type', 'application/json') res.send(result) }) .catch(err => { @@ -39,5 +39,4 @@ router.get("/", (req, res) => { }) }) - -module.exports = router \ No newline at end of file +module.exports = router diff --git a/router/top_mv.js b/router/top_mv.js index 956c715..ad4b527 100644 --- a/router/top_mv.js +++ b/router/top_mv.js @@ -1,14 +1,14 @@ -const express = require("express") +const express = require('express') const router = express() -const { createWebAPIRequest } = require("../util/util") +const { createWebAPIRequest } = require('../util/util') -router.get("/", (req, res) => { +router.get('/', (req, res) => { const cookie = req.get('Cookie') ? req.get('Cookie') : '' const data = { - 'offset': req.query.offset || 0, - 'total': true, - 'limit': req.query.limit || 30, - "csrf_token": "" + offset: req.query.offset || 0, + total: true, + limit: req.query.limit || 30, + csrf_token: '' } createWebAPIRequest( @@ -18,13 +18,11 @@ router.get("/", (req, res) => { data, cookie, music_req => { - res.setHeader("Content-Type", "application/json") + res.setHeader('Content-Type', 'application/json') res.send(music_req) }, err => res.status(502).send('fetch error') ) }) - - -module.exports = router \ No newline at end of file +module.exports = router diff --git a/router/top_playlist.js b/router/top_playlist.js index 1347127..867377e 100644 --- a/router/top_playlist.js +++ b/router/top_playlist.js @@ -1,14 +1,14 @@ //分类歌单 -const express = require("express") +const express = require('express') const router = express() -const { createWebAPIRequest } = require("../util/util") +const { createWebAPIRequest } = require('../util/util') -router.get("/", (req, res) => { +router.get('/', (req, res) => { const cookie = req.get('Cookie') ? req.get('Cookie') : '' // order可为 'hot' 可为 'new' const data = { - cat: req.query.cat || "全部", - order: req.query.order || "hot", + cat: req.query.cat || '全部', + order: req.query.order || 'hot', offset: req.query.offset || 0, total: req.query.total ? 'true' : 'false', limit: req.query.limit || 50 @@ -26,4 +26,4 @@ router.get("/", (req, res) => { ) }) -module.exports = router \ No newline at end of file +module.exports = router diff --git a/router/top_playlist_highquality.js b/router/top_playlist_highquality.js index 0f0f525..79f3fe6 100644 --- a/router/top_playlist_highquality.js +++ b/router/top_playlist_highquality.js @@ -1,11 +1,11 @@ -const express = require("express") +const express = require('express') const router = express() -const { createWebAPIRequest } = require("../util/util") +const { createWebAPIRequest } = require('../util/util') -router.get("/", (req, res) => { +router.get('/', (req, res) => { const cookie = req.get('Cookie') ? req.get('Cookie') : '' const data = { - cat: req.query.cat || "全部", + cat: req.query.cat || '全部', offset: req.query.offset || 0, limit: req.query.limit || 20 } @@ -22,4 +22,4 @@ router.get("/", (req, res) => { ) }) -module.exports = router \ No newline at end of file +module.exports = router diff --git a/router/top_songs.js b/router/top_songs.js index ef59a9d..b53ae18 100644 --- a/router/top_songs.js +++ b/router/top_songs.js @@ -1,17 +1,17 @@ //新歌上架 -const express = require("express") +const express = require('express') const router = express() -const { createWebAPIRequest } = require("../util/util") +const { createWebAPIRequest } = require('../util/util') // type ALL, ZH,EA,KR,JP -router.get("/", (req, res) => { +router.get('/', (req, res) => { const cookie = req.get('Cookie') ? req.get('Cookie') : '' const data = { - 'offset': request.query.offset, - 'total': true, - 'limit': request.query.limit, - 'area': request.query.type, - "csrf_token": "" + offset: request.query.offset, + total: true, + limit: request.query.limit, + area: request.query.type, + csrf_token: '' } createWebAPIRequest( 'music.163.com', @@ -26,5 +26,4 @@ router.get("/", (req, res) => { ) }) - -module.exports = router \ No newline at end of file +module.exports = router diff --git a/router/user_detail.js b/router/user_detail.js index 126e5d5..a279b1d 100644 --- a/router/user_detail.js +++ b/router/user_detail.js @@ -1,14 +1,14 @@ // 用户详情 -const express = require("express") +const express = require('express') const router = express() -const { createWebAPIRequest } = require("../util/util") +const { createWebAPIRequest } = require('../util/util') -router.get("/", (req, res) => { +router.get('/', (req, res) => { const cookie = req.get('Cookie') ? req.get('Cookie') : '' const id = req.query.uid const data = { - "csrf_token": "" - } + csrf_token: '' + } createWebAPIRequest( 'music.163.com', `/api/v1/user/detail/${id}`, @@ -22,4 +22,4 @@ router.get("/", (req, res) => { ) }) -module.exports = router \ No newline at end of file +module.exports = router diff --git a/router/user_dj.js b/router/user_dj.js index c92e5e7..9e61c4f 100644 --- a/router/user_dj.js +++ b/router/user_dj.js @@ -1,16 +1,16 @@ // 用户电台 -const express = require("express") +const express = require('express') const router = express() -const { createWebAPIRequest } = require("../util/util") +const { createWebAPIRequest } = require('../util/util') -router.get("/", (req, res) => { +router.get('/', (req, res) => { const cookie = req.get('Cookie') ? req.get('Cookie') : '' const id = req.query.uid const data = { - 'offset': req.query.offset || '0', - 'limit': req.query.limit || 30, - "csrf_token": "" - } + offset: req.query.offset || '0', + limit: req.query.limit || 30, + csrf_token: '' + } createWebAPIRequest( 'music.163.com', `/weapi/dj/program/${id}`, @@ -24,4 +24,4 @@ router.get("/", (req, res) => { ) }) -module.exports = router \ No newline at end of file +module.exports = router diff --git a/router/user_playlist.js b/router/user_playlist.js index 2165f06..4200ff9 100644 --- a/router/user_playlist.js +++ b/router/user_playlist.js @@ -1,14 +1,14 @@ -const express = require("express") +const express = require('express') const router = express() -const { createWebAPIRequest } = require("../util/util") +const { createWebAPIRequest } = require('../util/util') -router.get("/", (req, res) => { +router.get('/', (req, res) => { const cookie = req.get('Cookie') ? req.get('Cookie') : '' const data = { - "offset": 0, - "uid": req.query.uid, - "limit": 1000, - "csrf_token": "" + offset: 0, + uid: req.query.uid, + limit: 1000, + csrf_token: '' } createWebAPIRequest( 'music.163.com', @@ -21,4 +21,4 @@ router.get("/", (req, res) => { ) }) -module.exports = router \ No newline at end of file +module.exports = router diff --git a/router/user_playrecord.js b/router/user_playrecord.js index dfb3bec..bd8190e 100644 --- a/router/user_playrecord.js +++ b/router/user_playrecord.js @@ -1,16 +1,16 @@ //播放记录 -const express = require("express") +const express = require('express') const router = express() -const { createWebAPIRequest } = require("../util/util") +const { createWebAPIRequest } = require('../util/util') -router.get("/", (req, res) => { +router.get('/', (req, res) => { const cookie = req.get('Cookie') ? req.get('Cookie') : '' // type=1时只返回weekData, type=0时返回allData const data = { - 'type': req.query.type || 0, + type: req.query.type || 0, uid: req.query.uid, //用户 id, - "csrf_token": "" + csrf_token: '' } const action = `/weapi/v1/play/record` createWebAPIRequest( @@ -24,6 +24,4 @@ router.get("/", (req, res) => { ) }) - - -module.exports = router \ No newline at end of file +module.exports = router diff --git a/router/user_subcount.js b/router/user_subcount.js index 3cc715d..07b5653 100644 --- a/router/user_subcount.js +++ b/router/user_subcount.js @@ -1,11 +1,11 @@ -const express = require("express") +const express = require('express') const router = express() -const { createWebAPIRequest } = require("../util/util") +const { createWebAPIRequest } = require('../util/util') -router.get("/", (req, res) => { +router.get('/', (req, res) => { const cookie = req.get('Cookie') ? req.get('Cookie') : '' const data = { - "csrf_token": "" + csrf_token: '' } createWebAPIRequest( 'music.163.com', @@ -18,4 +18,4 @@ router.get("/", (req, res) => { ) }) -module.exports = router \ No newline at end of file +module.exports = router diff --git a/util/crypto.js b/util/crypto.js index 3deab7f..ade29b2 100644 --- a/util/crypto.js +++ b/util/crypto.js @@ -2,36 +2,37 @@ 'use strict' const crypto = require('crypto') const bigInt = require('big-integer') -const modulus = '00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7' +const modulus = + '00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7' const nonce = '0CoJUm6Qyw8W8jud' const pubKey = '010001' -String.prototype.hexEncode = function(){ - let hex, i +String.prototype.hexEncode = function() { + let hex, i - let result = "" - for (i=0; i