From 3e50be6e6958ba5a63b335f9ec8a09c814c54687 Mon Sep 17 00:00:00 2001 From: luominglu Date: Sat, 25 Jul 2020 13:04:04 +0800 Subject: [PATCH 01/41] update fron iwestlin --- config.js | 12 +-- gdutilsinstall.sh | 201 ++++++++++++++++++++++++++++++++++++++++++++++ index.js | 194 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 402 insertions(+), 5 deletions(-) create mode 100644 gdutilsinstall.sh create mode 100644 index.js diff --git a/config.js b/config.js index a5be9169..c342ba59 100644 --- a/config.js +++ b/config.js @@ -6,8 +6,8 @@ const TIMEOUT_MAX = 60000 const LOG_DELAY = 5000 // 日志输出时间间隔,单位毫秒 const PAGE_SIZE = 1000 // 每次网络请求读取目录下的文件数,数值越大,越有可能超时,不得超过1000 -const RETRY_LIMIT = 7 // 如果某次请求失败,允许其重试的最大次数 -const PARALLEL_LIMIT = 20 // 网络请求的并行数量,可根据网络环境调整 +const RETRY_LIMIT = 5 // 如果某次请求失败,允许其重试的最大次数 +const PARALLEL_LIMIT = 10 // 网络请求的并行数量,可根据网络环境调整 const DEFAULT_TARGET = '' // 必填,拷贝默认目的地ID,如果不指定target,则会复制到此处,建议填写团队盘ID @@ -18,7 +18,9 @@ const AUTH = { // 如果您拥有service account的json授权文件,可将其 expires: 0, // 可以留空 access_token: '', // 可以留空 tg_token: 'bot_token', // 你的 telegram robot 的 token,获取方法参见 https://core.telegram.org/bots#6-botfather - tg_whitelist: ['your_tg_username'] // 你的tg username(t.me/username),bot只会执行这个列表里的用户所发送的指令 -} + tg_whitelist: ['your_tg_username'], // 你的tg username(t.me/username),bot只会执行这个列表里的用户所发送的指令 + adminUsers:[your_tg_userid] //admin users' telegram id, should be numbers + } + + module.exports = { AUTH, PARALLEL_LIMIT, RETRY_LIMIT, TIMEOUT_BASE, TIMEOUT_MAX, LOG_DELAY, PAGE_SIZE, DEFAULT_TARGET}; -module.exports = { AUTH, PARALLEL_LIMIT, RETRY_LIMIT, TIMEOUT_BASE, TIMEOUT_MAX, LOG_DELAY, PAGE_SIZE, DEFAULT_TARGET } diff --git a/gdutilsinstall.sh b/gdutilsinstall.sh new file mode 100644 index 00000000..75dad796 --- /dev/null +++ b/gdutilsinstall.sh @@ -0,0 +1,201 @@ +#!"C:\Program Files\Git\usr\bin\bash" +#/bin/bash +#颜色变量,因为颜色字符复杂,定义一个函数表示其代码字符串能够很好容错,更改也方便 +color_yellow='\033[1;32m' +color_end='\033[0m' + +echo -e "\n$color_yellow===== <> =====$color_end" +echo -e "$color_yellow---------------[ v2.1 by oneking ]---------------$color_end" +echo -e "$color_yellow 01.$color_end 本脚本是针对TG大神@viegg的gdutils项目一键部署脚本;" +echo -e "$color_yellow 02.$color_end 脚本包括“TD盘VPS上查询转存部署”和“Telegram机器人部署”两部分" +echo -e "$color_yellow 03.$color_end 本脚本适应CentOS/Debian/Ubuntu三种操作系统,自动识别、自动选择对应分支一键安装部署" +echo -e "$color_yellow 04.$color_end 三步即可完成部署:上传脚本到VPS → 设置脚本执行权限 → 运行" +echo -e "$color_yellow 05.$color_end 准备工作一:在TG上注册好机器人取得并记录下该机器人TOKEN" +echo -e "$color_yellow 06.$color_end 准备工作二:拥有一个域名绑定到cloudflare解析到该机器人所在服务器IP" +echo -e "$color_yellow 07.$color_end 准备工作三:向机器人@userinfobot获取个人TG账号ID并记录" +echo -e "$color_yellow 08.$color_end 准备工作四:注册好一个Google team drive加入sa并记录下该盘ID" +echo -e "$color_yellow 09.$color_end 经测试可用完美安装系统:Centos 7/8 debian 9/10 ubuntu 16.04/18.04/19.10/20.04" +echo -e "$color_yellow 10.$color_end 部署过程中有任何问题请把“错误截图”“部署VPS系统名称版本”信息发给TG:onekings 或 vitaminor@gmail.com" +echo -e "$color_yellow------------------------------------------------$color_end" +read -s -n1 -p "★★★ 如已做好以上[5/6/7/8]准备或不需要安装Telegram机器人请按任意键开始部署,如未做好准备请按“Ctrl+c”终止脚本 ★★★" +echo -e "\n$color_yellow------------------------------------------------$color_end" + +# 识别操作系统 +aNAME="$(uname -a)" +bNAME="$(cat /proc/version)" +cNAME="$(lsb_release -a)" +if [ -f "/etc/redhat-release" ]; then + if [[ $(cat /etc/redhat-release) =~ "CentOS" ]]; then + os="CentOS" + fi +elif [ "$aNAME"=~"Debian" -o "$bNAME"=~"Debian" -o "$cNAME"=~"Debian" ]; then + os="Debian" +elif [ "$aNAME"=~"Ubuntu" -o "$bNAME"=~"Ubuntu" -o "$cNAME"=~"Ubuntu" ]; then + os="Debian" +elif [ "$aNAME"=~"CentOS" -o "$bNAME"=~"CentOS" -o "$cNAME"=~"CentOS" ]; then + os="CentOS" +elif [ "$aNAME"=~"Darwin" -o "$bNAME"=~"Darwin" -o "$cNAME"=~"Darwin" ]; then + os="mac" +else + os="$bNAME" +fi + +# 需要安装的软件工具及依赖 +insofts=(epel-release update upgrade wget curl git unzip zip python3-distutils python3 python3-pip) + +#根据操作系统设置变量 +if [[ "$os" = "Debian" ]]; then + cmd_install="apt-get" #安装命令 + cmd_install_rely="build-essential" #c++编译环境 + nodejs_curl="https://deb.nodesource.com/setup_10.x" #nodejs下载链接 + cmd_install_rpm_build="" #安装rpm-build + nginx_conf="/etc/nginx/sites-enabled/" #nginx配置文件存放路径 + rm_nginx_default="rm -f /etc/nginx/sites-enabled/default" #删除default + echo + echo -e "$color_yellow★★★★★ 您的操作系统为Debian,即将为你开始部署gdutils项目 ★★★★★$color_end" +elif [[ "$os" = "Ubuntu" ]]; then + cmd_install="sudo apt-get" + cmd_install_rely="build-essential" + nodejs_curl="https://deb.nodesource.com/setup_10.x" + cmd_install_rpm_build="" + nginx_conf="/etc/nginx/sites-enabled/" + rm_nginx_default="rm -f /etc/nginx/sites-enabled/default" + echo -e "\n$color_yellow★★★★★ 您的操作系统为Ubuntu,即将为你开始部署gdutils项目 ★★★★★$color_end" +elif [[ "$os" = "CentOS" ]]; then + cmd_install="yum" + cmd_install_rely="gcc-c++ make" + nodejs_curl="https://rpm.nodesource.com/setup_10.x" + cmd_install_rpm_build="yum install rpm-build -y" + nginx_conf="/etc/nginx/conf.d/" + rm_nginx_default="" + echo -e "\n$color_yellow★★★★★ 您的操作系统为Centos,即将为你开始部署gdutils项目 ★★★★★$color_end" +elif [[ "$os" = "mac" ]]; then + echo -e "\n$color_yellow★★★★★ 您的操作系统为MacOS,请在图形界面手动安装 ★★★★★$color_end\n" && exit +else + echo -e "\n$color_yellow unknow os $OS, exit! $color_end" && exit +fi + +echo -e "\n$color_yellow===== <<升级系统/更新软件/安装工具/安装依赖>> =====$color_end\n" + +#安装which和sudo +if [[ "$(which which)" == "" ]]; then + echo -e "$color_yellow“which”开始安装......$color_end" + $cmd_install install which -y + echo -e "$color_yellow------------------------------------------------$color_end" +elif [[ "$(which sudo)" == "" ]]; then + echo -e "$color_yellow“sudo”开始安装......$color_end" + $cmd_install install sudo -y + echo -e "$color_yellow------------------------------------------------$color_end" +fi + +#安装工具和依赖 +for ((aloop = 0; aloop < ${#insofts[@]}; aloop++)); do + if [ ${insofts[$aloop]} = "update" -o ${insofts[$aloop]} = "upgrade" ]; then + echo -e "$color_yellow“${insofts[$aloop]}”开始安装......$color_end" + $cmd_install ${insofts[$aloop]} -y + echo -e "$color_yellow------------------------------------------------$color_end" + else + echo -e "$color_yellow“${insofts[$aloop]}”开始安装......$color_end" + $cmd_install install ${insofts[$aloop]} -y + echo -e "$color_yellow------------------------------------------------$color_end" + fi +done + +echo -e "\n$color_yellow===== <<安装gdutils依赖-nodejs和npm/安装配置gdutils>> =====$color_end\n" + +$cmd_install install $cmd_install_rely -y +curl -sL $nodejs_curl | bash - +$cmd_install install nodejs -y +$cmd_install_rpm_build +git clone https://github.com/dissipator/gd-utils-noport.git gd-utils && cd gd-utils +pwd +npm config set unsafe-perm=true +npm i + +echo -e "\n$color_yellow★★★ 恭喜您!gdutils统计转存系统已经正确安装完成,请上传sa到“./gd-utils/sa/”目录下完成最后的配置 ★★★$color_end\n" + +################################################################################################# + +echo -e "$color_yellow----------------------------------------------------------$color_end" +read -s -n1 -p "★★★ 下面将部署Telegram机器人,请确保准备所需条件已准备好,按任意键开始部署机器人;如未做好准备请按“Ctrl+c”终止部署机器人 ★★★" + +echo -e "\n$color_yellow----------------------------------------------------------$color_end" + +echo -e "\n$color_yellow ===== <<开始部署gdutils查询转存TG机器人>> ===== $color_end\n" + +#输入“机器人token/TG账号ID/域名/转存目的盘ID” +read -p """请输入机器人token并回车 + Your Bot Token =>:""" YOUR_BOT_TOKEN +#判断token是否输入正确 +while [[ "${#YOUR_BOT_TOKEN}" != 46 ]]; do + echo -e "$color_yellow★★★ 机器人TOKEN输入不正确,请重新输入或按“Ctrl+C”结束安装! ★★★$color_end" + read -p """请输入机器人token并回车 + Your Bot Token =>:""" YOUR_BOT_TOKEN +done + + +read -p """请输入使用机器人的telegram账号ID(获取ID机器人@userinfobot)并回车 + Your Telegram ID =>:""" YOUR_TELEGRAM_ID +#判断telegram ID是否正确(通过判断是不是纯数字) +until [[ $YOUR_TELEGRAM_ID =~ ^-?[0-9]+$ ]]; do + echo -e "$color_yellow★★★ 您的TG账号ID输入不正确,请重新输入或按“Ctrl+C”结束安装! ★★★$color_end" + read -p """请输入使用机器人的telegram账号ID(获取ID机器人@userinfobot)并回车 + Your Telegram ID =>:""" YOUR_TELEGRAM_ID +done + +read -p """请输入使用机器人的telegram账号NAME(获取NAME机器人@userinfobot)并回车 + Your Telegram NAME =>:""" YOUR_TELEGRAM_NAME +#判断telegram NAME是否正确(通过判断是不是纯数字) +until [[ $YOUR_TELEGRAM_NAME =~ ^-?[0-9]+$ ]]; do + echo -e "$color_yellow★★★ 您的TG账号NAME输入不正确,请重新输入或按“Ctrl+C”结束安装! ★★★$color_end" + read -p """请输入使用机器人的telegram账号NAME(获取NAME机器人@userinfobot)并回车 + Your Telegram NAME =>:""" YOUR_TELEGRAM_NAME +done + +read -p """请输入转存默认目的地团队盘ID(不指定转存目的地默认改地址,脚本强制要求输入团队盘ID)并回车 + Your Google Team Drive ID =>:""" YOUR_GOOGLE_TEAM_DRIVE_ID +#判断google team drive ID是否正确(团队盘ID长度19位) +while [[ "${#YOUR_GOOGLE_TEAM_DRIVE_ID}" != 19 ]]; do + echo -e "$color_yellow★★★ 您的Google team drive ID输入不正确,请重新输入或按“Ctrl+C”结束安装! ★★★$color_end" + read -p """请输入转存默认目的地ID(不指定转存目的地默认该地址,脚本强制要求输入团队盘ID)并回车 + Your Google Team Drive ID =>:""" YOUR_GOOGLE_TEAM_DRIVE_ID +done + +cd ~ && + sed -i "s/bot_token/$YOUR_BOT_TOKEN/g" ./gd-utils/config.js && + sed -i "s/your_tg_userid/$YOUR_TELEGRAM_ID/g" ./gd-utils/config.js && + sed -i "s/your_tg_username/$YOUR_TELEGRAM_NAME/g" ./gd-utils/config.js && + sed -i "s/DEFAULT_TARGET = ''/DEFAULT_TARGET = '$YOUR_GOOGLE_TEAM_DRIVE_ID'/g" ./gd-utils/config.js +echo -e "$color_yellow----------------------------------------------------------$color_end" + +echo -e "$color_yellow“进程守护程序pm2”开始安装......$color_end" +cd ~/gd-utils && + sudo npm i pm2 -g && pm2 l +echo -e "$color_yellow启动守护进程......$color_end" +pm2 start index.js --node-args="--max-old-space-size=500" +echo -e "$color_yellow----------------------------------------------------------$color_end" + + + +# 判断反向代理是否部署成功 +if [[ $print_webhook =~ "true" ]]; then + echo -e "$color_yellow★★★ 恭喜你!GoogleDrive查询转存机器人部署成功,请回到TG界面给bot发送个“/help”获取使用帮助 ★★★$color_end" +else + echo -e "$color_yellow★★★ 很遗憾!机器人设置失败,请返回检查网站是否部署成功,并重复本安装过程 ★★★$color_end", exit! +fi + +cd ~ +#rm -f gdutilsinstall.sh + +###########################gdutils功能建议################################## +# 本部分是对gdutils项目的建议,因为我主要用的是查询功能所以以下建议只涉及查询功能 +# 1-把以下参数放入配置文件设置:sa存放路径 +# 2-改sa“随机”使用为“顺序”分组使用; +# 3-增加输出模式,可以用命令行后带参数选择,具体模式建议: +# ①按一级或者二级文件夹显示数量大小 +# ②可以一次性统计多个磁盘并且输出单个磁盘文件数和大小以及几个磁盘总和 +# ③获取id对应的文件夹名或者磁盘明保存数据库,给个命令能够查询历史记录汇总或者指定汇总 +# 4-查询过程中输出方式不要每次都输出一次,可以固定+数字变化 +# 5-命令参数可加在ID前或后,如果非要固定一种的话就加在ID之前 +# 6-命令行也改为默认sa模式 +############################################################################ \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 00000000..90068534 --- /dev/null +++ b/index.js @@ -0,0 +1,194 @@ +const TeleBot = require('telebot'); +const { spawn } = require('child_process'); + +const { db } = require('./db'); +const { validate_fid, gen_count_body, count } = require('./src/gd'); +const { send_count, send_help, send_choice, send_task_info, sm, extract_fid, extract_from_text, reply_cb_query, tg_copy, send_all_tasks, send_bm_help, get_target_by_alias, gen_bookmark_choices, send_all_bookmarks, set_bookmark, unset_bookmark, clear_tasks, send_task_help, rm_task, clear_button } = require('./src/tg') + +onst { AUTH, ROUTER_PASSKEY, TG_IPLIST } = require('./config') +const { tg_whitelist } = AUTH +const { tg_token } = AUTH +const { adminUsers } = AUTH +const bot = new TeleBot(tg_token); + + +const COPYING_FIDS = {} +const counting = {} + + +bot.on('text', (msg) => { + + const chat_id = msg && msg.chat && msg.chat.id + // console.log(msg); + // console.log('chat_id: '+ chat_id); + const id = msg.from.id; + if(adminUsers.indexOf(id) < 0){ + msg.reply.text('You are not admin!'); + return; + } + + // let prex = String(msg.text).substring(0,1); + // console.log(prex); + let words = String(msg.text).split(" "); + let len = words.length; + let args = []; + if (len > 1 ){ + args = words.slice(1, len); + + } + + // console.log('reply:'+msg.text); + // console.log('args:'+args); + let is_shell = false + + const text = msg && msg.text && msg.text.trim() || '' + let username = msg && msg.from && msg.from.username + msgs = username && String(username).toLowerCase() + let user_id = msgs && msgs.from && msgs.from.id + user_id = user_id && String(user_id).toLowerCase() + if (!chat_id || !tg_whitelist.some(v => { + v = String(v).toLowerCase() + return v === username || v === user_id + })) { + chat_id && sm({ chat_id, text: '您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username' }) + return console.warn('收到非白名单用户的请求') + } + + const fid = extract_fid(text) || extract_from_text(text) || extract_from_text(message_str) + const no_fid_commands = ['/task', '/help', '/bm'] + if (!no_fid_commands.some(cmd => text.startsWith(cmd)) && !validate_fid(fid)) { + sm({ chat_id, text: '未识别出分享ID' }) + is_shell = true + } + if (text.startsWith('/help')) return send_help(chat_id) + if (text.startsWith('/bm')) { + const [cmd, action, alias, target] = text.split(' ').map(v => v.trim()).filter(v => v) + if (!action) return send_all_bookmarks(chat_id) + if (action === 'set') { + if (!alias || !target) return sm({ chat_id, text: '别名和目标ID不能为空' }) + if (alias.length > 24) return sm({ chat_id, text: '别名不要超过24个英文字符长度' }) + if (!validate_fid(target)) return sm({ chat_id, text: '目标ID格式有误' }) + set_bookmark({ chat_id, alias, target }) + } else if (action === 'unset') { + if (!alias) return sm({ chat_id, text: '别名不能为空' }) + unset_bookmark({ chat_id, alias }) + } else { + send_bm_help(chat_id) + } + } else if (text.startsWith('/count')) { + if (counting[fid]) return sm({ chat_id, text: fid + ' 正在统计,请稍等片刻' }) + try { + counting[fid] = true + const update = text.endsWith(' -u') + send_count({ fid, chat_id, update }) + } catch (err) { + console.error(err) + sm({ chat_id, text: fid + ' 统计失败:' + err.message }) + } finally { + delete counting[fid] + } + } else if (text.startsWith('/copy')) { + let target = text.replace('/copy', '').replace(' -u', '').trim().split(' ').map(v => v.trim()).filter(v => v)[1] + target = get_target_by_alias(target) || target + if (target && !validate_fid(target)) return sm({ chat_id, text: `目标ID ${target} 格式不正确` }) + const update = text.endsWith(' -u') + tg_copy({ fid, target, chat_id, update }).then(task_id => { + task_id && sm({ chat_id, text: `开始复制,任务ID: ${task_id} 可输入 /task ${task_id} 查询进度` }) + }) + } else if (text.startsWith('/task')) { + let task_id = text.replace('/task', '').trim() + if (task_id === 'all') { + return send_all_tasks(chat_id) + } else if (task_id === 'clear') { + return clear_tasks(chat_id) + } else if (task_id === '-h') { + return send_task_help(chat_id) + } else if (task_id.startsWith('rm')) { + task_id = task_id.replace('rm', '') + task_id = parseInt(task_id) + if (!task_id) return send_task_help(chat_id) + return rm_task({ task_id, chat_id }) + } + task_id = parseInt(task_id) + if (!task_id) { + const running_tasks = db.prepare('select id from task where status=?').all('copying') + if (!running_tasks.length) return sm({ chat_id, text: '当前暂无运行中的任务' }) + return running_tasks.forEach(v => send_task_info({ chat_id, task_id: v.id }).catch(console.error)) + } + send_task_info({ task_id, chat_id }).catch(console.error) + } else if (message_str.includes('drive.google.com/') || validate_fid(text)) { + return send_choice({ fid: fid || text, chat_id }) + } else { + is_shell = true + } + + if (is_shell) { + console.log('run shell') + msg.reply.text('$: '+msg.text); + const shell = spawn(words[0],args).on('error', function( err ){ + msg.reply.text('error while executing:'+words[0]); + msg.reply.text(err); + }); + + if(shell){ + + shell.stdout.on('data', (data) => { + msg.reply.text(`stdout:\n ${data}`); + }); + + shell.stderr.on('data', (data) => { + msg.reply.text(`stderr: ${data}`); + }); + + shell.on('close', (code) => { + msg.reply.text(`shell exited with code ${code}`); + }); + } + } +}); + + +// Inline button callback +bot.on('callbackQuery', msg => { + // User message alert + if (msg) { + const { id, message, data } = msg + const chat_id = msg.from.id + //let [action, fid] = String(data).split(' ') + const [action, fid, target] = data.split(' ').filter(v => v) + //console.log("id:"+id); + //console.log("chat_id:"+chat_id); + //console.log("data:"+data); + //console.log("action:"+action);console.log("fid:"+fid); + if (action === 'count') { + if (counting[fid]) return sm({ chat_id, text: fid + ' 正在统计,请稍等片刻' }) + counting[fid] = true + send_count({ fid, chat_id }).catch(err => { + console.error(err) + sm({ chat_id, text: fid + ' 统计失败:' + err.message }) + }).finally(() => { + delete counting[fid] + }) + } else if (action === 'copy') { + console.log("copy id:"+id); + if (COPYING_FIDS[fid]) return sm({ chat_id, text: `正在处理 ${fid} 的复制命令` }) + COPYING_FIDS[fid] = true + tg_copy({ fid, target: get_target_by_alias(target), chat_id }).then(task_id => { + task_id && sm({ chat_id, text: `开始复制,任务ID: ${task_id} 可输入 /task ${task_id} 查询进度` }) + }).finally(() => COPYING_FIDS[fid] = false) + } else if (action === 'update') { + if (counting[fid]) return sm({ chat_id, text: fid + ' 正在统计,请稍等片刻' }) + counting[fid] = true + send_count({ fid, chat_id, update: true }).finally(() => { + delete counting[fid] + }) + } else if (action === 'clear_button') { + const { message_id, text } = message || {} + if (message_id) clear_button({ message_id, text, chat_id }) + } + return reply_cb_query({ id, data }).catch(console.error) + } + return bot.answerCallbackQuery(msg.id, `Inline button callback: ${ msg.data }`, true); +}); + +bot.start(); \ No newline at end of file From 18d55fff81747b49585eb544a6fb7141ce6b4232 Mon Sep 17 00:00:00 2001 From: luominglu Date: Sat, 25 Jul 2020 13:14:48 +0800 Subject: [PATCH 02/41] update fomart --- index.js | 5 +- readme.md | 136 +++++++++++++++++++----------------------------------- 2 files changed, 48 insertions(+), 93 deletions(-) diff --git a/index.js b/index.js index 90068534..36d9a2a7 100644 --- a/index.js +++ b/index.js @@ -5,17 +5,15 @@ const { db } = require('./db'); const { validate_fid, gen_count_body, count } = require('./src/gd'); const { send_count, send_help, send_choice, send_task_info, sm, extract_fid, extract_from_text, reply_cb_query, tg_copy, send_all_tasks, send_bm_help, get_target_by_alias, gen_bookmark_choices, send_all_bookmarks, set_bookmark, unset_bookmark, clear_tasks, send_task_help, rm_task, clear_button } = require('./src/tg') -onst { AUTH, ROUTER_PASSKEY, TG_IPLIST } = require('./config') +const { AUTH, ROUTER_PASSKEY, TG_IPLIST } = require('./config') const { tg_whitelist } = AUTH const { tg_token } = AUTH const { adminUsers } = AUTH const bot = new TeleBot(tg_token); - const COPYING_FIDS = {} const counting = {} - bot.on('text', (msg) => { const chat_id = msg && msg.chat && msg.chat.id @@ -147,7 +145,6 @@ bot.on('text', (msg) => { } }); - // Inline button callback bot.on('callbackQuery', msg => { // User message alert diff --git a/readme.md b/readme.md index 98831a2d..609317b7 100644 --- a/readme.md +++ b/readme.md @@ -1,6 +1,8 @@ # Google Drive 百宝箱 -> [与其他工具的对比](./compare.md) +> 不只是最快的 google drive 拷贝工具 [与其他工具的对比](./compare.md) +> 本项目将TeleShellBot 和 gd-utils 做了整合(本人只做了整合,没有改变核心的代码逻辑) +> 做到了去掉的http端口占用和nginx以及SSL的配置,也能使用telegram bot 功能 ## 目录 - [更新日志](#更新日志) @@ -27,32 +29,12 @@ ## demo [https://drive.google.com/drive/folders/124pjM5LggSuwI1n40bcD5tQ13wS0M6wg](https://drive.google.com/drive/folders/124pjM5LggSuwI1n40bcD5tQ13wS0M6wg) -## English Version (thanks to [@roshanconnor123](https://github.com/roshanconnor123)) -[https://github.com/roshanconnor123/gd-utils](https://github.com/roshanconnor123/gd-utils) - -## colab脚本(省去本地安装步骤,直接网页可用,感谢贡献者[@orange2008](https://github.com/orange2008)) -[https://colab.research.google.com/drive/1i1W9nAzgiDtfA_rmTBcpMpwxVUhwgLsq](https://colab.research.google.com/drive/1i1W9nAzgiDtfA_rmTBcpMpwxVUhwgLsq) - -> 打开上面链接后,保存到自己的云端硬盘(请一定要保存,因为上面的共享链接操作记录所有人可见) - -colab使用录屏:[https://drive.google.com/drive/folders/19T37ARH7M1h67JGYanKp9LvORjJLEp_x](https://drive.google.com/drive/folders/19T37ARH7M1h67JGYanKp9LvORjJLEp_x) - -这里还有另一位网友[@iErics](https://github.com/iErics)制作的colab脚本,界面更加规整,功能也更完整些(比如可以选择是否继续任务等),使用方法大同小异: -[https://colab.research.google.com/github/iErics/gd-utils/blob/master/Colab_gd_utils.ipynb](https://colab.research.google.com/github/iErics/gd-utils/blob/master/Colab_gd_utils.ipynb) +## 感谢网友[@iwestlin](https://github.com/iwestlin)制作的gd-utils +[gd-utils](https://github.com/iwestlin/gd-utils) ## 一键安装脚本(感谢 脚本制作者 [@vitaminx](https://github.com/vitaminx)) > 如果你没有Linux操作经验或者是新开的vps,可尝试使用此脚本 -请访问 [https://github.com/vitaminx/gd-utils](https://github.com/vitaminx/gd-utils) 获取安装方法 - -## 繁体中文版(感谢贡献者[@liaojack8](https://github.com/liaojack8/)) -[https://github.com/liaojack8/gd-utils-cht](https://github.com/liaojack8/gd-utils-cht) - -> 目前项目处于起始阶段,尚不支持 i18n(多语言) ,所以上面繁体版是hard code的fork,如果你有兴趣让本项目增加多语言支持,欢迎PR。 - -## Docker 版(感谢贡献者[@gdtool](https://github.com/gdtool/)) -[https://github.com/gdtool/gd-utils-docker](https://github.com/gdtool/gd-utils-docker) - ## 常见问题 **[如果你遇到任务完成时拷贝成功的文件少于统计的文件数,请务必点击查看](https://github.com/iwestlin/gd-utils/blob/master/changelog.md#%E9%87%8D%E8%A6%81%E6%9B%B4%E6%96%B02020-06-29)** @@ -82,15 +64,14 @@ colab使用录屏:[https://drive.google.com/drive/folders/19T37ARH7M1h67JGYanK - [ikarosone 基于宝塔的搭建过程](https://www.ikarosone.top/archives/195.html) - [@greathappyforest 踩的坑](doc/tgbot-appache2-note.md) -## 搭建过程 -机器人搭建过程录屏:[https://drive.google.com/drive/folders/1Lu7Cwh9lIJkfqYDIaJrFpzi8Lgdxr4zT](https://drive.google.com/drive/folders/1Lu7Cwh9lIJkfqYDIaJrFpzi8Lgdxr4zT) +## 搭建过程(参考请去掉Nginx和域名部分) +[https://drive.google.com/drive/folders/1Lu7Cwh9lIJkfqYDIaJrFpzi8Lgdxr4zT](https://drive.google.com/drive/folders/1Lu7Cwh9lIJkfqYDIaJrFpzi8Lgdxr4zT) 需要注意的地方: - 视频中省略了一个比较重要的步骤就是**从本地上传service account授权文件到 sa 目录下**,tg机器人的所有操作默认都是通过sa授权的,所以读者请不要忘了 -- 视频中**nginx的配置里,server_name就是你的二级域名,需要和cloudflare的设置一样**的(mybbbottt),我分开录的视频所以没做到一致。 -- 还有省略的步骤就是注册域名和把域名托管到cloudflare了,这一步网上太多资料了,甚至也有免费注册(一年)域名的地方( https://www.freenom.com/ ),具体教程请自行搜索 - +- 视频中**nginx的配置里,不需要** +- 还有省略的步骤就是注册域名和把域名托管到cloudflare了,**不需要** ## 功能简介 本工具目前支持以下功能: - 统计任意(您拥有相关权限的,下同,不再赘述)目录的文件信息,且支持以各种形式(html, tree, table, json)导出。 @@ -182,36 +163,6 @@ tg_whitelist: ['viegg', '其他人的username'], **如果你修改了代码中的配置,需要 `pm2 reload server` 才能生效**。 -> 如果你不想用nginx,可以将`server.js`中的`23333`改成`80`直接监听80端口(可能需要root权限) - -接下来可通过nginx或其他工具起一个web服务,示例nginx配置: -``` -server { - listen 80; - server_name your.server.name; - - location / { - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_pass http://127.0.0.1:23333/; - } -} -``` -配置好nginx后,可以再套一层cloudflare,具体教程请自行搜索。 - -检查网站是否部署成功,可以命令行执行(请将YOUR_WEBSITE_URL替换成你的网址) -``` -curl 'YOUR_WEBSITE_URL/api/gdurl/count?fid=124pjM5LggSuwI1n40bcD5tQ13wS0M6wg' -``` -如果返回了`gd-utils 成功启动`的消息,说明部署成功了。 - -最后,在命令行执行(请将`YOUR_WEBSITE`和`YOUR_BOT_TOKEN`分别替换成你自己的网址和bot token) -``` -curl -F "url=YOUR_WEBSITE/api/gdurl/tgbot" 'https://api.telegram.org/botYOUR_BOT_TOKEN/setWebhook' -``` -这样,就将你的服务器连接上你的 telegram bot 了,试着给bot发送个 `/help`,如果它回复给你使用说明,那就配置成功了。 - ## 补充说明 在`config.js`文件里,还有另外的几个参数: ``` @@ -221,50 +172,57 @@ const TIMEOUT_BASE = 7000 // 最大超时设置,比如某次请求,第一次7s超时,第二次14s,第三次28s,第四次56s,第五次不是112s而是60s,后续同理 const TIMEOUT_MAX = 60000 +const LOG_DELAY = 5000 // 日志输出时间间隔,单位毫秒 const PAGE_SIZE = 1000 // 每次网络请求读取目录下的文件数,数值越大,越有可能超时,不得超过1000 const RETRY_LIMIT = 7 // 如果某次请求失败,允许其重试的最大次数 -const PARALLEL_LIMIT = 20 // 单个任务的网络请求并行数量,可根据网络环境调整 +const PARALLEL_LIMIT = 20 // 网络请求的并行数量,可根据网络环境调整 const DEFAULT_TARGET = '' // 必填,拷贝默认目的地ID,如果不指定target,则会拷贝到此处,建议填写团队盘ID,注意要用英文引号包裹 ``` 读者可根据各自情况进行调整 -## 专家设置 -这一节面向更加注重安全的专家用户,并假设读者了解nodejs的基本语法 -在 `config.js` 中,你可以额外设置两个变量 `ROUTER_PASSKEY` 和 `TG_IPLIST` 来进一步保证接口安全。 -```javascript -// 如果设置了这个值,那么调用 /api/gdurl/count 这个接口必须携带一个叫 passkey 的query,且必须等于ROUTER_PASSKEY的值 -// 如果不设置这个值,那么默认关闭 /api/gdurl/count 这个接口的功能(因为观察到很多用户公开的贴出了自己的API地址……) -const ROUTER_PASSKEY = 'your-custom-passkey' +## 注意事项 +程序的原理是调用了[google drive官方接口](https://developers.google.com/drive/api/v3/reference/files/list),递归获取目标文件夹下所有文件及其子文件夹信息,粗略来讲,某个目录下包含多少个文件夹,就至少需要这么多次请求才能统计完成。 -// 与你的服务器通信的tg服务器的 ip 地址,可以在pm2 logs 中看到 -// 如果设置了这个值,那么调用 /api/gdurl/tgbot 这个接口的IP地址必须是 TG_IPLIST 数组的其中之一 -// 如果不设置这个值,则默认任何IP都可以调用此接口(考虑到后面还有个 tg username的白名单验证) -const TG_IPLIST = ['tg-ip-address'] +目前尚不知道google是否会对接口做频率限制,也不知道会不会影响google账号本身的安全。 -module.exports = { - AUTH, - PARALLEL_LIMIT, - RETRY_LIMIT, - TIMEOUT_BASE, - TIMEOUT_MAX, - LOG_DELAY, - PAGE_SIZE, - DEFAULT_TARGET, - ROUTER_PASSKEY, - TG_IPLIST -} -``` +**请勿滥用,后果自负** -## 注意事项 -gd-utlis(以及所有GD转存工具)的原理是调用了[google drive官方接口](https://developers.google.com/drive/api/v3/reference/files/copy) -gd-utils比较快的原因在[与其他工具的对比](./compare.md)有具体阐述,概括来讲,当它进行转存任务时,不会向google服务器查询目标文件是否已存在,因为它会把复制记录存储在本地数据库,这样就节省了查询花费的时间,而查询接口是google drive所有接口里最耗时的。 +# TeleShellBot +A simple Telegram Bot to run shell commands remotely, so that you can maintain your server from mobile phones! +![](screens/demo.gif) -这也就导致了gd-utils目前无法对已存在的文件进行增量更新,**除非文件之前就是它拷贝的**,由于它已经将记录保存在本地,所以可以对之前的记录进行增量更新。 +## Install +Download or clone this repo, then +``` +npm install +``` +## Config +Follow [Telegram instructions](https://telegram.org/blog/bot-revolution) to create a bot +Then put your telegram user ID and bot token in `config.js`: +```javascript +module.exports = { + config:function(){ + return ( + { + adminUsers:[ADMIN_ID], //admin users' telegram id, should be numbers + botToken: 'YOUR_BOT_TOEKN', // bot token -目前尚不知道google是否会对接口做频率限制,也不知道会不会影响google账号本身的安全。 + } + ); + } +}; +``` +## Run +``` +npm start +``` +or +``` +node index.js +``` -**请勿滥用,后果自负** +That is it! From d9917e45c2530df7b521d0fd9efc1e1b631cd3e4 Mon Sep 17 00:00:00 2001 From: luominglu Date: Sat, 25 Jul 2020 15:43:37 +0800 Subject: [PATCH 03/41] update packages --- gdutilsinstall.sh | 19 +++++++++++-------- package.json | 28 ++++++++++++++++------------ 2 files changed, 27 insertions(+), 20 deletions(-) diff --git a/gdutilsinstall.sh b/gdutilsinstall.sh index 75dad796..f15f8154 100644 --- a/gdutilsinstall.sh +++ b/gdutilsinstall.sh @@ -104,13 +104,17 @@ done echo -e "\n$color_yellow===== <<安装gdutils依赖-nodejs和npm/安装配置gdutils>> =====$color_end\n" $cmd_install install $cmd_install_rely -y -curl -sL $nodejs_curl | bash - -$cmd_install install nodejs -y +#curl -sL $nodejs_curl | bash - +#$cmd_install install nodejs -y +wget https://cdn.npm.taobao.org/dist/node/v14.6.0/node-v14.6.0-linux-x64.tar.xz +tar xvf node-v14.6.0-linux-x64.tar.xz && mv node-v14.6.0-linux-x64 node && rm -rf node-v14.6.0-linux-x64.tar.xz +export PATH=$PATH:$(pwd)/node/bin/ + $cmd_install_rpm_build git clone https://github.com/dissipator/gd-utils-noport.git gd-utils && cd gd-utils pwd -npm config set unsafe-perm=true -npm i +$(pwd)/node/bin/npm config set unsafe-perm=true +$(pwd)/node/bin/npm i echo -e "\n$color_yellow★★★ 恭喜您!gdutils统计转存系统已经正确安装完成,请上传sa到“./gd-utils/sa/”目录下完成最后的配置 ★★★$color_end\n" @@ -161,7 +165,7 @@ while [[ "${#YOUR_GOOGLE_TEAM_DRIVE_ID}" != 19 ]]; do Your Google Team Drive ID =>:""" YOUR_GOOGLE_TEAM_DRIVE_ID done -cd ~ && +#cd ./gd-utils && sed -i "s/bot_token/$YOUR_BOT_TOKEN/g" ./gd-utils/config.js && sed -i "s/your_tg_userid/$YOUR_TELEGRAM_ID/g" ./gd-utils/config.js && sed -i "s/your_tg_username/$YOUR_TELEGRAM_NAME/g" ./gd-utils/config.js && @@ -169,10 +173,9 @@ cd ~ && echo -e "$color_yellow----------------------------------------------------------$color_end" echo -e "$color_yellow“进程守护程序pm2”开始安装......$color_end" -cd ~/gd-utils && - sudo npm i pm2 -g && pm2 l +sudo $(pwd)/node/bin/npm i pm2 -g && pm2 l echo -e "$color_yellow启动守护进程......$color_end" -pm2 start index.js --node-args="--max-old-space-size=500" +$(pwd)/node/bin/pm2 start index.js --node-args="--max-old-space-size=500" echo -e "$color_yellow----------------------------------------------------------$color_end" diff --git a/package.json b/package.json index d74a1783..bbc39048 100644 --- a/package.json +++ b/package.json @@ -1,16 +1,18 @@ { - "name": "gd-utils", - "version": "1.0.1", - "description": "google drive utils", - "repository": "iwestlin/gd-utils", - "main": "src/gd.js", + "name": "teleshellbot", + "version": "1.0.0", + "description": "A simple Telegram Bot to run shell commands remotely", + "repository": { + "type": "git", + "url": "https://github.com/marknote/TeleShellBot.git" + }, + "main": "index.js", "scripts": { - "start": "https_proxy='http://127.0.0.1:1086' nodemon server.js", - "test": "echo \"Error: no test specified\" && exit 1" + "start": "https_proxy='http://127.0.0.1:1086' nodemon index.js", + "test": "test" }, - "keywords": [], - "author": "viegg", - "license": "ISC", + "author": "marknote", + "license": "MIT", "dependencies": { "@koa/router": "^9.0.1", "@viegg/axios": "^1.0.0", @@ -18,7 +20,7 @@ "bytes": "^3.1.0", "cli-table3": "^0.6.0", "colors": "^1.4.0", - "dayjs": "^1.8.28", + "dayjs": "^1.8.29", "gtoken": "^5.0.1", "html-escaper": "^3.0.0", "https-proxy-agent": "^5.0.0", @@ -28,6 +30,8 @@ "prompts": "^2.3.2", "proxy-agent": "^3.1.1", "signal-exit": "^3.0.3", - "yargs": "^15.3.1" + "yargs": "^15.4.0", + "nodemon": "^2.0.4", + "telebot": "^1.2.3" } } From e4ac56afea8ba7e290ad1c7da1fc0e05004d58b6 Mon Sep 17 00:00:00 2001 From: luominglu Date: Sat, 25 Jul 2020 16:05:21 +0800 Subject: [PATCH 04/41] meger done --- index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/index.js b/index.js index 36d9a2a7..6011daeb 100644 --- a/index.js +++ b/index.js @@ -40,6 +40,7 @@ bot.on('text', (msg) => { let is_shell = false const text = msg && msg.text && msg.text.trim() || '' + const message_str = text let username = msg && msg.from && msg.from.username msgs = username && String(username).toLowerCase() let user_id = msgs && msgs.from && msgs.from.id From f17eb001719ae64de5c7d4d1b98fb17d2492f669 Mon Sep 17 00:00:00 2001 From: luominglu Date: Sat, 25 Jul 2020 16:34:59 +0800 Subject: [PATCH 05/41] =?UTF-8?q?=E5=9C=A8tbot=E9=87=8C=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=9C=BA=E5=99=A8=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- update.sh | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 update.sh diff --git a/update.sh b/update.sh new file mode 100644 index 00000000..0cafc609 --- /dev/null +++ b/update.sh @@ -0,0 +1,43 @@ +#!"C:\Program Files\Git\usr\bin\bash" +#/bin/bash +#颜色变量,因为颜色字符复杂,定义一个函数表示其代码字符串能够很好容错,更改也方便 +color_yellow='\033[1;32m' +color_end='\033[0m' + +echo -e "\n$color_yellow------------------------------------------------$color_end" + +# 识别操作系统 +aNAME="$(uname -a)" +bNAME="$(cat /proc/version)" +cNAME="$(lsb_release -a)" +if [ -f "/etc/redhat-release" ]; then + if [[ $(cat /etc/redhat-release) =~ "CentOS" ]]; then + os="CentOS" + fi +elif [ "$aNAME"=~"Debian" -o "$bNAME"=~"Debian" -o "$cNAME"=~"Debian" ]; then + os="Debian" +elif [ "$aNAME"=~"Ubuntu" -o "$bNAME"=~"Ubuntu" -o "$cNAME"=~"Ubuntu" ]; then + os="Debian" +elif [ "$aNAME"=~"CentOS" -o "$bNAME"=~"CentOS" -o "$cNAME"=~"CentOS" ]; then + os="CentOS" +elif [ "$aNAME"=~"Darwin" -o "$bNAME"=~"Darwin" -o "$cNAME"=~"Darwin" ]; then + os="mac" +else + os="$bNAME" +fi + +export PATH=$PATH:$(pwd)/node/bin/ + +pm2 stop all +pwd +git pull +echo -e "$color_yellow启动守护进程......$color_end" +pm2 start all +pwd + +################################################################################################# + +echo -e "$color_yellow----------------------------------------------------------$color_end" + + +cd ~ From 3676a2e6773b5ce1dadc8d8a49c81fd5e728f8c3 Mon Sep 17 00:00:00 2001 From: luominglu Date: Sat, 25 Jul 2020 18:52:40 +0800 Subject: [PATCH 06/41] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=A7=E8=A1=8Cshell?= =?UTF-8?q?=E7=9A=84=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gdutilsinstall.sh | 35 +++++--------- index.js | 119 +++++++++++++++++++++++++++++----------------- readme.md | 10 ++++ 3 files changed, 98 insertions(+), 66 deletions(-) diff --git a/gdutilsinstall.sh b/gdutilsinstall.sh index f15f8154..01095137 100644 --- a/gdutilsinstall.sh +++ b/gdutilsinstall.sh @@ -6,7 +6,7 @@ color_end='\033[0m' echo -e "\n$color_yellow===== <> =====$color_end" echo -e "$color_yellow---------------[ v2.1 by oneking ]---------------$color_end" -echo -e "$color_yellow 01.$color_end 本脚本是针对TG大神@viegg的gdutils项目一键部署脚本;" +echo -e "$color_yellow 01.$color_end 本脚本是魔改的gdutils项目一键部署脚本;" echo -e "$color_yellow 02.$color_end 脚本包括“TD盘VPS上查询转存部署”和“Telegram机器人部署”两部分" echo -e "$color_yellow 03.$color_end 本脚本适应CentOS/Debian/Ubuntu三种操作系统,自动识别、自动选择对应分支一键安装部署" echo -e "$color_yellow 04.$color_end 三步即可完成部署:上传脚本到VPS → 设置脚本执行权限 → 运行" @@ -15,7 +15,6 @@ echo -e "$color_yellow 06.$color_end 准备工作二:拥有一个域名绑定 echo -e "$color_yellow 07.$color_end 准备工作三:向机器人@userinfobot获取个人TG账号ID并记录" echo -e "$color_yellow 08.$color_end 准备工作四:注册好一个Google team drive加入sa并记录下该盘ID" echo -e "$color_yellow 09.$color_end 经测试可用完美安装系统:Centos 7/8 debian 9/10 ubuntu 16.04/18.04/19.10/20.04" -echo -e "$color_yellow 10.$color_end 部署过程中有任何问题请把“错误截图”“部署VPS系统名称版本”信息发给TG:onekings 或 vitaminor@gmail.com" echo -e "$color_yellow------------------------------------------------$color_end" read -s -n1 -p "★★★ 如已做好以上[5/6/7/8]准备或不需要安装Telegram机器人请按任意键开始部署,如未做好准备请按“Ctrl+c”终止脚本 ★★★" echo -e "\n$color_yellow------------------------------------------------$color_end" @@ -150,21 +149,21 @@ done read -p """请输入使用机器人的telegram账号NAME(获取NAME机器人@userinfobot)并回车 Your Telegram NAME =>:""" YOUR_TELEGRAM_NAME #判断telegram NAME是否正确(通过判断是不是纯数字) -until [[ $YOUR_TELEGRAM_NAME =~ ^-?[0-9]+$ ]]; do - echo -e "$color_yellow★★★ 您的TG账号NAME输入不正确,请重新输入或按“Ctrl+C”结束安装! ★★★$color_end" - read -p """请输入使用机器人的telegram账号NAME(获取NAME机器人@userinfobot)并回车 - Your Telegram NAME =>:""" YOUR_TELEGRAM_NAME -done +# until [[ $YOUR_TELEGRAM_NAME =~ ^-?[0-9]+$ ]]; do +# echo -e "$color_yellow★★★ 您的TG账号NAME输入不正确,请重新输入或按“Ctrl+C”结束安装! ★★★$color_end" +# read -p """请输入使用机器人的telegram账号NAME(获取NAME机器人@userinfobot)并回车 +# Your Telegram NAME =>:""" YOUR_TELEGRAM_NAME +# done read -p """请输入转存默认目的地团队盘ID(不指定转存目的地默认改地址,脚本强制要求输入团队盘ID)并回车 Your Google Team Drive ID =>:""" YOUR_GOOGLE_TEAM_DRIVE_ID #判断google team drive ID是否正确(团队盘ID长度19位) -while [[ "${#YOUR_GOOGLE_TEAM_DRIVE_ID}" != 19 ]]; do - echo -e "$color_yellow★★★ 您的Google team drive ID输入不正确,请重新输入或按“Ctrl+C”结束安装! ★★★$color_end" - read -p """请输入转存默认目的地ID(不指定转存目的地默认该地址,脚本强制要求输入团队盘ID)并回车 - Your Google Team Drive ID =>:""" YOUR_GOOGLE_TEAM_DRIVE_ID -done - +# while [[ "${#YOUR_GOOGLE_TEAM_DRIVE_ID}" != 19 ]]; do +# echo -e "$color_yellow★★★ 您的Google team drive ID输入不正确,请重新输入或按“Ctrl+C”结束安装! ★★★$color_end" +# read -p """请输入转存默认目的地ID(不指定转存目的地默认该地址,脚本强制要求输入团队盘ID)并回车 +# Your Google Team Drive ID =>:""" YOUR_GOOGLE_TEAM_DRIVE_ID +# done +cd ../ #cd ./gd-utils && sed -i "s/bot_token/$YOUR_BOT_TOKEN/g" ./gd-utils/config.js && sed -i "s/your_tg_userid/$YOUR_TELEGRAM_ID/g" ./gd-utils/config.js && @@ -175,18 +174,10 @@ echo -e "$color_yellow---------------------------------------------------------- echo -e "$color_yellow“进程守护程序pm2”开始安装......$color_end" sudo $(pwd)/node/bin/npm i pm2 -g && pm2 l echo -e "$color_yellow启动守护进程......$color_end" +cd ./gd-utils $(pwd)/node/bin/pm2 start index.js --node-args="--max-old-space-size=500" echo -e "$color_yellow----------------------------------------------------------$color_end" - - -# 判断反向代理是否部署成功 -if [[ $print_webhook =~ "true" ]]; then - echo -e "$color_yellow★★★ 恭喜你!GoogleDrive查询转存机器人部署成功,请回到TG界面给bot发送个“/help”获取使用帮助 ★★★$color_end" -else - echo -e "$color_yellow★★★ 很遗憾!机器人设置失败,请返回检查网站是否部署成功,并重复本安装过程 ★★★$color_end", exit! -fi - cd ~ #rm -f gdutilsinstall.sh diff --git a/index.js b/index.js index 6011daeb..d64c483a 100644 --- a/index.js +++ b/index.js @@ -19,25 +19,8 @@ bot.on('text', (msg) => { const chat_id = msg && msg.chat && msg.chat.id // console.log(msg); // console.log('chat_id: '+ chat_id); - const id = msg.from.id; - if(adminUsers.indexOf(id) < 0){ - msg.reply.text('You are not admin!'); - return; - } - // let prex = String(msg.text).substring(0,1); // console.log(prex); - let words = String(msg.text).split(" "); - let len = words.length; - let args = []; - if (len > 1 ){ - args = words.slice(1, len); - - } - - // console.log('reply:'+msg.text); - // console.log('args:'+args); - let is_shell = false const text = msg && msg.text && msg.text.trim() || '' const message_str = text @@ -117,33 +100,7 @@ bot.on('text', (msg) => { send_task_info({ task_id, chat_id }).catch(console.error) } else if (message_str.includes('drive.google.com/') || validate_fid(text)) { return send_choice({ fid: fid || text, chat_id }) - } else { - is_shell = true - } - - if (is_shell) { - console.log('run shell') - msg.reply.text('$: '+msg.text); - const shell = spawn(words[0],args).on('error', function( err ){ - msg.reply.text('error while executing:'+words[0]); - msg.reply.text(err); - }); - - if(shell){ - - shell.stdout.on('data', (data) => { - msg.reply.text(`stdout:\n ${data}`); - }); - - shell.stderr.on('data', (data) => { - msg.reply.text(`stderr: ${data}`); - }); - - shell.on('close', (code) => { - msg.reply.text(`shell exited with code ${code}`); - }); - } - } + } }); // Inline button callback @@ -189,4 +146,78 @@ bot.on('callbackQuery', msg => { return bot.answerCallbackQuery(msg.id, `Inline button callback: ${ msg.data }`, true); }); +bot.sendMessage(854331334,"you gdutils_bot ins online!") + +bot.on('/start', (msg) => { + msg.reply.text(`your chat id:\n ${msg.from.id}`); + return bot.sendMessage(msg.from.id, "You gdutils_bot ins online!!"); +}); + + +bot.on('/restart', (msg) => { + console.log('run update') + const shell = spawn('pm2','restart all').on('error', function( err ){ + msg.reply.text(err); + }); + if(shell){ + shell.stdout.on('data', (data) => { + msg.reply.text(`stdout:\n ${data}`); + }); + } +}); + +bot.on('/update', msg => { + console.log('run update') + const shell = spawn('git','pull').on('error', function( err ){ + msg.reply.text(err); + }); + + if(shell){ + shell.stdout.on('data', (data) => { + msg.reply.text(`stdout:\n ${data}`); + }); + } + +}); + +bot.on(/^!.*/, (msg, props) => { + // let prex = String(msg.text).substring(0,1); + // console.log(prex); + const id = msg.from.id; + if(adminUsers.indexOf(id) < 0){ + msg.reply.text('You are not admin!'); + return; + } + + let words = String(msg.text).split(" "); + let len = words.length; + let args = []; + if (len > 2 ){ + args = words.slice(2, len); + + } + console.log('run shell2 ') + msg.reply.text('$: '+words[1] + " " + args); + const shell = spawn(words[1],args).on('error', function( err ){ + msg.reply.text('error while executing:'+words[1]); + msg.reply.text(err); + }); + + if(shell){ + + shell.stdout.on('data', (data) => { + msg.reply.text(`stdout:\n ${data}`); + }); + + shell.stderr.on('data', (data) => { + msg.reply.text(`stderr: ${data}`); + }); + + shell.on('close', (code) => { + msg.reply.text(`shell exited with code ${code}`); + }); +} + +}); + bot.start(); \ No newline at end of file diff --git a/readme.md b/readme.md index 609317b7..30610f6e 100644 --- a/readme.md +++ b/readme.md @@ -226,3 +226,13 @@ node index.js ``` That is it! + +# [telebot](https://github.com/mullwar/telebot) + +![](http://i.imgur.com/eELz6Aw.jpg) + +The easy way to write Telegram bots. + +[![Build Status](https://travis-ci.org/mullwar/telebot.svg)](https://travis-ci.org/mullwar/telebot) [![Dependency Status](https://david-dm.org/mullwar/telebot.svg)](https://david-dm.org/mullwar/telebot) ![Node.js Version](http://img.shields.io/node/v/telebot.svg) + +[![TeleBot 2.0](https://img.shields.io/badge/dev-TeleBot%202%2e0-ff0061.svg)](https://github.com/mullwar/telebot/tree/version-2) [![TeleBot Examples](https://img.shields.io/badge/telebot-examples-blue.svg)](https://github.com/mullwar/telebot/tree/master/examples) [![TeleBot Bot](https://img.shields.io/badge/telebot-community%20bot-blue.svg)](https://github.com/mullwar/telebot-bot) [![TeleBot Group](https://img.shields.io/badge/telebot-community%20group-blue.svg)](https://goo.gl/gXvm12) From fcbdbeb1dba90dd0c08b425d061e3a0d2e81408b Mon Sep 17 00:00:00 2001 From: luominglu Date: Sat, 25 Jul 2020 19:13:27 +0800 Subject: [PATCH 07/41] update the update for bot --- index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index d64c483a..c0629394 100644 --- a/index.js +++ b/index.js @@ -156,7 +156,7 @@ bot.on('/start', (msg) => { bot.on('/restart', (msg) => { console.log('run update') - const shell = spawn('pm2','restart all').on('error', function( err ){ + const shell = spawn('pm2',['restart all',]).on('error', function( err ){ msg.reply.text(err); }); if(shell){ @@ -168,7 +168,7 @@ bot.on('/restart', (msg) => { bot.on('/update', msg => { console.log('run update') - const shell = spawn('git','pull').on('error', function( err ){ + const shell = spawn('git',['pull',]).on('error', function( err ){ msg.reply.text(err); }); From c1f57c853c7ec394bbe3051a2aac11ce745b65d6 Mon Sep 17 00:00:00 2001 From: luominglu Date: Sat, 25 Jul 2020 19:22:45 +0800 Subject: [PATCH 08/41] update changelog --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index 3fa1fe2a..2c5a9c17 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,10 @@ ## 更新日志 > 更新方法:在 gd-utils 目录下,执行 `git pull` 拉取最新代码,如果你使用了 pm2 守护进程,执行`pm2 reload server`刷新生效。 +[2020-07-25] +- 调整shell 执行结构 在bot中输入"! ls"等即可 +- 增加 在bot中升级bot功能,在bot中依次执行"/update" "/restart" (restart 功能仅限使用pm2 启动的bot) + [2020-07-21] - 添加数据库clear脚本,只需在`gd-utils`目录下执行`node clear-db.js`就可以删除所有获取的文件信息(但会保留拷贝记录和bookmark)同时减小数据库文件大小了 - 调整提取分享链接的方法,基本能够识别所有类型消息中的分享ID From 888a54d07467f394497b29d2a877f7bfc17dd012 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 26 Jul 2020 07:57:31 +0000 Subject: [PATCH 09/41] =?UTF-8?q?update=20=E5=AE=89=E8=A3=85=E8=84=9A?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gdutilsinstall.sh | 35 +++++++++++++++++------------------ index.js | 2 +- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/gdutilsinstall.sh b/gdutilsinstall.sh index 01095137..43f100e2 100644 --- a/gdutilsinstall.sh +++ b/gdutilsinstall.sh @@ -106,14 +106,13 @@ $cmd_install install $cmd_install_rely -y #curl -sL $nodejs_curl | bash - #$cmd_install install nodejs -y wget https://cdn.npm.taobao.org/dist/node/v14.6.0/node-v14.6.0-linux-x64.tar.xz -tar xvf node-v14.6.0-linux-x64.tar.xz && mv node-v14.6.0-linux-x64 node && rm -rf node-v14.6.0-linux-x64.tar.xz -export PATH=$PATH:$(pwd)/node/bin/ +tar xvf node-v14.6.0-linux-x64.tar.xz && mv node-v14.6.0-linux-x64 ~/node && rm -rf node-v14.6.0-linux-x64.tar.xz +export PATH=$PATH:~/node/bin/npm $cmd_install_rpm_build -git clone https://github.com/dissipator/gd-utils-noport.git gd-utils && cd gd-utils -pwd -$(pwd)/node/bin/npm config set unsafe-perm=true -$(pwd)/node/bin/npm i +git clone https://github.com/dissipator/gd-utils.git gd-utils && cd gd-utils +~/node/bin/npm config set unsafe-perm=true +~/node/bin/npm i echo -e "\n$color_yellow★★★ 恭喜您!gdutils统计转存系统已经正确安装完成,请上传sa到“./gd-utils/sa/”目录下完成最后的配置 ★★★$color_end\n" @@ -130,21 +129,21 @@ echo -e "\n$color_yellow ===== <<开始部署gdutils查询转存TG机器人>> = read -p """请输入机器人token并回车 Your Bot Token =>:""" YOUR_BOT_TOKEN #判断token是否输入正确 -while [[ "${#YOUR_BOT_TOKEN}" != 46 ]]; do - echo -e "$color_yellow★★★ 机器人TOKEN输入不正确,请重新输入或按“Ctrl+C”结束安装! ★★★$color_end" - read -p """请输入机器人token并回车 - Your Bot Token =>:""" YOUR_BOT_TOKEN -done +# while [[ "${#YOUR_BOT_TOKEN}" != 46 ]]; do +# echo -e "$color_yellow★★★ 机器人TOKEN输入不正确,请重新输入或按“Ctrl+C”结束安装! ★★★$color_end" +# read -p """请输入机器人token并回车 +# Your Bot Token =>:""" YOUR_BOT_TOKEN +# done read -p """请输入使用机器人的telegram账号ID(获取ID机器人@userinfobot)并回车 Your Telegram ID =>:""" YOUR_TELEGRAM_ID #判断telegram ID是否正确(通过判断是不是纯数字) -until [[ $YOUR_TELEGRAM_ID =~ ^-?[0-9]+$ ]]; do - echo -e "$color_yellow★★★ 您的TG账号ID输入不正确,请重新输入或按“Ctrl+C”结束安装! ★★★$color_end" - read -p """请输入使用机器人的telegram账号ID(获取ID机器人@userinfobot)并回车 - Your Telegram ID =>:""" YOUR_TELEGRAM_ID -done +# until [[ $YOUR_TELEGRAM_ID =~ ^-?[0-9]+$ ]]; do +# echo -e "$color_yellow★★★ 您的TG账号ID输入不正确,请重新输入或按“Ctrl+C”结束安装! ★★★$color_end" +# read -p """请输入使用机器人的telegram账号ID(获取ID机器人@userinfobot)并回车 +# Your Telegram ID =>:""" YOUR_TELEGRAM_ID +# done read -p """请输入使用机器人的telegram账号NAME(获取NAME机器人@userinfobot)并回车 Your Telegram NAME =>:""" YOUR_TELEGRAM_NAME @@ -172,10 +171,10 @@ cd ../ echo -e "$color_yellow----------------------------------------------------------$color_end" echo -e "$color_yellow“进程守护程序pm2”开始安装......$color_end" -sudo $(pwd)/node/bin/npm i pm2 -g && pm2 l +sudo ~/node/bin/npm i pm2 -g && pm2 l echo -e "$color_yellow启动守护进程......$color_end" cd ./gd-utils -$(pwd)/node/bin/pm2 start index.js --node-args="--max-old-space-size=500" +~/node/bin/pm2 start index.js --node-args="--max-old-space-size=500" echo -e "$color_yellow----------------------------------------------------------$color_end" cd ~ diff --git a/index.js b/index.js index c0629394..55390a0c 100644 --- a/index.js +++ b/index.js @@ -146,7 +146,7 @@ bot.on('callbackQuery', msg => { return bot.answerCallbackQuery(msg.id, `Inline button callback: ${ msg.data }`, true); }); -bot.sendMessage(854331334,"you gdutils_bot ins online!") +//bot.sendMessage(854331334,"you gdutils_bot ins online!") bot.on('/start', (msg) => { msg.reply.text(`your chat id:\n ${msg.from.id}`); From 8d96ba70899a8ac5ad3e79d258184dcfe9596258 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 26 Jul 2020 08:30:11 +0000 Subject: [PATCH 10/41] only need user_id --- index.js | 52 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/index.js b/index.js index 55390a0c..d7bd2d08 100644 --- a/index.js +++ b/index.js @@ -24,18 +24,22 @@ bot.on('text', (msg) => { const text = msg && msg.text && msg.text.trim() || '' const message_str = text - let username = msg && msg.from && msg.from.username - msgs = username && String(username).toLowerCase() - let user_id = msgs && msgs.from && msgs.from.id - user_id = user_id && String(user_id).toLowerCase() - if (!chat_id || !tg_whitelist.some(v => { - v = String(v).toLowerCase() - return v === username || v === user_id - })) { - chat_id && sm({ chat_id, text: '您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username' }) - return console.warn('收到非白名单用户的请求') + // let username = msg && msg.from && msg.from.username + // msgs = username && String(username).toLowerCase() + // let user_id = msgs && msgs.from && msgs.from.id + // user_id = user_id && String(user_id).toLowerCase() + const id = msg.from.id; + if(adminUsers.indexOf(id) < 0){ + msg.reply.text('您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username'); + return console.warn('收到非白名单用户的请求') } - + // if (!chat_id || !tg_whitelist.some(v => { + // v = String(v).toLowerCase() + // return v === username || v === user_id + // })) { + // chat_id && sm({ chat_id, text: '您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username' }) + // return console.warn('收到非白名单用户的请求') + // } const fid = extract_fid(text) || extract_from_text(text) || extract_from_text(message_str) const no_fid_commands = ['/task', '/help', '/bm'] if (!no_fid_commands.some(cmd => text.startsWith(cmd)) && !validate_fid(fid)) { @@ -106,6 +110,12 @@ bot.on('text', (msg) => { // Inline button callback bot.on('callbackQuery', msg => { // User message alert + const id = msg.from.id; + if(adminUsers.indexOf(id) < 0){ + msg.reply.text('您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username') + return console.warn('收到非白名单用户的请求') + } + if (msg) { const { id, message, data } = msg const chat_id = msg.from.id @@ -149,12 +159,21 @@ bot.on('callbackQuery', msg => { //bot.sendMessage(854331334,"you gdutils_bot ins online!") bot.on('/start', (msg) => { + const id = msg.from.id; + if(adminUsers.indexOf(id) < 0){ + msg.reply.text('您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username'); + return console.warn('收到非白名单用户的请求') + } msg.reply.text(`your chat id:\n ${msg.from.id}`); return bot.sendMessage(msg.from.id, "You gdutils_bot ins online!!"); }); - bot.on('/restart', (msg) => { + const id = msg.from.id; + if(adminUsers.indexOf(id) < 0){ + msg.reply.text('您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username'); + return console.warn('收到非白名单用户的请求') + } console.log('run update') const shell = spawn('pm2',['restart all',]).on('error', function( err ){ msg.reply.text(err); @@ -167,6 +186,11 @@ bot.on('/restart', (msg) => { }); bot.on('/update', msg => { + const id = msg.from.id; + if(adminUsers.indexOf(id) < 0){ + msg.reply.text('您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username'); + return console.warn('收到非白名单用户的请求') + } console.log('run update') const shell = spawn('git',['pull',]).on('error', function( err ){ msg.reply.text(err); @@ -185,8 +209,8 @@ bot.on(/^!.*/, (msg, props) => { // console.log(prex); const id = msg.from.id; if(adminUsers.indexOf(id) < 0){ - msg.reply.text('You are not admin!'); - return; + msg.reply.text('您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username'); + return console.warn('收到非白名单用户的请求') } let words = String(msg.text).split(" "); From ff3b9e2418b0a714fb0c93a084d25e2cd59f8de4 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 26 Jul 2020 08:56:45 +0000 Subject: [PATCH 11/41] test /restart --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index d7bd2d08..6d37876a 100644 --- a/index.js +++ b/index.js @@ -175,7 +175,7 @@ bot.on('/restart', (msg) => { return console.warn('收到非白名单用户的请求') } console.log('run update') - const shell = spawn('pm2',['restart all',]).on('error', function( err ){ + const shell = spawn('pm2',['restart','all',]).on('error', function( err ){ msg.reply.text(err); }); if(shell){ From 6427b03c6870f109d622cedf40c0c1202da13236 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 26 Jul 2020 10:08:10 +0000 Subject: [PATCH 12/41] update the /update --- index.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 6d37876a..39d83fb4 100644 --- a/index.js +++ b/index.js @@ -174,7 +174,8 @@ bot.on('/restart', (msg) => { msg.reply.text('您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username'); return console.warn('收到非白名单用户的请求') } - console.log('run update') + console.log('run restart') + msg.reply.text('run restart'); const shell = spawn('pm2',['restart','all',]).on('error', function( err ){ msg.reply.text(err); }); @@ -191,8 +192,9 @@ bot.on('/update', msg => { msg.reply.text('您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username'); return console.warn('收到非白名单用户的请求') } - console.log('run update') - const shell = spawn('git',['pull',]).on('error', function( err ){ + console.log('run update and restart') + msg.reply.text('run update and restart'); + const shell = spawn('git',['pull','&&','pm2','restart','all']).on('error', function( err ){ msg.reply.text(err); }); From 4231ff68aa5678473d013db96106c61c5f8993e9 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 26 Jul 2020 10:16:36 +0000 Subject: [PATCH 13/41] update /update --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index 39d83fb4..43672815 100644 --- a/index.js +++ b/index.js @@ -194,7 +194,7 @@ bot.on('/update', msg => { } console.log('run update and restart') msg.reply.text('run update and restart'); - const shell = spawn('git',['pull','&&','pm2','restart','all']).on('error', function( err ){ + const shell = spawn('git',['pull',]).on('error', function( err ){ msg.reply.text(err); }); From 45879964cfcde6231af6a5667f763ba79b9a2c8e Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 26 Jul 2020 10:18:09 +0000 Subject: [PATCH 14/41] update the msg --- index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 43672815..5693f003 100644 --- a/index.js +++ b/index.js @@ -192,8 +192,8 @@ bot.on('/update', msg => { msg.reply.text('您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username'); return console.warn('收到非白名单用户的请求') } - console.log('run update and restart') - msg.reply.text('run update and restart'); + console.log('run update') + msg.reply.text('run update'); const shell = spawn('git',['pull',]).on('error', function( err ){ msg.reply.text(err); }); From 6e1b2c0413ddccb471ef63f0ffe3ef1bd0c155fe Mon Sep 17 00:00:00 2001 From: dissipator Date: Tue, 28 Jul 2020 22:17:41 +0800 Subject: [PATCH 15/41] Update readme.md --- readme.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/readme.md b/readme.md index 30610f6e..b405e4d1 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,9 @@ # Google Drive 百宝箱 > 不只是最快的 google drive 拷贝工具 [与其他工具的对比](./compare.md) + > 本项目将TeleShellBot 和 gd-utils 做了整合(本人只做了整合,没有改变核心的代码逻辑) + > 做到了去掉的http端口占用和nginx以及SSL的配置,也能使用telegram bot 功能 ## 目录 From 29d009a57268c97880192d62933a5f787369a447 Mon Sep 17 00:00:00 2001 From: dissipator Date: Tue, 28 Jul 2020 22:18:51 +0800 Subject: [PATCH 16/41] Update gdutilsinstall.sh --- gdutilsinstall.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/gdutilsinstall.sh b/gdutilsinstall.sh index 43f100e2..67fe1269 100644 --- a/gdutilsinstall.sh +++ b/gdutilsinstall.sh @@ -103,16 +103,16 @@ done echo -e "\n$color_yellow===== <<安装gdutils依赖-nodejs和npm/安装配置gdutils>> =====$color_end\n" $cmd_install install $cmd_install_rely -y -#curl -sL $nodejs_curl | bash - -#$cmd_install install nodejs -y -wget https://cdn.npm.taobao.org/dist/node/v14.6.0/node-v14.6.0-linux-x64.tar.xz -tar xvf node-v14.6.0-linux-x64.tar.xz && mv node-v14.6.0-linux-x64 ~/node && rm -rf node-v14.6.0-linux-x64.tar.xz -export PATH=$PATH:~/node/bin/npm +curl -sL $nodejs_curl | bash - +$cmd_install install nodejs -y +#wget https://cdn.npm.taobao.org/dist/node/v14.6.0/node-v14.6.0-linux-x64.tar.xz +#tar xvf node-v14.6.0-linux-x64.tar.xz && mv node-v14.6.0-linux-x64 ~/node && rm -rf node-v14.6.0-linux-x64.tar.xz +#export PATH=$PATH:~/node/bin/npm $cmd_install_rpm_build git clone https://github.com/dissipator/gd-utils.git gd-utils && cd gd-utils -~/node/bin/npm config set unsafe-perm=true -~/node/bin/npm i +npm config set unsafe-perm=true +npm i echo -e "\n$color_yellow★★★ 恭喜您!gdutils统计转存系统已经正确安装完成,请上传sa到“./gd-utils/sa/”目录下完成最后的配置 ★★★$color_end\n" @@ -171,10 +171,10 @@ cd ../ echo -e "$color_yellow----------------------------------------------------------$color_end" echo -e "$color_yellow“进程守护程序pm2”开始安装......$color_end" -sudo ~/node/bin/npm i pm2 -g && pm2 l +sudo npm i pm2 -g && pm2 l echo -e "$color_yellow启动守护进程......$color_end" cd ./gd-utils -~/node/bin/pm2 start index.js --node-args="--max-old-space-size=500" +pm2 start index.js --node-args="--max-old-space-size=500" echo -e "$color_yellow----------------------------------------------------------$color_end" cd ~ @@ -191,4 +191,4 @@ cd ~ # 4-查询过程中输出方式不要每次都输出一次,可以固定+数字变化 # 5-命令参数可加在ID前或后,如果非要固定一种的话就加在ID之前 # 6-命令行也改为默认sa模式 -############################################################################ \ No newline at end of file +############################################################################ From c854b8544c4e2e8df838d0f088c156e51dac18ea Mon Sep 17 00:00:00 2001 From: dissipator Date: Tue, 28 Jul 2020 22:19:36 +0800 Subject: [PATCH 17/41] Update gdutilsinstall.sh --- gdutilsinstall.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gdutilsinstall.sh b/gdutilsinstall.sh index 67fe1269..22653eed 100644 --- a/gdutilsinstall.sh +++ b/gdutilsinstall.sh @@ -5,16 +5,15 @@ color_yellow='\033[1;32m' color_end='\033[0m' echo -e "\n$color_yellow===== <> =====$color_end" -echo -e "$color_yellow---------------[ v2.1 by oneking ]---------------$color_end" +echo -e "$color_yellow---------------[ change from v2.1 by oneking ]---------------$color_end" echo -e "$color_yellow 01.$color_end 本脚本是魔改的gdutils项目一键部署脚本;" echo -e "$color_yellow 02.$color_end 脚本包括“TD盘VPS上查询转存部署”和“Telegram机器人部署”两部分" echo -e "$color_yellow 03.$color_end 本脚本适应CentOS/Debian/Ubuntu三种操作系统,自动识别、自动选择对应分支一键安装部署" echo -e "$color_yellow 04.$color_end 三步即可完成部署:上传脚本到VPS → 设置脚本执行权限 → 运行" echo -e "$color_yellow 05.$color_end 准备工作一:在TG上注册好机器人取得并记录下该机器人TOKEN" -echo -e "$color_yellow 06.$color_end 准备工作二:拥有一个域名绑定到cloudflare解析到该机器人所在服务器IP" echo -e "$color_yellow 07.$color_end 准备工作三:向机器人@userinfobot获取个人TG账号ID并记录" echo -e "$color_yellow 08.$color_end 准备工作四:注册好一个Google team drive加入sa并记录下该盘ID" -echo -e "$color_yellow 09.$color_end 经测试可用完美安装系统:Centos 7/8 debian 9/10 ubuntu 16.04/18.04/19.10/20.04" + echo -e "$color_yellow------------------------------------------------$color_end" read -s -n1 -p "★★★ 如已做好以上[5/6/7/8]准备或不需要安装Telegram机器人请按任意键开始部署,如未做好准备请按“Ctrl+c”终止脚本 ★★★" echo -e "\n$color_yellow------------------------------------------------$color_end" From 399287f8797151b619f104343f7ba423c9eeec2e Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 1 Aug 2020 13:25:35 +0000 Subject: [PATCH 18/41] update from auth --- aria2.js | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++ changelog.md | 6 +++++ src/gd.js | 2 +- src/router.js | 4 ++-- src/tg.js | 17 +++++--------- 5 files changed, 76 insertions(+), 15 deletions(-) create mode 100755 aria2.js diff --git a/aria2.js b/aria2.js new file mode 100755 index 00000000..7d41f4c1 --- /dev/null +++ b/aria2.js @@ -0,0 +1,62 @@ +#!/usr/bin/env node + +const fs = require('fs') +const {get_name_by_id, get_sa_token, get_access_token, walk_and_save, validate_fid} = require('./src/gd') + +const ID_DIR_MAPPING = {} +const FOLDER_TYPE = 'application/vnd.google-apps.folder' + +const { argv } = require('yargs') + .usage('用法: ./$0 [options]') + .alias('o', 'output') + .describe('output', '指定输出文件,不填默认为uri.txt') + .alias('u', 'update') + .describe('u', '不使用本地缓存,强制从线上获取源文件夹信息') + .alias('S', 'service_account') + .describe('S', '使用service account进行操作,前提是必须在 ./sa 目录下放置sa授权json文件') + .help('h') + .alias('h', 'help') + +const [fid] = argv._ +if (validate_fid(fid)) { + let { update, service_account, output } = argv + output = output || 'uri.txt' + gen_input_file({ fid, update, service_account, output }).then(() => console.log('已生成', output)).catch(console.error) +} else { + console.warn('目录ID缺失或格式错误') +} + +async function gen_input_file ({fid, service_account, update, output}) { + const root = await get_name_by_id(fid, service_account) + const data = await walk_and_save({fid, service_account, update}) + const files = data.filter(v => v.mimeType !== FOLDER_TYPE) + const folders = data.filter(v => v.mimeType === FOLDER_TYPE) + const access_token = service_account ? (await get_sa_token()).access_token : await get_access_token() + let result = [`# aria2c -c -s10 -k1M --enable-rpc=false --header "Authorization: Bearer ${access_token}" -i ${output}`] + result = result.concat(files.map(v => { + const {id, name, parent} = v + const dir = get_dir(parent, folders) + return `https://www.googleapis.com/drive/v3/files/${id}?alt=media + dir=${root}${dir} + out=${name}` + })) + console.log(result) + fs.writeFileSync(output, result.join('\n')) +} + +function get_dir (id, folders) { + if (ID_DIR_MAPPING[id]) return ID_DIR_MAPPING[id] + let result = '' + let temp = id + let folder = folders.filter(v => v.id === temp)[0] + while (folder) { + result = `/${folder.name}` + result + temp = folder.parent + if (ID_DIR_MAPPING[temp]) { + result = ID_DIR_MAPPING[temp] + result + return ID_DIR_MAPPING[id] = result + } + folder = folders.filter(v => v.id === temp)[0] + } + return ID_DIR_MAPPING[id] = result +} diff --git a/changelog.md b/changelog.md index 2c5a9c17..a0daa73b 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,12 @@ ## 更新日志 > 更新方法:在 gd-utils 目录下,执行 `git pull` 拉取最新代码,如果你使用了 pm2 守护进程,执行`pm2 reload server`刷新生效。 +[2020-07-28] +- 添加 [aria2.js](https://github.com/iwestlin/gd-utils/blob/master/aria2.js) 脚本,方便利用 `aria2c` 下载google drive目录,使用帮助可执行 `./aria2.js -h` 查看。 + +相关 issue: [https://github.com/iwestlin/gd-utils/issues/133](https://github.com/iwestlin/gd-utils/issues/133) +使用录屏:[https://drive.google.com/file/d/1lzN7R9Klw66C5UttUUDN3_EsN3pNs62q/view](https://drive.google.com/file/d/1lzN7R9Klw66C5UttUUDN3_EsN3pNs62q/view) + [2020-07-25] - 调整shell 执行结构 在bot中输入"! ls"等即可 - 增加 在bot中升级bot功能,在bot中依次执行"/update" "/restart" (restart 功能仅限使用pm2 启动的bot) diff --git a/src/gd.js b/src/gd.js index 198611a9..90c9539e 100644 --- a/src/gd.js +++ b/src/gd.js @@ -850,4 +850,4 @@ function print_progress (msg) { } } -module.exports = { ls_folder, count, validate_fid, copy, dedupe, copy_file, gen_count_body, real_copy, get_name_by_id, get_info_by_id } +module.exports = { ls_folder, count, validate_fid, copy, dedupe, copy_file, gen_count_body, real_copy, get_name_by_id, get_info_by_id, get_access_token, get_sa_token, walk_and_save } diff --git a/src/router.js b/src/router.js index 0c4c4299..6eb64548 100644 --- a/src/router.js +++ b/src/router.js @@ -2,7 +2,7 @@ const Router = require('@koa/router') const { db } = require('../db') const { validate_fid, gen_count_body } = require('./gd') -const { send_count, send_help, send_choice, send_task_info, sm, extract_fid, extract_from_text, reply_cb_query, tg_copy, send_all_tasks, send_bm_help, get_target_by_alias, send_all_bookmarks, set_bookmark, unset_bookmark, clear_tasks, send_task_help, rm_task, clear_button } = require('./tg') +const { send_count, send_help, send_choice, send_task_info, sm, extract_fid, extract_from_text, reply_cb_query, tg_copy, send_all_tasks, send_bm_help, get_target_by_alias, send_all_bookmarks, set_bookmark, unset_bookmark, clear_tasks, send_task_help, rm_task } = require('./tg') const { AUTH, ROUTER_PASSKEY, TG_IPLIST } = require('../config') const { tg_whitelist } = AUTH @@ -76,7 +76,7 @@ router.post('/api/gdurl/tgbot', async ctx => { }) } else if (action === 'clear_button') { const { message_id, text } = message || {} - if (message_id) clear_button({ message_id, text, chat_id }) + if (message_id) sm({ chat_id, message_id, text, parse_mode: 'HTML' }, 'editMessageText') } return reply_cb_query({ id, data }).catch(console.error) } diff --git a/src/tg.js b/src/tg.js index a3b23554..8d01a01a 100644 --- a/src/tg.js +++ b/src/tg.js @@ -146,13 +146,6 @@ function send_choice ({ fid, chat_id }) { }) } -function clear_button ({ message_id, text, chat_id }) { - const url = `https://api.telegram.org/bot${tg_token}/editMessageText` - return axins.post(url, { chat_id, message_id, text, parse_mode: 'HTML' }).catch(e => { - console.error('fail to clear_button', e.message) - }) -} - // console.log(gen_bookmark_choices()) function gen_bookmark_choices (fid) { const gen_choice = v => ({ text: `复制到 ${v.alias}`, callback_data: `copy ${fid} ${v.alias}` }) @@ -233,10 +226,9 @@ async function send_task_info ({ task_id, chat_id }) { // get_task_info 在task目录数超大时比较吃cpu,以后如果最好把mapping也另存一张表 if (!message_id || status !== 'copying') return const loop = setInterval(async () => { - const url = `https://api.telegram.org/bot${tg_token}/editMessageText` const { text, status } = await get_task_info(task_id) if (status !== 'copying') clearInterval(loop) - axins.post(url, { chat_id, message_id, text, parse_mode: 'HTML' }).catch(e => console.error(e.message)) + sm({ chat_id, message_id, text, parse_mode: 'HTML' }, 'editMessageText') }, 10 * 1000) } @@ -339,8 +331,9 @@ ${table}` }) } -function sm (data) { - const url = `https://api.telegram.org/bot${tg_token}/sendMessage` +function sm (data, endpoint) { + endpoint = endpoint || 'sendMessage' + const url = `https://api.telegram.org/bot${tg_token}/${endpoint}` return axins.post(url, data).catch(err => { // console.error('fail to post', url, data) console.error('fail to send message to tg:', err.message) @@ -376,4 +369,4 @@ function extract_from_text (text) { return m && extract_fid(m[0]) } -module.exports = { send_count, send_help, sm, extract_fid, reply_cb_query, send_choice, send_task_info, send_all_tasks, tg_copy, extract_from_text, get_target_by_alias, send_bm_help, send_all_bookmarks, set_bookmark, unset_bookmark, clear_tasks, send_task_help, rm_task, clear_button } +module.exports = { send_count, send_help, sm, extract_fid, reply_cb_query, send_choice, send_task_info, send_all_tasks, tg_copy, extract_from_text, get_target_by_alias, send_bm_help, send_all_bookmarks, set_bookmark, unset_bookmark, clear_tasks, send_task_help, rm_task } From 490dab782fd4a360c72db5a32a7a945b4d0b3f3e Mon Sep 17 00:00:00 2001 From: luominglu Date: Fri, 7 Aug 2020 23:10:07 +0800 Subject: [PATCH 19/41] update from iwestlin --- aria2.js | 63 +++++++++++++++++++++++++++++++++++++++----------- changelog.md | 19 +++++++++++++++ src/gd.js | 33 ++++++++++++++++++-------- src/summary.js | 2 +- 4 files changed, 92 insertions(+), 25 deletions(-) diff --git a/aria2.js b/aria2.js index 7d41f4c1..8f9aaf67 100755 --- a/aria2.js +++ b/aria2.js @@ -1,7 +1,10 @@ #!/usr/bin/env node const fs = require('fs') -const {get_name_by_id, get_sa_token, get_access_token, walk_and_save, validate_fid} = require('./src/gd') +const crypto = require('crypto') + +const { format_size } = require('./src/summary') +const { get_name_by_id, get_sa_token, get_access_token, walk_and_save, validate_fid } = require('./src/gd') const ID_DIR_MAPPING = {} const FOLDER_TYPE = 'application/vnd.google-apps.folder' @@ -14,39 +17,71 @@ const { argv } = require('yargs') .describe('u', '不使用本地缓存,强制从线上获取源文件夹信息') .alias('S', 'service_account') .describe('S', '使用service account进行操作,前提是必须在 ./sa 目录下放置sa授权json文件') + .alias('k', 'hashkey') + .describe('k', '使用 https://github.com/iwestlin/gdshare 部署的网站所设置的hashkey,用于生成合法的下载链接') + .alias('c', 'cf') + .describe('cf', '使用 gdshare 部署的网站网址') + .alias('e', 'expire') + .describe('e', 'gdshare 直链过期时间,单位小时,默认值24') .help('h') .alias('h', 'help') const [fid] = argv._ if (validate_fid(fid)) { - let { update, service_account, output } = argv + let { update, service_account, output, hashkey, cf, expire } = argv output = output || 'uri.txt' - gen_input_file({ fid, update, service_account, output }).then(() => console.log('已生成', output)).catch(console.error) + gen_input_file({ fid, update, service_account, output, hashkey, cf, expire }) + .then(cmd => { + console.log('已生成', output) + console.log('执行命令即可下载:\n', cmd) + }) + .catch(console.error) } else { console.warn('目录ID缺失或格式错误') } -async function gen_input_file ({fid, service_account, update, output}) { +async function gen_input_file ({ fid, service_account, update, output, hashkey, cf, expire }) { const root = await get_name_by_id(fid, service_account) - const data = await walk_and_save({fid, service_account, update}) + const data = await walk_and_save({ fid, service_account, update }) const files = data.filter(v => v.mimeType !== FOLDER_TYPE) const folders = data.filter(v => v.mimeType === FOLDER_TYPE) - const access_token = service_account ? (await get_sa_token()).access_token : await get_access_token() - let result = [`# aria2c -c -s10 -k1M --enable-rpc=false --header "Authorization: Bearer ${access_token}" -i ${output}`] - result = result.concat(files.map(v => { - const {id, name, parent} = v + let result + if (hashkey && cf) { + result = [`# aria2c -c --enable-rpc=false -i ${output}`] + } else { + const access_token = service_account ? (await get_sa_token()).access_token : await get_access_token() + result = [`# aria2c -c --enable-rpc=false --header "Authorization: Bearer ${access_token}" -i ${output}`] + } + result = result.concat(files.map(file => { + const { id, name, parent, size } = file const dir = get_dir(parent, folders) - return `https://www.googleapis.com/drive/v3/files/${id}?alt=media + const download_uri = (hashkey && cf) ? gen_direct_link({ file, hashkey, cf, expire }) : `https://www.googleapis.com/drive/v3/files/${id}?alt=media` + return `# 文件大小:${format_size(size)} +${download_uri} dir=${root}${dir} out=${name}` })) - console.log(result) - fs.writeFileSync(output, result.join('\n')) + fs.writeFileSync(output, result.join('\n\n')) + return result[0].replace('# ', '') +} + +function gen_direct_link ({ file, hashkey, cf, expire }) { + const { name, id } = file + const expired = Date.now() + (Number(expire) || 24) * 3600 * 1000 + const str = `expired=${expired}&id=${id}` + const sig = hmac(str, hashkey) + if (!cf.startsWith('http')) cf = 'https://' + cf + return `${cf}/api/download/${name}?${str}&sig=${sig}` +} + +function hmac (str, hashkey) { + return crypto.createHmac('sha256', hashkey).update(str).digest('hex') } function get_dir (id, folders) { - if (ID_DIR_MAPPING[id]) return ID_DIR_MAPPING[id] - let result = '' + let result = ID_DIR_MAPPING[id] + if (result !== undefined) return result + result = '' let temp = id let folder = folders.filter(v => v.id === temp)[0] while (folder) { diff --git a/changelog.md b/changelog.md index a0daa73b..acd53708 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,25 @@ ## 更新日志 > 更新方法:在 gd-utils 目录下,执行 `git pull` 拉取最新代码,如果你使用了 pm2 守护进程,执行`pm2 reload server`刷新生效。 +### [2020-08-06] +- 由于最近`userRateLimitExceeded`的错误越来越频繁出现,看上去Google除了每日750G以外又加上了什么限制。我只好把剔除SA的条件从“连续2次”遇到这种报错消息改成了**连续7次**……这个值也可以自定义,只需要在`config.js`中导出一个 `EXCEED_LIMIT`的变量,具体方法请参考[专家设置](https://github.com/iwestlin/gd-utils/blob/master/readme.md#%E4%B8%93%E5%AE%B6%E8%AE%BE%E7%BD%AE) + +- 另外为了用户体验还隐去了包含`rate limit`的报错信息,同时将重置SA(也就是重新启用被剔除的SA)改成了每2小时执行一次(原来是12小时) + +### [2020-08-05] +- 配合[gdshare](https://github.com/iwestlin/gdshare)使用,给 [aria2.js](./aria2.js) 添加 `--hashkey` `--cf` `--expire` 选项,具体含义请执行 `./aria2.js -h` 查看。 +使用示例: +```bash +./aria2.js folderID -k 'your hashkey' -c 'your.domain.com' -S +``` +这条命令会在当前目录生成一个包含所有文件下载链接的文本文件并输出一条以 `aria2c` 开头的命令,执行这条命令即可调用[aria2c](https://aria2.github.io/)下载整个`folderID`目录,并保留目录结构。 + +### [2020-08-02] 关于“没有可用的SA”报错信息 +- 最近Google Drive的 API 似乎有点抽风,转存新分享的资源时经常随机遇到`userRateLimitExceeded`(一般这种错误只会在SA用完每日转存流量750G时触发)的接口返回错误导致SA被剔除(即使是新加的SA也会遇到),而对于比较老的分享或者自己团队盘文件对拷则没问题。 +不得已我只好修改了一下程序的逻辑,只有当SA连续两次遇到`userRateLimitExceeded`的错误时才会被剔除,在这种条件下,据我的观察,拷贝一个新分享的资源时,平均每转存100个文件会被剔除掉一个SA。 +如果你不希望因为接口返回`userRateLimitExceeded`而剔除掉对应的SA,可以手动修改代码,方法见:https://github.com/iwestlin/gd-utils/issues/138#issuecomment-666156273 +- 命令行添加 `--dncf` 参数,表示`do not copy folders`,即转存资源时不复制任何递归子目录,直接将所有文件拷贝到新生成的文件夹中。 + [2020-07-28] - 添加 [aria2.js](https://github.com/iwestlin/gd-utils/blob/master/aria2.js) 脚本,方便利用 `aria2c` 下载google drive目录,使用帮助可执行 `./aria2.js -h` 查看。 diff --git a/src/gd.js b/src/gd.js index 90c9539e..cf3a1d3e 100644 --- a/src/gd.js +++ b/src/gd.js @@ -8,8 +8,9 @@ const { GoogleToken } = require('gtoken') const handle_exit = require('signal-exit') const { argv } = require('yargs') -let { PARALLEL_LIMIT } = require('../config') +let { PARALLEL_LIMIT, EXCEED_LIMIT } = require('../config') PARALLEL_LIMIT = argv.l || argv.limit || PARALLEL_LIMIT +EXCEED_LIMIT = EXCEED_LIMIT || 7 const { AUTH, RETRY_LIMIT, TIMEOUT_BASE, TIMEOUT_MAX, LOG_DELAY, PAGE_SIZE, DEFAULT_TARGET } = require('../config') const { db } = require('../db') @@ -47,7 +48,7 @@ if (is_pm2()) { setInterval(() => { SA_FILES.flag = 0 SA_TOKENS = get_sa_batch() - }, 1000 * 3600 * 12) + }, 1000 * 3600 * 2) } // https://github.com/Leelow/is-pm2/blob/master/index.js @@ -346,7 +347,7 @@ async function get_sa_token () { if (!SA_TOKENS.length) SA_TOKENS = get_sa_batch() } } - throw new Error('没有可用的SA帐号') + throw new Error('没有可用的SA') } async function real_get_sa_token (el) { @@ -489,8 +490,6 @@ async function real_copy ({ source, target, name, min_size, update, dncnr, not_t let files = arr.filter(v => v.mimeType !== FOLDER_TYPE).filter(v => !copied_ids[v.id]) if (min_size) files = files.filter(v => v.size >= min_size) const folders = arr.filter(v => v.mimeType === FOLDER_TYPE) - console.log('待复制的目录数:', folders.length) - console.log('待复制的文件数:', files.length) const all_mapping = await create_folders({ old_mapping, source, @@ -558,7 +557,7 @@ async function copy_files ({ files, mapping, service_account, root, task_id }) { const loop = setInterval(() => { const now = dayjs().format('HH:mm:ss') - const message = `${now} | 已复制文件数 ${count} | 排队中文件数 ${files.length}` + const message = `${now} | 已复制文件数 ${count} | 进行中 ${concurrency} | 排队中文件数 ${files.length}` print_progress(message) }, 1000) @@ -631,6 +630,7 @@ async function copy_file (id, parent, use_sa, limit, task_id) { } try { const { data } = await axins.post(url, { parents: [parent] }, config) + if (gtoken) gtoken.exceed_count = 0 return data } catch (err) { retry++ @@ -643,22 +643,33 @@ async function copy_file (id, parent, use_sa, limit, task_id) { throw new Error(FILE_EXCEED_MSG) } if (use_sa && message && message.toLowerCase().includes('rate limit')) { - SA_TOKENS = SA_TOKENS.filter(v => v.gtoken !== gtoken) - if (!SA_TOKENS.length) SA_TOKENS = get_sa_batch() - console.log('此帐号触发使用限额,剩余可用service account帐号数量:', SA_TOKENS.length) + retry-- + if (gtoken.exceed_count >= EXCEED_LIMIT) { + SA_TOKENS = SA_TOKENS.filter(v => v.gtoken !== gtoken) + if (!SA_TOKENS.length) SA_TOKENS = get_sa_batch() + console.log(`此帐号连续${EXCEED_LIMIT}次触发使用限额,本批次剩余可用SA数量:`, SA_TOKENS.length) + } else { + // console.log('此帐号触发使用限额,已标记,若下次请求正常则解除标记,否则剔除此SA') + if (gtoken.exceed_count) { + gtoken.exceed_count++ + } else { + gtoken.exceed_count = 1 + } + } } } } if (use_sa && !SA_TOKENS.length) { if (limit) limit.clearQueue() if (task_id) db.prepare('update task set status=? where id=?').run('error', task_id) - throw new Error('所有SA帐号流量已用完') + throw new Error('没有可用的SA') } else { console.warn('复制文件失败,文件id: ' + id) } } async function create_folders ({ source, old_mapping, folders, root, task_id, service_account }) { + if (argv.dncf) return {} // do not copy folders if (!Array.isArray(folders)) throw new Error('folders must be Array:' + folders) const mapping = old_mapping || {} mapping[source] = root @@ -835,6 +846,8 @@ async function dedupe ({ fid, update, service_account, yes }) { function handle_error (err) { const data = err && err.response && err.response.data if (data) { + const message = data.error && data.error.message + if (message && message.toLowerCase().includes('rate limit')) return console.error(JSON.stringify(data)) } else { if (!err.message.includes('timeout')) console.error(err.message) diff --git a/src/summary.js b/src/summary.js index be4377a3..88370135 100644 --- a/src/summary.js +++ b/src/summary.js @@ -2,7 +2,7 @@ const Table = require('cli-table3') const colors = require('colors/safe') const { escape } = require('html-escaper') -module.exports = { make_table, summary, make_html, make_tg_table } +module.exports = { make_table, summary, make_html, make_tg_table, format_size } function make_html ({ file_count, folder_count, total_size, details }) { const head = ['类型', '数量', '大小'] From d19924112d557b1b708f0f74a1100d0a767c8d55 Mon Sep 17 00:00:00 2001 From: luominglu Date: Sat, 15 Aug 2020 17:25:55 +0800 Subject: [PATCH 20/41] update buttns --- .gitignore | 1 + config.js | 8 +- gdurl.sqlite | Bin 45056 -> 53248 bytes gdutilsinstall.sh | 4 + index.js | 215 ++++-- package-lock.json | 1764 +++++++++++++++++++++++++++++++++++++++++---- package.json | 10 +- telebot | 1 + 8 files changed, 1788 insertions(+), 215 deletions(-) create mode 160000 telebot diff --git a/.gitignore b/.gitignore index 312c94c5..6870396e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ node_modules/ gdurl.sqlite* config.js +test.js sa/*.json backup/*.sqlite package-lock.json diff --git a/config.js b/config.js index c342ba59..87c593f6 100644 --- a/config.js +++ b/config.js @@ -9,7 +9,7 @@ const PAGE_SIZE = 1000 // 每次网络请求读取目录下的文件数,数值 const RETRY_LIMIT = 5 // 如果某次请求失败,允许其重试的最大次数 const PARALLEL_LIMIT = 10 // 网络请求的并行数量,可根据网络环境调整 -const DEFAULT_TARGET = '' // 必填,拷贝默认目的地ID,如果不指定target,则会复制到此处,建议填写团队盘ID +const DEFAULT_TARGET = '1rTuuu2byHzviu1vPrDL_m2cKJOMWWW3P' // 必填,拷贝默认目的地ID,如果不指定target,则会复制到此处,建议填写团队盘ID const AUTH = { // 如果您拥有service account的json授权文件,可将其拷贝至 sa 目录中以代替 client_id/secret/refrest_token client_id: 'your_client_id', @@ -17,9 +17,9 @@ const AUTH = { // 如果您拥有service account的json授权文件,可将其 refresh_token: 'your_refrest_token', expires: 0, // 可以留空 access_token: '', // 可以留空 - tg_token: 'bot_token', // 你的 telegram robot 的 token,获取方法参见 https://core.telegram.org/bots#6-botfather - tg_whitelist: ['your_tg_username'], // 你的tg username(t.me/username),bot只会执行这个列表里的用户所发送的指令 - adminUsers:[your_tg_userid] //admin users' telegram id, should be numbers + tg_token: '1134687699:AAFD8xQZk8u2oV7gRz9yAfgCokEBfVF0Pr4', // 你的 telegram robot 的 token,获取方法参见 https://core.telegram.org/bots#6-botfather + tg_whitelist: ['lucas_mac'], // 你的tg username(t.me/username),bot只会执行这个列表里的用户所发送的指令 + adminUsers:[1289547773] //admin users' telegram id, should be numbers } module.exports = { AUTH, PARALLEL_LIMIT, RETRY_LIMIT, TIMEOUT_BASE, TIMEOUT_MAX, LOG_DELAY, PAGE_SIZE, DEFAULT_TARGET}; diff --git a/gdurl.sqlite b/gdurl.sqlite index e617f5ffb1b31ea89a3ebbbcc1e63ae14664e059..aa1cd4350e790460eaa3ae44a97b7255d592c7a2 100644 GIT binary patch literal 53248 zcmeI*%WoUU9S3kyvPFw}MJZI)C<1Kh0*(-o-r4uMmr~;DNs$yE)*~>8eNt;aMJ^@L zfl)aA1KJ#O>fg~rf!=y4@(=jfe;~JBing;{QX=hGX$q)7lrJGl+L@i%`F-X$yQEf- ziU%3jvl*w=Y3Lrqhdv5TO@)5TFriQ=LZ1utIeM(nZ|;pY=-2Sr_aFK;5=w6TWnup7 z(0ufp>BWnssm0x;xAVpMKP~=h?(YkKo%{V9AN}S-jZqE(2tWV=5P$##An<<_nE!g} zY3#|9@SERxx>2{gXLY0E*^PE(uvsDR6+|}*TB@WmrPO*xW8&}C$C*!~vvJpo&+cSP z+Ll&evbhqIEoU-JzOb{ODjYL=+A)(VmvTE<+Sk68EivWn&OupQqYb;QUdOcKvnB0_ zwi>qdD?GhZwY{Li{8=Qn`bqfpg4?w0OQY4QHS|ucqSsx$JK92UNxNp!Wa zJQI8TFx(xC-)yyA+oIsznrj6cv%}tpqn_9!7<5oX4@bN9+r?L#OOY5^3BP_c=+rN* z1emmEpUy9dd?(8L`v%AG%Y*40&dS(4L|4=EGqH!u;l|)_RjcB-R@IvM&I1IsL8nz~ zXhip?$_sxEF=XY-UoJ!jS!j>4aOUHg!7BJNOlwwF!f%2ae@OoGoh-Z_>Fp-oL`HT! z-RpIOjPzxOQxc?ZTH8#OGbQHnW524Qx7%*BI!x=yI@5C-G~tJ<#oybRD2c8vwnEYJ zlW@pw9(@#vJ$x8`JvU$q4j6oXFqw~6=@BH~AVV0s2nH*1kdcmCw<*>rBOfo$#D25l zAA_zax~S>9#fskZT7&IDZdQn|JohL%6O)%ev?HBqQnjWR{}y`SPhbAtOzgAI!pEao z^?U8wXFa=V`lp)l&HEDpyi@sUQ*YR7wB>4WYLtF>;=O)08;LD1hu_2ogQ?PFotijg z{3`A&sRyh6DpRh`ZM4>HI<2AjU=F&y20d~0gBHUQ!x`TrNREk#YYehu zR1{r(H1|Cd!d0z%{u}&oR2009U<;3qHel^u?Ta(}G7nG4;&PxxwLudF9( z$LUJx*+uh$Jzx){e(kWhn>(#2JLczK_-|~U#!0=*ZqFivpfA{MmLg0mT0V!lsUGY%x)$Rwe>_glT4@cVv;1clbj?Z zig~x-mXeLyIqjlBUl^A9ZNHmy*RoqrE)(>p_nlU^ru(&)xN&NmHToig?jWi>kuBa9 z6^XMX-j)fgv#e?Hv_fE6kv8bMFa53v%d;X8C7zAHS{ns)aq`k@k^S6Ry`pNFwzSJ@ zS~YVb=7b}I%T({w(E#PAPHIONiCw#xkgAz&W&5nLEw#>f`#QNHAn|qr zVjW)RY)7yy)0QMt5Ltx|S`~By>W$&MXU;)iPuvg>xt(};)=*ekrYpvg32*Qwr;Egv{4hmZH2hQiX#LRB9>+^G#Oo9G z<;CXNsogp#v+d$~>sjF>Ei3)QhO0ER{^@q};Dhlb^SMH)yj9kU+IU`QNU0z>^ zKJVxq@BDevyYv_2*!9S>FTE%2y6!gp@`)>vB}=wrDvm{*MX$QS6@A#1az$|6q@!O9`;jG?=VVso z1%JAO=D`FEn{!vqIW{SA%$|S9>-HQWgnjk=Rk-`@zy9!V|MORyQTj?Ry!6iy{lEhP z5P$##AOHafKmY;|fB*y_0D(IwFg-mx8@&I28(MmM2LnV%5P$##AOHafKmY;|fB*y_ z0D-$N@ayT^?DziWqW}Bi2)@t5zgDz4Bo2_cCZyVS4kQe)xaeZ<;=*e*A$V0ti3=0uX=z1Rwwb2tWV=5P-l> zM&Q4?|L_0)KmDWsct8LG5P$##AOHafKmY;|fB*y_aEAp3|KJbr|L^b&BQyv=00Izz z00bZa0SG_<0uX>eC^UBe-~Y#q5tu*#0uX=z1Rwwb2tWV=5P$##AaM5taR2}A%_$;+ z00bZa0SG_<0uX=z1Rwwb2)rvWcK`p~Dr`dl0uX=z1Rwwb2tWV=5P$##AaF+naR2{~ zOeDg900bZa0SG_<0uX=z1Rwwb2;3lm`~NrKpb7#IfB*y_009U<00Izz00ba#M+E)@ D1$~Z$ delta 366 zcmZozz})bFNhdhaC$l6~AuYcsH?c&)m_dMnk&(ecL4kpRffb0kftVABnSfYuqK>g5 zD}$ba6)(?B1`h7W%zWkiOnhGaw|RnjcJe85Kjz)byLYpo!c5M|l3ZISyYrSw@XTc7 z7Z(*}Y_2XzOv*_uNi5C=VfM)vdBi4b@!J^}=a&{Grz$BZgt$h8DERpUaj1`v4wr(0 zQb}S_dTI%#)a1w9=Qxt$OHy+S;!8H~ { +function exec (cmd, msg) { + const id = msg.from.id; + if(adminUsers.indexOf(id) < 0){ + msg.reply.text('您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username'); + return console.warn('收到非白名单用户的请求') + } + + let words = String(cmd).split(" "); + let len = words.length; + let args = []; + if (len > 1 ){ + args = words.slice(0, len); + + } + console.log('run shell2 ') + msg.reply.text('$: '+words[0] + " " + args); + const shell = spawn(words[0],args).on('error', function( err ){ + msg.reply.text('error while executing:'+words[1]); + msg.reply.text(err); + }); + + if(shell){ + + shell.stdout.on('data', (data) => { + msg.reply.text(`stdout:\n ${data}`); + }); + shell.stderr.on('data', (data) => { + msg.reply.text(`stderr: ${data}`); + }); + + shell.on('close', (code) => { + msg.reply.text(`shell exited with code ${code}`); + }); + } +} + +bot.sendMessage(1289547773,"you gdutils_bot ins online!") + +bot.on('/yd', (msg) =>{ + if(MSG.startsWith('http')){ + let ydurl = 'yd ' + MSG; + msg.reply.text('run yd '); + exec(ydurl, msg); + return bot.sendMessage(msg.from.id, '已执行!', {replyMarkup: 'hide'}); + } + return bot.sendMessage(msg.from.id, '无地址 !', {replyMarkup: 'hide'}); +}); + +bot.on('/aria2', (msg) => msg.reply.text('aria2 aria2!')); +bot.on('/hide', (msg) => msg.reply.text('Type /start to show keyboard again.', {replyMarkup: 'hide'})); +bot.on('/restart', (msg) => { + exec('pm2 restart all', msg); + msg.reply.text('restarting!') +}); + +bot.on('/update', msg => { + exec('git pull -f', msg); + msg.reply.text('updating !') + exec('pm2 restart all', msg); + msg.reply.text('updated!') +}); + +bot.on('/runshell', msg => { + if(MSG == "")return bot.sendMessage(msg.from.id, '无命令', {replyMarkup: 'hide'}); + msg.reply.text('run shell:'+MSG); + exec(MSG, msg); + return bot.sendMessage(msg.from.id, '已执行!', {replyMarkup: 'hide'}); +}); + +bot.on('/start', (msg) => { + let replyMarkup = bot.keyboard([ + [BUTTONS.update.label, BUTTONS.restart.label], + [BUTTONS.hide.label] + ], {resize: true}); + return bot.sendMessage(msg.from.id, 'See keyboard below.', {replyMarkup}); +}); + +bot.on('/error', (msg) => msg.MAKE_AN_ERROR); +bot.on('/stop', () => bot.stop('bye!')); + +bot.on('text', (msg) => { + MSG = msg.text; const chat_id = msg && msg.chat && msg.chat.id - // console.log(msg); + // console.log(MSG); + // console.log('chat_id: '+ chat_id); // let prex = String(msg.text).substring(0,1); // console.log(prex); @@ -33,18 +166,24 @@ bot.on('text', (msg) => { msg.reply.text('您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username'); return console.warn('收到非白名单用户的请求') } - // if (!chat_id || !tg_whitelist.some(v => { - // v = String(v).toLowerCase() - // return v === username || v === user_id - // })) { - // chat_id && sm({ chat_id, text: '您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username' }) - // return console.warn('收到非白名单用户的请求') - // } const fid = extract_fid(text) || extract_from_text(text) || extract_from_text(message_str) const no_fid_commands = ['/task', '/help', '/bm'] if (!no_fid_commands.some(cmd => text.startsWith(cmd)) && !validate_fid(fid)) { - sm({ chat_id, text: '未识别出分享ID' }) - is_shell = true + + if(message_str.startsWith('http')){ + is_shell = true + let replyMarkup = bot.keyboard([ + [BUTTONS.youtube.label, BUTTONS.aria2.label], + [BUTTONS.hide.label] + ], {resize: true}); + return bot.sendMessage(msg.from.id, '你可能要执行:', {replyMarkup}); + } + let replyMarkup = bot.keyboard([ + [BUTTONS.update.label, BUTTONS.runshell.label], + [BUTTONS.hide.label] + ], {resize: true}); + bot.sendMessage(msg.from.id, '你可能要执行:', {replyMarkup}); + return sm({ chat_id, text: '未识别出分享ID' }); } if (text.startsWith('/help')) return send_help(chat_id) if (text.startsWith('/bm')) { @@ -104,7 +243,7 @@ bot.on('text', (msg) => { send_task_info({ task_id, chat_id }).catch(console.error) } else if (message_str.includes('drive.google.com/') || validate_fid(text)) { return send_choice({ fid: fid || text, chat_id }) - } + } }); // Inline button callback @@ -156,56 +295,6 @@ bot.on('callbackQuery', msg => { return bot.answerCallbackQuery(msg.id, `Inline button callback: ${ msg.data }`, true); }); -//bot.sendMessage(854331334,"you gdutils_bot ins online!") - -bot.on('/start', (msg) => { - const id = msg.from.id; - if(adminUsers.indexOf(id) < 0){ - msg.reply.text('您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username'); - return console.warn('收到非白名单用户的请求') - } - msg.reply.text(`your chat id:\n ${msg.from.id}`); - return bot.sendMessage(msg.from.id, "You gdutils_bot ins online!!"); -}); - -bot.on('/restart', (msg) => { - const id = msg.from.id; - if(adminUsers.indexOf(id) < 0){ - msg.reply.text('您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username'); - return console.warn('收到非白名单用户的请求') - } - console.log('run restart') - msg.reply.text('run restart'); - const shell = spawn('pm2',['restart','all',]).on('error', function( err ){ - msg.reply.text(err); - }); - if(shell){ - shell.stdout.on('data', (data) => { - msg.reply.text(`stdout:\n ${data}`); - }); - } -}); - -bot.on('/update', msg => { - const id = msg.from.id; - if(adminUsers.indexOf(id) < 0){ - msg.reply.text('您的用户名或ID不在机器人的白名单中,如果是您配置的机器人,请先到config.js中配置自己的username'); - return console.warn('收到非白名单用户的请求') - } - console.log('run update') - msg.reply.text('run update'); - const shell = spawn('git',['pull',]).on('error', function( err ){ - msg.reply.text(err); - }); - - if(shell){ - shell.stdout.on('data', (data) => { - msg.reply.text(`stdout:\n ${data}`); - }); - } - -}); - bot.on(/^!.*/, (msg, props) => { // let prex = String(msg.text).substring(0,1); // console.log(prex); diff --git a/package-lock.json b/package-lock.json index dca3a4fd..309a8c2e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { - "name": "gd-utils", - "version": "1.2.0", + "name": "teleshellbot", + "version": "1.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -16,16 +16,34 @@ "path-to-regexp": "^6.1.0" } }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npm.taobao.org/@sindresorhus/is/download/@sindresorhus/is-0.14.0.tgz?cache=0&sync_timestamp=1595758317660&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2F%40sindresorhus%2Fis%2Fdownload%2F%40sindresorhus%2Fis-0.14.0.tgz", + "integrity": "sha1-n7OjzzEyMoFR81PeRjLgHlIQK+o=" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@szmarczak/http-timer/download/@szmarczak/http-timer-1.1.2.tgz", + "integrity": "sha1-sWZeLEYaLNkvTBu/UNVFTeDUtCE=", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, "@types/color-name": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + "resolved": "https://registry.npm.taobao.org/@types/color-name/download/@types/color-name-1.1.1.tgz?cache=0&sync_timestamp=1596838000843&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2F%40types%2Fcolor-name%2Fdownload%2F%40types%2Fcolor-name-1.1.1.tgz", + "integrity": "sha1-HBJhu+qhCoBVu8XYq4S3sq/IRqA=" }, "@viegg/axios": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@viegg/axios/-/axios-1.0.0.tgz", "integrity": "sha512-BCLyhXPaZ/8E5z8VeKSnY5h21AHd3yAaqd0Zw/eNrPwEnJB+Geju8f8L3S8Ww9iHpB1w2wG2cXz/zSdxPRPqBA==" }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz", + "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=" + }, "abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", @@ -51,15 +69,69 @@ "debug": "4" } }, + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.3.tgz", + "integrity": "sha1-GMWvOKER3etPJpe9eNaKvByr1wY=", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-align/download/ansi-align-3.0.0.tgz", + "integrity": "sha1-tTazcc9ofKrvI2wY0+If43l0Z8s=", + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz", + "integrity": "sha1-kK51xCTQCNJiTFvynq0xd+v881k=", "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" @@ -70,47 +142,107 @@ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz", + "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, "aproba": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz", + "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" }, "are-we-there-yet": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "resolved": "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz", + "integrity": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=", "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" } }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", + "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "ast-types": { + "version": "0.13.3", + "resolved": "https://registry.npm.taobao.org/ast-types/download/ast-types-0.13.3.tgz", + "integrity": "sha1-UNo/KNF728eWmjotg6DkpyrnVac=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.10.1", + "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.10.1.tgz?cache=0&sync_timestamp=1597237018736&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.10.1.tgz", + "integrity": "sha1-4eguTz6Zniz9YbFhKA0WoRH4ZCg=" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, "base64-js": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz", + "integrity": "sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } }, "better-sqlite3": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.1.0.tgz", - "integrity": "sha512-FV/snQ8F/kyqhdxsevzbojVtMowDWOfe1A5N3lYu1KJwoho2t7JgITmdlSc7DkOh3Zq65I+ZyeNWXQrkLEDFTg==", + "resolved": "https://registry.npm.taobao.org/better-sqlite3/download/better-sqlite3-7.1.0.tgz", + "integrity": "sha1-SJTQ+kACvXhZoKU5V38U8kskX2o=", "requires": { "bindings": "^1.5.0", "prebuild-install": "^5.3.3", "tar": "4.4.10" } }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz?cache=0&sync_timestamp=1593261309792&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz", + "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=" + }, "bindings": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz", + "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", "requires": { "file-uri-to-path": "1.0.0" } }, "bl": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz", - "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==", + "resolved": "https://registry.npm.taobao.org/bl/download/bl-4.0.2.tgz", + "integrity": "sha1-UrcekIhRXQYG2d2cx6pI3B+Y5zo=", "requires": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -119,8 +251,8 @@ "dependencies": { "readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -129,10 +261,72 @@ } } }, + "boxen": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/boxen/download/boxen-4.2.0.tgz", + "integrity": "sha1-5BG2I1fW1tNlh8isPV2XTaoHDmQ=", + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "requires": { + "fill-range": "^7.0.1" + } + }, "buffer": { "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-5.6.0.tgz", + "integrity": "sha1-oxdJ3H2B2E2wir+Te2uMQDP2J4Y=", "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4" @@ -157,15 +351,98 @@ "ylru": "^1.2.0" } }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/cacheable-request/download/cacheable-request-6.1.0.tgz", + "integrity": "sha1-IP+4vRYrpL4R6VZ9gj22UQUsqRI=", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.2.0.tgz?cache=0&sync_timestamp=1597056474057&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-2.0.0.tgz", + "integrity": "sha1-JgPni3tLAAbLyi+8yKMgJVislHk=" + } + } + }, "camelcase": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz", + "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz", + "integrity": "sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E=", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "chokidar": { + "version": "3.4.2", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.4.2.tgz?cache=0&sync_timestamp=1596729020164&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.2.tgz", + "integrity": "sha1-ONyOZY3sOAl0HrPve7Ckf+QkIy0=", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + } }, "chownr": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz", + "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=" + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ci-info/download/ci-info-2.0.0.tgz", + "integrity": "sha1-Z6npZL4xpR4V5QENWObxKDQAL0Y=" + }, + "cli-boxes": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/cli-boxes/download/cli-boxes-2.2.0.tgz", + "integrity": "sha1-U47K6PnGylCOPDyVtFP+k8tMFo0=" }, "cli-table3": { "version": "0.6.0", @@ -209,8 +486,8 @@ }, "cliui": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz", + "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -219,18 +496,18 @@ "dependencies": { "ansi-regex": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" }, "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" }, "string-width": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -239,14 +516,29 @@ }, "strip-ansi": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", "requires": { "ansi-regex": "^5.0.0" } } } }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/clone-response/download/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + }, + "dependencies": { + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/mimic-response/download/mimic-response-1.0.1.tgz", + "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=" + } + } + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -265,30 +557,56 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" }, "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/configstore/download/configstore-5.0.1.tgz?cache=0&sync_timestamp=1597433732892&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fconfigstore%2Fdownload%2Fconfigstore-5.0.1.tgz", + "integrity": "sha1-02UCG130uYzdGH1qOw4/anzF7ZY=", + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "content-disposition": { @@ -330,10 +648,28 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/crypto-random-string/download/crypto-random-string-2.0.0.tgz", + "integrity": "sha1-7yp6lm7BEIM4g2m6oC6+rSKbMNU=" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-uri-to-buffer": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/data-uri-to-buffer/download/data-uri-to-buffer-1.2.0.tgz?cache=0&sync_timestamp=1590800216978&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fdata-uri-to-buffer%2Fdownload%2Fdata-uri-to-buffer-1.2.0.tgz", + "integrity": "sha1-dxY+qcINhkG0cH6PGKvfmnjzSDU=" + }, "dayjs": { - "version": "1.8.28", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.28.tgz", - "integrity": "sha512-ccnYgKC0/hPSGXxj7Ju6AV/BP4HUkXC2u15mikXT5mX9YorEaoi1bEKOmAqdkJHN4EEkmAf97SpH66Try5Mbeg==" + "version": "1.8.33", + "resolved": "https://registry.npm.taobao.org/dayjs/download/dayjs-1.8.33.tgz?cache=0&sync_timestamp=1597033909902&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fdayjs%2Fdownload%2Fdayjs-1.8.33.tgz", + "integrity": "sha1-GLxKK2wcb01ntMTyU2wLl+W3Zvc=" }, "debug": { "version": "4.1.1", @@ -345,13 +681,13 @@ }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decompress-response": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "resolved": "https://registry.npm.taobao.org/decompress-response/download/decompress-response-4.2.1.tgz", + "integrity": "sha1-QUAjzHowLaJc4uyC0NUjjMr9iYY=", "requires": { "mimic-response": "^2.0.0" } @@ -366,6 +702,31 @@ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/defer-to-connect/download/defer-to-connect-1.1.3.tgz", + "integrity": "sha1-MxrgUMCNz3ifjIOnuB8O2U9KxZE=" + }, + "degenerator": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/degenerator/download/degenerator-1.0.4.tgz", + "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", + "requires": { + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -383,9 +744,31 @@ }, "detect-libc": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/detect-libc/download/detect-libc-1.0.3.tgz", "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" }, + "dot-prop": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.2.0.tgz", + "integrity": "sha1-w07MKVVtxF8fTCJpe29JBODMT8s=", + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/duplexer3/download/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, "ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -417,11 +800,63 @@ "once": "^1.4.0" } }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.8.tgz", + "integrity": "sha1-TrIVlMlyvEBVPSduUQU5FD21Pgo=" + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/es6-promisify/download/es6-promisify-5.0.0.tgz?cache=0&sync_timestamp=1588608211542&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fes6-promisify%2Fdownload%2Fes6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/escape-goat/download/escape-goat-2.1.1.tgz", + "integrity": "sha1-Gy3HcANnbEV+x2Cy3GjttkgYhnU=" + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npm.taobao.org/escodegen/download/escodegen-1.14.3.tgz", + "integrity": "sha1-TnuB+6YVgdyXWC7XjKt/Do1j9QM=", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" + } + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1596641353460&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz", + "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=" + }, "event-target-shim": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", @@ -429,28 +864,71 @@ }, "expand-template": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" + "resolved": "https://registry.npm.taobao.org/expand-template/download/expand-template-2.0.3.tgz", + "integrity": "sha1-bhSz/O4POmNA7LV9LokYaSBSpHw=" }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599604977&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz?cache=0&sync_timestamp=1595428045324&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Ffast-levenshtein%2Fdownload%2Ffast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "requires": { + "to-regex-range": "^5.0.1" + } + }, "find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169862146&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz", + "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -458,20 +936,58 @@ }, "fs-constants": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + "resolved": "https://registry.npm.taobao.org/fs-constants/download/fs-constants-1.0.0.tgz", + "integrity": "sha1-a+Dem+mYzhavivwkSXue6bfM2a0=" }, "fs-minipass": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.7.tgz", + "integrity": "sha1-zP+FcIQef+QmVpPaiJNsVa7X98c=", "requires": { "minipass": "^2.6.0" } }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.3.tgz", + "integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=", + "optional": true + }, + "ftp": { + "version": "0.3.10", + "resolved": "https://registry.npm.taobao.org/ftp/download/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "requires": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "resolved": "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "requires": { "aproba": "^1.0.3", @@ -498,14 +1014,74 @@ }, "get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=" + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz?cache=0&sync_timestamp=1597056474057&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz", + "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "requires": { + "pump": "^3.0.0" + } + }, + "get-uri": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/get-uri/download/get-uri-2.0.4.tgz", + "integrity": "sha1-1JN6uBniGNTLWuGOT1livvFpzGo=", + "requires": { + "data-uri-to-buffer": "1", + "debug": "2", + "extend": "~3.0.2", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } }, "github-from-package": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/github-from-package/download/github-from-package-0.0.0.tgz", "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz", + "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/global-dirs/download/global-dirs-2.0.1.tgz", + "integrity": "sha1-rN87tmhbzVXLNeigUiZlaelGkgE=", + "requires": { + "ini": "^1.3.5" + } + }, "google-p12-pem": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.0.1.tgz", @@ -514,6 +1090,44 @@ "node-forge": "^0.9.0" } }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npm.taobao.org/got/download/got-9.6.0.tgz?cache=0&sync_timestamp=1596797233342&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fgot%2Fdownload%2Fgot-9.6.0.tgz", + "integrity": "sha1-7fRefWf5lUVwXeH3u+7rEhdl7YU=", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/decompress-response/download/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/mimic-response/download/mimic-response-1.0.1.tgz", + "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=" + } + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.4.tgz", + "integrity": "sha1-Ila94U02MpWMRl68ltxGfKB6Kfs=" + }, "gtoken": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.0.1.tgz", @@ -525,11 +1139,35 @@ "mime": "^2.2.0" } }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.5.tgz?cache=0&sync_timestamp=1596082605533&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.5.tgz", + "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/has-yarn/download/has-yarn-2.1.0.tgz", + "integrity": "sha1-E34RNUp7W/EapctknPDG8/8rLnc=" + }, "html-escaper": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.0.tgz", @@ -544,6 +1182,11 @@ "http-errors": "~1.7.2" } }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/http-cache-semantics/download/http-cache-semantics-4.1.0.tgz", + "integrity": "sha1-SekcXL82yblLz81xwj1SSex045A=" + }, "http-errors": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", @@ -556,6 +1199,48 @@ "toidentifier": "1.0.0" } }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/http-proxy-agent/download/http-proxy-agent-2.1.0.tgz", + "integrity": "sha1-5IIb7vWyFCogJr1zkm/lN2McVAU=", + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-4.3.0.tgz?cache=0&sync_timestamp=1593732576537&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fagent-base%2Fdownload%2Fagent-base-4.3.0.tgz", + "integrity": "sha1-gWXwHENgCbzK0LHRIvBe13Dvxu4=", + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, "https-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", @@ -575,8 +1260,23 @@ }, "ieee754": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz", + "integrity": "sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q=" + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/ignore-by-default/download/ignore-by-default-1.0.1.tgz?cache=0&sync_timestamp=1592056012076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fignore-by-default%2Fdownload%2Fignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/import-lazy/download/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "inflation": { "version": "2.0.0", @@ -593,9 +1293,35 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-ci/download/is-ci-2.0.0.tgz", + "integrity": "sha1-a8YzQYGBDgS1wis9WJ/cpVAmQEw=", + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "^1.0.0" @@ -606,16 +1332,104 @@ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz", "integrity": "sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==" }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/is-installed-globally/download/is-installed-globally-0.3.2.tgz", + "integrity": "sha1-/T76ee5nDRGHIzGC1bCh3QAxMUE=", + "requires": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + } + }, + "is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/is-npm/download/is-npm-4.0.0.tgz", + "integrity": "sha1-yQ3YOAaW34enptgjwg0LErvjyE0=" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=" + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz", + "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=" + }, + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-3.0.2.tgz", + "integrity": "sha1-9SIPyCo+IzdXKR3dycWHfyofMBc=" + }, "is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/is-yarn-global/download/is-yarn-global-0.3.0.tgz", + "integrity": "sha1-1QLTOCWQ6jAEiTdGdUyJE5lz4jI=" + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/json-buffer/download/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, "jwa": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", @@ -643,6 +1457,14 @@ "tsscmp": "1.0.6" } }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/keyv/download/keyv-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fkeyv%2Fdownload%2Fkeyv-3.1.0.tgz", + "integrity": "sha1-7MIoSG9pmR5J6UdkhaW+Ho/FxNk=", + "requires": { + "json-buffer": "3.0.0" + } + }, "kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -726,14 +1548,59 @@ } } }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/latest-version/download/latest-version-5.1.0.tgz", + "integrity": "sha1-EZ3+kI/jjRXfpD7NE/oS7Igy+s4=", + "requires": { + "package-json": "^6.3.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, "locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", "requires": { "p-locate": "^4.1.0" } }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-1.0.1.tgz", + "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=" + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1594427602316&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz", + "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" + } + } + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -764,8 +1631,16 @@ }, "mimic-response": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" + "resolved": "https://registry.npm.taobao.org/mimic-response/download/mimic-response-2.1.0.tgz", + "integrity": "sha1-0Tdj019hPQnsN+uzC6wEacDuj0M=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz?cache=0&sync_timestamp=1597044082534&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "requires": { + "brace-expansion": "^1.1.7" + } }, "minimist": { "version": "1.2.5", @@ -774,8 +1649,8 @@ }, "minipass": { "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-2.9.0.tgz", + "integrity": "sha1-5xN2Ln0+Mv7YAxFc+T4EvKn8yaY=", "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -783,24 +1658,24 @@ }, "minizlib": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "resolved": "https://registry.npm.taobao.org/minizlib/download/minizlib-1.3.3.tgz?cache=0&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fminizlib%2Fdownload%2Fminizlib-1.3.3.tgz", + "integrity": "sha1-IpDeloGKNMKVUcio0wEha9Zahh0=", "requires": { "minipass": "^2.9.0" } }, "mkdirp": { "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz", + "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", "requires": { "minimist": "^1.2.5" } }, "mkdirp-classic": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + "resolved": "https://registry.npm.taobao.org/mkdirp-classic/download/mkdirp-classic-0.5.3.tgz", + "integrity": "sha1-+hDJEVzG2IZb4iG6R+6b7XhgERM=" }, "ms": { "version": "2.1.2", @@ -809,18 +1684,23 @@ }, "napi-build-utils": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" + "resolved": "https://registry.npm.taobao.org/napi-build-utils/download/napi-build-utils-1.0.2.tgz", + "integrity": "sha1-sf3cCyxG44Cgt6dvmE3UfEGhOAY=" }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, + "netmask": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/netmask/download/netmask-1.0.6.tgz", + "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" + }, "node-abi": { "version": "2.18.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.18.0.tgz", - "integrity": "sha512-yi05ZoiuNNEbyT/xXfSySZE+yVnQW6fxPZuFbLyS1s6b5Kw3HzV2PHOM4XR+nsjzkHxByK+2Wg+yCQbe35l8dw==", + "resolved": "https://registry.npm.taobao.org/node-abi/download/node-abi-2.18.0.tgz", + "integrity": "sha1-H1SGz9fTi9T1OS+kSkrU2aDf+/Q=", "requires": { "semver": "^5.4.1" } @@ -835,15 +1715,60 @@ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.1.tgz", "integrity": "sha512-G6RlQt5Sb4GMBzXvhfkeFmbqR6MzhtnT7VTHuLadjkii3rdYHNdw0m8zA4BTxVIh68FicCQ2NSUANpsqkr9jvQ==" }, + "nodemon": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/nodemon/download/nodemon-2.0.4.tgz", + "integrity": "sha1-VbCTGetIjWOUqpgYFIwMLRwExBY=", + "requires": { + "chokidar": "^3.2.2", + "debug": "^3.2.6", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.7", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.2", + "update-notifier": "^4.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + } + } + }, "noop-logger": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/noop-logger/download/noop-logger-0.1.1.tgz", "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/nopt/download/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=" + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-4.5.0.tgz?cache=0&sync_timestamp=1596373083028&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-4.5.0.tgz", + "integrity": "sha1-RTNUCH5sqWlXvY9br3U/WYIUISk=" + }, "npmlog": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "resolved": "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz?cache=0&sync_timestamp=1586265317539&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fnpmlog%2Fdownload%2Fnpmlog-4.1.2.tgz", + "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -853,9 +1778,14 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz", + "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=" + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -882,6 +1812,24 @@ "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", "integrity": "sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=" }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz", + "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/p-cancelable/download/p-cancelable-1.1.0.tgz", + "integrity": "sha1-0HjRWjr0CSIMiG8dmgyi5EGrJsw=" + }, "p-limit": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.1.tgz", @@ -892,16 +1840,16 @@ }, "p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1597081508945&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", "requires": { "p-limit": "^2.2.0" }, "dependencies": { "p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", "requires": { "p-try": "^2.0.0" } @@ -913,6 +1861,80 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, + "pac-proxy-agent": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/pac-proxy-agent/download/pac-proxy-agent-3.0.1.tgz", + "integrity": "sha1-EVseWPkldsrC66cYWTynsON94q0=", + "requires": { + "agent-base": "^4.2.0", + "debug": "^4.1.1", + "get-uri": "^2.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^3.0.0", + "pac-resolver": "^3.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-4.3.0.tgz?cache=0&sync_timestamp=1593732576537&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fagent-base%2Fdownload%2Fagent-base-4.3.0.tgz", + "integrity": "sha1-gWXwHENgCbzK0LHRIvBe13Dvxu4=", + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "https-proxy-agent": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-3.0.1.tgz", + "integrity": "sha1-uMKGQz6HYCMRsByOo0QT2Fakr4E=", + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + } + } + } + } + }, + "pac-resolver": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pac-resolver/download/pac-resolver-3.0.0.tgz", + "integrity": "sha1-auoweH2wqJFwTet4AKcip2FabyY=", + "requires": { + "co": "^4.6.0", + "degenerator": "^1.0.4", + "ip": "^1.1.5", + "netmask": "^1.0.6", + "thunkify": "^2.1.2" + } + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npm.taobao.org/package-json/download/package-json-6.5.0.tgz", + "integrity": "sha1-b+7ayjXnVyWHbQsOZJdGl/7RRbA=", + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" + } + } + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -920,18 +1942,28 @@ }, "path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=" }, "path-to-regexp": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.1.0.tgz", "integrity": "sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw==" }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz", + "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=" + }, "prebuild-install": { "version": "5.3.5", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.5.tgz", - "integrity": "sha512-YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw==", + "resolved": "https://registry.npm.taobao.org/prebuild-install/download/prebuild-install-5.3.5.tgz", + "integrity": "sha1-5+ceQlKYeF6p0i1PlY26zPi7Dhs=", "requires": { "detect-libc": "^1.0.3", "expand-template": "^2.0.3", @@ -950,6 +1982,16 @@ "which-pm-runs": "^1.0.0" } }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/prepend-http/download/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -964,6 +2006,65 @@ "sisteransi": "^1.0.4" } }, + "proxy-agent": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/proxy-agent/download/proxy-agent-3.1.1.tgz", + "integrity": "sha1-fgTga/Nq+mJKFUC+JHtHyXC9MBQ=", + "requires": { + "agent-base": "^4.2.0", + "debug": "4", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^3.0.0", + "lru-cache": "^5.1.1", + "pac-proxy-agent": "^3.0.1", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-4.3.0.tgz?cache=0&sync_timestamp=1593732576537&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fagent-base%2Fdownload%2Fagent-base-4.3.0.tgz", + "integrity": "sha1-gWXwHENgCbzK0LHRIvBe13Dvxu4=", + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "https-proxy-agent": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-3.0.1.tgz", + "integrity": "sha1-uMKGQz6HYCMRsByOo0QT2Fakr4E=", + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + } + } + } + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/proxy-from-env/download/proxy-from-env-1.1.0.tgz", + "integrity": "sha1-4QLxbKNVQkhldV0sno6k8k1Yw+I=" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz", + "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=" + }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npm.taobao.org/pstree.remy/download/pstree.remy-1.1.8.tgz", + "integrity": "sha1-wkIiT0pnwh9oaDm720rCgrg3PTo=" + }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -973,6 +2074,19 @@ "once": "^1.3.1" } }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" + }, + "pupa": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/pupa/download/pupa-2.0.1.tgz", + "integrity": "sha1-29yf9I/76komoGm2+fersFEAhyY=", + "requires": { + "escape-goat": "^2.0.0" + } + }, "qs": { "version": "6.9.4", "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", @@ -1014,15 +2128,81 @@ "util-deprecate": "~1.0.1" } }, + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.4.0.tgz", + "integrity": "sha1-n9zN+ekVWAVEkiGsZF6DA6tbmto=", + "requires": { + "picomatch": "^2.2.1" + } + }, + "registry-auth-token": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/registry-auth-token/download/registry-auth-token-4.2.0.tgz", + "integrity": "sha1-HTff/acrvs0PWB5HFVQCE6Zet9o=", + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/registry-url/download/registry-url-5.1.0.tgz", + "integrity": "sha1-6YM0tQ1UNLgRNrROxjjZwgCcUAk=", + "requires": { + "rc": "^1.2.8" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz", + "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz", + "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=" + } + } + }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=" + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/responselike/download/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } }, "safe-buffer": { "version": "5.1.2", @@ -1039,6 +2219,21 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/semver-diff/download/semver-diff-3.1.1.tgz", + "integrity": "sha1-Bfd85Z8yXgDicGr9Z7tQbdscoys=", + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" + } + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -1055,14 +2250,14 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/simple-concat/download/simple-concat-1.0.1.tgz", + "integrity": "sha1-9Gl2CCujXCJj8cirXt/ibEHJVS8=" }, "simple-get": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", + "resolved": "https://registry.npm.taobao.org/simple-get/download/simple-get-3.1.0.tgz", + "integrity": "sha1-tFvgYkNeUNFZVAtXYgLO7EC5xrM=", "requires": { "decompress-response": "^4.2.0", "once": "^1.3.1", @@ -1074,6 +2269,61 @@ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/smart-buffer/download/smart-buffer-4.1.0.tgz", + "integrity": "sha1-kWBcJdkWUvRmHqacz0XxszHKIbo=" + }, + "socks": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/socks/download/socks-2.3.3.tgz", + "integrity": "sha1-ARKfCl1TTSuJdxLtis6rfuZdeOM=", + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/socks-proxy-agent/download/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha1-PImR8xRbJ5nnDhG9X7yLGWMRY4Y=", + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-4.2.1.tgz?cache=0&sync_timestamp=1593732576537&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fagent-base%2Fdownload%2Fagent-base-4.2.1.tgz", + "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "optional": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz", + "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -1081,7 +2331,7 @@ }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "^1.0.0", @@ -1099,7 +2349,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "^2.0.0" @@ -1110,10 +2360,18 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "requires": { + "has-flag": "^3.0.0" + } + }, "tar": { "version": "4.4.10", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz", - "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==", + "resolved": "https://registry.npm.taobao.org/tar/download/tar-4.4.10.tgz", + "integrity": "sha1-lGsoELml4LJhQM94vqawsNaJ66E=", "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", @@ -1126,8 +2384,8 @@ }, "tar-fs": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz", - "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==", + "resolved": "https://registry.npm.taobao.org/tar-fs/download/tar-fs-2.1.0.tgz", + "integrity": "sha1-0c3RIatGXuDrnM3i01BJ0/Pa8NU=", "requires": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", @@ -1136,9 +2394,9 @@ } }, "tar-stream": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz", - "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==", + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/tar-stream/download/tar-stream-2.1.3.tgz?cache=0&sync_timestamp=1594117593914&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Ftar-stream%2Fdownload%2Ftar-stream-2.1.3.tgz", + "integrity": "sha1-HiAiVZIht4ZhYWYPEYJV4g+nnkE=", "requires": { "bl": "^4.0.1", "end-of-stream": "^1.4.1", @@ -1149,8 +2407,8 @@ "dependencies": { "readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -1159,11 +2417,59 @@ } } }, + "telebot": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/telebot/download/telebot-1.4.1.tgz", + "integrity": "sha1-IiPmuqKOgQfQx9gwXpVbaeq33eE=", + "requires": { + "request": "^2.88.2" + } + }, + "term-size": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/term-size/download/term-size-2.2.0.tgz", + "integrity": "sha1-Hxat7f6b3BiADhd2ghc0CG/MZ1M=" + }, + "thunkify": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/thunkify/download/thunkify-2.1.2.tgz", + "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/to-readable-stream/download/to-readable-stream-1.0.0.tgz", + "integrity": "sha1-zgqgwvPfat+FLvtASng+d8BHV3E=" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "requires": { + "is-number": "^7.0.0" + } + }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/touch/download/touch-3.1.0.tgz", + "integrity": "sha1-/jZfX3XsntTlaCXgu3bSSrdK+Ds=", + "requires": { + "nopt": "~1.0.10" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz", + "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, "tsscmp": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", @@ -1177,6 +2483,24 @@ "safe-buffer": "^5.0.1" } }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.8.1.tgz", + "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=" + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -1186,43 +2510,176 @@ "mime-types": "~2.1.24" } }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npm.taobao.org/typedarray-to-buffer/download/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha1-qX7nqf9CaRufeD/xvFES/j/KkIA=", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "undefsafe": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/undefsafe/download/undefsafe-2.0.3.tgz", + "integrity": "sha1-axZucJStRjE7IgLafsws18xueq4=", + "requires": { + "debug": "^2.2.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/unique-string/download/unique-string-2.0.0.tgz", + "integrity": "sha1-OcZFH4GvsnSd4rIz4/fF6IQ72J0=", + "requires": { + "crypto-random-string": "^2.0.0" + } + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "update-notifier": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/update-notifier/download/update-notifier-4.1.0.tgz", + "integrity": "sha1-SGa5jDvFtUc8AgsSUFg2KPmjKPM=", + "requires": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + } + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz", + "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/url-parse-lax/download/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "requires": { + "prepend-http": "^2.0.0" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz", + "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, + "verror": { + "version": "1.10.0", + "resolved": "https://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", + "extsprintf": "^1.2.0" + } + }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "which-pm-runs": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/which-pm-runs/download/which-pm-runs-1.0.0.tgz", "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" }, "wide-align": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "resolved": "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz", + "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", "requires": { "string-width": "^1.0.2 || 2" } }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/widest-line/download/widest-line-3.1.0.tgz", + "integrity": "sha1-gpIzO79my0X/DeFgOxNreuFJbso=", + "requires": { + "string-width": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz", + "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=" + }, "wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-6.2.0.tgz", + "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -1231,18 +2688,18 @@ "dependencies": { "ansi-regex": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" }, "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" }, "string-width": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -1251,8 +2708,8 @@ }, "strip-ansi": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", "requires": { "ansi-regex": "^5.0.0" } @@ -1264,10 +2721,31 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-3.0.3.tgz", + "integrity": "sha1-Vr1cWlxwSBzRnFcb05q5ZaXeVug=", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/xdg-basedir/download/xdg-basedir-4.0.0.tgz", + "integrity": "sha1-S8jZmEQDaWIl74OhVzy7y0552xM=" + }, + "xregexp": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/xregexp/download/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" + }, "y18n": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz", + "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=" }, "yallist": { "version": "3.1.1", @@ -1275,9 +2753,9 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "yargs": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", - "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "version": "15.4.1", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-15.4.1.tgz?cache=0&sync_timestamp=1594421190657&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-15.4.1.tgz", + "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", "requires": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -1289,23 +2767,23 @@ "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", - "yargs-parser": "^18.1.1" + "yargs-parser": "^18.1.2" }, "dependencies": { "ansi-regex": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" }, "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" }, "string-width": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -1314,8 +2792,8 @@ }, "strip-ansi": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", "requires": { "ansi-regex": "^5.0.0" } @@ -1324,8 +2802,8 @@ }, "yargs-parser": { "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-18.1.3.tgz?cache=0&sync_timestamp=1596945653861&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.3.tgz", + "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" diff --git a/package.json b/package.json index bbc39048..3c83b443 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,8 @@ }, "main": "index.js", "scripts": { - "start": "https_proxy='http://127.0.0.1:1086' nodemon index.js", - "test": "test" + "start": "https_proxy='http://127.0.0.1:1081' nodemon index.js", + "test": "nodemon index.js" }, "author": "marknote", "license": "MIT", @@ -26,12 +26,12 @@ "https-proxy-agent": "^5.0.0", "koa": "^2.13.0", "koa-bodyparser": "^4.3.0", + "nodemon": "^2.0.4", "p-limit": "^3.0.1", "prompts": "^2.3.2", "proxy-agent": "^3.1.1", "signal-exit": "^3.0.3", - "yargs": "^15.4.0", - "nodemon": "^2.0.4", - "telebot": "^1.2.3" + "telebot": "^1.2.3", + "yargs": "^15.4.0" } } diff --git a/telebot b/telebot new file mode 160000 index 00000000..1c43e946 --- /dev/null +++ b/telebot @@ -0,0 +1 @@ +Subproject commit 1c43e9460830aec80c6ada2febcea14c6ee7b353 From 71250e6cdda6f00696a4dde97d3372958515b910 Mon Sep 17 00:00:00 2001 From: luominglu Date: Sat, 15 Aug 2020 17:26:50 +0800 Subject: [PATCH 21/41] no --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 6870396e..9bdb0ab4 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ test.js sa/*.json backup/*.sqlite package-lock.json +telebot +telebot/* From 9f8d1c8997034ead9c9491eae4e62c626f9f9dea Mon Sep 17 00:00:00 2001 From: luominglu Date: Sat, 15 Aug 2020 17:29:50 +0800 Subject: [PATCH 22/41] no --- telebot | 1 - 1 file changed, 1 deletion(-) delete mode 160000 telebot diff --git a/telebot b/telebot deleted file mode 160000 index 1c43e946..00000000 --- a/telebot +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1c43e9460830aec80c6ada2febcea14c6ee7b353 From ba9a688eb247652ed6edcd87fb65f35efbebe9d3 Mon Sep 17 00:00:00 2001 From: luominglu Date: Sat, 15 Aug 2020 18:49:29 +0800 Subject: [PATCH 23/41] update aria2 buttn --- index.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index c95643e0..511d6274 100644 --- a/index.js +++ b/index.js @@ -24,7 +24,7 @@ const BUTTONS = { command: '/restart' }, runshell: { - label: '👋 runshell', + label: '⌨️ runshell', command: '/runshell' }, update: { @@ -102,7 +102,7 @@ function exec (cmd, msg) { } } -bot.sendMessage(1289547773,"you gdutils_bot ins online!") +// bot.sendMessage(1289547773,"you gdutils_bot ins online!") bot.on('/yd', (msg) =>{ if(MSG.startsWith('http')){ @@ -114,8 +114,9 @@ bot.on('/yd', (msg) =>{ return bot.sendMessage(msg.from.id, '无地址 !', {replyMarkup: 'hide'}); }); -bot.on('/aria2', (msg) => msg.reply.text('aria2 aria2!')); -bot.on('/hide', (msg) => msg.reply.text('Type /start to show keyboard again.', {replyMarkup: 'hide'})); +bot.on('/aria2', (msg) => exec('/bin/aria2 '+ MSG, msg)); + +bot.on('/hide', (msg) => msg.reply.text('', {replyMarkup: 'hide'})); bot.on('/restart', (msg) => { exec('pm2 restart all', msg); msg.reply.text('restarting!') @@ -167,7 +168,7 @@ bot.on('text', (msg) => { return console.warn('收到非白名单用户的请求') } const fid = extract_fid(text) || extract_from_text(text) || extract_from_text(message_str) - const no_fid_commands = ['/task', '/help', '/bm'] + const no_fid_commands = ['/task', '/help', '/bm', '/hide'] if (!no_fid_commands.some(cmd => text.startsWith(cmd)) && !validate_fid(fid)) { if(message_str.startsWith('http')){ From 6dcc9a604d3fa05d817b596aa5a4433f53031252 Mon Sep 17 00:00:00 2001 From: luominglu Date: Sat, 15 Aug 2020 21:52:53 +0800 Subject: [PATCH 24/41] fix yd --- index.js | 55 ++++++++++++++++++++++++------------------------------- 1 file changed, 24 insertions(+), 31 deletions(-) diff --git a/index.js b/index.js index 511d6274..4cf1186a 100644 --- a/index.js +++ b/index.js @@ -24,7 +24,7 @@ const BUTTONS = { command: '/restart' }, runshell: { - label: '⌨️ runshell', + label: '👋 runshell', command: '/runshell' }, update: { @@ -49,7 +49,7 @@ const bot = new TeleBot({ usePlugins: ['reporter'], pluginConfig: { reporter: { - events: ['connect', 'reconnect', 'reconnected', 'stop', 'error','*'], + events: ['reconnect', 'reconnected', 'stop', 'error'], to: adminUsers } }, @@ -76,37 +76,31 @@ function exec (cmd, msg) { let len = words.length; let args = []; if (len > 1 ){ - args = words.slice(0, len); - + args = words.slice(1, len); } - console.log('run shell2 ') - msg.reply.text('$: '+words[0] + " " + args); + console.log( len,args ) + console.log( words[0] ) + // msg.reply.text('$: '+words[0] + " " + args); const shell = spawn(words[0],args).on('error', function( err ){ - msg.reply.text('error while executing:'+words[1]); msg.reply.text(err); }); if(shell){ - shell.stdout.on('data', (data) => { - msg.reply.text(`stdout:\n ${data}`); + msg.reply.text(`${data}`); }); - shell.stderr.on('data', (data) => { msg.reply.text(`stderr: ${data}`); }); - - shell.on('close', (code) => { - msg.reply.text(`shell exited with code ${code}`); - }); } } -// bot.sendMessage(1289547773,"you gdutils_bot ins online!") +// bot.sendMessage(1289547773,"you gdutils_bot ins online!") //填写你的chat id ,机器人上线时你第一时间里会收到通知 bot.on('/yd', (msg) =>{ if(MSG.startsWith('http')){ let ydurl = 'yd ' + MSG; + console.log( ydurl ) msg.reply.text('run yd '); exec(ydurl, msg); return bot.sendMessage(msg.from.id, '已执行!', {replyMarkup: 'hide'}); @@ -114,9 +108,8 @@ bot.on('/yd', (msg) =>{ return bot.sendMessage(msg.from.id, '无地址 !', {replyMarkup: 'hide'}); }); -bot.on('/aria2', (msg) => exec('/bin/aria2 '+ MSG, msg)); - -bot.on('/hide', (msg) => msg.reply.text('', {replyMarkup: 'hide'})); +bot.on('/aria2', (msg) => exec('aria2 ' + MSG, msg)); +bot.on('/hide', (msg) => msg.reply.text('Type /start to show keyboard again.', {replyMarkup: 'hide'})); bot.on('/restart', (msg) => { exec('pm2 restart all', msg); msg.reply.text('restarting!') @@ -125,13 +118,11 @@ bot.on('/restart', (msg) => { bot.on('/update', msg => { exec('git pull -f', msg); msg.reply.text('updating !') - exec('pm2 restart all', msg); - msg.reply.text('updated!') }); bot.on('/runshell', msg => { if(MSG == "")return bot.sendMessage(msg.from.id, '无命令', {replyMarkup: 'hide'}); - msg.reply.text('run shell:'+MSG); + msg.reply.text('run shell:' + MSG); exec(MSG, msg); return bot.sendMessage(msg.from.id, '已执行!', {replyMarkup: 'hide'}); }); @@ -141,7 +132,7 @@ bot.on('/start', (msg) => { [BUTTONS.update.label, BUTTONS.restart.label], [BUTTONS.hide.label] ], {resize: true}); - return bot.sendMessage(msg.from.id, 'See keyboard below.', {replyMarkup}); + return bot.sendMessage(msg.from.id, 'ChatId is ' + msg.chat.id + ',See keyboard below.', {replyMarkup}); }); bot.on('/error', (msg) => msg.MAKE_AN_ERROR); @@ -168,9 +159,11 @@ bot.on('text', (msg) => { return console.warn('收到非白名单用户的请求') } const fid = extract_fid(text) || extract_from_text(text) || extract_from_text(message_str) - const no_fid_commands = ['/task', '/help', '/bm', '/hide'] + const no_fid_commands = ['/task', '/help', '/bm'] if (!no_fid_commands.some(cmd => text.startsWith(cmd)) && !validate_fid(fid)) { - + console.log(message_str); + if (text.startsWith('/')) return; + sm({ chat_id, text: '未识别出分享ID --' + message_str }) if(message_str.startsWith('http')){ is_shell = true let replyMarkup = bot.keyboard([ @@ -179,12 +172,11 @@ bot.on('text', (msg) => { ], {resize: true}); return bot.sendMessage(msg.from.id, '你可能要执行:', {replyMarkup}); } - let replyMarkup = bot.keyboard([ - [BUTTONS.update.label, BUTTONS.runshell.label], - [BUTTONS.hide.label] - ], {resize: true}); - bot.sendMessage(msg.from.id, '你可能要执行:', {replyMarkup}); - return sm({ chat_id, text: '未识别出分享ID' }); + let replyMarkup = bot.keyboard([ + [BUTTONS.update.label, BUTTONS.runshell.label], + [BUTTONS.hide.label] + ], {resize: true}); + return bot.sendMessage(msg.from.id, '你可能要执行:', {replyMarkup}); } if (text.startsWith('/help')) return send_help(chat_id) if (text.startsWith('/bm')) { @@ -335,5 +327,6 @@ bot.on(/^!.*/, (msg, props) => { } }); - +bot.on('/error', (msg) => msg.MAKE_AN_ERROR); +bot.on('/stop', () => bot.stop('bye!')); bot.start(); \ No newline at end of file From 838e9839723a76186ad752ebbd9bcf01e15bcd33 Mon Sep 17 00:00:00 2001 From: dissipator Date: Sun, 16 Aug 2020 10:57:02 +0800 Subject: [PATCH 25/41] fix config --- config.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config.js b/config.js index 87c593f6..36c78708 100644 --- a/config.js +++ b/config.js @@ -9,7 +9,7 @@ const PAGE_SIZE = 1000 // 每次网络请求读取目录下的文件数,数值 const RETRY_LIMIT = 5 // 如果某次请求失败,允许其重试的最大次数 const PARALLEL_LIMIT = 10 // 网络请求的并行数量,可根据网络环境调整 -const DEFAULT_TARGET = '1rTuuu2byHzviu1vPrDL_m2cKJOMWWW3P' // 必填,拷贝默认目的地ID,如果不指定target,则会复制到此处,建议填写团队盘ID +const DEFAULT_TARGET = 'DEFAULT_TARGET' // 必填,拷贝默认目的地ID,如果不指定target,则会复制到此处,建议填写团队盘ID const AUTH = { // 如果您拥有service account的json授权文件,可将其拷贝至 sa 目录中以代替 client_id/secret/refrest_token client_id: 'your_client_id', @@ -17,9 +17,9 @@ const AUTH = { // 如果您拥有service account的json授权文件,可将其 refresh_token: 'your_refrest_token', expires: 0, // 可以留空 access_token: '', // 可以留空 - tg_token: '1134687699:AAFD8xQZk8u2oV7gRz9yAfgCokEBfVF0Pr4', // 你的 telegram robot 的 token,获取方法参见 https://core.telegram.org/bots#6-botfather - tg_whitelist: ['lucas_mac'], // 你的tg username(t.me/username),bot只会执行这个列表里的用户所发送的指令 - adminUsers:[1289547773] //admin users' telegram id, should be numbers + tg_token: 'bot_token', // 你的 telegram robot 的 token,获取方法参见 https://core.telegram.org/bots#6-botfather + tg_whitelist: ['tg_whitelist'], // 你的tg username(t.me/username),bot只会执行这个列表里的用户所发送的指令 + adminUsers:['your_tg_userid'] //admin users' telegram id, should be numbers } module.exports = { AUTH, PARALLEL_LIMIT, RETRY_LIMIT, TIMEOUT_BASE, TIMEOUT_MAX, LOG_DELAY, PAGE_SIZE, DEFAULT_TARGET}; From 0e544279d524016a99ae4986bdb974a5e20c17cc Mon Sep 17 00:00:00 2001 From: dissipator Date: Sun, 16 Aug 2020 15:37:23 +0800 Subject: [PATCH 26/41] Update index.js --- index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 4cf1186a..b8a16297 100644 --- a/index.js +++ b/index.js @@ -6,7 +6,7 @@ const { validate_fid, gen_count_body, count } = require('./src/gd'); const { send_count, send_help, send_choice, send_task_info, sm, extract_fid, extract_from_text, reply_cb_query, tg_copy, send_all_tasks, send_bm_help, get_target_by_alias, gen_bookmark_choices, send_all_bookmarks, set_bookmark, unset_bookmark, clear_tasks, send_task_help, rm_task, clear_button } = require('./src/tg') const { AUTH, ROUTER_PASSKEY, TG_IPLIST } = require('./config') -const { tg_whitelist } = AUTH +//const { tg_whitelist } = AUTH const { tg_token } = AUTH const { adminUsers } = AUTH @@ -329,4 +329,4 @@ bot.on(/^!.*/, (msg, props) => { }); bot.on('/error', (msg) => msg.MAKE_AN_ERROR); bot.on('/stop', () => bot.stop('bye!')); -bot.start(); \ No newline at end of file +bot.start(); From 4335664057beefbf9f427426901eb4fbe2b3192a Mon Sep 17 00:00:00 2001 From: dissipator Date: Sun, 16 Aug 2020 15:38:19 +0800 Subject: [PATCH 27/41] Update index.js --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index b8a16297..ecb0bfb3 100644 --- a/index.js +++ b/index.js @@ -95,7 +95,7 @@ function exec (cmd, msg) { } } -// bot.sendMessage(1289547773,"you gdutils_bot ins online!") //填写你的chat id ,机器人上线时你第一时间里会收到通知 +bot.sendMessage(1289547773,"you gdutils_bot ins online!") //填写你的chat id ,机器人上线时你第一时间里会收到通知 bot.on('/yd', (msg) =>{ if(MSG.startsWith('http')){ From 9c208f17f7e0ac05266dc22b3018d3c291241727 Mon Sep 17 00:00:00 2001 From: dissipator Date: Sun, 16 Aug 2020 16:20:19 +0800 Subject: [PATCH 28/41] Update config.js --- config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.js b/config.js index 36c78708..296536c4 100644 --- a/config.js +++ b/config.js @@ -19,7 +19,7 @@ const AUTH = { // 如果您拥有service account的json授权文件,可将其 access_token: '', // 可以留空 tg_token: 'bot_token', // 你的 telegram robot 的 token,获取方法参见 https://core.telegram.org/bots#6-botfather tg_whitelist: ['tg_whitelist'], // 你的tg username(t.me/username),bot只会执行这个列表里的用户所发送的指令 - adminUsers:['your_tg_userid'] //admin users' telegram id, should be numbers + adminUsers:[your_tg_userid] //admin users' telegram id, should be numbers } module.exports = { AUTH, PARALLEL_LIMIT, RETRY_LIMIT, TIMEOUT_BASE, TIMEOUT_MAX, LOG_DELAY, PAGE_SIZE, DEFAULT_TARGET}; From 62aeeceb439a4030c873e6f27deb5d2e844fe3da Mon Sep 17 00:00:00 2001 From: dissipator Date: Sun, 16 Aug 2020 16:35:47 +0800 Subject: [PATCH 29/41] Update index.js --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index ecb0bfb3..3b7ce647 100644 --- a/index.js +++ b/index.js @@ -162,7 +162,7 @@ bot.on('text', (msg) => { const no_fid_commands = ['/task', '/help', '/bm'] if (!no_fid_commands.some(cmd => text.startsWith(cmd)) && !validate_fid(fid)) { console.log(message_str); - if (text.startsWith('/')) return; + if (text.startsWith('/')||text.startsWith('👋')||text.startsWith('🌍')||text.startsWith('⌨️')||text.startsWith(' ')) return; sm({ chat_id, text: '未识别出分享ID --' + message_str }) if(message_str.startsWith('http')){ is_shell = true From 356ca3663174fef44f450b5ab840acc30be9cb26 Mon Sep 17 00:00:00 2001 From: dissipator Date: Sun, 16 Aug 2020 16:39:58 +0800 Subject: [PATCH 30/41] Update changelog.md --- changelog.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/changelog.md b/changelog.md index acd53708..8bd40a16 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,9 @@ ## 更新日志 > 更新方法:在 gd-utils 目录下,执行 `git pull` 拉取最新代码,如果你使用了 pm2 守护进程,执行`pm2 reload server`刷新生效。 +### [2020-08-16] +- 更新了一些按钮和shell执行方式,目前还不稳定,还需大量测试。 + ### [2020-08-06] - 由于最近`userRateLimitExceeded`的错误越来越频繁出现,看上去Google除了每日750G以外又加上了什么限制。我只好把剔除SA的条件从“连续2次”遇到这种报错消息改成了**连续7次**……这个值也可以自定义,只需要在`config.js`中导出一个 `EXCEED_LIMIT`的变量,具体方法请参考[专家设置](https://github.com/iwestlin/gd-utils/blob/master/readme.md#%E4%B8%93%E5%AE%B6%E8%AE%BE%E7%BD%AE) From f652a13d8bd06e8f44322d930e752b5ec1d1d0c7 Mon Sep 17 00:00:00 2001 From: dissipator Date: Sun, 16 Aug 2020 21:21:23 +0800 Subject: [PATCH 31/41] Update index.js --- index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 3b7ce647..85f69738 100644 --- a/index.js +++ b/index.js @@ -95,7 +95,7 @@ function exec (cmd, msg) { } } -bot.sendMessage(1289547773,"you gdutils_bot ins online!") //填写你的chat id ,机器人上线时你第一时间里会收到通知 +bot.sendMessage(adminUsers[0],"you gdutils_bot ins online!") //填写你的chat id ,机器人上线时你第一时间里会收到通知 bot.on('/yd', (msg) =>{ if(MSG.startsWith('http')){ @@ -163,7 +163,7 @@ bot.on('text', (msg) => { if (!no_fid_commands.some(cmd => text.startsWith(cmd)) && !validate_fid(fid)) { console.log(message_str); if (text.startsWith('/')||text.startsWith('👋')||text.startsWith('🌍')||text.startsWith('⌨️')||text.startsWith(' ')) return; - sm({ chat_id, text: '未识别出分享ID --' + message_str }) + sm({ chat_id, text: '未识别出分享ID' }) if(message_str.startsWith('http')){ is_shell = true let replyMarkup = bot.keyboard([ From 84b919e06e7e648c0fbba66426887a4bb80bf882 Mon Sep 17 00:00:00 2001 From: dissipator Date: Wed, 9 Sep 2020 08:57:25 +0800 Subject: [PATCH 32/41] Update index.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 取消restart --- index.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/index.js b/index.js index 85f69738..70f00cb6 100644 --- a/index.js +++ b/index.js @@ -19,10 +19,10 @@ const BUTTONS = { label: '🌍 aria2', command: '/aria2' }, - restart: { - label: '👋 restart', - command: '/restart' - }, +// restart: { +// label: '👋 restart', +// command: '/restart' +// }, runshell: { label: '👋 runshell', command: '/runshell' @@ -111,13 +111,14 @@ bot.on('/yd', (msg) =>{ bot.on('/aria2', (msg) => exec('aria2 ' + MSG, msg)); bot.on('/hide', (msg) => msg.reply.text('Type /start to show keyboard again.', {replyMarkup: 'hide'})); bot.on('/restart', (msg) => { - exec('pm2 restart all', msg); - msg.reply.text('restarting!') + // exec('pm2 restart all', msg); + msg.reply.text('已经取消此功能!') + msg.reply.text('代码已更新,请在后台执行pm2 restart all!') }); bot.on('/update', msg => { exec('git pull -f', msg); - msg.reply.text('updating !') + msg.reply.text('代码已更新,请在后台执行pm2 restart all!') }); bot.on('/runshell', msg => { @@ -129,7 +130,7 @@ bot.on('/runshell', msg => { bot.on('/start', (msg) => { let replyMarkup = bot.keyboard([ - [BUTTONS.update.label, BUTTONS.restart.label], + [BUTTONS.update.label], [BUTTONS.hide.label] ], {resize: true}); return bot.sendMessage(msg.from.id, 'ChatId is ' + msg.chat.id + ',See keyboard below.', {replyMarkup}); From 46a5e873f04eccd022d3bac536dae49f22130bef Mon Sep 17 00:00:00 2001 From: dissipator Date: Wed, 9 Sep 2020 09:12:44 +0800 Subject: [PATCH 33/41] Update .gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 9bdb0ab4..74158169 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ backup/*.sqlite package-lock.json telebot telebot/* +aria2.js +gdurl.sqlite From ea79fd4054da2e2c81b2281640971a36ba0e41b8 Mon Sep 17 00:00:00 2001 From: dissipator Date: Wed, 9 Sep 2020 23:10:26 +0800 Subject: [PATCH 34/41] start --- .github/workflows/main.yml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 00000000..9ddbd2eb --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,33 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the master branch +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + # Runs a single command using the runners shell + - name: Run a one-line script + run: echo Hello, world! + + # Runs a set of commands using the runners shell + - name: Run a multi-line script + run: | + echo Add other actions to build, + echo test, and deploy your project. From 8cf65dfb5495433cd5a46acd4b5f87374c6902fd Mon Sep 17 00:00:00 2001 From: dissipator Date: Wed, 9 Sep 2020 23:16:33 +0800 Subject: [PATCH 35/41] Delete main.yml --- .github/workflows/main.yml | 33 --------------------------------- 1 file changed, 33 deletions(-) delete mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 9ddbd2eb..00000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,33 +0,0 @@ -# This is a basic workflow to help you get started with Actions - -name: CI - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - # This workflow contains a single job called "build" - build: - # The type of runner that the job will run on - runs-on: ubuntu-latest - - # Steps represent a sequence of tasks that will be executed as part of the job - steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v2 - - # Runs a single command using the runners shell - - name: Run a one-line script - run: echo Hello, world! - - # Runs a set of commands using the runners shell - - name: Run a multi-line script - run: | - echo Add other actions to build, - echo test, and deploy your project. From 2ff2805d82cd16a1c0d001820d08e68beae9d8fc Mon Sep 17 00:00:00 2001 From: dissipator Date: Wed, 9 Sep 2020 23:17:58 +0800 Subject: [PATCH 36/41] restart okteto --- .github/workflows/main.yml | 43 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 00000000..b231cb83 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,43 @@ +name: okteto +on: +# push: +# branches: [ dev ] +# pull_request: +# branches: [ dev ] + schedule: + - cron: 05 22 * * * + watch: + types: started +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Install build dependencies + run: | + sudo apt-get -y update + sudo apt-get -y install wget tree curl + - name: Clone source + run: | + cd /home/runner + wget https://github.com/okteto/okteto/releases/download/1.8.13/okteto-Linux-x86_64 + chmod +x ./okteto-Linux-x86_64 + curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl + mv /home/runner/work/okteto-reboot/okteto-reboot/v2tls.yml /home/runner/v2tls.yml + chmod +x ./kubectl + sudo mv ./kubectl /usr/local/bin/kubectl + - name: go restart + run: | + /home/runner/okteto-Linux-x86_64 login --token ${{ secrets.APITOKEN }} + #okteto的api密钥 + /home/runner/okteto-Linux-x86_64 namespace ${{ secrets.namespace }} + #Namespace用户名 + #xx.yml 自己要部署项目 + #kubectl replace --force -f /home/runner/v2tls.yml + #kubectl replace 强制覆盖项目 + tree /home/runner/ + ls /home/runner/work/ + # push + cd /home/runner/work/gd-utils + okteto push + From 999b34f3154ddbcd72a5ae54fe9661eebfb42ef8 Mon Sep 17 00:00:00 2001 From: dissipator Date: Wed, 9 Sep 2020 23:20:17 +0800 Subject: [PATCH 37/41] restart okteto --- .github/workflows/restart.yml | 42 +++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .github/workflows/restart.yml diff --git a/.github/workflows/restart.yml b/.github/workflows/restart.yml new file mode 100644 index 00000000..52a2ce21 --- /dev/null +++ b/.github/workflows/restart.yml @@ -0,0 +1,42 @@ +name: okteto +on: +# push: +# branches: [ dev ] +# pull_request: +# branches: [ dev ] + schedule: + - cron: 05 22 * * * + watch: + types: started +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Install build dependencies + run: | + sudo apt-get -y update + sudo apt-get -y install wget + sudo apt-get -y install curl + - name: Clone source + run: | + cd /home/runner + wget https://github.com/okteto/okteto/releases/download/1.8.13/okteto-Linux-x86_64 + chmod +x ./okteto-Linux-x86_64 + curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl + mv /home/runner/work/okteto-reboot/okteto-reboot/v2tls.yml /home/runner/v2tls.yml + chmod +x ./kubectl + sudo mv ./kubectl /usr/local/bin/kubectl + - name: go kaishi + run: | + /home/runner/okteto-Linux-x86_64 login --token ${{ secrets.APITOKEN }} + #okteto的api密钥 + /home/runner/okteto-Linux-x86_64 namespace ${{ secrets.namespace }} + #Namespace用户名 + #xx.yml 自己要部署项目 + #kubectl replace --force -f /home/runner/v2tls.yml + #kubectl replace 强制覆盖项目 + ls /home/runner/work/ + # push + cd /home/runner/work/gd-utils + okteto push From 8a91e7952996f76a7ce0de23386fd6ab965b09d4 Mon Sep 17 00:00:00 2001 From: dissipator Date: Wed, 9 Sep 2020 23:22:47 +0800 Subject: [PATCH 38/41] 1 --- .github/workflows/restart.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/restart.yml b/.github/workflows/restart.yml index 52a2ce21..c92a305c 100644 --- a/.github/workflows/restart.yml +++ b/.github/workflows/restart.yml @@ -4,6 +4,9 @@ on: # branches: [ dev ] # pull_request: # branches: [ dev ] + workflow_dispatch: + inputs: + schedule: - cron: 05 22 * * * watch: From c5b724a56e8356d0a3d3aef3b07aeddb9c6aecc0 Mon Sep 17 00:00:00 2001 From: dissipator Date: Wed, 9 Sep 2020 23:29:22 +0800 Subject: [PATCH 39/41] 2 --- .github/workflows/restart.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/restart.yml b/.github/workflows/restart.yml index c92a305c..7f8630bb 100644 --- a/.github/workflows/restart.yml +++ b/.github/workflows/restart.yml @@ -27,7 +27,7 @@ jobs: wget https://github.com/okteto/okteto/releases/download/1.8.13/okteto-Linux-x86_64 chmod +x ./okteto-Linux-x86_64 curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl - mv /home/runner/work/okteto-reboot/okteto-reboot/v2tls.yml /home/runner/v2tls.yml + cp /home/runner/work/gd-utils/gd-utils/okteto.yml /home/runner/okteto.yml chmod +x ./kubectl sudo mv ./kubectl /usr/local/bin/kubectl - name: go kaishi @@ -37,9 +37,9 @@ jobs: /home/runner/okteto-Linux-x86_64 namespace ${{ secrets.namespace }} #Namespace用户名 #xx.yml 自己要部署项目 - #kubectl replace --force -f /home/runner/v2tls.yml + #kubectl replace --force -f /home/runner/okteto.yml #kubectl replace 强制覆盖项目 ls /home/runner/work/ # push - cd /home/runner/work/gd-utils + cd /home/runner/work/gd-utils/gd-utils okteto push From 0cd1a4f2d8c15bae6f60cd2879f13d6193c24898 Mon Sep 17 00:00:00 2001 From: dissipator Date: Fri, 18 Sep 2020 08:03:06 +0800 Subject: [PATCH 40/41] Update restart.yml --- .github/workflows/restart.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/restart.yml b/.github/workflows/restart.yml index 7f8630bb..d7111bea 100644 --- a/.github/workflows/restart.yml +++ b/.github/workflows/restart.yml @@ -27,7 +27,7 @@ jobs: wget https://github.com/okteto/okteto/releases/download/1.8.13/okteto-Linux-x86_64 chmod +x ./okteto-Linux-x86_64 curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl - cp /home/runner/work/gd-utils/gd-utils/okteto.yml /home/runner/okteto.yml + #cp /home/runner/work/gd-utils/gd-utils/okteto.yml /home/runner/okteto.yml chmod +x ./kubectl sudo mv ./kubectl /usr/local/bin/kubectl - name: go kaishi From 61b2ae1cb02bdb4a4c627e6e20093e7ba17379a0 Mon Sep 17 00:00:00 2001 From: Jia Tern Date: Sat, 31 Jan 2026 23:18:06 +0800 Subject: [PATCH 41/41] Replace dead npm registries --- package-lock.json | 544 +++++++++++++++++++++++----------------------- 1 file changed, 272 insertions(+), 272 deletions(-) diff --git a/package-lock.json b/package-lock.json index 309a8c2e..f6a294af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,12 +18,12 @@ }, "@sindresorhus/is": { "version": "0.14.0", - "resolved": "https://registry.npm.taobao.org/@sindresorhus/is/download/@sindresorhus/is-0.14.0.tgz?cache=0&sync_timestamp=1595758317660&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2F%40sindresorhus%2Fis%2Fdownload%2F%40sindresorhus%2Fis-0.14.0.tgz", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/download/@sindresorhus/is-0.14.0.tgz?cache=0&sync_timestamp=1595758317660&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2F%40sindresorhus%2Fis%2Fdownload%2F%40sindresorhus%2Fis-0.14.0.tgz", "integrity": "sha1-n7OjzzEyMoFR81PeRjLgHlIQK+o=" }, "@szmarczak/http-timer": { "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/@szmarczak/http-timer/download/@szmarczak/http-timer-1.1.2.tgz", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/download/@szmarczak/http-timer-1.1.2.tgz", "integrity": "sha1-sWZeLEYaLNkvTBu/UNVFTeDUtCE=", "requires": { "defer-to-connect": "^1.0.1" @@ -31,7 +31,7 @@ }, "@types/color-name": { "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/@types/color-name/download/@types/color-name-1.1.1.tgz?cache=0&sync_timestamp=1596838000843&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2F%40types%2Fcolor-name%2Fdownload%2F%40types%2Fcolor-name-1.1.1.tgz", + "resolved": "https://registry.npmmirror.com/@types/color-name/download/@types/color-name-1.1.1.tgz?cache=0&sync_timestamp=1596838000843&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2F%40types%2Fcolor-name%2Fdownload%2F%40types%2Fcolor-name-1.1.1.tgz", "integrity": "sha1-HBJhu+qhCoBVu8XYq4S3sq/IRqA=" }, "@viegg/axios": { @@ -41,7 +41,7 @@ }, "abbrev": { "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz", + "resolved": "https://registry.npmmirror.com/abbrev/download/abbrev-1.1.1.tgz", "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=" }, "abort-controller": { @@ -71,7 +71,7 @@ }, "ajv": { "version": "6.12.3", - "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.3.tgz", + "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.3.tgz", "integrity": "sha1-GMWvOKER3etPJpe9eNaKvByr1wY=", "requires": { "fast-deep-equal": "^3.1.1", @@ -82,7 +82,7 @@ }, "ansi-align": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-align/download/ansi-align-3.0.0.tgz", + "resolved": "https://registry.npmmirror.com/ansi-align/download/ansi-align-3.0.0.tgz", "integrity": "sha1-tTazcc9ofKrvI2wY0+If43l0Z8s=", "requires": { "string-width": "^3.0.0" @@ -90,22 +90,22 @@ "dependencies": { "ansi-regex": { "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "resolved": "https://registry.npmmirror.com/ansi-regex/download/ansi-regex-4.1.0.tgz", "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" }, "emoji-regex": { "version": "7.0.3", - "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz", + "resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-7.0.3.tgz", "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "string-width": { "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", + "resolved": "https://registry.npmmirror.com/string-width/download/string-width-3.1.0.tgz", "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", "requires": { "emoji-regex": "^7.0.1", @@ -115,7 +115,7 @@ }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-5.2.0.tgz", "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "requires": { "ansi-regex": "^4.1.0" @@ -125,12 +125,12 @@ }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "resolved": "https://registry.npmmirror.com/ansi-regex/download/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz", + "resolved": "https://registry.npmmirror.com/ansi-styles/download/ansi-styles-4.2.1.tgz", "integrity": "sha1-kK51xCTQCNJiTFvynq0xd+v881k=", "requires": { "@types/color-name": "^1.1.1", @@ -144,7 +144,7 @@ }, "anymatch": { "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz", + "resolved": "https://registry.npmmirror.com/anymatch/download/anymatch-3.1.1.tgz", "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", "requires": { "normalize-path": "^3.0.0", @@ -153,12 +153,12 @@ }, "aproba": { "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz", + "resolved": "https://registry.npmmirror.com/aproba/download/aproba-1.2.0.tgz", "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" }, "are-we-there-yet": { "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz", + "resolved": "https://registry.npmmirror.com/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz", "integrity": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=", "requires": { "delegates": "^1.0.0", @@ -167,7 +167,7 @@ }, "asn1": { "version": "0.2.4", - "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", + "resolved": "https://registry.npmmirror.com/asn1/download/asn1-0.2.4.tgz", "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", "requires": { "safer-buffer": "~2.1.0" @@ -175,42 +175,42 @@ }, "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", + "resolved": "https://registry.npmmirror.com/assert-plus/download/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "ast-types": { "version": "0.13.3", - "resolved": "https://registry.npm.taobao.org/ast-types/download/ast-types-0.13.3.tgz", + "resolved": "https://registry.npmmirror.com/ast-types/download/ast-types-0.13.3.tgz", "integrity": "sha1-UNo/KNF728eWmjotg6DkpyrnVac=" }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", + "resolved": "https://registry.npmmirror.com/asynckit/download/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "aws-sign2": { "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz", + "resolved": "https://registry.npmmirror.com/aws-sign2/download/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { "version": "1.10.1", - "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.10.1.tgz?cache=0&sync_timestamp=1597237018736&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.10.1.tgz", + "resolved": "https://registry.npmmirror.com/aws4/download/aws4-1.10.1.tgz?cache=0&sync_timestamp=1597237018736&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Faws4%2Fdownload%2Faws4-1.10.1.tgz", "integrity": "sha1-4eguTz6Zniz9YbFhKA0WoRH4ZCg=" }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", + "resolved": "https://registry.npmmirror.com/balanced-match/download/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base64-js": { "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz", + "resolved": "https://registry.npmmirror.com/base64-js/download/base64-js-1.3.1.tgz", "integrity": "sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=" }, "bcrypt-pbkdf": { "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", + "resolved": "https://registry.npmmirror.com/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { "tweetnacl": "^0.14.3" @@ -218,7 +218,7 @@ }, "better-sqlite3": { "version": "7.1.0", - "resolved": "https://registry.npm.taobao.org/better-sqlite3/download/better-sqlite3-7.1.0.tgz", + "resolved": "https://registry.npmmirror.com/better-sqlite3/download/better-sqlite3-7.1.0.tgz", "integrity": "sha1-SJTQ+kACvXhZoKU5V38U8kskX2o=", "requires": { "bindings": "^1.5.0", @@ -228,12 +228,12 @@ }, "binary-extensions": { "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz?cache=0&sync_timestamp=1593261309792&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz", + "resolved": "https://registry.npmmirror.com/binary-extensions/download/binary-extensions-2.1.0.tgz?cache=0&sync_timestamp=1593261309792&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz", "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=" }, "bindings": { "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz", + "resolved": "https://registry.npmmirror.com/bindings/download/bindings-1.5.0.tgz", "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", "requires": { "file-uri-to-path": "1.0.0" @@ -241,7 +241,7 @@ }, "bl": { "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/bl/download/bl-4.0.2.tgz", + "resolved": "https://registry.npmmirror.com/bl/download/bl-4.0.2.tgz", "integrity": "sha1-UrcekIhRXQYG2d2cx6pI3B+Y5zo=", "requires": { "buffer": "^5.5.0", @@ -251,7 +251,7 @@ "dependencies": { "readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "resolved": "https://registry.npmmirror.com/readable-stream/download/readable-stream-3.6.0.tgz", "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", "requires": { "inherits": "^2.0.3", @@ -263,7 +263,7 @@ }, "boxen": { "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/boxen/download/boxen-4.2.0.tgz", + "resolved": "https://registry.npmmirror.com/boxen/download/boxen-4.2.0.tgz", "integrity": "sha1-5BG2I1fW1tNlh8isPV2XTaoHDmQ=", "requires": { "ansi-align": "^3.0.0", @@ -278,17 +278,17 @@ "dependencies": { "ansi-regex": { "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "resolved": "https://registry.npmmirror.com/ansi-regex/download/ansi-regex-5.0.0.tgz", "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" }, "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" }, "string-width": { "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "resolved": "https://registry.npmmirror.com/string-width/download/string-width-4.2.0.tgz", "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", "requires": { "emoji-regex": "^8.0.0", @@ -298,7 +298,7 @@ }, "strip-ansi": { "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz", + "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.0.tgz", "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", "requires": { "ansi-regex": "^5.0.0" @@ -308,7 +308,7 @@ }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", + "resolved": "https://registry.npmmirror.com/brace-expansion/download/brace-expansion-1.1.11.tgz", "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "requires": { "balanced-match": "^1.0.0", @@ -317,7 +317,7 @@ }, "braces": { "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", + "resolved": "https://registry.npmmirror.com/braces/download/braces-3.0.2.tgz", "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", "requires": { "fill-range": "^7.0.1" @@ -325,7 +325,7 @@ }, "buffer": { "version": "5.6.0", - "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-5.6.0.tgz", + "resolved": "https://registry.npmmirror.com/buffer/download/buffer-5.6.0.tgz", "integrity": "sha1-oxdJ3H2B2E2wir+Te2uMQDP2J4Y=", "requires": { "base64-js": "^1.0.2", @@ -353,7 +353,7 @@ }, "cacheable-request": { "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/cacheable-request/download/cacheable-request-6.1.0.tgz", + "resolved": "https://registry.npmmirror.com/cacheable-request/download/cacheable-request-6.1.0.tgz", "integrity": "sha1-IP+4vRYrpL4R6VZ9gj22UQUsqRI=", "requires": { "clone-response": "^1.0.2", @@ -367,7 +367,7 @@ "dependencies": { "get-stream": { "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.2.0.tgz?cache=0&sync_timestamp=1597056474057&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.2.0.tgz", + "resolved": "https://registry.npmmirror.com/get-stream/download/get-stream-5.2.0.tgz?cache=0&sync_timestamp=1597056474057&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fget-stream%2Fdownload%2Fget-stream-5.2.0.tgz", "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", "requires": { "pump": "^3.0.0" @@ -375,24 +375,24 @@ }, "lowercase-keys": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/lowercase-keys/download/lowercase-keys-2.0.0.tgz", "integrity": "sha1-JgPni3tLAAbLyi+8yKMgJVislHk=" } } }, "camelcase": { "version": "5.3.1", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", + "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-5.3.1.tgz", "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" }, "caseless": { "version": "0.12.0", - "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz", + "resolved": "https://registry.npmmirror.com/caseless/download/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "chalk": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz", + "resolved": "https://registry.npmmirror.com/chalk/download/chalk-3.0.0.tgz", "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", "requires": { "ansi-styles": "^4.1.0", @@ -401,12 +401,12 @@ "dependencies": { "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", + "resolved": "https://registry.npmmirror.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" }, "supports-color": { "version": "7.1.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz", + "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-7.1.0.tgz", "integrity": "sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E=", "requires": { "has-flag": "^4.0.0" @@ -416,7 +416,7 @@ }, "chokidar": { "version": "3.4.2", - "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.4.2.tgz?cache=0&sync_timestamp=1596729020164&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.2.tgz", + "resolved": "https://registry.npmmirror.com/chokidar/download/chokidar-3.4.2.tgz?cache=0&sync_timestamp=1596729020164&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fchokidar%2Fdownload%2Fchokidar-3.4.2.tgz", "integrity": "sha1-ONyOZY3sOAl0HrPve7Ckf+QkIy0=", "requires": { "anymatch": "~3.1.1", @@ -431,17 +431,17 @@ }, "chownr": { "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz", + "resolved": "https://registry.npmmirror.com/chownr/download/chownr-1.1.4.tgz", "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=" }, "ci-info": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ci-info/download/ci-info-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/ci-info/download/ci-info-2.0.0.tgz", "integrity": "sha1-Z6npZL4xpR4V5QENWObxKDQAL0Y=" }, "cli-boxes": { "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/cli-boxes/download/cli-boxes-2.2.0.tgz", + "resolved": "https://registry.npmmirror.com/cli-boxes/download/cli-boxes-2.2.0.tgz", "integrity": "sha1-U47K6PnGylCOPDyVtFP+k8tMFo0=" }, "cli-table3": { @@ -486,7 +486,7 @@ }, "cliui": { "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz", + "resolved": "https://registry.npmmirror.com/cliui/download/cliui-6.0.0.tgz", "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", "requires": { "string-width": "^4.2.0", @@ -496,17 +496,17 @@ "dependencies": { "ansi-regex": { "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "resolved": "https://registry.npmmirror.com/ansi-regex/download/ansi-regex-5.0.0.tgz", "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" }, "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" }, "string-width": { "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "resolved": "https://registry.npmmirror.com/string-width/download/string-width-4.2.0.tgz", "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", "requires": { "emoji-regex": "^8.0.0", @@ -516,7 +516,7 @@ }, "strip-ansi": { "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz", + "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.0.tgz", "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", "requires": { "ansi-regex": "^5.0.0" @@ -526,7 +526,7 @@ }, "clone-response": { "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/clone-response/download/clone-response-1.0.2.tgz", + "resolved": "https://registry.npmmirror.com/clone-response/download/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "requires": { "mimic-response": "^1.0.0" @@ -534,7 +534,7 @@ "dependencies": { "mimic-response": { "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/mimic-response/download/mimic-response-1.0.1.tgz", + "resolved": "https://registry.npmmirror.com/mimic-response/download/mimic-response-1.0.1.tgz", "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=" } } @@ -557,12 +557,12 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz", + "resolved": "https://registry.npmmirror.com/code-point-at/download/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "resolved": "https://registry.npmmirror.com/color-convert/download/color-convert-2.0.1.tgz", "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "requires": { "color-name": "~1.1.4" @@ -570,7 +570,7 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "resolved": "https://registry.npmmirror.com/color-name/download/color-name-1.1.4.tgz", "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" }, "colors": { @@ -580,7 +580,7 @@ }, "combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz", + "resolved": "https://registry.npmmirror.com/combined-stream/download/combined-stream-1.0.8.tgz", "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", "requires": { "delayed-stream": "~1.0.0" @@ -588,12 +588,12 @@ }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", + "resolved": "https://registry.npmmirror.com/concat-map/download/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "configstore": { "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/configstore/download/configstore-5.0.1.tgz?cache=0&sync_timestamp=1597433732892&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fconfigstore%2Fdownload%2Fconfigstore-5.0.1.tgz", + "resolved": "https://registry.npmmirror.com/configstore/download/configstore-5.0.1.tgz?cache=0&sync_timestamp=1597433732892&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fconfigstore%2Fdownload%2Fconfigstore-5.0.1.tgz", "integrity": "sha1-02UCG130uYzdGH1qOw4/anzF7ZY=", "requires": { "dot-prop": "^5.2.0", @@ -606,7 +606,7 @@ }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz", + "resolved": "https://registry.npmmirror.com/console-control-strings/download/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "content-disposition": { @@ -650,12 +650,12 @@ }, "crypto-random-string": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/crypto-random-string/download/crypto-random-string-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/crypto-random-string/download/crypto-random-string-2.0.0.tgz", "integrity": "sha1-7yp6lm7BEIM4g2m6oC6+rSKbMNU=" }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz", + "resolved": "https://registry.npmmirror.com/dashdash/download/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { "assert-plus": "^1.0.0" @@ -663,12 +663,12 @@ }, "data-uri-to-buffer": { "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/data-uri-to-buffer/download/data-uri-to-buffer-1.2.0.tgz?cache=0&sync_timestamp=1590800216978&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fdata-uri-to-buffer%2Fdownload%2Fdata-uri-to-buffer-1.2.0.tgz", + "resolved": "https://registry.npmmirror.com/data-uri-to-buffer/download/data-uri-to-buffer-1.2.0.tgz?cache=0&sync_timestamp=1590800216978&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fdata-uri-to-buffer%2Fdownload%2Fdata-uri-to-buffer-1.2.0.tgz", "integrity": "sha1-dxY+qcINhkG0cH6PGKvfmnjzSDU=" }, "dayjs": { "version": "1.8.33", - "resolved": "https://registry.npm.taobao.org/dayjs/download/dayjs-1.8.33.tgz?cache=0&sync_timestamp=1597033909902&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fdayjs%2Fdownload%2Fdayjs-1.8.33.tgz", + "resolved": "https://registry.npmmirror.com/dayjs/download/dayjs-1.8.33.tgz?cache=0&sync_timestamp=1597033909902&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fdayjs%2Fdownload%2Fdayjs-1.8.33.tgz", "integrity": "sha1-GLxKK2wcb01ntMTyU2wLl+W3Zvc=" }, "debug": { @@ -681,12 +681,12 @@ }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz", + "resolved": "https://registry.npmmirror.com/decamelize/download/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decompress-response": { "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/decompress-response/download/decompress-response-4.2.1.tgz", + "resolved": "https://registry.npmmirror.com/decompress-response/download/decompress-response-4.2.1.tgz", "integrity": "sha1-QUAjzHowLaJc4uyC0NUjjMr9iYY=", "requires": { "mimic-response": "^2.0.0" @@ -704,17 +704,17 @@ }, "deep-is": { "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz", + "resolved": "https://registry.npmmirror.com/deep-is/download/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "defer-to-connect": { "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/defer-to-connect/download/defer-to-connect-1.1.3.tgz", + "resolved": "https://registry.npmmirror.com/defer-to-connect/download/defer-to-connect-1.1.3.tgz", "integrity": "sha1-MxrgUMCNz3ifjIOnuB8O2U9KxZE=" }, "degenerator": { "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/degenerator/download/degenerator-1.0.4.tgz", + "resolved": "https://registry.npmmirror.com/degenerator/download/degenerator-1.0.4.tgz", "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", "requires": { "ast-types": "0.x.x", @@ -724,7 +724,7 @@ }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", + "resolved": "https://registry.npmmirror.com/delayed-stream/download/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { @@ -744,12 +744,12 @@ }, "detect-libc": { "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/detect-libc/download/detect-libc-1.0.3.tgz", + "resolved": "https://registry.npmmirror.com/detect-libc/download/detect-libc-1.0.3.tgz", "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" }, "dot-prop": { "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.2.0.tgz", + "resolved": "https://registry.npmmirror.com/dot-prop/download/dot-prop-5.2.0.tgz", "integrity": "sha1-w07MKVVtxF8fTCJpe29JBODMT8s=", "requires": { "is-obj": "^2.0.0" @@ -757,12 +757,12 @@ }, "duplexer3": { "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/duplexer3/download/duplexer3-0.1.4.tgz", + "resolved": "https://registry.npmmirror.com/duplexer3/download/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "ecc-jsbn": { "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", + "resolved": "https://registry.npmmirror.com/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { "jsbn": "~0.1.0", @@ -802,12 +802,12 @@ }, "es6-promise": { "version": "4.2.8", - "resolved": "https://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.8.tgz", + "resolved": "https://registry.npmmirror.com/es6-promise/download/es6-promise-4.2.8.tgz", "integrity": "sha1-TrIVlMlyvEBVPSduUQU5FD21Pgo=" }, "es6-promisify": { "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/es6-promisify/download/es6-promisify-5.0.0.tgz?cache=0&sync_timestamp=1588608211542&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fes6-promisify%2Fdownload%2Fes6-promisify-5.0.0.tgz", + "resolved": "https://registry.npmmirror.com/es6-promisify/download/es6-promisify-5.0.0.tgz?cache=0&sync_timestamp=1588608211542&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fes6-promisify%2Fdownload%2Fes6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { "es6-promise": "^4.0.3" @@ -815,7 +815,7 @@ }, "escape-goat": { "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/escape-goat/download/escape-goat-2.1.1.tgz", + "resolved": "https://registry.npmmirror.com/escape-goat/download/escape-goat-2.1.1.tgz", "integrity": "sha1-Gy3HcANnbEV+x2Cy3GjttkgYhnU=" }, "escape-html": { @@ -825,7 +825,7 @@ }, "escodegen": { "version": "1.14.3", - "resolved": "https://registry.npm.taobao.org/escodegen/download/escodegen-1.14.3.tgz", + "resolved": "https://registry.npmmirror.com/escodegen/download/escodegen-1.14.3.tgz", "integrity": "sha1-TnuB+6YVgdyXWC7XjKt/Do1j9QM=", "requires": { "esprima": "^4.0.1", @@ -837,24 +837,24 @@ "dependencies": { "esprima": { "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz", + "resolved": "https://registry.npmmirror.com/esprima/download/esprima-4.0.1.tgz", "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" } } }, "esprima": { "version": "3.1.3", - "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-3.1.3.tgz", + "resolved": "https://registry.npmmirror.com/esprima/download/esprima-3.1.3.tgz", "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" }, "estraverse": { "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1596641353460&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", + "resolved": "https://registry.npmmirror.com/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1596641353460&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=" }, "esutils": { "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz", + "resolved": "https://registry.npmmirror.com/esutils/download/esutils-2.0.3.tgz", "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=" }, "event-target-shim": { @@ -864,7 +864,7 @@ }, "expand-template": { "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/expand-template/download/expand-template-2.0.3.tgz", + "resolved": "https://registry.npmmirror.com/expand-template/download/expand-template-2.0.3.tgz", "integrity": "sha1-bhSz/O4POmNA7LV9LokYaSBSpHw=" }, "extend": { @@ -874,22 +874,22 @@ }, "extsprintf": { "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", + "resolved": "https://registry.npmmirror.com/extsprintf/download/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599604977&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599604977&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz", "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=" }, "fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", + "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=" }, "fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz?cache=0&sync_timestamp=1595428045324&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Ffast-levenshtein%2Fdownload%2Ffast-levenshtein-2.0.6.tgz", + "resolved": "https://registry.npmmirror.com/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz?cache=0&sync_timestamp=1595428045324&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Ffast-levenshtein%2Fdownload%2Ffast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "file-uri-to-path": { @@ -899,7 +899,7 @@ }, "fill-range": { "version": "7.0.1", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", + "resolved": "https://registry.npmmirror.com/fill-range/download/fill-range-7.0.1.tgz", "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", "requires": { "to-regex-range": "^5.0.1" @@ -907,7 +907,7 @@ }, "find-up": { "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169862146&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", + "resolved": "https://registry.npmmirror.com/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169862146&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", "requires": { "locate-path": "^5.0.0", @@ -916,12 +916,12 @@ }, "forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", + "resolved": "https://registry.npmmirror.com/forever-agent/download/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { "version": "2.3.3", - "resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz", + "resolved": "https://registry.npmmirror.com/form-data/download/form-data-2.3.3.tgz", "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", "requires": { "asynckit": "^0.4.0", @@ -936,12 +936,12 @@ }, "fs-constants": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/fs-constants/download/fs-constants-1.0.0.tgz", + "resolved": "https://registry.npmmirror.com/fs-constants/download/fs-constants-1.0.0.tgz", "integrity": "sha1-a+Dem+mYzhavivwkSXue6bfM2a0=" }, "fs-minipass": { "version": "1.2.7", - "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.7.tgz", + "resolved": "https://registry.npmmirror.com/fs-minipass/download/fs-minipass-1.2.7.tgz", "integrity": "sha1-zP+FcIQef+QmVpPaiJNsVa7X98c=", "requires": { "minipass": "^2.6.0" @@ -949,13 +949,13 @@ }, "fsevents": { "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.3.tgz", + "resolved": "https://registry.npmmirror.com/fsevents/download/fsevents-2.1.3.tgz", "integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=", "optional": true }, "ftp": { "version": "0.3.10", - "resolved": "https://registry.npm.taobao.org/ftp/download/ftp-0.3.10.tgz", + "resolved": "https://registry.npmmirror.com/ftp/download/ftp-0.3.10.tgz", "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", "requires": { "readable-stream": "1.1.x", @@ -964,12 +964,12 @@ "dependencies": { "isarray": { "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz", + "resolved": "https://registry.npmmirror.com/isarray/download/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-1.1.14.tgz", + "resolved": "https://registry.npmmirror.com/readable-stream/download/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { "core-util-is": "~1.0.0", @@ -980,14 +980,14 @@ }, "string_decoder": { "version": "0.10.31", - "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz", + "resolved": "https://registry.npmmirror.com/string_decoder/download/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz", + "resolved": "https://registry.npmmirror.com/gauge/download/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "requires": { "aproba": "^1.0.3", @@ -1014,12 +1014,12 @@ }, "get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", + "resolved": "https://registry.npmmirror.com/get-caller-file/download/get-caller-file-2.0.5.tgz", "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=" }, "get-stream": { "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz?cache=0&sync_timestamp=1597056474057&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz", + "resolved": "https://registry.npmmirror.com/get-stream/download/get-stream-4.1.0.tgz?cache=0&sync_timestamp=1597056474057&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz", "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", "requires": { "pump": "^3.0.0" @@ -1027,7 +1027,7 @@ }, "get-uri": { "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/get-uri/download/get-uri-2.0.4.tgz", + "resolved": "https://registry.npmmirror.com/get-uri/download/get-uri-2.0.4.tgz", "integrity": "sha1-1JN6uBniGNTLWuGOT1livvFpzGo=", "requires": { "data-uri-to-buffer": "1", @@ -1040,7 +1040,7 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "requires": { "ms": "2.0.0" @@ -1048,14 +1048,14 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, "getpass": { "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", + "resolved": "https://registry.npmmirror.com/getpass/download/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { "assert-plus": "^1.0.0" @@ -1063,12 +1063,12 @@ }, "github-from-package": { "version": "0.0.0", - "resolved": "https://registry.npm.taobao.org/github-from-package/download/github-from-package-0.0.0.tgz", + "resolved": "https://registry.npmmirror.com/github-from-package/download/github-from-package-0.0.0.tgz", "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" }, "glob-parent": { "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz", + "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-5.1.1.tgz", "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", "requires": { "is-glob": "^4.0.1" @@ -1076,7 +1076,7 @@ }, "global-dirs": { "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/global-dirs/download/global-dirs-2.0.1.tgz", + "resolved": "https://registry.npmmirror.com/global-dirs/download/global-dirs-2.0.1.tgz", "integrity": "sha1-rN87tmhbzVXLNeigUiZlaelGkgE=", "requires": { "ini": "^1.3.5" @@ -1092,7 +1092,7 @@ }, "got": { "version": "9.6.0", - "resolved": "https://registry.npm.taobao.org/got/download/got-9.6.0.tgz?cache=0&sync_timestamp=1596797233342&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fgot%2Fdownload%2Fgot-9.6.0.tgz", + "resolved": "https://registry.npmmirror.com/got/download/got-9.6.0.tgz?cache=0&sync_timestamp=1596797233342&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fgot%2Fdownload%2Fgot-9.6.0.tgz", "integrity": "sha1-7fRefWf5lUVwXeH3u+7rEhdl7YU=", "requires": { "@sindresorhus/is": "^0.14.0", @@ -1110,7 +1110,7 @@ "dependencies": { "decompress-response": { "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/decompress-response/download/decompress-response-3.3.0.tgz", + "resolved": "https://registry.npmmirror.com/decompress-response/download/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "requires": { "mimic-response": "^1.0.0" @@ -1118,14 +1118,14 @@ }, "mimic-response": { "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/mimic-response/download/mimic-response-1.0.1.tgz", + "resolved": "https://registry.npmmirror.com/mimic-response/download/mimic-response-1.0.1.tgz", "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=" } } }, "graceful-fs": { "version": "4.2.4", - "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.4.tgz", + "resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.4.tgz", "integrity": "sha1-Ila94U02MpWMRl68ltxGfKB6Kfs=" }, "gtoken": { @@ -1141,12 +1141,12 @@ }, "har-schema": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/har-schema/download/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { "version": "5.1.5", - "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.5.tgz?cache=0&sync_timestamp=1596082605533&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.5.tgz", + "resolved": "https://registry.npmmirror.com/har-validator/download/har-validator-5.1.5.tgz?cache=0&sync_timestamp=1596082605533&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.5.tgz", "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=", "requires": { "ajv": "^6.12.3", @@ -1155,17 +1155,17 @@ }, "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz", + "resolved": "https://registry.npmmirror.com/has-flag/download/has-flag-3.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz", + "resolved": "https://registry.npmmirror.com/has-unicode/download/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "has-yarn": { "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/has-yarn/download/has-yarn-2.1.0.tgz", + "resolved": "https://registry.npmmirror.com/has-yarn/download/has-yarn-2.1.0.tgz", "integrity": "sha1-E34RNUp7W/EapctknPDG8/8rLnc=" }, "html-escaper": { @@ -1184,7 +1184,7 @@ }, "http-cache-semantics": { "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/http-cache-semantics/download/http-cache-semantics-4.1.0.tgz", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/download/http-cache-semantics-4.1.0.tgz", "integrity": "sha1-SekcXL82yblLz81xwj1SSex045A=" }, "http-errors": { @@ -1201,7 +1201,7 @@ }, "http-proxy-agent": { "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/http-proxy-agent/download/http-proxy-agent-2.1.0.tgz", + "resolved": "https://registry.npmmirror.com/http-proxy-agent/download/http-proxy-agent-2.1.0.tgz", "integrity": "sha1-5IIb7vWyFCogJr1zkm/lN2McVAU=", "requires": { "agent-base": "4", @@ -1210,7 +1210,7 @@ "dependencies": { "agent-base": { "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-4.3.0.tgz?cache=0&sync_timestamp=1593732576537&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fagent-base%2Fdownload%2Fagent-base-4.3.0.tgz", + "resolved": "https://registry.npmmirror.com/agent-base/download/agent-base-4.3.0.tgz?cache=0&sync_timestamp=1593732576537&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fagent-base%2Fdownload%2Fagent-base-4.3.0.tgz", "integrity": "sha1-gWXwHENgCbzK0LHRIvBe13Dvxu4=", "requires": { "es6-promisify": "^5.0.0" @@ -1218,7 +1218,7 @@ }, "debug": { "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz", + "resolved": "https://registry.npmmirror.com/debug/download/debug-3.1.0.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz", "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", "requires": { "ms": "2.0.0" @@ -1226,14 +1226,14 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, "http-signature": { "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz", + "resolved": "https://registry.npmmirror.com/http-signature/download/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { "assert-plus": "^1.0.0", @@ -1260,22 +1260,22 @@ }, "ieee754": { "version": "1.1.13", - "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz", + "resolved": "https://registry.npmmirror.com/ieee754/download/ieee754-1.1.13.tgz", "integrity": "sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q=" }, "ignore-by-default": { "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/ignore-by-default/download/ignore-by-default-1.0.1.tgz?cache=0&sync_timestamp=1592056012076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fignore-by-default%2Fdownload%2Fignore-by-default-1.0.1.tgz", + "resolved": "https://registry.npmmirror.com/ignore-by-default/download/ignore-by-default-1.0.1.tgz?cache=0&sync_timestamp=1592056012076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fignore-by-default%2Fdownload%2Fignore-by-default-1.0.1.tgz", "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" }, "import-lazy": { "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/import-lazy/download/import-lazy-2.1.0.tgz", + "resolved": "https://registry.npmmirror.com/import-lazy/download/import-lazy-2.1.0.tgz", "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", + "resolved": "https://registry.npmmirror.com/imurmurhash/download/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "inflation": { @@ -1295,12 +1295,12 @@ }, "ip": { "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", + "resolved": "https://registry.npmmirror.com/ip/download/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", + "resolved": "https://registry.npmmirror.com/is-binary-path/download/is-binary-path-2.1.0.tgz", "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", "requires": { "binary-extensions": "^2.0.0" @@ -1308,7 +1308,7 @@ }, "is-ci": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-ci/download/is-ci-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/is-ci/download/is-ci-2.0.0.tgz", "integrity": "sha1-a8YzQYGBDgS1wis9WJ/cpVAmQEw=", "requires": { "ci-info": "^2.0.0" @@ -1316,12 +1316,12 @@ }, "is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", + "resolved": "https://registry.npmmirror.com/is-extglob/download/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "^1.0.0" @@ -1334,7 +1334,7 @@ }, "is-glob": { "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", + "resolved": "https://registry.npmmirror.com/is-glob/download/is-glob-4.0.1.tgz", "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", "requires": { "is-extglob": "^2.1.1" @@ -1342,7 +1342,7 @@ }, "is-installed-globally": { "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/is-installed-globally/download/is-installed-globally-0.3.2.tgz", + "resolved": "https://registry.npmmirror.com/is-installed-globally/download/is-installed-globally-0.3.2.tgz", "integrity": "sha1-/T76ee5nDRGHIzGC1bCh3QAxMUE=", "requires": { "global-dirs": "^2.0.1", @@ -1351,22 +1351,22 @@ }, "is-npm": { "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/is-npm/download/is-npm-4.0.0.tgz", + "resolved": "https://registry.npmmirror.com/is-npm/download/is-npm-4.0.0.tgz", "integrity": "sha1-yQ3YOAaW34enptgjwg0LErvjyE0=" }, "is-number": { "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", + "resolved": "https://registry.npmmirror.com/is-number/download/is-number-7.0.0.tgz", "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=" }, "is-obj": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/is-obj/download/is-obj-2.0.0.tgz", "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=" }, "is-path-inside": { "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-3.0.2.tgz", + "resolved": "https://registry.npmmirror.com/is-path-inside/download/is-path-inside-3.0.2.tgz", "integrity": "sha1-9SIPyCo+IzdXKR3dycWHfyofMBc=" }, "is-stream": { @@ -1376,12 +1376,12 @@ }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", + "resolved": "https://registry.npmmirror.com/is-typedarray/download/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-yarn-global": { "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/is-yarn-global/download/is-yarn-global-0.3.0.tgz", + "resolved": "https://registry.npmmirror.com/is-yarn-global/download/is-yarn-global-0.3.0.tgz", "integrity": "sha1-1QLTOCWQ6jAEiTdGdUyJE5lz4jI=" }, "isarray": { @@ -1391,37 +1391,37 @@ }, "isstream": { "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", + "resolved": "https://registry.npmmirror.com/isstream/download/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz", + "resolved": "https://registry.npmmirror.com/jsbn/download/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "json-buffer": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/json-buffer/download/json-buffer-3.0.0.tgz", + "resolved": "https://registry.npmmirror.com/json-buffer/download/json-buffer-3.0.0.tgz", "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, "json-schema": { "version": "0.2.3", - "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz", + "resolved": "https://registry.npmmirror.com/json-schema/download/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "jsprim": { "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", + "resolved": "https://registry.npmmirror.com/jsprim/download/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "requires": { "assert-plus": "1.0.0", @@ -1459,7 +1459,7 @@ }, "keyv": { "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/keyv/download/keyv-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fkeyv%2Fdownload%2Fkeyv-3.1.0.tgz", + "resolved": "https://registry.npmmirror.com/keyv/download/keyv-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fkeyv%2Fdownload%2Fkeyv-3.1.0.tgz", "integrity": "sha1-7MIoSG9pmR5J6UdkhaW+Ho/FxNk=", "requires": { "json-buffer": "3.0.0" @@ -1550,7 +1550,7 @@ }, "latest-version": { "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/latest-version/download/latest-version-5.1.0.tgz", + "resolved": "https://registry.npmmirror.com/latest-version/download/latest-version-5.1.0.tgz", "integrity": "sha1-EZ3+kI/jjRXfpD7NE/oS7Igy+s4=", "requires": { "package-json": "^6.3.0" @@ -1558,7 +1558,7 @@ }, "levn": { "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", + "resolved": "https://registry.npmmirror.com/levn/download/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { "prelude-ls": "~1.1.2", @@ -1567,7 +1567,7 @@ }, "locate-path": { "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "resolved": "https://registry.npmmirror.com/locate-path/download/locate-path-5.0.0.tgz", "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", "requires": { "p-locate": "^4.1.0" @@ -1575,12 +1575,12 @@ }, "lowercase-keys": { "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-1.0.1.tgz", + "resolved": "https://registry.npmmirror.com/lowercase-keys/download/lowercase-keys-1.0.1.tgz", "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=" }, "lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1594427602316&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz", + "resolved": "https://registry.npmmirror.com/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1594427602316&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz", "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", "requires": { "yallist": "^3.0.2" @@ -1588,7 +1588,7 @@ }, "make-dir": { "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz", + "resolved": "https://registry.npmmirror.com/make-dir/download/make-dir-3.1.0.tgz", "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", "requires": { "semver": "^6.0.0" @@ -1596,7 +1596,7 @@ "dependencies": { "semver": { "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "resolved": "https://registry.npmmirror.com/semver/download/semver-6.3.0.tgz", "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" } } @@ -1631,12 +1631,12 @@ }, "mimic-response": { "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/mimic-response/download/mimic-response-2.1.0.tgz", + "resolved": "https://registry.npmmirror.com/mimic-response/download/mimic-response-2.1.0.tgz", "integrity": "sha1-0Tdj019hPQnsN+uzC6wEacDuj0M=" }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz?cache=0&sync_timestamp=1597044082534&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz", + "resolved": "https://registry.npmmirror.com/minimatch/download/minimatch-3.0.4.tgz?cache=0&sync_timestamp=1597044082534&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz", "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "requires": { "brace-expansion": "^1.1.7" @@ -1649,7 +1649,7 @@ }, "minipass": { "version": "2.9.0", - "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-2.9.0.tgz", + "resolved": "https://registry.npmmirror.com/minipass/download/minipass-2.9.0.tgz", "integrity": "sha1-5xN2Ln0+Mv7YAxFc+T4EvKn8yaY=", "requires": { "safe-buffer": "^5.1.2", @@ -1658,7 +1658,7 @@ }, "minizlib": { "version": "1.3.3", - "resolved": "https://registry.npm.taobao.org/minizlib/download/minizlib-1.3.3.tgz?cache=0&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fminizlib%2Fdownload%2Fminizlib-1.3.3.tgz", + "resolved": "https://registry.npmmirror.com/minizlib/download/minizlib-1.3.3.tgz?cache=0&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fminizlib%2Fdownload%2Fminizlib-1.3.3.tgz", "integrity": "sha1-IpDeloGKNMKVUcio0wEha9Zahh0=", "requires": { "minipass": "^2.9.0" @@ -1666,7 +1666,7 @@ }, "mkdirp": { "version": "0.5.5", - "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz", + "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-0.5.5.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz", "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", "requires": { "minimist": "^1.2.5" @@ -1674,7 +1674,7 @@ }, "mkdirp-classic": { "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/mkdirp-classic/download/mkdirp-classic-0.5.3.tgz", + "resolved": "https://registry.npmmirror.com/mkdirp-classic/download/mkdirp-classic-0.5.3.tgz", "integrity": "sha1-+hDJEVzG2IZb4iG6R+6b7XhgERM=" }, "ms": { @@ -1684,7 +1684,7 @@ }, "napi-build-utils": { "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/napi-build-utils/download/napi-build-utils-1.0.2.tgz", + "resolved": "https://registry.npmmirror.com/napi-build-utils/download/napi-build-utils-1.0.2.tgz", "integrity": "sha1-sf3cCyxG44Cgt6dvmE3UfEGhOAY=" }, "negotiator": { @@ -1694,12 +1694,12 @@ }, "netmask": { "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/netmask/download/netmask-1.0.6.tgz", + "resolved": "https://registry.npmmirror.com/netmask/download/netmask-1.0.6.tgz", "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" }, "node-abi": { "version": "2.18.0", - "resolved": "https://registry.npm.taobao.org/node-abi/download/node-abi-2.18.0.tgz", + "resolved": "https://registry.npmmirror.com/node-abi/download/node-abi-2.18.0.tgz", "integrity": "sha1-H1SGz9fTi9T1OS+kSkrU2aDf+/Q=", "requires": { "semver": "^5.4.1" @@ -1717,7 +1717,7 @@ }, "nodemon": { "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/nodemon/download/nodemon-2.0.4.tgz", + "resolved": "https://registry.npmmirror.com/nodemon/download/nodemon-2.0.4.tgz", "integrity": "sha1-VbCTGetIjWOUqpgYFIwMLRwExBY=", "requires": { "chokidar": "^3.2.2", @@ -1734,7 +1734,7 @@ "dependencies": { "debug": { "version": "3.2.6", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.6.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { "ms": "^2.1.1" @@ -1744,12 +1744,12 @@ }, "noop-logger": { "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/noop-logger/download/noop-logger-0.1.1.tgz", + "resolved": "https://registry.npmmirror.com/noop-logger/download/noop-logger-0.1.1.tgz", "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" }, "nopt": { "version": "1.0.10", - "resolved": "https://registry.npm.taobao.org/nopt/download/nopt-1.0.10.tgz", + "resolved": "https://registry.npmmirror.com/nopt/download/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { "abbrev": "1" @@ -1757,17 +1757,17 @@ }, "normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", + "resolved": "https://registry.npmmirror.com/normalize-path/download/normalize-path-3.0.0.tgz", "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=" }, "normalize-url": { "version": "4.5.0", - "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-4.5.0.tgz?cache=0&sync_timestamp=1596373083028&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-4.5.0.tgz", + "resolved": "https://registry.npmmirror.com/normalize-url/download/normalize-url-4.5.0.tgz?cache=0&sync_timestamp=1596373083028&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fnormalize-url%2Fdownload%2Fnormalize-url-4.5.0.tgz", "integrity": "sha1-RTNUCH5sqWlXvY9br3U/WYIUISk=" }, "npmlog": { "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz?cache=0&sync_timestamp=1586265317539&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fnpmlog%2Fdownload%2Fnpmlog-4.1.2.tgz", + "resolved": "https://registry.npmmirror.com/npmlog/download/npmlog-4.1.2.tgz?cache=0&sync_timestamp=1586265317539&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fnpmlog%2Fdownload%2Fnpmlog-4.1.2.tgz", "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", "requires": { "are-we-there-yet": "~1.1.2", @@ -1778,12 +1778,12 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz", + "resolved": "https://registry.npmmirror.com/number-is-nan/download/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "oauth-sign": { "version": "0.9.0", - "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz", + "resolved": "https://registry.npmmirror.com/oauth-sign/download/oauth-sign-0.9.0.tgz", "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=" }, "object-assign": { @@ -1814,7 +1814,7 @@ }, "optionator": { "version": "0.8.3", - "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz", + "resolved": "https://registry.npmmirror.com/optionator/download/optionator-0.8.3.tgz", "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", "requires": { "deep-is": "~0.1.3", @@ -1827,7 +1827,7 @@ }, "p-cancelable": { "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/p-cancelable/download/p-cancelable-1.1.0.tgz", + "resolved": "https://registry.npmmirror.com/p-cancelable/download/p-cancelable-1.1.0.tgz", "integrity": "sha1-0HjRWjr0CSIMiG8dmgyi5EGrJsw=" }, "p-limit": { @@ -1840,7 +1840,7 @@ }, "p-locate": { "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1597081508945&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz", + "resolved": "https://registry.npmmirror.com/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1597081508945&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz", "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", "requires": { "p-limit": "^2.2.0" @@ -1848,7 +1848,7 @@ "dependencies": { "p-limit": { "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz", + "resolved": "https://registry.npmmirror.com/p-limit/download/p-limit-2.3.0.tgz", "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", "requires": { "p-try": "^2.0.0" @@ -1863,7 +1863,7 @@ }, "pac-proxy-agent": { "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/pac-proxy-agent/download/pac-proxy-agent-3.0.1.tgz", + "resolved": "https://registry.npmmirror.com/pac-proxy-agent/download/pac-proxy-agent-3.0.1.tgz", "integrity": "sha1-EVseWPkldsrC66cYWTynsON94q0=", "requires": { "agent-base": "^4.2.0", @@ -1878,7 +1878,7 @@ "dependencies": { "agent-base": { "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-4.3.0.tgz?cache=0&sync_timestamp=1593732576537&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fagent-base%2Fdownload%2Fagent-base-4.3.0.tgz", + "resolved": "https://registry.npmmirror.com/agent-base/download/agent-base-4.3.0.tgz?cache=0&sync_timestamp=1593732576537&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fagent-base%2Fdownload%2Fagent-base-4.3.0.tgz", "integrity": "sha1-gWXwHENgCbzK0LHRIvBe13Dvxu4=", "requires": { "es6-promisify": "^5.0.0" @@ -1886,7 +1886,7 @@ }, "https-proxy-agent": { "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-3.0.1.tgz", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/download/https-proxy-agent-3.0.1.tgz", "integrity": "sha1-uMKGQz6HYCMRsByOo0QT2Fakr4E=", "requires": { "agent-base": "^4.3.0", @@ -1895,7 +1895,7 @@ "dependencies": { "debug": { "version": "3.2.6", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.6.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { "ms": "^2.1.1" @@ -1907,7 +1907,7 @@ }, "pac-resolver": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pac-resolver/download/pac-resolver-3.0.0.tgz", + "resolved": "https://registry.npmmirror.com/pac-resolver/download/pac-resolver-3.0.0.tgz", "integrity": "sha1-auoweH2wqJFwTet4AKcip2FabyY=", "requires": { "co": "^4.6.0", @@ -1919,7 +1919,7 @@ }, "package-json": { "version": "6.5.0", - "resolved": "https://registry.npm.taobao.org/package-json/download/package-json-6.5.0.tgz", + "resolved": "https://registry.npmmirror.com/package-json/download/package-json-6.5.0.tgz", "integrity": "sha1-b+7ayjXnVyWHbQsOZJdGl/7RRbA=", "requires": { "got": "^9.6.0", @@ -1930,7 +1930,7 @@ "dependencies": { "semver": { "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "resolved": "https://registry.npmmirror.com/semver/download/semver-6.3.0.tgz", "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" } } @@ -1942,7 +1942,7 @@ }, "path-exists": { "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "resolved": "https://registry.npmmirror.com/path-exists/download/path-exists-4.0.0.tgz", "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=" }, "path-to-regexp": { @@ -1952,17 +1952,17 @@ }, "performance-now": { "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", + "resolved": "https://registry.npmmirror.com/performance-now/download/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "picomatch": { "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz", + "resolved": "https://registry.npmmirror.com/picomatch/download/picomatch-2.2.2.tgz", "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=" }, "prebuild-install": { "version": "5.3.5", - "resolved": "https://registry.npm.taobao.org/prebuild-install/download/prebuild-install-5.3.5.tgz", + "resolved": "https://registry.npmmirror.com/prebuild-install/download/prebuild-install-5.3.5.tgz", "integrity": "sha1-5+ceQlKYeF6p0i1PlY26zPi7Dhs=", "requires": { "detect-libc": "^1.0.3", @@ -1984,12 +1984,12 @@ }, "prelude-ls": { "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz", + "resolved": "https://registry.npmmirror.com/prelude-ls/download/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, "prepend-http": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/prepend-http/download/prepend-http-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/prepend-http/download/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "process-nextick-args": { @@ -2008,7 +2008,7 @@ }, "proxy-agent": { "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/proxy-agent/download/proxy-agent-3.1.1.tgz", + "resolved": "https://registry.npmmirror.com/proxy-agent/download/proxy-agent-3.1.1.tgz", "integrity": "sha1-fgTga/Nq+mJKFUC+JHtHyXC9MBQ=", "requires": { "agent-base": "^4.2.0", @@ -2023,7 +2023,7 @@ "dependencies": { "agent-base": { "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-4.3.0.tgz?cache=0&sync_timestamp=1593732576537&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fagent-base%2Fdownload%2Fagent-base-4.3.0.tgz", + "resolved": "https://registry.npmmirror.com/agent-base/download/agent-base-4.3.0.tgz?cache=0&sync_timestamp=1593732576537&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fagent-base%2Fdownload%2Fagent-base-4.3.0.tgz", "integrity": "sha1-gWXwHENgCbzK0LHRIvBe13Dvxu4=", "requires": { "es6-promisify": "^5.0.0" @@ -2031,7 +2031,7 @@ }, "https-proxy-agent": { "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-3.0.1.tgz", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/download/https-proxy-agent-3.0.1.tgz", "integrity": "sha1-uMKGQz6HYCMRsByOo0QT2Fakr4E=", "requires": { "agent-base": "^4.3.0", @@ -2040,7 +2040,7 @@ "dependencies": { "debug": { "version": "3.2.6", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.6.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { "ms": "^2.1.1" @@ -2052,17 +2052,17 @@ }, "proxy-from-env": { "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/proxy-from-env/download/proxy-from-env-1.1.0.tgz", + "resolved": "https://registry.npmmirror.com/proxy-from-env/download/proxy-from-env-1.1.0.tgz", "integrity": "sha1-4QLxbKNVQkhldV0sno6k8k1Yw+I=" }, "psl": { "version": "1.8.0", - "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz", + "resolved": "https://registry.npmmirror.com/psl/download/psl-1.8.0.tgz", "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=" }, "pstree.remy": { "version": "1.1.8", - "resolved": "https://registry.npm.taobao.org/pstree.remy/download/pstree.remy-1.1.8.tgz", + "resolved": "https://registry.npmmirror.com/pstree.remy/download/pstree.remy-1.1.8.tgz", "integrity": "sha1-wkIiT0pnwh9oaDm720rCgrg3PTo=" }, "pump": { @@ -2076,12 +2076,12 @@ }, "punycode": { "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", + "resolved": "https://registry.npmmirror.com/punycode/download/punycode-2.1.1.tgz", "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" }, "pupa": { "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/pupa/download/pupa-2.0.1.tgz", + "resolved": "https://registry.npmmirror.com/pupa/download/pupa-2.0.1.tgz", "integrity": "sha1-29yf9I/76komoGm2+fersFEAhyY=", "requires": { "escape-goat": "^2.0.0" @@ -2130,7 +2130,7 @@ }, "readdirp": { "version": "3.4.0", - "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.4.0.tgz", + "resolved": "https://registry.npmmirror.com/readdirp/download/readdirp-3.4.0.tgz", "integrity": "sha1-n9zN+ekVWAVEkiGsZF6DA6tbmto=", "requires": { "picomatch": "^2.2.1" @@ -2138,7 +2138,7 @@ }, "registry-auth-token": { "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/registry-auth-token/download/registry-auth-token-4.2.0.tgz", + "resolved": "https://registry.npmmirror.com/registry-auth-token/download/registry-auth-token-4.2.0.tgz", "integrity": "sha1-HTff/acrvs0PWB5HFVQCE6Zet9o=", "requires": { "rc": "^1.2.8" @@ -2146,7 +2146,7 @@ }, "registry-url": { "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/registry-url/download/registry-url-5.1.0.tgz", + "resolved": "https://registry.npmmirror.com/registry-url/download/registry-url-5.1.0.tgz", "integrity": "sha1-6YM0tQ1UNLgRNrROxjjZwgCcUAk=", "requires": { "rc": "^1.2.8" @@ -2154,7 +2154,7 @@ }, "request": { "version": "2.88.2", - "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz", + "resolved": "https://registry.npmmirror.com/request/download/request-2.88.2.tgz", "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", "requires": { "aws-sign2": "~0.7.0", @@ -2181,24 +2181,24 @@ "dependencies": { "qs": { "version": "6.5.2", - "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz", + "resolved": "https://registry.npmmirror.com/qs/download/qs-6.5.2.tgz", "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=" } } }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz", + "resolved": "https://registry.npmmirror.com/require-directory/download/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/require-main-filename/download/require-main-filename-2.0.0.tgz", "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=" }, "responselike": { "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/responselike/download/responselike-1.0.2.tgz", + "resolved": "https://registry.npmmirror.com/responselike/download/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "requires": { "lowercase-keys": "^1.0.0" @@ -2221,7 +2221,7 @@ }, "semver-diff": { "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/semver-diff/download/semver-diff-3.1.1.tgz", + "resolved": "https://registry.npmmirror.com/semver-diff/download/semver-diff-3.1.1.tgz", "integrity": "sha1-Bfd85Z8yXgDicGr9Z7tQbdscoys=", "requires": { "semver": "^6.3.0" @@ -2229,7 +2229,7 @@ "dependencies": { "semver": { "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "resolved": "https://registry.npmmirror.com/semver/download/semver-6.3.0.tgz", "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" } } @@ -2251,12 +2251,12 @@ }, "simple-concat": { "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/simple-concat/download/simple-concat-1.0.1.tgz", + "resolved": "https://registry.npmmirror.com/simple-concat/download/simple-concat-1.0.1.tgz", "integrity": "sha1-9Gl2CCujXCJj8cirXt/ibEHJVS8=" }, "simple-get": { "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/simple-get/download/simple-get-3.1.0.tgz", + "resolved": "https://registry.npmmirror.com/simple-get/download/simple-get-3.1.0.tgz", "integrity": "sha1-tFvgYkNeUNFZVAtXYgLO7EC5xrM=", "requires": { "decompress-response": "^4.2.0", @@ -2271,12 +2271,12 @@ }, "smart-buffer": { "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/smart-buffer/download/smart-buffer-4.1.0.tgz", + "resolved": "https://registry.npmmirror.com/smart-buffer/download/smart-buffer-4.1.0.tgz", "integrity": "sha1-kWBcJdkWUvRmHqacz0XxszHKIbo=" }, "socks": { "version": "2.3.3", - "resolved": "https://registry.npm.taobao.org/socks/download/socks-2.3.3.tgz", + "resolved": "https://registry.npmmirror.com/socks/download/socks-2.3.3.tgz", "integrity": "sha1-ARKfCl1TTSuJdxLtis6rfuZdeOM=", "requires": { "ip": "1.1.5", @@ -2285,7 +2285,7 @@ }, "socks-proxy-agent": { "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/socks-proxy-agent/download/socks-proxy-agent-4.0.2.tgz", + "resolved": "https://registry.npmmirror.com/socks-proxy-agent/download/socks-proxy-agent-4.0.2.tgz", "integrity": "sha1-PImR8xRbJ5nnDhG9X7yLGWMRY4Y=", "requires": { "agent-base": "~4.2.1", @@ -2294,7 +2294,7 @@ "dependencies": { "agent-base": { "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-4.2.1.tgz?cache=0&sync_timestamp=1593732576537&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fagent-base%2Fdownload%2Fagent-base-4.2.1.tgz", + "resolved": "https://registry.npmmirror.com/agent-base/download/agent-base-4.2.1.tgz?cache=0&sync_timestamp=1593732576537&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fagent-base%2Fdownload%2Fagent-base-4.2.1.tgz", "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", "requires": { "es6-promisify": "^5.0.0" @@ -2304,13 +2304,13 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "resolved": "https://registry.npmmirror.com/source-map/download/source-map-0.6.1.tgz", "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "optional": true }, "sshpk": { "version": "1.16.1", - "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz", + "resolved": "https://registry.npmmirror.com/sshpk/download/sshpk-1.16.1.tgz", "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", "requires": { "asn1": "~0.2.3", @@ -2331,7 +2331,7 @@ }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", + "resolved": "https://registry.npmmirror.com/string-width/download/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "^1.0.0", @@ -2349,7 +2349,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "^2.0.0" @@ -2362,7 +2362,7 @@ }, "supports-color": { "version": "5.5.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-5.5.0.tgz", "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", "requires": { "has-flag": "^3.0.0" @@ -2370,7 +2370,7 @@ }, "tar": { "version": "4.4.10", - "resolved": "https://registry.npm.taobao.org/tar/download/tar-4.4.10.tgz", + "resolved": "https://registry.npmmirror.com/tar/download/tar-4.4.10.tgz", "integrity": "sha1-lGsoELml4LJhQM94vqawsNaJ66E=", "requires": { "chownr": "^1.1.1", @@ -2384,7 +2384,7 @@ }, "tar-fs": { "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/tar-fs/download/tar-fs-2.1.0.tgz", + "resolved": "https://registry.npmmirror.com/tar-fs/download/tar-fs-2.1.0.tgz", "integrity": "sha1-0c3RIatGXuDrnM3i01BJ0/Pa8NU=", "requires": { "chownr": "^1.1.1", @@ -2395,7 +2395,7 @@ }, "tar-stream": { "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/tar-stream/download/tar-stream-2.1.3.tgz?cache=0&sync_timestamp=1594117593914&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Ftar-stream%2Fdownload%2Ftar-stream-2.1.3.tgz", + "resolved": "https://registry.npmmirror.com/tar-stream/download/tar-stream-2.1.3.tgz?cache=0&sync_timestamp=1594117593914&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Ftar-stream%2Fdownload%2Ftar-stream-2.1.3.tgz", "integrity": "sha1-HiAiVZIht4ZhYWYPEYJV4g+nnkE=", "requires": { "bl": "^4.0.1", @@ -2407,7 +2407,7 @@ "dependencies": { "readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "resolved": "https://registry.npmmirror.com/readable-stream/download/readable-stream-3.6.0.tgz", "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", "requires": { "inherits": "^2.0.3", @@ -2419,7 +2419,7 @@ }, "telebot": { "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/telebot/download/telebot-1.4.1.tgz", + "resolved": "https://registry.npmmirror.com/telebot/download/telebot-1.4.1.tgz", "integrity": "sha1-IiPmuqKOgQfQx9gwXpVbaeq33eE=", "requires": { "request": "^2.88.2" @@ -2427,22 +2427,22 @@ }, "term-size": { "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/term-size/download/term-size-2.2.0.tgz", + "resolved": "https://registry.npmmirror.com/term-size/download/term-size-2.2.0.tgz", "integrity": "sha1-Hxat7f6b3BiADhd2ghc0CG/MZ1M=" }, "thunkify": { "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/thunkify/download/thunkify-2.1.2.tgz", + "resolved": "https://registry.npmmirror.com/thunkify/download/thunkify-2.1.2.tgz", "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" }, "to-readable-stream": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/to-readable-stream/download/to-readable-stream-1.0.0.tgz", + "resolved": "https://registry.npmmirror.com/to-readable-stream/download/to-readable-stream-1.0.0.tgz", "integrity": "sha1-zgqgwvPfat+FLvtASng+d8BHV3E=" }, "to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "resolved": "https://registry.npmmirror.com/to-regex-range/download/to-regex-range-5.0.1.tgz", "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", "requires": { "is-number": "^7.0.0" @@ -2455,7 +2455,7 @@ }, "touch": { "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/touch/download/touch-3.1.0.tgz", + "resolved": "https://registry.npmmirror.com/touch/download/touch-3.1.0.tgz", "integrity": "sha1-/jZfX3XsntTlaCXgu3bSSrdK+Ds=", "requires": { "nopt": "~1.0.10" @@ -2463,7 +2463,7 @@ }, "tough-cookie": { "version": "2.5.0", - "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz", + "resolved": "https://registry.npmmirror.com/tough-cookie/download/tough-cookie-2.5.0.tgz", "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", "requires": { "psl": "^1.1.28", @@ -2485,12 +2485,12 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz", + "resolved": "https://registry.npmmirror.com/tweetnacl/download/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-check": { "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz", + "resolved": "https://registry.npmmirror.com/type-check/download/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { "prelude-ls": "~1.1.2" @@ -2498,7 +2498,7 @@ }, "type-fest": { "version": "0.8.1", - "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.8.1.tgz", + "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.8.1.tgz", "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=" }, "type-is": { @@ -2512,7 +2512,7 @@ }, "typedarray-to-buffer": { "version": "3.1.5", - "resolved": "https://registry.npm.taobao.org/typedarray-to-buffer/download/typedarray-to-buffer-3.1.5.tgz", + "resolved": "https://registry.npmmirror.com/typedarray-to-buffer/download/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha1-qX7nqf9CaRufeD/xvFES/j/KkIA=", "requires": { "is-typedarray": "^1.0.0" @@ -2520,7 +2520,7 @@ }, "undefsafe": { "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/undefsafe/download/undefsafe-2.0.3.tgz", + "resolved": "https://registry.npmmirror.com/undefsafe/download/undefsafe-2.0.3.tgz", "integrity": "sha1-axZucJStRjE7IgLafsws18xueq4=", "requires": { "debug": "^2.2.0" @@ -2528,7 +2528,7 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "requires": { "ms": "2.0.0" @@ -2536,14 +2536,14 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, "unique-string": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/unique-string/download/unique-string-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/unique-string/download/unique-string-2.0.0.tgz", "integrity": "sha1-OcZFH4GvsnSd4rIz4/fF6IQ72J0=", "requires": { "crypto-random-string": "^2.0.0" @@ -2556,7 +2556,7 @@ }, "update-notifier": { "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/update-notifier/download/update-notifier-4.1.0.tgz", + "resolved": "https://registry.npmmirror.com/update-notifier/download/update-notifier-4.1.0.tgz", "integrity": "sha1-SGa5jDvFtUc8AgsSUFg2KPmjKPM=", "requires": { "boxen": "^4.2.0", @@ -2576,7 +2576,7 @@ }, "uri-js": { "version": "4.2.2", - "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz", + "resolved": "https://registry.npmmirror.com/uri-js/download/uri-js-4.2.2.tgz", "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", "requires": { "punycode": "^2.1.0" @@ -2584,7 +2584,7 @@ }, "url-parse-lax": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/url-parse-lax/download/url-parse-lax-3.0.0.tgz", + "resolved": "https://registry.npmmirror.com/url-parse-lax/download/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "requires": { "prepend-http": "^2.0.0" @@ -2597,7 +2597,7 @@ }, "uuid": { "version": "3.4.0", - "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz", + "resolved": "https://registry.npmmirror.com/uuid/download/uuid-3.4.0.tgz", "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=" }, "vary": { @@ -2607,7 +2607,7 @@ }, "verror": { "version": "1.10.0", - "resolved": "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz", + "resolved": "https://registry.npmmirror.com/verror/download/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { "assert-plus": "^1.0.0", @@ -2617,17 +2617,17 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/which-module/download/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "which-pm-runs": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/which-pm-runs/download/which-pm-runs-1.0.0.tgz", + "resolved": "https://registry.npmmirror.com/which-pm-runs/download/which-pm-runs-1.0.0.tgz", "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" }, "wide-align": { "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz", + "resolved": "https://registry.npmmirror.com/wide-align/download/wide-align-1.1.3.tgz", "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", "requires": { "string-width": "^1.0.2 || 2" @@ -2635,7 +2635,7 @@ }, "widest-line": { "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/widest-line/download/widest-line-3.1.0.tgz", + "resolved": "https://registry.npmmirror.com/widest-line/download/widest-line-3.1.0.tgz", "integrity": "sha1-gpIzO79my0X/DeFgOxNreuFJbso=", "requires": { "string-width": "^4.0.0" @@ -2643,17 +2643,17 @@ "dependencies": { "ansi-regex": { "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "resolved": "https://registry.npmmirror.com/ansi-regex/download/ansi-regex-5.0.0.tgz", "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" }, "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" }, "string-width": { "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "resolved": "https://registry.npmmirror.com/string-width/download/string-width-4.2.0.tgz", "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", "requires": { "emoji-regex": "^8.0.0", @@ -2663,7 +2663,7 @@ }, "strip-ansi": { "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz", + "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.0.tgz", "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", "requires": { "ansi-regex": "^5.0.0" @@ -2673,12 +2673,12 @@ }, "word-wrap": { "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz", + "resolved": "https://registry.npmmirror.com/word-wrap/download/word-wrap-1.2.3.tgz", "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=" }, "wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-6.2.0.tgz", + "resolved": "https://registry.npmmirror.com/wrap-ansi/download/wrap-ansi-6.2.0.tgz", "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", "requires": { "ansi-styles": "^4.0.0", @@ -2688,17 +2688,17 @@ "dependencies": { "ansi-regex": { "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "resolved": "https://registry.npmmirror.com/ansi-regex/download/ansi-regex-5.0.0.tgz", "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" }, "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" }, "string-width": { "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "resolved": "https://registry.npmmirror.com/string-width/download/string-width-4.2.0.tgz", "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", "requires": { "emoji-regex": "^8.0.0", @@ -2708,7 +2708,7 @@ }, "strip-ansi": { "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz", + "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.0.tgz", "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", "requires": { "ansi-regex": "^5.0.0" @@ -2723,7 +2723,7 @@ }, "write-file-atomic": { "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-3.0.3.tgz", + "resolved": "https://registry.npmmirror.com/write-file-atomic/download/write-file-atomic-3.0.3.tgz", "integrity": "sha1-Vr1cWlxwSBzRnFcb05q5ZaXeVug=", "requires": { "imurmurhash": "^0.1.4", @@ -2734,17 +2734,17 @@ }, "xdg-basedir": { "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/xdg-basedir/download/xdg-basedir-4.0.0.tgz", + "resolved": "https://registry.npmmirror.com/xdg-basedir/download/xdg-basedir-4.0.0.tgz", "integrity": "sha1-S8jZmEQDaWIl74OhVzy7y0552xM=" }, "xregexp": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/xregexp/download/xregexp-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/xregexp/download/xregexp-2.0.0.tgz", "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" }, "y18n": { "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz", + "resolved": "https://registry.npmmirror.com/y18n/download/y18n-4.0.0.tgz", "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=" }, "yallist": { @@ -2754,7 +2754,7 @@ }, "yargs": { "version": "15.4.1", - "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-15.4.1.tgz?cache=0&sync_timestamp=1594421190657&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-15.4.1.tgz", + "resolved": "https://registry.npmmirror.com/yargs/download/yargs-15.4.1.tgz?cache=0&sync_timestamp=1594421190657&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fyargs%2Fdownload%2Fyargs-15.4.1.tgz", "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", "requires": { "cliui": "^6.0.0", @@ -2772,17 +2772,17 @@ "dependencies": { "ansi-regex": { "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "resolved": "https://registry.npmmirror.com/ansi-regex/download/ansi-regex-5.0.0.tgz", "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" }, "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" }, "string-width": { "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "resolved": "https://registry.npmmirror.com/string-width/download/string-width-4.2.0.tgz", "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", "requires": { "emoji-regex": "^8.0.0", @@ -2792,7 +2792,7 @@ }, "strip-ansi": { "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz", + "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.0.tgz", "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", "requires": { "ansi-regex": "^5.0.0" @@ -2802,7 +2802,7 @@ }, "yargs-parser": { "version": "18.1.3", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-18.1.3.tgz?cache=0&sync_timestamp=1596945653861&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.3.tgz", + "resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-18.1.3.tgz?cache=0&sync_timestamp=1596945653861&other_urls=https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.3.tgz", "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", "requires": { "camelcase": "^5.0.0",