活动:微信支付

This commit is contained in:
qiaoxin
2021-05-12 17:57:38 +08:00
parent 7e93c2e6a3
commit 2fc5017af8
11 changed files with 915 additions and 52 deletions

View File

@@ -54,7 +54,7 @@ let app = pinus.createApp();
app.set('name', 'chatofpomelo-websocket');
// 加载数据库和redis
app.configure(function() {
app.configure(function () {
app.loadConfig('database', app.getBase() + '/config/database');
console.log('env:', app.get('env'));
console.log('db:', app.get('database'));
@@ -139,15 +139,15 @@ app.configure(ALL_ENVS, 'systimer', function () {
connector: pinus.connectors.hybridconnector,
useProtobuf: true
});
timeTaskService.init();
timeTaskService.init();
});
function errorHandler(err: Error, msg: any, resp: any,
session: FrontendOrBackendSession, cb: HandlerCallback) {
console.error(`${ pinus.app.serverId } error handler msg[${ JSON.stringify(msg) }] ,resp[${ JSON.stringify(resp) }] ,
to resolve unknown exception: sessionId:${ JSON.stringify(session.export()) } ,
error stack: ${ err.stack }`);
session: FrontendOrBackendSession, cb: HandlerCallback) {
console.error(`${pinus.app.serverId} error handler msg[${JSON.stringify(msg)}] ,resp[${JSON.stringify(resp)}] ,
to resolve unknown exception: sessionId:${JSON.stringify(session.export())} ,
error stack: ${err.stack}`);
if (!resp) {
resp = resResult(STATUS.GLOBAL_ERR);
}
@@ -155,10 +155,10 @@ function errorHandler(err: Error, msg: any, resp: any,
}
export function globalErrorHandler(err: Error, msg: any, resp: any,
session: FrontendOrBackendSession, cb: HandlerCallback) {
console.error(`${ pinus.app.serverId } globalErrorHandler msg[${ JSON.stringify(msg) }] ,resp[${ JSON.stringify(resp) }] ,
to resolve unknown exception: sessionId:${ JSON.stringify(session.export()) } ,
error stack: ${ err.stack }`);
session: FrontendOrBackendSession, cb: HandlerCallback) {
console.error(`${pinus.app.serverId} globalErrorHandler msg[${JSON.stringify(msg)}] ,resp[${JSON.stringify(resp)}] ,
to resolve unknown exception: sessionId:${JSON.stringify(session.export())} ,
error stack: ${err.stack}`);
if (cb) {
@@ -171,12 +171,12 @@ app.configure(ALL_ENVS, function () {
app.set(RESERVED.ERROR_HANDLER, errorHandler);
app.set(RESERVED.GLOBAL_ERROR_HANDLER, globalErrorHandler);
app.globalAfter((err: Error, routeRecord: RouteRecord, msg: any, session: FrontendOrBackendSession, resp: any, cb: HandlerCallback) => {
console.log('global after ', err, msg&&msg.route, msg&&JSON.stringify(msg.body), session&&session.get('roleId'))
console.log('global after ', err, msg && msg.route, msg && JSON.stringify(msg.body), session && session.get('roleId'))
})
app.globalBefore((routeRecord: RouteRecord, msg: any, session: FrontendOrBackendSession, cb: HandlerCallback) => {
if (msg.body === null) {
cb(new Error(`msg body ===null maybe protobuf check error uid:${ session.uid } ${ JSON.stringify(msg) }`), { code: 499 });
cb(new Error(`msg body ===null maybe protobuf check error uid:${session.uid} ${JSON.stringify(msg)}`), { code: 499 });
return;
}
cb(null);
@@ -188,6 +188,7 @@ app.configure(ALL_ENVS, function () {
app.route('gm', routeUtil.gm);
app.route('guild', routeUtil.guild);
app.route('activity', routeUtil.activity);
app.route('order', routeUtil.order);
// filter configures
app.filter(new pinus.filters.time());

View File

@@ -6,6 +6,7 @@ import { addReward, stringToRewardParam, useGiftPackage } from '../../../service
import { dicRMB } from '../../../pubUtils/dictionary/DicRMB';
import { UserOrderModel } from '../../../db/UserOrder';
import _ = require('underscore');
import { applyOrderWX, checkOrderWX } from '../../../services/pay/weixinPay';
export default function (app: Application) {
return new orderHandler(app);
@@ -40,13 +41,43 @@ export class orderHandler {
let price = productInfo.price;//价格
let productType = productInfo.type;//类型
let message = productInfo.message;//商品信息
let localOrderID = genCode(32);//本地订单号
let orderID = '';//平台订单号
//生成订单号
let orderInfo = await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType);
return resResult(STATUS.SUCCESS, { orderInfo, productInfo });
let sdkOrderInfo = null;//客户端需要的平台订单信息
switch (payType) {
case PAY_TYPE.WX:
{
//生成订单号
let weixinOrder = await applyOrderWX(localOrderID, price * 100, message);
if (weixinOrder.code == 0) {
console.log('微信下单失败')
return resResult(STATUS.APPLY_ORDER_ERROR);
}
sdkOrderInfo = weixinOrder.data;
orderID = weixinOrder.data.prepayid;//微信订单号
break;
}
case PAY_TYPE.ALI:
{
break;
}
case PAY_TYPE.APPLE:
{
break;
}
default:
console.log('未知支付类型');
return resResult(STATUS.NO_PAY_TYPE);
}
await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType);
return resResult(STATUS.SUCCESS, { orderInfo: sdkOrderInfo, productInfo, localOrderID });
}
@@ -104,6 +135,20 @@ export class orderHandler {
switch (payType) {
case PAY_TYPE.WX:
{
let weixinResult = await checkOrderWX(localOrderID);
if (weixinResult.code == 0) {
console.log('微信订单查询失败')
return resResult(STATUS.ORDER_ERROR);
}
if (parseInt(weixinResult.data.total_fee) / 100 != price) {
console.log('订单价格错误')
return resResult(STATUS.PRICE_ERROR);
}
if (weixinResult.data.trade_state != "SUCCESS" ||
weixinResult.data.result_code != "SUCCESS" ||
weixinResult.data.return_code != "SUCCESS") {
return resResult(STATUS.NO_PAY);
}
break;
}
case PAY_TYPE.ALI:

View File

@@ -0,0 +1,94 @@
import tenpay = require('tenpay');
import path = require('path');
/*
包名com.bantu.sgzzyz
APPIDwx1d3cd5cd2f065358
AppSecretebf099c41da57edf8693b5bb234d9b31
商户号1272966801
APISECRETABCabc328BantuPKU726BANTUMPRCghb
*/
const config = {
appid: 'wx1d3cd5cd2f065358',
mchid: '1272966801',
partnerKey: 'ABCabc328BantuPKU726BANTUMPRCghb',
pfx: require('fs').readFileSync(path.resolve(__dirname, '../../../../../key/weixinpay/apiclient_cert.p12')),
notify_url: "https://" + "10.29.176.166" + "/order/weixinpaycallback",//支付回调网址
spbill_create_ip: '127.0.0.1'
};
// 方式一
const api = new tenpay(config);
// 调试模式
// const api = new tenpay(config, true);
// 沙盒模式(用于微信支付验收)
// const sandboxAPI = await tenpay.sandbox(config);
/**
* 微信下单
*
* @param {number} price 价格订单金额(分)
* @param {string} message 商品信息
* @param {string} localOrderID 本地订单号
*
*/
export async function applyOrderWX(localOrderID: string, price: number, message: string) {
let data = {
out_trade_no: localOrderID,
body: message,//'商品简单描述',
total_fee: price,//'订单金额(分)',
}
console.log('applyOrderWX :', data)
let result = await api.getAppParams(data)
// { appid: 'wx1d3cd5cd2f065358',
// partnerid: '1272966801',
// prepayid: 'wx12171213153829021f7cfe9413f0a20000',//微信订单号
// package: 'Sign=WXPay',
// noncestr: 'OohMyaHNK0iP77uh',
// timestamp: '1620810734',
// sign: '7A1B41C577E78602344D03DE4A2F7B0A' }
console.log('applyOrderWX result: ', result)
if (result.appid == config.appid && result.partnerid == config.mchid) {
return { code: 1, data: result };
}
return { code: 0, data: JSON.stringify(result) };
}
/**
* 微信查询支付结果
*
* @param {number} serverId 区Id
* @param {string} roleId 角色Id
* @param {string} localOrderID 本地订单号
*
*/
export async function checkOrderWX(localOrderID: string) {
let data = {
out_trade_no: localOrderID,
}
console.log('checkOrderWX :', data)
let result = await api.orderQuery(data)
// { return_code: 'SUCCESS',
// return_msg: 'OK',
// result_code: 'SUCCESS',
// mch_id: '1272966801',
// appid: 'wx1d3cd5cd2f065358',
// device_info: '',
// trade_state: 'NOTPAY',
// total_fee: '6',
// out_trade_no: 'nMeyvwjJSmNXPmfGcr6kzalTR3jlp7jW',
// trade_state_desc: '订单未支付',
// nonce_str: 'aJevQOtSDgvNDbtQ',
// sign: '955CE5F8AA2F046DA66E0A5DA56B338A' }
console.log('checkOrderWX result: ', result)
if (result.appid == config.appid && result.mch_id == config.mchid) {
return { code: 1, data: result };
}
return { code: 0, data: JSON.stringify(result) };
}

View File

@@ -1,11 +1,11 @@
import { dispatch} from './dispatcher';
import { dispatch } from './dispatcher';
import { Session, Application } from 'pinus';
export function chat(session: Session, msg: any, app: Application, cb: (err: Error , serverId ?: string) => void) {
export function chat(session: Session, msg: any, app: Application, cb: (err: Error, serverId?: string) => void) {
let chatServers = app.getServersByType('chat');
if(!chatServers || chatServers.length === 0) {
if (!chatServers || chatServers.length === 0) {
cb(new Error('can not find chat servers.'));
return;
}
@@ -14,10 +14,10 @@ export function chat(session: Session, msg: any, app: Application, cb: (err: Err
cb(null, res.id);
}
export function battle(session: Session, msg: any, app: Application, cb: (err: Error , serverId ?: string) => void) {
export function battle(session: Session, msg: any, app: Application, cb: (err: Error, serverId?: string) => void) {
let battleServers = app.getServersByType('battle');
if(!battleServers || battleServers.length === 0) {
if (!battleServers || battleServers.length === 0) {
cb(new Error('can not find battle servers.'));
return;
}
@@ -43,10 +43,10 @@ export function battle(session: Session, msg: any, app: Application, cb: (err: E
}
export function guild(session: Session, msg: any, app: Application, cb: (err: Error , serverId ?: string) => void) {
export function guild(session: Session, msg: any, app: Application, cb: (err: Error, serverId?: string) => void) {
let guildServers = app.getServersByType('guild');
if(!guildServers || guildServers.length === 0) {
if (!guildServers || guildServers.length === 0) {
cb(new Error('can not find guild servers.'));
return;
}
@@ -56,36 +56,36 @@ export function guild(session: Session, msg: any, app: Application, cb: (err: Er
if (msg.args && msg.args.length > 0) {
for (let arg of msg.args) {
if (!arg.route) continue;
if (['guild.gateActivityHandler.getGateActivity',
'guild.gateActivityHandler.checkBattle', // 军团活动蛮夷入侵路由,按军团路由
'guild.gateActivityHandler.action',
'guild.gateActivityHandler.hitGate',
'guild.gateActivityHandler.battleEnd',
'guild.gateActivityHandler.debugGetPrivate',
'guild.gateActivityHandler.debugStartActivity',
'guild.gateActivityHandler.debugEndActivity'
].indexOf(arg.route) !== -1) {
rid = session.get('guildCode');
'guild.gateActivityHandler.checkBattle', // 军团活动蛮夷入侵路由,按军团路由
'guild.gateActivityHandler.action',
'guild.gateActivityHandler.hitGate',
'guild.gateActivityHandler.battleEnd',
'guild.gateActivityHandler.debugGetPrivate',
'guild.gateActivityHandler.debugStartActivity',
'guild.gateActivityHandler.debugEndActivity'
].indexOf(arg.route) !== -1) {
rid = session.get('guildCode');
} else if (['guild.cityActivityHandler.getCityStatus',
'guild.cityActivityHandler.declareCity',
'guild.cityActivityHandler.checkBattle',
'guild.cityActivityHandler.hitGate',
'guild.cityActivityHandler.battleEnd'
].indexOf(arg.route) !== -1) {
'guild.cityActivityHandler.declareCity',
'guild.cityActivityHandler.checkBattle',
'guild.cityActivityHandler.hitGate',
'guild.cityActivityHandler.battleEnd'
].indexOf(arg.route) !== -1) {
if (arg.body.cityId) {
rid = arg.body.cityId.toString();
}
} else if (['guild.raceActivityHandler.getRaceActivity',
'guild.raceActivityHandler.join',
'guild.raceActivityHandler.getRace',
'guild.raceActivityHandler.useItem',
'guild.raceActivityHandler.battleEnd',
].indexOf(arg.route) !== -1) {
rid = session.get('serverId').toString();
'guild.raceActivityHandler.join',
'guild.raceActivityHandler.getRace',
'guild.raceActivityHandler.useItem',
'guild.raceActivityHandler.battleEnd',
].indexOf(arg.route) !== -1) {
rid = session.get('serverId').toString();
}
}
}
@@ -93,10 +93,10 @@ export function guild(session: Session, msg: any, app: Application, cb: (err: Er
cb(null, res.id);
}
export function activity(session: Session, msg: any, app: Application, cb: (err: Error , serverId ?: string) => void) {
export function activity(session: Session, msg: any, app: Application, cb: (err: Error, serverId?: string) => void) {
let activityServers = app.getServersByType('activity');
if(!activityServers || activityServers.length === 0) {
if (!activityServers || activityServers.length === 0) {
cb(new Error('can not find activity servers.'));
return;
}
@@ -105,14 +105,26 @@ export function activity(session: Session, msg: any, app: Application, cb: (err:
cb(null, res.id);
}
export function gm(session: Session, msg: any, app: Application, cb: (err: Error , serverId ?: string) => void) {
export function gm(session: Session, msg: any, app: Application, cb: (err: Error, serverId?: string) => void) {
let gmServers = app.getServersByType('gm');
if(!gmServers || gmServers.length === 0) {
if (!gmServers || gmServers.length === 0) {
cb(new Error('can not find gm servers.'));
return;
}
let res = dispatch(session.get('roleId'), gmServers);
cb(null, res.id);
}
export function order(session: Session, msg: any, app: Application, cb: (err: Error, serverId?: string) => void) {
let orderServers = app.getServersByType('order');
if (!orderServers || orderServers.length === 0) {
cb(new Error('can not find activity servers.'));
return;
}
let res = dispatch(session.get('roleId'), orderServers);
cb(null, res.id);
}

View File

@@ -30,6 +30,11 @@
"js-tokens": "^4.0.0"
}
},
"@tootallnate/once": {
"version": "1.1.2",
"resolved": "https://registry.nlark.com/@tootallnate/once/download/@tootallnate/once-1.1.2.tgz",
"integrity": "sha1-zLkURTYBeaBOf+av94wA/8Hur4I="
},
"@typegoose/typegoose": {
"version": "7.3.5",
"resolved": "https://registry.npm.taobao.org/@typegoose/typegoose/download/@typegoose/typegoose-7.3.5.tgz",
@@ -201,11 +206,24 @@
"negotiator": "0.6.2"
}
},
"address": {
"version": "1.1.2",
"resolved": "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz",
"integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY="
},
"after": {
"version": "0.8.2",
"resolved": "https://registry.npm.taobao.org/after/download/after-0.8.2.tgz",
"integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="
},
"agent-base": {
"version": "6.0.2",
"resolved": "https://registry.nlark.com/agent-base/download/agent-base-6.0.2.tgz",
"integrity": "sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=",
"requires": {
"debug": "4"
}
},
"ansi-colors": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
@@ -285,6 +303,21 @@
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
"integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw=="
},
"ast-types": {
"version": "0.13.4",
"resolved": "https://registry.npm.taobao.org/ast-types/download/ast-types-0.13.4.tgz",
"integrity": "sha1-7g13s0MmOWXsw/ti2hbnIisrZ4I=",
"requires": {
"tslib": "^2.0.1"
},
"dependencies": {
"tslib": {
"version": "2.2.0",
"resolved": "https://registry.npm.taobao.org/tslib/download/tslib-2.2.0.tgz?cache=0&sync_timestamp=1617647281845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-2.2.0.tgz",
"integrity": "sha1-+yxHWXfjXiQTEe3iaTzuHsZpj1w="
}
}
},
"async": {
"version": "3.2.0",
"resolved": "https://registry.npm.taobao.org/async/download/async-3.2.0.tgz",
@@ -371,6 +404,71 @@
"resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz",
"integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28="
},
"body-parser": {
"version": "1.19.0",
"resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz",
"integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=",
"requires": {
"bytes": "3.1.0",
"content-type": "~1.0.4",
"debug": "2.6.9",
"depd": "~1.1.2",
"http-errors": "1.7.2",
"iconv-lite": "0.4.24",
"on-finished": "~2.3.0",
"qs": "6.7.0",
"raw-body": "2.4.0",
"type-is": "~1.6.17"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566551397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
"integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
"requires": {
"ms": "2.0.0"
}
},
"http-errors": {
"version": "1.7.2",
"resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz",
"integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=",
"requires": {
"depd": "~1.1.2",
"inherits": "2.0.3",
"setprototypeof": "1.1.1",
"statuses": ">= 1.5.0 < 2",
"toidentifier": "1.0.0"
}
},
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433856030&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"qs": {
"version": "6.7.0",
"resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz",
"integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw="
},
"raw-body": {
"version": "2.4.0",
"resolved": "https://registry.nlark.com/raw-body/download/raw-body-2.4.0.tgz",
"integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=",
"requires": {
"bytes": "3.1.0",
"http-errors": "1.7.2",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
}
}
}
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz",
@@ -418,6 +516,11 @@
"integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
"dev": true
},
"bytes": {
"version": "3.1.0",
"resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz",
"integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY="
},
"call-bind": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz",
@@ -602,11 +705,21 @@
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
},
"content-type": {
"version": "1.0.4",
"resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz",
"integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js="
},
"cookie": {
"version": "0.3.1",
"resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.3.1.tgz",
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
},
"copy-to": {
"version": "2.0.1",
"resolved": "https://registry.nlark.com/copy-to/download/copy-to-2.0.1.tgz",
"integrity": "sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU="
},
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz",
@@ -652,6 +765,11 @@
"resolved": "https://registry.npm.taobao.org/cycle/download/cycle-1.0.3.tgz",
"integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI="
},
"data-uri-to-buffer": {
"version": "3.0.1",
"resolved": "https://registry.npm.taobao.org/data-uri-to-buffer/download/data-uri-to-buffer-3.0.1.tgz",
"integrity": "sha1-WUuJc5OMW8LDMEZTV4U0GrxPNjY="
},
"date-format": {
"version": "3.0.0",
"resolved": "https://registry.npm.taobao.org/date-format/download/date-format-3.0.0.tgz?cache=0&sync_timestamp=1572559173297&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdate-format%2Fdownload%2Fdate-format-3.0.0.tgz",
@@ -683,6 +801,19 @@
"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="
},
"default-user-agent": {
"version": "1.0.0",
"resolved": "https://registry.nlark.com/default-user-agent/download/default-user-agent-1.0.0.tgz",
"integrity": "sha1-FsRu/cq6PtxF8k8r1IaLAbfCrcY=",
"requires": {
"os-name": "~1.0.3"
}
},
"define-properties": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
@@ -691,6 +822,16 @@
"object-keys": "^1.0.12"
}
},
"degenerator": {
"version": "2.2.0",
"resolved": "https://registry.nlark.com/degenerator/download/degenerator-2.2.0.tgz",
"integrity": "sha1-SemMEfoCk8Wybt+7UvFXKa/NslQ=",
"requires": {
"ast-types": "^0.13.2",
"escodegen": "^1.8.1",
"esprima": "^4.0.0"
}
},
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -706,6 +847,16 @@
"resolved": "https://registry.npm.taobao.org/denque/download/denque-1.4.1.tgz",
"integrity": "sha1-Z0T/dkHBSMP4ppwwflEjXB9KN88="
},
"depd": {
"version": "1.1.2",
"resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz",
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
},
"destroy": {
"version": "1.0.4",
"resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
"detect-libc": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
@@ -716,6 +867,24 @@
"resolved": "https://registry.npm.taobao.org/diff/download/diff-4.0.2.tgz?cache=0&sync_timestamp=1578890988059&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdiff%2Fdownload%2Fdiff-4.0.2.tgz",
"integrity": "sha1-YPOuy4nV+uUgwRqhnvwruYKq3n0="
},
"digest-header": {
"version": "0.0.1",
"resolved": "https://registry.npm.taobao.org/digest-header/download/digest-header-0.0.1.tgz",
"integrity": "sha1-Ecz23uxXZqw3l0TZAcEsuklRS+Y=",
"requires": {
"utility": "0.1.11"
},
"dependencies": {
"utility": {
"version": "0.1.11",
"resolved": "https://registry.npm.taobao.org/utility/download/utility-0.1.11.tgz?cache=0&sync_timestamp=1608037982120&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futility%2Fdownload%2Futility-0.1.11.tgz",
"integrity": "sha1-/eYM+bTkdRlHoM9dEEzik2ciZxU=",
"requires": {
"address": ">=0.0.1"
}
}
}
},
"duplexify": {
"version": "3.7.1",
"resolved": "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz",
@@ -727,6 +896,11 @@
"stream-shift": "^1.0.0"
}
},
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz",
@@ -826,22 +1000,67 @@
"is-symbol": "^1.0.2"
}
},
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz",
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
},
"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"
}
},
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz",
"integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE="
},
"estraverse": {
"version": "4.3.0",
"resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz",
"integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0="
},
"esutils": {
"version": "2.0.3",
"resolved": "https://registry.nlark.com/esutils/download/esutils-2.0.3.tgz",
"integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q="
},
"extend-shallow": {
"version": "2.0.1",
"resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
"is-extendable": "^0.1.0"
}
},
"eyes": {
"version": "0.1.8",
"resolved": "https://registry.npm.taobao.org/eyes/download/eyes-0.1.8.tgz",
"integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A="
},
"fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz",
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
},
"file-uri-to-path": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-2.0.0.tgz",
"integrity": "sha1-e0Fa66In1XWFHgpbDGQNdlZAP7o="
},
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -884,6 +1103,16 @@
"mime-types": "^2.1.12"
}
},
"formstream": {
"version": "1.1.1",
"resolved": "https://registry.nlark.com/formstream/download/formstream-1.1.1.tgz",
"integrity": "sha1-FyWdJEDDXKlzbbn0X7O6P4Zpx1A=",
"requires": {
"destroy": "^1.0.4",
"mime": "^2.5.2",
"pause-stream": "~0.0.11"
}
},
"fs-extra": {
"version": "8.1.0",
"resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-8.1.0.tgz",
@@ -913,6 +1142,38 @@
"integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
"optional": true
},
"ftp": {
"version": "0.3.10",
"resolved": "https://registry.nlark.com/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="
}
}
},
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@@ -986,6 +1247,19 @@
"has-symbols": "^1.0.1"
}
},
"get-uri": {
"version": "3.0.2",
"resolved": "https://registry.nlark.com/get-uri/download/get-uri-3.0.2.tgz",
"integrity": "sha1-8O8TVvqrxw4flAT6O2ayupv8clw=",
"requires": {
"@tootallnate/once": "1",
"data-uri-to-buffer": "3",
"debug": "4",
"file-uri-to-path": "2",
"fs-extra": "^8.1.0",
"ftp": "^0.3.10"
}
},
"glob": {
"version": "7.1.6",
"resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz",
@@ -1066,6 +1340,45 @@
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
},
"http-errors": {
"version": "1.7.3",
"resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.3.tgz",
"integrity": "sha1-bGGeT5xgMIw4UZSYwU+7EKrOuwY=",
"requires": {
"depd": "~1.1.2",
"inherits": "2.0.4",
"setprototypeof": "1.1.1",
"statuses": ">= 1.5.0 < 2",
"toidentifier": "1.0.0"
}
},
"http-proxy-agent": {
"version": "4.0.1",
"resolved": "https://registry.npm.taobao.org/http-proxy-agent/download/http-proxy-agent-4.0.1.tgz",
"integrity": "sha1-ioyO9/WTLM+VPClsqCkblap0qjo=",
"requires": {
"@tootallnate/once": "1",
"agent-base": "6",
"debug": "4"
}
},
"https-proxy-agent": {
"version": "5.0.0",
"resolved": "https://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-5.0.0.tgz?cache=0&sync_timestamp=1614740547969&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttps-proxy-agent%2Fdownload%2Fhttps-proxy-agent-5.0.0.tgz",
"integrity": "sha1-4qkFQqu2inYuCghQ9sntrf2FBrI=",
"requires": {
"agent-base": "6",
"debug": "4"
}
},
"humanize-ms": {
"version": "1.2.1",
"resolved": "https://registry.npm.taobao.org/humanize-ms/download/humanize-ms-1.2.1.tgz",
"integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
"requires": {
"ms": "^2.0.0"
}
},
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -1111,6 +1424,11 @@
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
},
"ip": {
"version": "1.1.5",
"resolved": "https://registry.nlark.com/ip/download/ip-1.1.5.tgz",
"integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
},
"is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -1129,6 +1447,11 @@
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
"integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g=="
},
"is-extendable": {
"version": "0.1.1",
"resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz",
"integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
},
"is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -1237,6 +1560,15 @@
"resolved": "https://registry.npm.taobao.org/kareem/download/kareem-2.3.1.tgz",
"integrity": "sha1-3vEtnJQQF/q/sA+HOvlenJnhvoc="
},
"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"
}
},
"local": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/local/-/local-0.3.3.tgz",
@@ -1322,17 +1654,35 @@
"resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz",
"integrity": "sha1-lyHXiLR+C8taJMLivuGg2lXatRQ="
},
"lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz",
"integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=",
"requires": {
"yallist": "^3.0.2"
}
},
"make-error": {
"version": "1.3.6",
"resolved": "https://registry.npm.taobao.org/make-error/download/make-error-1.3.6.tgz?cache=0&sync_timestamp=1582105759247&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-error%2Fdownload%2Fmake-error-1.3.6.tgz",
"integrity": "sha1-LrLjfqm2fEiR9oShOUeZr0hM96I="
},
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.nlark.com/media-typer/download/media-typer-0.3.0.tgz",
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
"memory-pager": {
"version": "1.5.0",
"resolved": "https://registry.npm.taobao.org/memory-pager/download/memory-pager-1.5.0.tgz",
"integrity": "sha1-2HUWVdItOEaCdByXLyw9bfo+ZrU=",
"optional": true
},
"mime": {
"version": "2.5.2",
"resolved": "https://registry.npm.taobao.org/mime/download/mime-2.5.2.tgz",
"integrity": "sha1-bj3GzCuVEGQ4MOXxnVy3U9pe6r4="
},
"mime-db": {
"version": "1.44.0",
"resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.44.0.tgz",
@@ -1834,6 +2184,11 @@
"resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz",
"integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs="
},
"netmask": {
"version": "2.0.2",
"resolved": "https://registry.npm.taobao.org/netmask/download/netmask-2.0.2.tgz",
"integrity": "sha1-iwGgdkQGXVNjg4NYI7xSAE66xec="
},
"node-addon-api": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz",
@@ -1955,6 +2310,14 @@
"object-keys": "^1.1.1"
}
},
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz?cache=0&sync_timestamp=1614930634590&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz",
"integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
"requires": {
"ee-first": "1.1.1"
}
},
"once": {
"version": "1.4.0",
"resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz",
@@ -1963,11 +2326,33 @@
"wrappy": "1"
}
},
"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"
}
},
"os-homedir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
},
"os-name": {
"version": "1.0.3",
"resolved": "https://registry.npm.taobao.org/os-name/download/os-name-1.0.3.tgz",
"integrity": "sha1-GzefZINa98Wn9JizV8uVIVwVnt8=",
"requires": {
"osx-release": "^1.0.0",
"win-release": "^1.0.0"
}
},
"os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
@@ -1982,6 +2367,14 @@
"os-tmpdir": "^1.0.0"
}
},
"osx-release": {
"version": "1.1.0",
"resolved": "https://registry.npm.taobao.org/osx-release/download/osx-release-1.1.0.tgz",
"integrity": "sha1-8heRGigTaUmvG/kwiyQeJzfTzWw=",
"requires": {
"minimist": "^1.1.0"
}
},
"p-limit": {
"version": "2.3.0",
"resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594560064408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz",
@@ -2003,6 +2396,32 @@
"resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz",
"integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY="
},
"pac-proxy-agent": {
"version": "4.1.0",
"resolved": "https://registry.npm.taobao.org/pac-proxy-agent/download/pac-proxy-agent-4.1.0.tgz",
"integrity": "sha1-Zog+6rrckV/F6VRXMkyw8Kx43vs=",
"requires": {
"@tootallnate/once": "1",
"agent-base": "6",
"debug": "4",
"get-uri": "3",
"http-proxy-agent": "^4.0.1",
"https-proxy-agent": "5",
"pac-resolver": "^4.1.0",
"raw-body": "^2.2.0",
"socks-proxy-agent": "5"
}
},
"pac-resolver": {
"version": "4.2.0",
"resolved": "https://registry.npm.taobao.org/pac-resolver/download/pac-resolver-4.2.0.tgz",
"integrity": "sha1-uCvLmZLUgWaSC8g8dUKrtFS9m90=",
"requires": {
"degenerator": "^2.2.0",
"ip": "^1.1.5",
"netmask": "^2.0.1"
}
},
"parseqs": {
"version": "0.0.5",
"resolved": "https://registry.npm.taobao.org/parseqs/download/parseqs-0.0.5.tgz",
@@ -2045,6 +2464,14 @@
"resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
"integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA="
},
"pause-stream": {
"version": "0.0.11",
"resolved": "https://registry.nlark.com/pause-stream/download/pause-stream-0.0.11.tgz",
"integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
"requires": {
"through": "~2.3"
}
},
"picomatch": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
@@ -2244,21 +2671,63 @@
"resolved": "https://registry.npm.taobao.org/pkginfo/download/pkginfo-0.3.1.tgz",
"integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE="
},
"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="
},
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz",
"integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I="
},
"proxy-agent": {
"version": "4.0.1",
"resolved": "https://registry.npm.taobao.org/proxy-agent/download/proxy-agent-4.0.1.tgz?cache=0&sync_timestamp=1610406773864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fproxy-agent%2Fdownload%2Fproxy-agent-4.0.1.tgz",
"integrity": "sha1-MmwyUHdscETNGWVcy/rfLgZaBFw=",
"requires": {
"agent-base": "^6.0.0",
"debug": "4",
"http-proxy-agent": "^4.0.0",
"https-proxy-agent": "^5.0.0",
"lru-cache": "^5.1.1",
"pac-proxy-agent": "^4.1.0",
"proxy-from-env": "^1.0.0",
"socks-proxy-agent": "^5.0.0"
}
},
"proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.nlark.com/proxy-from-env/download/proxy-from-env-1.1.0.tgz",
"integrity": "sha1-4QLxbKNVQkhldV0sno6k8k1Yw+I="
},
"psl": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
"integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
},
"pump": {
"version": "3.0.0",
"resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz",
"integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=",
"requires": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
}
},
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
"qs": {
"version": "6.10.1",
"resolved": "https://registry.npm.taobao.org/qs/download/qs-6.10.1.tgz",
"integrity": "sha1-STFIL6jWR6Wqt5nFJx0hM7mB+2o=",
"requires": {
"side-channel": "^1.0.4"
}
},
"random-to": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/random-to/-/random-to-0.0.2.tgz",
@@ -2272,6 +2741,17 @@
"safe-buffer": "^5.1.0"
}
},
"raw-body": {
"version": "2.4.1",
"resolved": "https://registry.nlark.com/raw-body/download/raw-body-2.4.1.tgz",
"integrity": "sha1-MKyC+Yu1rowVLmcUnayNVRU7Fow=",
"requires": {
"bytes": "3.1.0",
"http-errors": "1.7.3",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
}
},
"rc": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
@@ -2479,6 +2959,11 @@
"resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz",
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
"setprototypeof": {
"version": "1.1.1",
"resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz",
"integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM="
},
"shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -2492,6 +2977,16 @@
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
},
"side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npm.taobao.org/side-channel/download/side-channel-1.0.4.tgz",
"integrity": "sha1-785cj9wQTudRslxY1CkAEfpeos8=",
"requires": {
"call-bind": "^1.0.0",
"get-intrinsic": "^1.0.2",
"object-inspect": "^1.9.0"
}
},
"sift": {
"version": "7.0.1",
"resolved": "https://registry.npm.taobao.org/sift/download/sift-7.0.1.tgz",
@@ -2507,6 +3002,11 @@
"resolved": "https://registry.npm.taobao.org/sliced/download/sliced-1.0.1.tgz",
"integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
},
"smart-buffer": {
"version": "4.1.0",
"resolved": "https://registry.npm.taobao.org/smart-buffer/download/smart-buffer-4.1.0.tgz",
"integrity": "sha1-kWBcJdkWUvRmHqacz0XxszHKIbo="
},
"socket.io": {
"version": "2.3.0",
"resolved": "https://registry.npm.taobao.org/socket.io/download/socket.io-2.3.0.tgz",
@@ -2595,6 +3095,25 @@
}
}
},
"socks": {
"version": "2.6.1",
"resolved": "https://registry.npm.taobao.org/socks/download/socks-2.6.1.tgz?cache=0&sync_timestamp=1618719243252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsocks%2Fdownload%2Fsocks-2.6.1.tgz",
"integrity": "sha1-mJ5lNKB88zfesbHJSqpEKWUg0w4=",
"requires": {
"ip": "^1.1.5",
"smart-buffer": "^4.1.0"
}
},
"socks-proxy-agent": {
"version": "5.0.0",
"resolved": "https://registry.nlark.com/socks-proxy-agent/download/socks-proxy-agent-5.0.0.tgz",
"integrity": "sha1-fA82Tnsc9KekN+cSU77XLpAEvmA=",
"requires": {
"agent-base": "6",
"debug": "4",
"socks": "^2.3.3"
}
},
"sorted-array-functions": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz",
@@ -2633,6 +3152,11 @@
"resolved": "https://registry.npm.taobao.org/stack-trace/download/stack-trace-0.0.10.tgz?cache=0&sync_timestamp=1575992264808&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstack-trace%2Fdownload%2Fstack-trace-0.0.10.tgz",
"integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
},
"statuses": {
"version": "1.5.0",
"resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1609654066899&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz",
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
},
"stealthy-require": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
@@ -2744,6 +3268,15 @@
"yallist": "^3.0.3"
}
},
"tenpay": {
"version": "2.1.18",
"resolved": "https://registry.npm.taobao.org/tenpay/download/tenpay-2.1.18.tgz",
"integrity": "sha1-yxfEZmCYOCemFCCJIs9PcKiaxyw=",
"requires": {
"urllib": "^2.33.0",
"xml2js": "^0.4.19"
}
},
"thenify": {
"version": "3.3.1",
"resolved": "https://registry.npm.taobao.org/thenify/download/thenify-3.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthenify%2Fdownload%2Fthenify-3.3.1.tgz",
@@ -2760,6 +3293,11 @@
"thenify": ">= 3.1.0 < 4"
}
},
"through": {
"version": "2.3.8",
"resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz",
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
},
"through2": {
"version": "2.0.5",
"resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz?cache=0&sync_timestamp=1593478879807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrough2%2Fdownload%2Fthrough2-2.0.5.tgz",
@@ -2782,6 +3320,11 @@
"is-number": "^7.0.0"
}
},
"toidentifier": {
"version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz",
"integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM="
},
"tough-cookie": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
@@ -2847,11 +3390,28 @@
"tslib": "^1.8.1"
}
},
"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-detect": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="
},
"type-is": {
"version": "1.6.18",
"resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz",
"integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=",
"requires": {
"media-typer": "0.3.0",
"mime-types": "~2.1.24"
}
},
"typescript": {
"version": "3.9.7",
"resolved": "https://registry.npm.taobao.org/typescript/download/typescript-3.9.7.tgz?cache=0&sync_timestamp=1596790269694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftypescript%2Fdownload%2Ftypescript-3.9.7.tgz",
@@ -2863,16 +3423,78 @@
"resolved": "https://registry.npm.taobao.org/underscore/download/underscore-1.9.1.tgz?cache=0&sync_timestamp=1585605854253&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funderscore%2Fdownload%2Funderscore-1.9.1.tgz",
"integrity": "sha1-BtzjSg5op7q8KbNluOdLiSUgOWE="
},
"unescape": {
"version": "1.0.1",
"resolved": "https://registry.nlark.com/unescape/download/unescape-1.0.1.tgz",
"integrity": "sha1-lW5DD2HK2KTVfYLFGPXmzF0N2pY=",
"requires": {
"extend-shallow": "^2.0.1"
}
},
"universalify": {
"version": "0.1.2",
"resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz",
"integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY="
},
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz",
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
},
"urllib": {
"version": "2.37.1",
"resolved": "https://registry.npm.taobao.org/urllib/download/urllib-2.37.1.tgz?cache=0&sync_timestamp=1618453009809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furllib%2Fdownload%2Furllib-2.37.1.tgz",
"integrity": "sha1-EBa4iqsysnBIpNUtNiA3ccY+Ow8=",
"requires": {
"any-promise": "^1.3.0",
"content-type": "^1.0.2",
"debug": "^2.6.9",
"default-user-agent": "^1.0.0",
"digest-header": "^0.0.1",
"ee-first": "~1.1.1",
"formstream": "^1.1.0",
"humanize-ms": "^1.2.0",
"iconv-lite": "^0.4.15",
"ip": "^1.1.5",
"proxy-agent": "^4.0.1",
"pump": "^3.0.0",
"qs": "^6.4.0",
"statuses": "^1.3.1",
"utility": "^1.16.1"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566551397&other_urls=https%3A%2F%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?cache=0&sync_timestamp=1607433856030&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
}
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"utility": {
"version": "1.17.0",
"resolved": "https://registry.npm.taobao.org/utility/download/utility-1.17.0.tgz?cache=0&sync_timestamp=1608037982120&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futility%2Fdownload%2Futility-1.17.0.tgz",
"integrity": "sha1-YIGfcSpuDOd09S+x1pGZKl9Z02I=",
"requires": {
"copy-to": "^2.0.1",
"escape-html": "^1.0.3",
"mkdirp": "^0.5.1",
"mz": "^2.7.0",
"unescape": "^1.0.1"
}
},
"uuid": {
"version": "3.4.0",
"resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1592944298186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz",
@@ -2928,6 +3550,14 @@
}
}
},
"win-release": {
"version": "1.1.1",
"resolved": "https://registry.npm.taobao.org/win-release/download/win-release-1.1.1.tgz",
"integrity": "sha1-X6VeAr58qTTt/BJmVjLoSbcuUgk=",
"requires": {
"semver": "^5.0.1"
}
},
"winston": {
"version": "0.8.3",
"resolved": "https://registry.npm.taobao.org/winston/download/winston-0.8.3.tgz",
@@ -2954,6 +3584,11 @@
}
}
},
"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="
},
"workerpool": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz",
@@ -2979,6 +3614,20 @@
"resolved": "https://registry.npm.taobao.org/ws/download/ws-7.3.1.tgz?cache=0&sync_timestamp=1593925670988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-7.3.1.tgz",
"integrity": "sha1-0FR79n985PEqct/jEmLGjX3FUcg="
},
"xml2js": {
"version": "0.4.23",
"resolved": "https://registry.npm.taobao.org/xml2js/download/xml2js-0.4.23.tgz",
"integrity": "sha1-oMaVFnUkIesqx1juTUzPWIQ+rGY=",
"requires": {
"sax": ">=0.6.0",
"xmlbuilder": "~11.0.0"
}
},
"xmlbuilder": {
"version": "11.0.1",
"resolved": "https://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-11.0.1.tgz",
"integrity": "sha1-vpuuHIoEbnazESdyY0fQrXACvrM="
},
"xmlhttprequest-ssl": {
"version": "1.5.5",
"resolved": "https://registry.npm.taobao.org/xmlhttprequest-ssl/download/xmlhttprequest-ssl-1.5.5.tgz?cache=0&sync_timestamp=1564594177335&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fxmlhttprequest-ssl%2Fdownload%2Fxmlhttprequest-ssl-1.5.5.tgz",
@@ -3020,6 +3669,11 @@
}
}
},
"xregexp": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/xregexp/download/xregexp-2.0.0.tgz",
"integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM="
},
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz",

