From 341e8bc6db1225a8281cf8b923e84c14c8b82b20 Mon Sep 17 00:00:00 2001
From: superq <13815865+meooxx@users.noreply.github.com>
Date: Sat, 6 Mar 2021 21:39:16 +0800
Subject: [PATCH] =?UTF-8?q?Feat:=20=E5=A2=9E=E5=8A=A0eslint=20&=20?=
=?UTF-8?q?=E5=8F=AF=E9=85=8D=E7=BD=AE=E6=8F=90=E4=BA=A4=E6=AC=A1=E6=95=B0?=
=?UTF-8?q?=20(#17)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Feat: 增加eslint & 可配置提交次数
---
.eslintrc.js | 23 ++
README.md | 35 ++-
dayjs.min.js | 1 +
index.js | 26 +-
jobs.js | 122 ++++----
package.json | 4 +
tasks-pool.js | 51 ++--
timer.js | 6 +-
yarn.lock | 753 ++++++++++++++++++++++++++++++++++++++++++++++++--
9 files changed, 901 insertions(+), 120 deletions(-)
create mode 100644 .eslintrc.js
create mode 100644 dayjs.min.js
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..e8c950d
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,23 @@
+module.exports = {
+ env: {
+ browser: true,
+ commonjs: true,
+ es2021: true,
+ },
+ extends: ['airbnb-base'],
+ parserOptions: {
+ ecmaVersion: 12,
+ },
+ rules: {
+ 'no-shadow': 0,
+ 'no-nested-ternary': 0,
+ eqeqeq: 0,
+ 'no-await-in-loop': 0,
+ 'comma-dangle': 0,
+ 'no-use-before-define': 0,
+ 'arrow-parens': 0,
+ 'no-plusplus': 0,
+ 'no-console': 0,
+ },
+ plugins: ['prettier'],
+};
diff --git a/README.md b/README.md
index d511516..0de7065 100644
--- a/README.md
+++ b/README.md
@@ -19,15 +19,16 @@ https://github.com/xxxXXX95/yuyue/tree/master
1. 到时间直接抢购, 也叫秒杀(例如以前的口罩, 类似茅台(茅台现在限定App中抢购了😄))
2. 到时间先添加购物车 -> 到购物车提交订单(普通显卡预约抢购类)
+3. 原价到时间变价
写在前面
1. 模式 1 特别说明: 此模式商品展示无明显特征(console 控制台倒是可以打印对应参数区分).**`抢购时间有可能立即开始, 也有可能需要预约结束后再等一小段时间(几分钟到半个小时不等)才可以抢购`**。需要不需要再等都遇到过。抢购时注意终端中会提示 `"当前流程是预约秒杀流程`, 这样的提示就是此模式.
-2. 如果需要再等, 提交会失败但是提示有货但是抢购失败.此时请手机或者浏览器查看状态.流程页处理一部分情况请注意打印文字提示
+2. 如果需要再等, 提交会失败但是提示有货.此时请手机或者浏览器查看商品最新状态.流程也处理一部分情况请注意打印文字提示
3. 模式 1 再说明: 区分流程的特征, 狗东最晚在开抢前几分钟内才设置, 程序现在已经支持自动区分了
-4. 因为狗东有红包的话, 会自动勾选使用红包.为了抢购成功和快速, 配置文件中最好填写 6 位支付密码(保存密码的`config.js` **`不会从你本地上传到任何地方,请放心!!`**)
-5. 已知 `windows` 系统自带终端打印出来的二维码错位, 请更换终端或者手动打开自动生成的本目录下`qrcode.png`文件扫码
-6. 由`jd_by_mask` 改名 `jd_yuyue`.之前使用错别字防止搜索且买口罩也不符合现在仓库内容, 所以改名 yuyue 了
+4. 因为狗东有红包的话, 会自动勾选使用红包.为了抢购成功和快速, 配置文件中`最好填写 6 位支付密码`(保存密码的`config.js` **`不会从你本地上传到任何地方,请放心!!`**)
+5. 已知 `windows` 系统自带终端打印出来的二维码错位, 请更换终端或者手动打开自动生成在本目录下`qrcode.png`文件, 进行扫码
+6. 由`jd_by_mask` 改名 `jd_yuyue`.之前使用错别字防止搜索且买口罩也不符合现在仓库内容, 所以改名 `jd_yuyue` 了
7. 由 `jd_yuyue` 改名 `yuyue`, 被x东邮件通知下架. 避免出问题, 规避搜索
TG Group
@@ -71,7 +72,8 @@ module.exports = config;
3 在`本项目目录`(不是 nodejs 安装目录)下执行 `npm install --production` 或者 `yarn --prod`(不熟悉的, 就直接使用 npm 效果一样的) 安装依赖, 已经默认配置使用 `taobao` 镜像地址下载依赖包
-4 配置`tasks-pool.js`(以前在*index.js* 中, 现在迁移出来了) 中设置日期 `date`, `forceKO`, `areadId`(如果已在 `config.js` 中设置了`areadId`, 这里无需再设置) 和要抢购的 `skuId`, 格式如下
+4 配置`tasks-pool.js`(以前在*index.js* 中, 现在迁移出来了) 中设置日期 `date`, `forceKO`, `areadId`(如果已在 `config.js` 中设置了`areadId`, 这里无需再设置) 和要抢购的 `skuId`, 可选参数 新增 `submitTimes` 不填默认 10, `maxWaitingMS` 不填默认 800
+格式如下
```js
// 年 月 日 时 分 秒 毫秒
@@ -90,21 +92,17 @@ const dd2 = new Date(2020, 2, 3, 20, 0, 0, 400).getTime();
// 2020/3/3 21:00:00.400
const dd3 = new Date(2020, 2, 3, 21, 0, 0, 400).getTime();
-// 修改这里, 添加skuId, 抢购时间 date, 强制使用秒杀流程 forceKO(已经不推荐使用, 程序自动会判断), areaId.
+// 修改这里, 添加skuId, 抢购时间 date, 强制使用秒杀流程 forceKO(已经不推荐使用, 程序自动会判断), areaId, 选填项 submitTimes, maxWaitingMS
// 需要更改 年/月/日 时:分:秒.毫秒
// skuId 获取方法, 打开任意一个商品详情页如 `https://item.jd.com/100011521400.html`, 则 `100011521400` 就是其skuId
exports.pool = [
// 1 *现在必须设置areaId*
// 如果上面 `config.js`中已经配置过了, 此处可以不用再配置`areaId`, areaId 获取在第 5 步骤说明
- // 2 forceKO: true/false(已经不推荐使用, 程序自动会判断)
- // true 则为强制使用秒杀流程(自己100%确定流程是秒杀时开启.常见商品maotai)
- // false 的话自动判断流程
-
+ // 2 forceKO: true/false (废弃不用)
+ // 3 此脚本也可在非预约抢购流程中的秒杀(到时间变价那种)使用,为防止提交原价订单, 可配置提交订单重试次数 推荐 2-3 次(不明白的忽略)
+ // 4 如果抢购过程中出现 `请求结算页面超过xxx ms`, 请增大maxWaitingMS, 建议1000-2000之间, 不设置默认 800
{ skuId: '100011621642', date: dd1, areaId: `2_2825_51936` },
- // 新增同一时间抢购多个商品
- // 同一时间的不要复制多个项目同时运行, 而是像如下填写就可以
- // 复制同时运行容易触发频率限制导致提交全部失败
- { skuId: ['100011621642', '100011621643'], date: dd2, areaId: `2_2825_51936` },
+ // skuId: '10022991959725',areaId: `2_2825_51936`, date: dd1, submitTimes: 3, maxWaitingMS: 1000
// 不同时间的sku, 复制上述项修改值, 填写在下方
];
// 设置要强制扫码登录(没搞懂使用场景的忽略此配置)
@@ -122,7 +120,7 @@ exports.forceLogin = false;
7 扫描终端中的二维码登录, 24 小时之内重启不需要再次扫码登录, `cookie` 串会保留在本地文件 `cookie.json` 中. 过期的话必须重新扫码(代码自动校验)
## Todo
-- [ ] 子进程推出前, dump cookie
+
- [x] 合并抢购流程为添加购物车抢购流程的进程
- [x] 狗东太恶心了, 区分流程的关键参数, 等到开抢前几分钟才获取到, 要想办法兼容
- [x] 如果预约时间结束, 还需要等待一小段时间后才抢购, 程序自动等待执行(1h 内)
@@ -140,8 +138,7 @@ exports.forceLogin = false;
- 反对 jd 耍猴, 更反对滥用盈利作恶!
- 对 `windows` 系统不友好, 有问题反馈
-- 距离开始前几分钟启动, 最好不要让自己电脑在这期间黑屏待机
-- 注意使用最好提前个 `1s`, 因为提交订单前要请求其他俩个接口, 提前 1s 差不多正好, 各地区不一致提前参数请参考终端提示
+- 距离开始前稍近时启动, 最好不要让自己电脑在这期间黑屏待机
- 每天最好提前做一次扫码, 免得程序启动时候登录有效, 抢购过程中登录失效
- 预约每个人都很容易拿到, 不用使用脚本执行预约
- 这是 node 版本, 不熟悉的可使用 python 版本.(本版本借鉴/使用了下面部分功能和资源)
@@ -159,7 +156,9 @@ exports.forceLogin = false;
- 订单
-更多案例: [issues/2](https://github.com/meooxx/jd_by_mask/issues/2)
+- 成功案例太多了, tg群很多人都抢到了, 尤其日用品, 如日用纸, 和0.01的水果
+
+更多案例(☝️加群): [issues/2](https://github.com/meooxx/jd_by_mask/issues/2)
## Advanced(废弃)
diff --git a/dayjs.min.js b/dayjs.min.js
new file mode 100644
index 0000000..4e941a9
--- /dev/null
+++ b/dayjs.min.js
@@ -0,0 +1 @@
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.dayjs=e()}(this,function(){"use strict";var t="millisecond",e="second",n="minute",r="hour",i="day",s="week",u="month",a="quarter",o="year",f="date",h=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,c=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,d={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},$=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},l={s:$,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+$(r,2,"0")+":"+$(i,2,"0")},m:function t(e,n){if(e.date() {
- const { date, skuId, areaId = config.areaId, forceKO = false } = item;
+ const {
+ date,
+ skuId,
+ areaId = config.areaId,
+ forceKO = false,
+ ...rest
+ } = item;
const expectedDate = new Date(item.date);
// 任务进程
console.log(
'process.worker:',
process.pid,
'时间:',
- `${expectedDate.toLocaleString('en-US', {
- hour12: false,
- })}.${expectedDate.getMilliseconds()}`,
+ dayjs(expectedDate).format('YYYY-MM-DD HH:mm:ss.SSS'),
'sku',
item.skuId
);
- submitOrderProcess(date, skuId, areaId, forceKO);
+ submitOrderProcess(date, skuId, areaId, { forceKO, ...rest });
};
- process.on('unhandledRejection', (reason, promise) => {
+ process.on('unhandledRejection', reason => {
console.log(reason);
});
cluster.worker.on('message', async job => {
@@ -63,16 +70,17 @@ if (cluster.isWorker) {
cluster.on('message', (_, message) => {
// 登陆流程
if (message.doneWork === 'login') {
+ // eslint-disable-next-line global-require
require('./codeInfo');
// 登陆完成后
- for (i = 0; i < pool.length; i++) {
+ for (let i = 0; i < pool.length; i++) {
const item = pool[i];
cluster.fork().send({ ...item, type: 'task' });
}
}
// fork 秒杀流程
if (message.doneWork === 'forkKO') {
- for (i = 0; i < message.items.length; i++) {
+ for (let i = 0; i < message.items.length; i++) {
const item = message.items[i];
cluster.fork().send({ ...item, type: 'task', forceKO: true });
}
diff --git a/jobs.js b/jobs.js
index af50466..9ee81ec 100644
--- a/jobs.js
+++ b/jobs.js
@@ -1,7 +1,9 @@
+const dayjs = require('./dayjs.min.js');
const ToolsClass = require('./tools');
-const helper = new ToolsClass();
const timer = require('./timer');
-const sleep = helper.sleep;
+
+const helper = new ToolsClass();
+const { sleep } = helper;
// 登录
async function login(directly = false) {
@@ -33,7 +35,8 @@ async function login(directly = false) {
}
const res = await helper.validateQRTicket(ticket);
if (res.returnCode != 0) {
- return console.log('二维码校验失败');
+ console.log('二维码校验失败');
+ return;
}
console.info('二维码登录成功');
helper.isLogin = true;
@@ -51,9 +54,9 @@ async function submitOrderFromItemDetailPage(
) {
console.log('尝试提前获取订单数据:', new Date().toLocaleString(), skuId);
await helper.getOrderData(skuId, 1);
- timer(date, async function () {
+ timer(date, async () => {
console.log('执行获取链接时间:', new Date().toLocaleString());
- let res = await helper.getKOUrl(skuId);
+ const res = await helper.getKOUrl(skuId);
if (!res) {
return;
}
@@ -84,7 +87,10 @@ async function submitOrderFromItemDetailPage(
}
// 检查当前商品是否开卖了?
async function checkItemState(skuId, params, retry = 30) {
- const { area, cat, shopId, venderId, paramJson } = params;
+ const {
+ area, cat, shopId, venderId, paramJson
+ } = params;
+
let i = retry;
let isAvailable = false;
@@ -108,8 +114,7 @@ async function checkItemState(skuId, params, retry = 30) {
// type 5 plus 专用
// state === 4 抢购, 此时可以添加购物车
const { yuyueInfo = {}, stockInfo = {} } = yuyue;
- const isStock =
- [33, 40].includes(stockInfo.stockState) && stockInfo.isStock;
+ const isStock = [33, 40].includes(stockInfo.stockState) && stockInfo.isStock;
if (yuyueInfo.state == '4' && isStock) {
isAvailable = true;
break;
@@ -147,7 +152,14 @@ async function checkItemState(skuId, params, retry = 30) {
* @param {*} skuId
* 从购物车提交订单
*/
-async function submitOrderFromShoppingCart(date, skuIds, params = {}, area) {
+async function submitOrderFromShoppingCart(
+ date,
+ skuIds,
+ params = {},
+ area,
+ submitTimes,
+ maxWaitingMS
+) {
const notInCartIds = await isSkuInCart(skuIds, area);
const skuIdsSet = new Set(skuIds);
for (let i = 0; i < skuIds.length; i++) {
@@ -191,14 +203,18 @@ async function submitOrderFromShoppingCart(date, skuIds, params = {}, area) {
if (skuIdsSet.size === 0) {
console.log('没有可抢购的skuId');
process.exit(1);
+ } else if (skuIdsSet.size > 1) {
+ console.log('发现你添加了多个商品, 如果其中一个无货则整个订单会提交失败');
+ console.log('此流程一次最好抢购一个容易成功哦(也不可同一账号多开), 可以多账号多开');
}
await timer(date, async () => {
let isAvailable = false;
- // 不要更改 7, 超过七很容易触发京东频率限制
+ // !!不要更改大于 7, 超过七会触发京东频率限制!!
let i = 7;
let loopTime = 0;
const checkoutPageTime = new Date();
+ const waitCheckoutPageDone = maxWaitingMS || 800;
while (i--) {
try {
await Promise.race([
@@ -211,9 +227,7 @@ async function submitOrderFromShoppingCart(date, skuIds, params = {}, area) {
);
}
}),
- new Promise((_, r) =>
- setTimeout(r, 500, '请求结算页面超过500ms, 准备重试')
- ),
+ new Promise((_, r) => setTimeout(r, waitCheckoutPageDone, `请求结算页面超过${waitCheckoutPageDone}ms, 准备重试`)),
]);
isAvailable = true;
console.log('访问结算页面成功, 准备提交订单');
@@ -233,24 +247,19 @@ async function submitOrderFromShoppingCart(date, skuIds, params = {}, area) {
if (!isAvailable) {
console.log('访问结算页面彻底失败, 溜了');
console.log(
- `访问订单结算时间:${checkoutPageTime.toLocaleTimeString('en-US', {
- hour12: false,
- })}.${checkoutPageTime.getMilliseconds()}`
+ `访问订单结算时间:${dayjs(checkoutPageTime).format('YYYY-MM-DD HH:mm:ss.SSS')}`
);
process.exit();
}
- i = 10;
+ i = submitTimes || 10;
const submitOrderTime = new Date();
while (i--) {
try {
const res = await helper.submitCartOrder();
if (res.success) {
const now = new Date();
- const text = `订单提交成功!订单号:${
- res.orderId
- },时间:${now.toLocaleTimeString('en-US', {
- hour12: false,
- })}.${now.getMilliseconds()}`;
+ const text = `订单提交成功!订单号:${res.orderId
+ },时间:${dayjs(now).format('YYYY-MM-DD HH:mm:ss.SSS')}`;
console.log(text);
await helper.sendToWechat(text);
process.exit();
@@ -262,7 +271,7 @@ async function submitOrderFromShoppingCart(date, skuIds, params = {}, area) {
}
});
if (skuIdsSet.size === 0) {
- console.log(`所有sku都没库存了`);
+ console.log('所有sku都没库存了');
return;
}
}
@@ -274,9 +283,7 @@ async function submitOrderFromShoppingCart(date, skuIds, params = {}, area) {
await sleep(1000);
}
console.log(
- `提交订单开始时间:${submitOrderTime.toLocaleTimeString('en-US', {
- hour12: false,
- })}.${submitOrderTime.getMilliseconds()}`
+ `提交订单开始时间:${dayjs(submitOrderTime).format('YYYY-MM-DD HH:mm:ss.SSS')}`
);
});
}
@@ -336,11 +343,25 @@ async function getPageConfig(skuId, areaId) {
const specialAttrs = JSON.parse(text.match(/specialAttrs:(.*?]),/i)[1]);
// 秒杀则是从 item 详情页面直接提交订单
const isKO = specialAttrs.indexOf('isKO') !== -1;
- return [isKO, { cat, venderId, shopId, paramJson, area }];
+ return [
+ isKO,
+ {
+ cat,
+ venderId,
+ shopId,
+ paramJson,
+ area,
+ },
+ ];
}
// 提交订单, 此流程对应从购物车提交订单流程
-async function submitOrderProcess(date, skuId, areaId, forceKO = false) {
+async function submitOrderProcess(
+ date,
+ skuId,
+ areaId,
+ { forceKO = false, submitTimes, maxWaitingMS }
+) {
if (!areaId) {
console.log('no areaId!请确认填写了正确到areaId');
process.exit(1);
@@ -358,33 +379,38 @@ async function submitOrderProcess(date, skuId, areaId, forceKO = false) {
// < 0, 0
// > 6, 6
// range 0-6
- let m =
- beforeRunTaskMinues < 2
- ? 2
- : beforeRunTaskMinues < 6
+ let m = beforeRunTaskMinues < 2
+ ? 2
+ : beforeRunTaskMinues < 6
? beforeRunTaskMinues
: 6;
if (m === 2) {
await Promise.all(
- skuIds.map(skuId => {
- return getPageConfig(skuId, areaId)
- .then(([isKO, params]) => {
- if (isKO || forceKO) {
- isKOSet.add(skuId);
- }
- allSKUParam[skuId] = params;
- })
- .catch(_ => {
- errorSet.add(skuId);
- console.log(`${skuId},访问详情页出错`);
- });
- })
+ skuIds.map(skuId => getPageConfig(skuId, areaId)
+ .then(([isKO, params]) => {
+ if (isKO || forceKO) {
+ isKOSet.add(skuId);
+ }
+ allSKUParam[skuId] = params;
+ })
+ .catch(_ => {
+ errorSet.add(skuId);
+ console.log(`${skuId},访问详情页出错`);
+ }))
);
} else {
await new Promise(resolve => {
- let id = setInterval(async () => {
+ let printPoints = false;
+ const id = setInterval(async () => {
const now = Date.now();
+ printPoints = !printPoints;
+ process.stdout.write('\r\x1b[K');
+ process.stdout.write('当前时间:');
+ process.stdout.write(dayjs(now).format('YYYY-MM-DD HH:mm:ss.SSS'));
+ if (printPoints) {
+ process.stdout.write('...');
+ }
if (now + m * 60 * 1000 >= date) {
for (let i = 0; i < skuIds.length; i++) {
const skuId = skuIds[i];
@@ -426,7 +452,7 @@ async function submitOrderProcess(date, skuId, areaId, forceKO = false) {
doneWork: 'forkKO',
items: KOSkuIds.map(skuId => ({
skuId,
- date: date,
+ date,
param: allSKUParam[skuId],
areaId,
})),
@@ -435,7 +461,7 @@ async function submitOrderProcess(date, skuId, areaId, forceKO = false) {
return;
}
if (cartSkuIds.length > 0) {
- submitOrderFromShoppingCart(date, cartSkuIds, allSKUParam, areaId);
+ submitOrderFromShoppingCart(date, cartSkuIds, allSKUParam, areaId, submitTimes, maxWaitingMS);
}
}
diff --git a/package.json b/package.json
index 3bf6646..c569b81 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,10 @@
"tough-cookie": "^3.0.1"
},
"devDependencies": {
+ "eslint": "^7.20.0",
+ "eslint-config-airbnb-base": "^14.2.1",
+ "eslint-plugin-import": "^2.22.1",
+ "eslint-plugin-prettier": "^3.3.1",
"jest": "^26.6.3"
}
}
diff --git a/tasks-pool.js b/tasks-pool.js
index b05dd2d..05377a7 100644
--- a/tasks-pool.js
+++ b/tasks-pool.js
@@ -1,24 +1,37 @@
-// 年 月 日 时 分 秒 毫秒
-// 2020, 0-11, 1-31, 0-24, 0-60 0-60 0-1000
-// 例如 2020-3-4 10:00:00.400
-// (2020, 2, 4, 10, 0, 0, 400)
+// 年 月 日 时 分 秒 毫秒
+// 2020, 0-11, 1-31, 0-24, 0-60 0-60 0-1000
+// 如
+// new Date(2020, 2, 4, 10, 0, 0, 400).getTime()
+// 等于 2020-3-4 10:00:00.400
// 修改使用的时间
-// 2020/3/3 10:00:00.400
-const dd1 = new Date(2021, 0, 14, 9, 59, 59, 300).getTime();
-const dd2 = new Date(2021, 0, 11, 11, 00, 00, 000).getTime();
-// 修改这里, 添加skuId, 和抢购时间 date, 需要更改 月/日 时:分:秒:毫秒
+// **日期说明** 1-12月
+// 0表示是一月, 11表示是12月
+// 2020/1/1 10:00:00.400
+const dd1 = new Date(2020, 0, 1, 10, 0, 0, 400).getTime();
+// 2020/2/3 20:00:00.400
+const dd2 = new Date(2020, 1, 3, 20, 0, 0, 400).getTime();
+// 2020/12/3 21:00:00.400
+const dd3 = new Date(2020, 11, 3, 21, 0, 0, 400).getTime();
+
+// 修改这里, 添加skuId, 抢购时间 date, 强制使用秒杀流程 forceKO(已经不推荐使用, 程序自动会判断), areaId,
+// 选填项 submitTimes, maxWaitingMS
+// 需要更改 年/月/日 时:分:秒.毫秒
// skuId 获取方法, 打开任意一个商品详情页如 `https://item.jd.com/100011521400.html`, 则 `100011521400` 就是其skuId
-// https://item.jd.com/100015062660.html#crumb-wrap
exports.pool = [
- { skuId: '100012043978', date: dd1, areaId: '2_2825_51936' },
- {
- skuId: ['100012043978', '100016091234'],
- date: dd1,
- areaId: '2_2825_51936',
- },
- // { skuId: '100016091234', date: dd2, areaId: '2_2825_51936' },
- // { skuId: '100011621642', date: dd2 },
-];
+ // 1 *现在必须设置areaId*
+ // 如果上面 `config.js`中已经配置过了, 此处可以不用再配置`areaId`, areaId 获取在第 5 步骤说明
+ // 2 forceKO: true/false (废弃不用)
+ // 3 此脚本也可在非预约抢购流程中的秒杀(到时间变价那种)使用,为防止提交原价订单, 可配置提交订单重试次数 推荐 2-3 次(不明白的忽略)
+ // 4 如果抢购过程中出现 `请求结算页面超过xxx ms`, 请增大maxWaitingMS, 建议1000-2000之间, 不设置默认 800
+ { skuId: '100011621642', date: dd1, areaId: `2_2825_51936` },
+ // { skuId: '10022991959725', areaId: `2_2825_51936`, date: dd1, submitTimes: 3, maxWaitingMS: 1000 },
+ // 不同时间的sku, 复制上述项修改值, 填写在下方
-exports.forceLogin = false;
+];
+// 设置要强制扫码登录(没搞懂使用场景的忽略此配置)
+// 说明: 因为 x 东, 24小时就要重新登录, 防止运行时登录状态有效
+// 抢购执行时 cookie 过期了, 就尴尬了.
+// true 强制扫码登录, 不使用当前已经存在本地的 cookie. 登录过后频繁重启时记得关闭
+// 否则一直要扫码
+exports.forceLogin = false;
\ No newline at end of file
diff --git a/timer.js b/timer.js
index 08e7b73..7c2784a 100644
--- a/timer.js
+++ b/timer.js
@@ -1,5 +1,6 @@
const fetch = require('node-fetch');
const config = require('./config');
+const dayjs = require('./dayjs.min.js');
const getDiffTime = async () => {
const old = Date.now();
@@ -24,11 +25,12 @@ module.exports = async (d, fn, im = false) => {
getDiffTime(),
]);
console.log(
- '多次请求中最快的一次与服务器时间差(根据这个值设置提前多少ms开始),',
+ '多次请求中最快的一次与服务器时间差,',
+ 'now - 请求往返/2 - jd服务器时间=',
diffTime
);
return new Promise(r => {
- console.log('waiting...等待时间到达', new Date(d).toLocaleString());
+ console.log('等待时间到达:', dayjs(d).format('YYYY-MM-DD HH:mm:ss.SSS'));
while (true) {
if (Date.now() - diffTime >= d) {
r(fn());
diff --git a/yarn.lock b/yarn.lock
index 3860dc9..cb6f824 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,9 +2,9 @@
# yarn lockfile v1
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.11":
+"@babel/code-frame@7.12.11", "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.11":
version "7.12.11"
- resolved "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
+ resolved "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.11.tgz?cache=0&sync_timestamp=1612314635887&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
integrity sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=
dependencies:
"@babel/highlight" "^7.10.4"
@@ -285,6 +285,22 @@
exec-sh "^0.3.2"
minimist "^1.2.0"
+"@eslint/eslintrc@^0.3.0":
+ version "0.3.0"
+ resolved "https://registry.npm.taobao.org/@eslint/eslintrc/download/@eslint/eslintrc-0.3.0.tgz#d736d6963d7003b6514e6324bec9c602ac340318"
+ integrity sha1-1zbWlj1wA7ZRTmMkvsnGAqw0Axg=
+ dependencies:
+ ajv "^6.12.4"
+ debug "^4.1.1"
+ espree "^7.3.0"
+ globals "^12.1.0"
+ ignore "^4.0.6"
+ import-fresh "^3.2.1"
+ js-yaml "^3.13.1"
+ lodash "^4.17.20"
+ minimatch "^3.0.4"
+ strip-json-comments "^3.1.1"
+
"@istanbuljs/load-nyc-config@^1.0.0":
version "1.1.0"
resolved "https://registry.npm.taobao.org/@istanbuljs/load-nyc-config/download/@istanbuljs/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
@@ -824,6 +840,11 @@
dependencies:
"@types/istanbul-lib-report" "*"
+"@types/json5@^0.0.29":
+ version "0.0.29"
+ resolved "https://registry.npm.taobao.org/@types/json5/download/@types/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
+ integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
+
"@types/node@*":
version "14.14.22"
resolved "https://registry.npm.taobao.org/@types/node/download/@types/node-14.14.22.tgz?cache=0&sync_timestamp=1611167664149&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18"
@@ -869,19 +890,24 @@ acorn-globals@^6.0.0:
acorn "^7.1.1"
acorn-walk "^7.1.1"
+acorn-jsx@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
+ integrity sha1-/IZh4Rt6wVOcR9v+oucrOvNNJns=
+
acorn-walk@^7.1.1:
version "7.2.0"
resolved "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
integrity sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=
-acorn@^7.1.1:
+acorn@^7.1.1, acorn@^7.4.0:
version "7.4.1"
- resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1611561113015&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
+ resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
integrity sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=
-ajv@^6.12.3:
+ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4:
version "6.12.6"
- resolved "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1609583946707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+ resolved "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
integrity sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=
dependencies:
fast-deep-equal "^3.1.1"
@@ -889,6 +915,21 @@ ajv@^6.12.3:
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
+ajv@^7.0.2:
+ version "7.1.1"
+ resolved "https://registry.npm.taobao.org/ajv/download/ajv-7.1.1.tgz#1e6b37a454021fa9941713f38b952fc1c8d32a84"
+ integrity sha1-Hms3pFQCH6mUFxPzi5UvwcjTKoQ=
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ json-schema-traverse "^1.0.0"
+ require-from-string "^2.0.2"
+ uri-js "^4.2.2"
+
+ansi-colors@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
+ integrity sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=
+
ansi-escapes@^4.2.1:
version "4.3.1"
resolved "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61"
@@ -958,11 +999,31 @@ arr-union@^3.1.0:
resolved "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
+array-includes@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.npm.taobao.org/array-includes/download/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a"
+ integrity sha1-x/YZs4KtKvr1Mmzd/cCvxhr3aQo=
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.2"
+ get-intrinsic "^1.1.1"
+ is-string "^1.0.5"
+
array-unique@^0.3.2:
version "0.3.2"
resolved "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
+array.prototype.flat@^1.2.3:
+ version "1.2.4"
+ resolved "https://registry.npm.taobao.org/array.prototype.flat/download/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123"
+ integrity sha1-bvY4tDMSvUAbTGGZ/ex+LcnpoSM=
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.1"
+
asn1@~0.2.3:
version "0.2.4"
resolved "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
@@ -980,6 +1041,11 @@ assign-symbols@^1.0.0:
resolved "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
+astral-regex@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/astral-regex/download/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
+ integrity sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=
+
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -1172,6 +1238,14 @@ cache-base@^1.0.1:
union-value "^1.0.0"
unset-value "^1.0.0"
+call-bind@^1.0.0, call-bind@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npm.taobao.org/call-bind/download/call-bind-1.0.2.tgz?cache=0&sync_timestamp=1610402811207&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcall-bind%2Fdownload%2Fcall-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
+ integrity sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=
+ dependencies:
+ function-bind "^1.1.1"
+ get-intrinsic "^1.0.2"
+
callsites@^3.0.0:
version "3.1.0"
resolved "https://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz?cache=0&sync_timestamp=1606706835556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcallsites%2Fdownload%2Fcallsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
@@ -1309,6 +1383,16 @@ concat-map@0.0.1:
resolved "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+confusing-browser-globals@^1.0.10:
+ version "1.0.10"
+ resolved "https://registry.npm.taobao.org/confusing-browser-globals/download/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59"
+ integrity sha1-MNHn89G4grJexJM9HRraw1PSClk=
+
+contains-path@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npm.taobao.org/contains-path/download/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
+ integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=
+
convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
version "1.7.0"
resolved "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
@@ -1342,7 +1426,7 @@ cross-spawn@^6.0.0:
shebang-command "^1.2.0"
which "^1.2.9"
-cross-spawn@^7.0.0:
+cross-spawn@^7.0.0, cross-spawn@^7.0.2:
version "7.0.3"
resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
integrity sha1-9zqFudXUHQRVUcF34ogtSshXKKY=
@@ -1384,16 +1468,16 @@ data-urls@^2.0.0:
whatwg-mimetype "^2.3.0"
whatwg-url "^8.0.0"
-debug@^2.2.0, debug@^2.3.3:
+debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
version "2.6.9"
- resolved "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ resolved "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566548985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
integrity sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=
dependencies:
ms "2.0.0"
-debug@^4.1.0, debug@^4.1.1:
+debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
version "4.3.1"
- resolved "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566551397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
+ resolved "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566548985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
integrity sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=
dependencies:
ms "2.1.2"
@@ -1413,7 +1497,7 @@ decode-uri-component@^0.2.0:
resolved "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
-deep-is@~0.1.3:
+deep-is@^0.1.3, deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
@@ -1423,6 +1507,13 @@ deepmerge@^4.2.2:
resolved "https://registry.npm.taobao.org/deepmerge/download/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
integrity sha1-RNLqNnm49NT/ujPwPYZfwee/SVU=
+define-properties@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
+ integrity sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=
+ dependencies:
+ object-keys "^1.0.12"
+
define-property@^0.2.5:
version "0.2.5"
resolved "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
@@ -1460,6 +1551,21 @@ diff-sequences@^26.6.2:
resolved "https://registry.npm.taobao.org/diff-sequences/download/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1"
integrity sha1-SLqZFX3hkjQS7tQdtrbUqpynwLE=
+doctrine@1.5.0:
+ version "1.5.0"
+ resolved "https://registry.npm.taobao.org/doctrine/download/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
+ integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=
+ dependencies:
+ esutils "^2.0.2"
+ isarray "^1.0.0"
+
+doctrine@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+ integrity sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=
+ dependencies:
+ esutils "^2.0.2"
+
dom-walk@^0.1.0:
version "0.1.1"
resolved "https://registry.npm.taobao.org/dom-walk/download/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018"
@@ -1497,13 +1603,49 @@ end-of-stream@^1.1.0:
dependencies:
once "^1.4.0"
-error-ex@^1.3.1:
+enquirer@^2.3.5:
+ version "2.3.6"
+ resolved "https://registry.npm.taobao.org/enquirer/download/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
+ integrity sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=
+ dependencies:
+ ansi-colors "^4.1.1"
+
+error-ex@^1.2.0, error-ex@^1.3.1:
version "1.3.2"
resolved "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
integrity sha1-tKxAZIEH/c3PriQvQovqihTU8b8=
dependencies:
is-arrayish "^0.2.1"
+es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2:
+ version "1.18.0-next.2"
+ resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.18.0-next.2.tgz#088101a55f0541f595e7e057199e27ddc8f3a5c2"
+ integrity sha1-CIEBpV8FQfWV5+BXGZ4n3cjzpcI=
+ dependencies:
+ call-bind "^1.0.2"
+ es-to-primitive "^1.2.1"
+ function-bind "^1.1.1"
+ get-intrinsic "^1.0.2"
+ has "^1.0.3"
+ has-symbols "^1.0.1"
+ is-callable "^1.2.2"
+ is-negative-zero "^2.0.1"
+ is-regex "^1.1.1"
+ object-inspect "^1.9.0"
+ object-keys "^1.1.1"
+ object.assign "^4.1.2"
+ string.prototype.trimend "^1.0.3"
+ string.prototype.trimstart "^1.0.3"
+
+es-to-primitive@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
+ integrity sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=
+ dependencies:
+ is-callable "^1.1.4"
+ is-date-object "^1.0.1"
+ is-symbol "^1.0.2"
+
escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
@@ -1526,16 +1668,163 @@ escodegen@^1.14.1:
optionalDependencies:
source-map "~0.6.1"
+eslint-config-airbnb-base@^14.2.1:
+ version "14.2.1"
+ resolved "https://registry.npm.taobao.org/eslint-config-airbnb-base/download/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e"
+ integrity sha1-ii6zhFXcWjElUBk7MZza7vBCzR4=
+ dependencies:
+ confusing-browser-globals "^1.0.10"
+ object.assign "^4.1.2"
+ object.entries "^1.1.2"
+
+eslint-import-resolver-node@^0.3.4:
+ version "0.3.4"
+ resolved "https://registry.npm.taobao.org/eslint-import-resolver-node/download/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717"
+ integrity sha1-hf+oGULCUBLYIxCW3fZ5wDBCxxc=
+ dependencies:
+ debug "^2.6.9"
+ resolve "^1.13.1"
+
+eslint-module-utils@^2.6.0:
+ version "2.6.0"
+ resolved "https://registry.npm.taobao.org/eslint-module-utils/download/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6"
+ integrity sha1-V569CU9Wr3eX0ZyYZsnJSGYpv6Y=
+ dependencies:
+ debug "^2.6.9"
+ pkg-dir "^2.0.0"
+
+eslint-plugin-import@^2.22.1:
+ version "2.22.1"
+ resolved "https://registry.npm.taobao.org/eslint-plugin-import/download/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702"
+ integrity sha1-CJbH5qDPRBCaLZe5WQPCu2iddwI=
+ dependencies:
+ array-includes "^3.1.1"
+ array.prototype.flat "^1.2.3"
+ contains-path "^0.1.0"
+ debug "^2.6.9"
+ doctrine "1.5.0"
+ eslint-import-resolver-node "^0.3.4"
+ eslint-module-utils "^2.6.0"
+ has "^1.0.3"
+ minimatch "^3.0.4"
+ object.values "^1.1.1"
+ read-pkg-up "^2.0.0"
+ resolve "^1.17.0"
+ tsconfig-paths "^3.9.0"
+
+eslint-plugin-prettier@^3.3.1:
+ version "3.3.1"
+ resolved "https://registry.npm.taobao.org/eslint-plugin-prettier/download/eslint-plugin-prettier-3.3.1.tgz#7079cfa2497078905011e6f82e8dd8453d1371b7"
+ integrity sha1-cHnPoklweJBQEeb4Lo3YRT0Tcbc=
+ dependencies:
+ prettier-linter-helpers "^1.0.0"
+
+eslint-scope@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
+ integrity sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=
+ dependencies:
+ esrecurse "^4.3.0"
+ estraverse "^4.1.1"
+
+eslint-utils@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npm.taobao.org/eslint-utils/download/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
+ integrity sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=
+ dependencies:
+ eslint-visitor-keys "^1.1.0"
+
+eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
+ integrity sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=
+
+eslint-visitor-keys@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
+ integrity sha1-If3I+82ceVzAMh8FY3AglXUVEag=
+
+eslint@^7.20.0:
+ version "7.20.0"
+ resolved "https://registry.npm.taobao.org/eslint/download/eslint-7.20.0.tgz#db07c4ca4eda2e2316e7aa57ac7fc91ec550bdc7"
+ integrity sha1-2wfEyk7aLiMW56pXrH/JHsVQvcc=
+ dependencies:
+ "@babel/code-frame" "7.12.11"
+ "@eslint/eslintrc" "^0.3.0"
+ ajv "^6.10.0"
+ chalk "^4.0.0"
+ cross-spawn "^7.0.2"
+ debug "^4.0.1"
+ doctrine "^3.0.0"
+ enquirer "^2.3.5"
+ eslint-scope "^5.1.1"
+ eslint-utils "^2.1.0"
+ eslint-visitor-keys "^2.0.0"
+ espree "^7.3.1"
+ esquery "^1.4.0"
+ esutils "^2.0.2"
+ file-entry-cache "^6.0.0"
+ functional-red-black-tree "^1.0.1"
+ glob-parent "^5.0.0"
+ globals "^12.1.0"
+ ignore "^4.0.6"
+ import-fresh "^3.0.0"
+ imurmurhash "^0.1.4"
+ is-glob "^4.0.0"
+ js-yaml "^3.13.1"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ levn "^0.4.1"
+ lodash "^4.17.20"
+ minimatch "^3.0.4"
+ natural-compare "^1.4.0"
+ optionator "^0.9.1"
+ progress "^2.0.0"
+ regexpp "^3.1.0"
+ semver "^7.2.1"
+ strip-ansi "^6.0.0"
+ strip-json-comments "^3.1.0"
+ table "^6.0.4"
+ text-table "^0.2.0"
+ v8-compile-cache "^2.0.3"
+
+espree@^7.3.0, espree@^7.3.1:
+ version "7.3.1"
+ resolved "https://registry.npm.taobao.org/espree/download/espree-7.3.1.tgz?cache=0&sync_timestamp=1607144161531&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
+ integrity sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y=
+ dependencies:
+ acorn "^7.4.0"
+ acorn-jsx "^5.3.1"
+ eslint-visitor-keys "^1.3.0"
+
esprima@^4.0.0, esprima@^4.0.1:
version "4.0.1"
resolved "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=
-estraverse@^4.2.0:
+esquery@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npm.taobao.org/esquery/download/esquery-1.4.0.tgz?cache=0&sync_timestamp=1612565659324&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
+ integrity sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=
+ dependencies:
+ estraverse "^5.1.0"
+
+esrecurse@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+ integrity sha1-eteWTWeauyi+5yzsY3WLHF0smSE=
+ dependencies:
+ estraverse "^5.2.0"
+
+estraverse@^4.1.1, estraverse@^4.2.0:
version "4.3.0"
resolved "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
integrity sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=
+estraverse@^5.1.0, estraverse@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
+ integrity sha1-MH30JUfmzHMk088DwVXVzbjFOIA=
+
esutils@^2.0.2:
version "2.0.3"
resolved "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
@@ -1658,12 +1947,17 @@ fast-deep-equal@^3.1.1:
resolved "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599651635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=
+fast-diff@^1.1.2:
+ version "1.2.0"
+ resolved "https://registry.npm.taobao.org/fast-diff/download/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
+ integrity sha1-c+4RmC2Gyq95WYKNUZz+kn+sXwM=
+
fast-json-stable-stringify@^2.0.0:
version "2.1.0"
resolved "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
integrity sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=
-fast-levenshtein@~2.0.6:
+fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
version "2.0.6"
resolved "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
@@ -1675,6 +1969,13 @@ fb-watchman@^2.0.0:
dependencies:
bser "2.1.1"
+file-entry-cache@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
+ integrity sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=
+ dependencies:
+ flat-cache "^3.0.4"
+
file-type@^9.0.0:
version "9.0.0"
resolved "https://registry.npm.taobao.org/file-type/download/file-type-9.0.0.tgz?cache=0&sync_timestamp=1582530107852&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-type%2Fdownload%2Ffile-type-9.0.0.tgz#a68d5ad07f486414dfb2c8866f73161946714a18"
@@ -1697,6 +1998,13 @@ fill-range@^7.0.1:
dependencies:
to-regex-range "^5.0.1"
+find-up@^2.0.0, find-up@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
+ dependencies:
+ locate-path "^2.0.0"
+
find-up@^4.0.0, find-up@^4.1.0:
version "4.1.0"
resolved "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
@@ -1705,6 +2013,19 @@ find-up@^4.0.0, find-up@^4.1.0:
locate-path "^5.0.0"
path-exists "^4.0.0"
+flat-cache@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.npm.taobao.org/flat-cache/download/flat-cache-3.0.4.tgz?cache=0&sync_timestamp=1604831825098&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflat-cache%2Fdownload%2Fflat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
+ integrity sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=
+ dependencies:
+ flatted "^3.1.0"
+ rimraf "^3.0.2"
+
+flatted@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.npm.taobao.org/flatted/download/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469"
+ integrity sha1-xLSJ6ACW2d8d/JfHmHGup8YXxGk=
+
for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
@@ -1746,6 +2067,11 @@ function-bind@^1.1.1:
resolved "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=
+functional-red-black-tree@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
+ integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
+
gensync@^1.0.0-beta.1:
version "1.0.0-beta.2"
resolved "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
@@ -1756,6 +2082,15 @@ get-caller-file@^2.0.1:
resolved "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=
+get-intrinsic@^1.0.2, get-intrinsic@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npm.taobao.org/get-intrinsic/download/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
+ integrity sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=
+ dependencies:
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.1"
+
get-package-type@^0.1.0:
version "0.1.0"
resolved "https://registry.npm.taobao.org/get-package-type/download/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
@@ -1787,6 +2122,13 @@ getpass@^0.1.1:
dependencies:
assert-plus "^1.0.0"
+glob-parent@^5.0.0:
+ version "5.1.1"
+ resolved "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
+ integrity sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=
+ dependencies:
+ is-glob "^4.0.1"
+
glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
version "7.1.6"
resolved "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
@@ -1812,6 +2154,18 @@ globals@^11.1.0:
resolved "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz?cache=0&sync_timestamp=1608440291189&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
integrity sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=
+globals@^12.1.0:
+ version "12.4.0"
+ resolved "https://registry.npm.taobao.org/globals/download/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
+ integrity sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg=
+ dependencies:
+ type-fest "^0.8.1"
+
+graceful-fs@^4.1.2:
+ version "4.2.6"
+ resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
+ integrity sha1-/wQLKwhTsjw9MQJ1I3BvGIXXa+4=
+
graceful-fs@^4.2.4:
version "4.2.4"
resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
@@ -1845,6 +2199,11 @@ has-flag@^4.0.0:
resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1577797756584&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
integrity sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=
+has-symbols@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
+ integrity sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=
+
has-value@^0.3.1:
version "0.3.1"
resolved "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
@@ -1933,6 +2292,19 @@ ieee754@^1.1.4:
resolved "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
integrity sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q=
+ignore@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
+ integrity sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=
+
+import-fresh@^3.0.0, import-fresh@^3.2.1:
+ version "3.3.0"
+ resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.3.0.tgz?cache=0&sync_timestamp=1608469520474&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+ integrity sha1-NxYsJfy566oublPVtNiM4X2eDCs=
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
import-local@^3.0.2:
version "3.0.2"
resolved "https://registry.npm.taobao.org/import-local/download/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6"
@@ -1988,6 +2360,11 @@ is-buffer@^1.1.5:
resolved "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
integrity sha1-76ouqdqg16suoTqXsritUf776L4=
+is-callable@^1.1.4, is-callable@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.3.tgz?cache=0&sync_timestamp=1612132958731&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e"
+ integrity sha1-ix4FALc6HXbHBIdjbzaOUZ3o244=
+
is-ci@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/is-ci/download/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
@@ -1995,9 +2372,9 @@ is-ci@^2.0.0:
dependencies:
ci-info "^2.0.0"
-is-core-module@^2.1.0:
+is-core-module@^2.1.0, is-core-module@^2.2.0:
version "2.2.0"
- resolved "https://registry.npm.taobao.org/is-core-module/download/is-core-module-2.2.0.tgz?cache=0&sync_timestamp=1606411666495&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-core-module%2Fdownload%2Fis-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
+ resolved "https://registry.npm.taobao.org/is-core-module/download/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
integrity sha1-lwN+89UiJNhRY/VZeytj2a/tmBo=
dependencies:
has "^1.0.3"
@@ -2016,6 +2393,11 @@ is-data-descriptor@^1.0.0:
dependencies:
kind-of "^6.0.0"
+is-date-object@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
+ integrity sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=
+
is-descriptor@^0.1.0:
version "0.1.6"
resolved "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
@@ -2051,6 +2433,11 @@ is-extendable@^1.0.1:
dependencies:
is-plain-object "^2.0.4"
+is-extglob@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+ integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+
is-fullwidth-code-point@^3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
@@ -2066,6 +2453,18 @@ is-generator-fn@^2.0.0:
resolved "https://registry.npm.taobao.org/is-generator-fn/download/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
integrity sha1-fRQK3DiarzARqPKipM+m+q3/sRg=
+is-glob@^4.0.0, is-glob@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
+ integrity sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=
+ dependencies:
+ is-extglob "^2.1.1"
+
+is-negative-zero@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.1.tgz?cache=0&sync_timestamp=1607123324574&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-negative-zero%2Fdownload%2Fis-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24"
+ integrity sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=
+
is-number@^3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
@@ -2090,6 +2489,14 @@ is-potential-custom-element-name@^1.0.0:
resolved "https://registry.npm.taobao.org/is-potential-custom-element-name/download/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397"
integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c=
+is-regex@^1.1.1:
+ version "1.1.2"
+ resolved "https://registry.npm.taobao.org/is-regex/download/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251"
+ integrity sha1-gcjr3k2xQvLPHFP8htakV4gmYlE=
+ dependencies:
+ call-bind "^1.0.2"
+ has-symbols "^1.0.1"
+
is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
@@ -2100,6 +2507,18 @@ is-stream@^2.0.0:
resolved "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
integrity sha1-venDJoDW+uBBKdasnZIc54FfeOM=
+is-string@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npm.taobao.org/is-string/download/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6"
+ integrity sha1-QEk+0ZjvP/R3uMf5L2ROyCpc06Y=
+
+is-symbol@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
+ integrity sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=
+ dependencies:
+ has-symbols "^1.0.1"
+
is-typedarray@^1.0.0, is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
@@ -2117,7 +2536,7 @@ is-wsl@^2.2.0:
dependencies:
is-docker "^2.0.0"
-isarray@1.0.0:
+isarray@1.0.0, isarray@^1.0.0:
version "1.0.0"
resolved "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
@@ -2640,16 +3059,33 @@ json-schema-traverse@^0.4.1:
resolved "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz?cache=0&sync_timestamp=1608000211395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
integrity sha1-afaofZUTq4u4/mO9sJecRI5oRmA=
+json-schema-traverse@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-1.0.0.tgz?cache=0&sync_timestamp=1607998042332&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
+ integrity sha1-rnvLNlard6c7pcSb9lTzjmtoYOI=
+
json-schema@0.2.3:
version "0.2.3"
resolved "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz?cache=0&sync_timestamp=1609554170284&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
+json-stable-stringify-without-jsonify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+ integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
+
json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
+json5@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
+ integrity sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=
+ dependencies:
+ minimist "^1.2.0"
+
json5@^2.1.2:
version "2.1.3"
resolved "https://registry.npm.taobao.org/json5/download/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43"
@@ -2706,6 +3142,14 @@ leven@^3.1.0:
resolved "https://registry.npm.taobao.org/leven/download/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
integrity sha1-d4kd6DQGTMy6gq54QrtrFKE+1/I=
+levn@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.npm.taobao.org/levn/download/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+ integrity sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=
+ dependencies:
+ prelude-ls "^1.2.1"
+ type-check "~0.4.0"
+
levn@~0.3.0:
version "0.3.0"
resolved "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
@@ -2733,6 +3177,24 @@ load-bmfont@^1.3.1, load-bmfont@^1.4.0:
xhr "^2.0.1"
xtend "^4.0.0"
+load-json-file@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/load-json-file/download/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
+ integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ strip-bom "^3.0.0"
+
+locate-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
+ dependencies:
+ p-locate "^2.0.0"
+ path-exists "^3.0.0"
+
locate-path@^5.0.0:
version "5.0.0"
resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
@@ -2750,6 +3212,11 @@ lodash@^4.17.19:
resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
integrity sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=
+lodash@^4.17.20:
+ version "4.17.21"
+ resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+ integrity sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=
+
lru-cache@^6.0.0:
version "6.0.0"
resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
@@ -2940,9 +3407,9 @@ node-notifier@^8.0.0:
uuid "^8.3.0"
which "^2.0.2"
-normalize-package-data@^2.5.0:
+normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:
version "2.5.0"
- resolved "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz?cache=0&sync_timestamp=1602547447569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
+ resolved "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
integrity sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=
dependencies:
hosted-git-info "^2.1.4"
@@ -2995,6 +3462,16 @@ object-copy@^0.1.0:
define-property "^0.2.5"
kind-of "^3.0.3"
+object-inspect@^1.9.0:
+ version "1.9.0"
+ resolved "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.9.0.tgz?cache=0&sync_timestamp=1606804216937&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a"
+ integrity sha1-yQUh104RJ7ZyZt7TOUrWEWmGUzo=
+
+object-keys@^1.0.12, object-keys@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+ integrity sha1-HEfyct8nfzsdrwYWd9nILiMixg4=
+
object-visit@^1.0.0:
version "1.0.1"
resolved "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
@@ -3002,6 +3479,26 @@ object-visit@^1.0.0:
dependencies:
isobject "^3.0.0"
+object.assign@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
+ integrity sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+ has-symbols "^1.0.1"
+ object-keys "^1.1.1"
+
+object.entries@^1.1.2:
+ version "1.1.3"
+ resolved "https://registry.npm.taobao.org/object.entries/download/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6"
+ integrity sha1-xgHH8Wi2I3RUGgfdvT4tXk93EaY=
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.1"
+ has "^1.0.3"
+
object.pick@^1.3.0:
version "1.3.0"
resolved "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
@@ -3009,6 +3506,16 @@ object.pick@^1.3.0:
dependencies:
isobject "^3.0.1"
+object.values@^1.1.1:
+ version "1.1.3"
+ resolved "https://registry.npm.taobao.org/object.values/download/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee"
+ integrity sha1-6qix4XWJ8C9pjbCT98Yu4WmXQu4=
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.2"
+ has "^1.0.3"
+
omggif@^1.0.9:
version "1.0.10"
resolved "https://registry.npm.taobao.org/omggif/download/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19"
@@ -3040,6 +3547,18 @@ optionator@^0.8.1:
type-check "~0.3.2"
word-wrap "~1.2.3"
+optionator@^0.9.1:
+ version "0.9.1"
+ resolved "https://registry.npm.taobao.org/optionator/download/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
+ integrity sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=
+ dependencies:
+ deep-is "^0.1.3"
+ fast-levenshtein "^2.0.6"
+ levn "^0.4.1"
+ prelude-ls "^1.2.1"
+ type-check "^0.4.0"
+ word-wrap "^1.2.3"
+
p-each-series@^2.1.0:
version "2.2.0"
resolved "https://registry.npm.taobao.org/p-each-series/download/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a"
@@ -3050,6 +3569,13 @@ p-finally@^1.0.0:
resolved "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
+p-limit@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1606288370125&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
+ integrity sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=
+ dependencies:
+ p-try "^1.0.0"
+
p-limit@^2.2.0:
version "2.3.0"
resolved "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1606288362378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
@@ -3057,6 +3583,13 @@ p-limit@^2.2.0:
dependencies:
p-try "^2.0.0"
+p-locate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
+ dependencies:
+ p-limit "^1.1.0"
+
p-locate@^4.1.0:
version "4.1.0"
resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
@@ -3064,6 +3597,11 @@ p-locate@^4.1.0:
dependencies:
p-limit "^2.2.0"
+p-try@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+ integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
+
p-try@^2.0.0:
version "2.2.0"
resolved "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
@@ -3074,6 +3612,13 @@ pako@^1.0.5:
resolved "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz?cache=0&sync_timestamp=1580284264887&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpako%2Fdownload%2Fpako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
integrity sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=
+parent-module@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/parent-module/download/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+ integrity sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=
+ dependencies:
+ callsites "^3.0.0"
+
parse-bmfont-ascii@^1.0.3:
version "1.0.6"
resolved "https://registry.npm.taobao.org/parse-bmfont-ascii/download/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285"
@@ -3097,6 +3642,13 @@ parse-headers@^2.0.0:
resolved "https://registry.npm.taobao.org/parse-headers/download/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515"
integrity sha1-Xo51Ejg9FAugLwx6qfSbQ5nJJRU=
+parse-json@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz?cache=0&sync_timestamp=1610966676829&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=
+ dependencies:
+ error-ex "^1.2.0"
+
parse-json@^5.0.0:
version "5.2.0"
resolved "https://registry.npm.taobao.org/parse-json/download/parse-json-5.2.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
@@ -3117,6 +3669,11 @@ pascalcase@^0.1.1:
resolved "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
+path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+ integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
+
path-exists@^4.0.0:
version "4.0.0"
resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
@@ -3142,6 +3699,13 @@ path-parse@^1.0.6:
resolved "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=
+path-type@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/path-type/download/path-type-2.0.0.tgz?cache=0&sync_timestamp=1611752074264&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
+ integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=
+ dependencies:
+ pify "^2.0.0"
+
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
@@ -3157,6 +3721,11 @@ picomatch@^2.0.4, picomatch@^2.0.5:
resolved "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
integrity sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=
+pify@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+ integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
+
pirates@^4.0.1:
version "4.0.1"
resolved "https://registry.npm.taobao.org/pirates/download/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87"
@@ -3171,6 +3740,13 @@ pixelmatch@^4.0.2:
dependencies:
pngjs "^3.0.0"
+pkg-dir@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
+ integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=
+ dependencies:
+ find-up "^2.1.0"
+
pkg-dir@^4.2.0:
version "4.2.0"
resolved "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
@@ -3188,11 +3764,23 @@ posix-character-classes@^0.1.0:
resolved "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
+prelude-ls@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+ integrity sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=
+
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
+prettier-linter-helpers@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npm.taobao.org/prettier-linter-helpers/download/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
+ integrity sha1-0j1B/hN1ZG3i0BBNNFSjAIgCz3s=
+ dependencies:
+ fast-diff "^1.1.2"
+
pretty-format@^26.6.2:
version "26.6.2"
resolved "https://registry.npm.taobao.org/pretty-format/download/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93"
@@ -3208,6 +3796,11 @@ process@~0.5.1:
resolved "https://registry.npm.taobao.org/process/download/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf"
integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=
+progress@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
+ integrity sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=
+
prompts@^2.0.1:
version "2.4.0"
resolved "https://registry.npm.taobao.org/prompts/download/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7"
@@ -3249,6 +3842,14 @@ react-is@^17.0.1:
resolved "https://registry.npm.taobao.org/react-is/download/react-is-17.0.1.tgz?cache=0&sync_timestamp=1610380768320&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339"
integrity sha1-WzUxvXamRaTJ+25pPtNkGeMwEzk=
+read-pkg-up@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
+ integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=
+ dependencies:
+ find-up "^2.0.0"
+ read-pkg "^2.0.0"
+
read-pkg-up@^7.0.1:
version "7.0.1"
resolved "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-7.0.1.tgz?cache=0&sync_timestamp=1609905367026&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
@@ -3258,6 +3859,15 @@ read-pkg-up@^7.0.1:
read-pkg "^5.2.0"
type-fest "^0.8.1"
+read-pkg@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/read-pkg/download/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
+ integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=
+ dependencies:
+ load-json-file "^2.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^2.0.0"
+
read-pkg@^5.2.0:
version "5.2.0"
resolved "https://registry.npm.taobao.org/read-pkg/download/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
@@ -3281,6 +3891,11 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
+regexpp@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npm.taobao.org/regexpp/download/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"
+ integrity sha1-IG0K0KVkjP+9uK5GQ489xRyfeOI=
+
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
@@ -3343,6 +3958,11 @@ require-directory@^2.1.1:
resolved "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
+require-from-string@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npm.taobao.org/require-from-string/download/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
+ integrity sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=
+
require-main-filename@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
@@ -3355,6 +3975,11 @@ resolve-cwd@^3.0.0:
dependencies:
resolve-from "^5.0.0"
+resolve-from@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz?cache=0&sync_timestamp=1610371330596&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+ integrity sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=
+
resolve-from@^5.0.0:
version "5.0.0"
resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
@@ -3373,12 +3998,20 @@ resolve@^1.10.0, resolve@^1.18.1:
is-core-module "^2.1.0"
path-parse "^1.0.6"
+resolve@^1.13.1, resolve@^1.17.0:
+ version "1.20.0"
+ resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz?cache=0&sync_timestamp=1613055183799&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
+ integrity sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=
+ dependencies:
+ is-core-module "^2.2.0"
+ path-parse "^1.0.6"
+
ret@~0.1.10:
version "0.1.15"
resolved "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz?cache=0&sync_timestamp=1609746607648&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fret%2Fdownload%2Fret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
integrity sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=
-rimraf@^3.0.0:
+rimraf@^3.0.0, rimraf@^3.0.2:
version "3.0.2"
resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
integrity sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=
@@ -3449,9 +4082,9 @@ semver@^6.0.0, semver@^6.3.0:
resolved "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=
-semver@^7.3.2:
+semver@^7.2.1, semver@^7.3.2:
version "7.3.4"
- resolved "https://registry.npm.taobao.org/semver/download/semver-7.3.4.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97"
+ resolved "https://registry.npm.taobao.org/semver/download/semver-7.3.4.tgz?cache=0&sync_timestamp=1606854311104&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97"
integrity sha1-J6qn0uTKdkUvmNOt0JOnLJQ+3Jc=
dependencies:
lru-cache "^6.0.0"
@@ -3515,6 +4148,15 @@ slash@^3.0.0:
resolved "https://registry.npm.taobao.org/slash/download/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
integrity sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=
+slice-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
+ integrity sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms=
+ dependencies:
+ ansi-styles "^4.0.0"
+ astral-regex "^2.0.0"
+ is-fullwidth-code-point "^3.0.0"
+
snapdragon-node@^2.0.1:
version "2.1.1"
resolved "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -3674,6 +4316,22 @@ string-width@^4.1.0, string-width@^4.2.0:
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.0"
+string.prototype.trimend@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
+ integrity sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+
+string.prototype.trimstart@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.4.tgz?cache=0&sync_timestamp=1614127357785&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"
+ integrity sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+
strip-ansi@^6.0.0:
version "6.0.0"
resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
@@ -3681,6 +4339,11 @@ strip-ansi@^6.0.0:
dependencies:
ansi-regex "^5.0.0"
+strip-bom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+ integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
+
strip-bom@^4.0.0:
version "4.0.0"
resolved "https://registry.npm.taobao.org/strip-bom/download/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
@@ -3696,6 +4359,11 @@ strip-final-newline@^2.0.0:
resolved "https://registry.npm.taobao.org/strip-final-newline/download/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
integrity sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=
+strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+ integrity sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=
+
supports-color@^5.3.0:
version "5.5.0"
resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1611394043517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
@@ -3723,6 +4391,16 @@ symbol-tree@^3.2.4:
resolved "https://registry.npm.taobao.org/symbol-tree/download/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
integrity sha1-QwY30ki6d+B4iDlR+5qg7tfGP6I=
+table@^6.0.4:
+ version "6.0.7"
+ resolved "https://registry.npm.taobao.org/table/download/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34"
+ integrity sha1-5FiX/7zBvPnoqHv0IPLJ5aelKjQ=
+ dependencies:
+ ajv "^7.0.2"
+ lodash "^4.17.20"
+ slice-ansi "^4.0.0"
+ string-width "^4.2.0"
+
terminal-link@^2.0.0:
version "2.1.1"
resolved "https://registry.npm.taobao.org/terminal-link/download/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
@@ -3740,6 +4418,11 @@ test-exclude@^6.0.0:
glob "^7.1.4"
minimatch "^3.0.4"
+text-table@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+ integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+
throat@^5.0.0:
version "5.0.0"
resolved "https://registry.npm.taobao.org/throat/download/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b"
@@ -3821,6 +4504,16 @@ tr46@^2.0.2:
dependencies:
punycode "^2.1.1"
+tsconfig-paths@^3.9.0:
+ version "3.9.0"
+ resolved "https://registry.npm.taobao.org/tsconfig-paths/download/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b"
+ integrity sha1-CYVHpsREiAfo/Ljq4IEGTumjyQs=
+ dependencies:
+ "@types/json5" "^0.0.29"
+ json5 "^1.0.1"
+ minimist "^1.2.0"
+ strip-bom "^3.0.0"
+
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
@@ -3833,6 +4526,13 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
resolved "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
+type-check@^0.4.0, type-check@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npm.taobao.org/type-check/download/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+ integrity sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=
+ dependencies:
+ prelude-ls "^1.2.1"
+
type-check@~0.3.2:
version "0.3.2"
resolved "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
@@ -3919,6 +4619,11 @@ uuid@^8.3.0:
resolved "https://registry.npm.taobao.org/uuid/download/uuid-8.3.2.tgz?cache=0&sync_timestamp=1607460052228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=
+v8-compile-cache@^2.0.3:
+ version "2.2.0"
+ resolved "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132"
+ integrity sha1-lHHvo++RKNL3xqfKOcTda1BVsTI=
+
v8-to-istanbul@^7.0.0:
version "7.1.0"
resolved "https://registry.npm.taobao.org/v8-to-istanbul/download/v8-to-istanbul-7.1.0.tgz#5b95cef45c0f83217ec79f8fc7ee1c8b486aee07"
@@ -4016,7 +4721,7 @@ which@^2.0.1, which@^2.0.2:
dependencies:
isexe "^2.0.0"
-word-wrap@~1.2.3:
+word-wrap@^1.2.3, word-wrap@~1.2.3:
version "1.2.3"
resolved "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
integrity sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=