View File

@@ -50,6 +50,7 @@
"request": "^2.88.2",
"request-promise": "^4.2.6",
"source-map-support": "^0.5.0",
"tenpay": "^2.1.18",
"ts-node": "^8.2.0",
"xprofiler": "^1.2.5"
},

Binary file not shown.

View File

@@ -0,0 +1,24 @@
-----BEGIN CERTIFICATE-----
MIID8DCCAtigAwIBAgIUOsMp1mv8RAFmDb6SKsfJBsVXV6gwDQYJKoZIhvcNAQEL
BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT
FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg
Q0EwHhcNMjEwNTA4MDQyODU1WhcNMjYwNTA3MDQyODU1WjCBgTETMBEGA1UEAwwK
MTI3Mjk2NjgwMTEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMS0wKwYDVQQL
DCTkuIrmtbfnj63lm77nvZHnu5znp5HmioDmnInpmZDlhazlj7gxCzAJBgNVBAYM
AkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
AQoCggEBALd0girRSQ+/ytNbKEsJbm3qO3sZQF0Pg9IDoL8ix79OvCRW/DHKAYoh
fgNIOqdjzEyE+7Zj+wbHLnpGXwbV0gra2MIZdW9aOPy8LTZmdAnCZz9kctvT4rne
OhMgAGGqw0kog2K2sLmqH27ZCyKwNkseqyOMSImCPxdlZN8uGZykwNG6e/p5cIxF
tQATQMqf4hIXDE3Qwx6TN+TegjG2hNkXG6EZ6smwZQ9R6BtwuaHI93KX44uVN071
Q508CXIsRdRf7oFWnVBGsYsHTq71Yjst4EB+BD7vT+jelbS6p1DVeQp1N3h/NoHr
syKzd2MJ1lJx3IGJ1EBC94L62wvoI3UCAwEAAaOBgTB/MAkGA1UdEwQCMAAwCwYD
VR0PBAQDAgTwMGUGA1UdHwReMFwwWqBYoFaGVGh0dHA6Ly9ldmNhLml0cnVzLmNv
bS5jbi9wdWJsaWMvaXRydXNjcmw/Q0E9MUJENDIyMEU1MERCQzA0QjA2QUQzOTc1
NDk4NDZDMDFDM0U4RUJEMjANBgkqhkiG9w0BAQsFAAOCAQEATk9nhwyNko/tuf46
9AKGQYo8boI0lS1zGp3oE8uTxjseeRK5F5HptXm1D/34DwS97w1Z/RE582C2Tlp4
NczrN55Nm8Z82xjYNbT84FcG6u20+D2sok2TSw/S/LHHGp3BSDEa+eRYcgcDIluA
59FL1sKH2HXSAyWSV2c6hdSmJ1K9qxFDSDtbrJ4gv1TbJpCpshayYWL5k9C6V8+H
LT7zmSgkN7lBGwUNo4owCI6MmYLx4FTHzD+15rSQPrfGOt4ows+lRBG0YJkIN8n1
sUzE7Jv0te7jqSnHuQWTkPYXeyWouX5DorbnezkOIh9sf2eyVqn2+f5gbf30q3mR
iZNYcQ==
-----END CERTIFICATE-----

View File

@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC3dIIq0UkPv8rT
WyhLCW5t6jt7GUBdD4PSA6C/Ise/TrwkVvwxygGKIX4DSDqnY8xMhPu2Y/sGxy56
Rl8G1dIK2tjCGXVvWjj8vC02ZnQJwmc/ZHLb0+K53joTIABhqsNJKINitrC5qh9u
2QsisDZLHqsjjEiJgj8XZWTfLhmcpMDRunv6eXCMRbUAE0DKn+ISFwxN0MMekzfk
3oIxtoTZFxuhGerJsGUPUegbcLmhyPdyl+OLlTdO9UOdPAlyLEXUX+6BVp1QRrGL
B06u9WI7LeBAfgQ+70/o3pW0uqdQ1XkKdTd4fzaB67Mis3djCdZScdyBidRAQveC
+tsL6CN1AgMBAAECggEAK06ut8rmE3i0OcbIMUaNshbcacfhQNa7yKUgml5shwXg
NjfumxZT3LbhV4cCiadugBXYkgryJHx6xVS9dBCf3/4fs1ptNZc34rnNdo0jEXa6
BuYAk1JmsHf8f61LScMVDL0qnu//siSt/O3xygONHZikz+R67zM3D5/Y+zKXyzlX
Fe631SgAP8DYFdkjgpwRb9dB4opBFbmNl3X4+1JIcpvGNi5uDzR6IWoqr43FfgSz
/Q9opqZ7V0RZkbfOKb5FLMsK062DooouC6dpZWPlMgnrEZGHscVMTEkkmg4byluq
/FI+OKnMzTMVR0T+hmnC+6XZn+98w2V6RadM//LYdQKBgQDYx+uB9MJiX4U6nC9u
PY7F3IYYyKmDHBWYAZpPOvKUDPUeEupvsmaAgfASadYM8UgoOJOQ90aqewE9LdOd
/qHv4k21A90iR9DcoZd+dJ2eqTY3YGHtuPUdr0QuJxbhWYvnUN4+Fg+aZ5JxaS1i
yiiwzuaiGGlTPJwVw73KJs7I4wKBgQDYpR9qenlcclSxahMoYow8fn6J8/vBAtxZ
9aQQyhE8YuO+R7NoIlERlCUfLxs2KojiZF7wcARR7KnDt1kyyPdAAMtkjN/NeEFm
nJngERYLt3HXcoqifX0h1W+yxeeV+MCi6uVysVlDdc5rM9Ga0gdDtJvWQTJt7/kx
SWWx4J4JxwKBgH2KIV/MH7oaeSw9ANbFvWXmVJ4Lrucnn3W9D+DsUUjdzCHTcIKo
/OVU2nO/aN9r546rXQHpwbm+rDQC0vc/XAZwtvGqQCi3EESFLBdmb1VPxv8AyRWD
NCgxtLlJl91/Hx8hXOL1oamYa11UPJ1mV3Q1Dak3m99BTV7pUYK9QKljAoGATozA
MUkqy5wgnRsKyy/ADQcINliiRT8WSf/IdtXtHen1DT7OC8m1fxwpwX7A7QjLDNq7
mY3j4xheDTpjOwimrSwckt6JHuSlQeEx4Y4QYjsnKai8H2JEhonur/EVoMjKf8eP
XeBzrwP9zdzB+NKCE8heYHbPJBFIVth36OC6LG0CgYAx9w61L3xzslz20XKpM3u4
mO7aDTWBYIQUrZ4XmevUsbcwLfRhdWwHdMZbCM2DSviJE5P4htEonPy05QeVR6hO
K8lcp8GPHzWHqkhlXjU/PWXBPvyfIHifb82OswgEL9H4RUhwvBmidWhXQa4OW7ms
AysIlIaaw78Nq7M3oOs7MQ==
-----END PRIVATE KEY-----

View File

@@ -371,6 +371,10 @@ export const STATUS = {
NO_PRODUCT_ID: { code: 70001, simStr: '无效商品' },
NO_PAY_TYPE: { code: 70002, simStr: '无效支付类型' },
NO_ORDER: { code: 70003, simStr: '没有此订单' },
DUPLICATE_ORDER: { code: 70004, simStr: '订单已经结算' }
DUPLICATE_ORDER: { code: 70004, simStr: '订单已经结算' },
APPLY_ORDER_ERROR: { code: 70005, simStr: '下单失败' },
ORDER_ERROR: { code: 70006, simStr: '订单错误' },
PRICE_ERROR: { code: 70007, simStr: '价格错误' },
NO_PAY: { code: 70008, simStr: '未支付' }
}

View File

@@ -1,12 +1,12 @@
[
{
"productID": "com.bantu.zyz.yb1",
"productID": "com.bantu.sgzzyz.yb1",
"type": 15,
"price": 6,
"message": "赵云传购买元宝60"
},
{
"productID": "com.bantu.zyz.yb2",
"productID": "com.bantu.sgzzyz.yb2",
"type": 15,
"price": 12,
"message": "赵云传购买元宝160"