将 web-server 和 game-server 中的公共文件改为链接
This commit is contained in:
1
game-server/app/consts
Symbolic link
1
game-server/app/consts
Symbolic link
@@ -0,0 +1 @@
|
||||
../../shared/consts
|
||||
@@ -1,8 +0,0 @@
|
||||
export const TURBO_CORE_URL = 'https://coresrv.tgamebox.cn';
|
||||
export const APP_ID = 'AXaXmIHPs9eONvzrBesD8aSKQNXYdALF';
|
||||
export const TURBO_PARM_SECRET = 'ipqw05du6ob4x130w89t31yrqd6xs005zzltcmg2zpqnvrjp1s';
|
||||
|
||||
export const ENCRYPT_IV = 'f7182j5f04e377ux';
|
||||
export const ENCRYPT_KEY = 'fiqaxijabbantusmprc234fj';
|
||||
|
||||
export const AUTH_SMS_CNT_PER_DAY = 8;
|
||||
1
game-server/app/db
Symbolic link
1
game-server/app/db
Symbolic link
@@ -0,0 +1 @@
|
||||
../../shared/db
|
||||
@@ -1,9 +1,9 @@
|
||||
import { RoleModel } from '../../../../../shared/db/Role';
|
||||
import { UserModel } from '../../../../../shared/db/User';
|
||||
import { EquipModel } from './../../../db/Equip';
|
||||
import { RoleModel } from './../../../db/Role';
|
||||
import { UserModel } from '../../../db/User';
|
||||
import { Application, Session } from 'pinus';
|
||||
import {FrontendSession} from 'pinus';
|
||||
import Hero from '../../../../../shared/db/Hero';
|
||||
import Equip from '../../../../../shared/db/Equip';
|
||||
import { HeroModel } from './../../../db/Hero';
|
||||
|
||||
export default function (app: Application) {
|
||||
return new EntryHandler(app);
|
||||
@@ -70,8 +70,8 @@ export class EntryHandler {
|
||||
|
||||
// put user into channel
|
||||
let users = await self.app.rpc.chat.chatRemote.add.route(session)(role.roleId, self.app.get('serverId'), rid, true);
|
||||
let heros = await Hero.findByRole(role.roleId);
|
||||
let equips = await Equip.findbyRole(role.roleId);
|
||||
let heros = await HeroModel.findByRole(role.roleId);
|
||||
let equips = await EquipModel.findbyRole(role.roleId);
|
||||
role['heros'] = heros;
|
||||
role['equips'] = equips;
|
||||
return {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { CounterModel } from '../../../../../shared/db/Counter';
|
||||
import { HeroModel } from '../../../../../shared/db/Hero';
|
||||
import { EquipModel } from '../../../../../shared/db/Equip';
|
||||
import { CounterModel } from '../../../db/Counter';
|
||||
import { HeroModel } from '../../../db/Hero';
|
||||
import { EquipModel } from '../../../db/Equip';
|
||||
import {Application, BackendSession, createTcpMailBox} from 'pinus';
|
||||
|
||||
export default function(app: Application) {
|
||||
|
||||
61
game-server/package-lock.json
generated
61
game-server/package-lock.json
generated
@@ -31,9 +31,9 @@
|
||||
}
|
||||
},
|
||||
"@typegoose/typegoose": {
|
||||
"version": "7.3.0",
|
||||
"resolved": "https://registry.npm.taobao.org/@typegoose/typegoose/download/@typegoose/typegoose-7.3.0.tgz",
|
||||
"integrity": "sha1-Rp6ldTzFIP49D1xOVZsBpfsZHZM=",
|
||||
"version": "7.3.5",
|
||||
"resolved": "https://registry.npm.taobao.org/@typegoose/typegoose/download/@typegoose/typegoose-7.3.5.tgz",
|
||||
"integrity": "sha1-94517zpL5R8DkYh55qjPDR/PecA=",
|
||||
"requires": {
|
||||
"lodash": "^4.17.19",
|
||||
"loglevel": "^1.6.8",
|
||||
@@ -63,7 +63,6 @@
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npm.taobao.org/@types/bson/download/@types/bson-4.0.2.tgz",
|
||||
"integrity": "sha1-esy4WUL8ObvbdRXU3kN8BPaYEV8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
@@ -90,20 +89,18 @@
|
||||
}
|
||||
},
|
||||
"@types/mongodb": {
|
||||
"version": "3.5.25",
|
||||
"resolved": "https://registry.npm.taobao.org/@types/mongodb/download/@types/mongodb-3.5.25.tgz",
|
||||
"integrity": "sha1-qxh9sE15+OPxWvI2Mn3JE52dRzY=",
|
||||
"dev": true,
|
||||
"version": "3.5.27",
|
||||
"resolved": "https://registry.npm.taobao.org/@types/mongodb/download/@types/mongodb-3.5.27.tgz?cache=0&sync_timestamp=1599138259359&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fmongodb%2Fdownload%2F%40types%2Fmongodb-3.5.27.tgz",
|
||||
"integrity": "sha1-FYp6Q84l7zWSrIpi5iqzi+v2YfI=",
|
||||
"requires": {
|
||||
"@types/bson": "*",
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/mongoose": {
|
||||
"version": "5.7.35",
|
||||
"resolved": "https://registry.npm.taobao.org/@types/mongoose/download/@types/mongoose-5.7.35.tgz?cache=0&sync_timestamp=1596698562534&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fmongoose%2Fdownload%2F%40types%2Fmongoose-5.7.35.tgz",
|
||||
"integrity": "sha1-gzQUB2KAS4Q08bw+RSU0+qH/saY=",
|
||||
"dev": true,
|
||||
"version": "5.7.36",
|
||||
"resolved": "https://registry.npm.taobao.org/@types/mongoose/download/@types/mongoose-5.7.36.tgz",
|
||||
"integrity": "sha1-La4oxjBBxq+6ioPqApafRjs/ECE=",
|
||||
"requires": {
|
||||
"@types/mongodb": "*",
|
||||
"@types/node": "*"
|
||||
@@ -262,9 +259,9 @@
|
||||
}
|
||||
},
|
||||
"bson": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npm.taobao.org/bson/download/bson-1.1.4.tgz",
|
||||
"integrity": "sha1-92hw15nxW4VN/7fuMvCodHl/fok="
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npm.taobao.org/bson/download/bson-1.1.5.tgz?cache=0&sync_timestamp=1597069108497&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbson%2Fdownload%2Fbson-1.1.5.tgz",
|
||||
"integrity": "sha1-Kqrpj832dQwISLDLod3sPHMGCjQ="
|
||||
},
|
||||
"buffer": {
|
||||
"version": "5.6.0",
|
||||
@@ -705,9 +702,9 @@
|
||||
}
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.19",
|
||||
"resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.19.tgz?cache=0&sync_timestamp=1594227104529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz",
|
||||
"integrity": "sha1-5I3e2+MLMyF4PFtDAfvTU7weSks="
|
||||
"version": "4.17.20",
|
||||
"resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597336097104&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz",
|
||||
"integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI="
|
||||
},
|
||||
"log4js": {
|
||||
"version": "6.3.0",
|
||||
@@ -722,9 +719,9 @@
|
||||
}
|
||||
},
|
||||
"loglevel": {
|
||||
"version": "1.6.8",
|
||||
"resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.6.8.tgz",
|
||||
"integrity": "sha1-iiX7ddCSIw7NRFcnDYC1TigBEXE="
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.0.tgz?cache=0&sync_timestamp=1598447642950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.7.0.tgz",
|
||||
"integrity": "sha1-coFmhVp0DVnTjbAc9G8ELKoEG7A="
|
||||
},
|
||||
"make-error": {
|
||||
"version": "1.3.6",
|
||||
@@ -773,9 +770,9 @@
|
||||
}
|
||||
},
|
||||
"mongodb": {
|
||||
"version": "3.5.10",
|
||||
"resolved": "https://registry.npm.taobao.org/mongodb/download/mongodb-3.5.10.tgz",
|
||||
"integrity": "sha1-7UFJiNKTW1KQBM6tbf3SJoEliIc=",
|
||||
"version": "3.6.1",
|
||||
"resolved": "https://registry.npm.taobao.org/mongodb/download/mongodb-3.6.1.tgz",
|
||||
"integrity": "sha1-LFzCqBRWuhg+jEMtgOeHMsxy2r0=",
|
||||
"requires": {
|
||||
"bl": "^2.2.0",
|
||||
"bson": "^1.1.4",
|
||||
@@ -786,9 +783,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"bl": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npm.taobao.org/bl/download/bl-2.2.0.tgz?cache=0&sync_timestamp=1584503263385&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-2.2.0.tgz",
|
||||
"integrity": "sha1-4aV0zfUo5AUwGbuACwQcCsiNpJM=",
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npm.taobao.org/bl/download/bl-2.2.1.tgz?cache=0&sync_timestamp=1599194088618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-2.2.1.tgz",
|
||||
"integrity": "sha1-jBGntzBlXF1WiYzchxIk9A/ZAdU=",
|
||||
"requires": {
|
||||
"readable-stream": "^2.3.5",
|
||||
"safe-buffer": "^5.1.1"
|
||||
@@ -797,13 +794,13 @@
|
||||
}
|
||||
},
|
||||
"mongoose": {
|
||||
"version": "5.9.27",
|
||||
"resolved": "https://registry.npm.taobao.org/mongoose/download/mongoose-5.9.27.tgz?cache=0&sync_timestamp=1596210635108&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmongoose%2Fdownload%2Fmongoose-5.9.27.tgz",
|
||||
"integrity": "sha1-kUy8KkVFIJNPu/LA42bZx9gHazs=",
|
||||
"version": "5.10.4",
|
||||
"resolved": "https://registry.npm.taobao.org/mongoose/download/mongoose-5.10.4.tgz",
|
||||
"integrity": "sha1-CVGSYZmCQ95H7XLtKNyMOtv2qRA=",
|
||||
"requires": {
|
||||
"bson": "^1.1.4",
|
||||
"kareem": "2.3.1",
|
||||
"mongodb": "3.5.10",
|
||||
"mongodb": "3.6.1",
|
||||
"mongoose-legacy-pluralize": "1.0.2",
|
||||
"mpath": "0.7.0",
|
||||
"mquery": "3.2.2",
|
||||
@@ -1308,7 +1305,7 @@
|
||||
},
|
||||
"sift": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npm.taobao.org/sift/download/sift-7.0.1.tgz?cache=0&sync_timestamp=1594916082498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsift%2Fdownload%2Fsift-7.0.1.tgz",
|
||||
"resolved": "https://registry.npm.taobao.org/sift/download/sift-7.0.1.tgz",
|
||||
"integrity": "sha1-R9YsULFZ0xbxNy+LU/nBDNIaSwg="
|
||||
},
|
||||
"sliced": {
|
||||
|
||||
@@ -13,14 +13,15 @@
|
||||
"gen-api-ref": "node ../../../node_modules/typedoc/bin/typedoc --mode file --hideGenerator --excludeExternals --ignoreCompilerErrors --out ../../../run/site/public/api-reference/pinus-loader lib/"
|
||||
},
|
||||
"dependencies": {
|
||||
"@typegoose/typegoose": "^7.3.0",
|
||||
"@typegoose/typegoose": "^7.3.5",
|
||||
"@types/bluebird": "^3.5.19",
|
||||
"@types/crc": "^3.4.0",
|
||||
"@types/mongoose": "^5.7.36",
|
||||
"@types/node": "8.10.54",
|
||||
"@types/redis": "^2.8.25",
|
||||
"bluebird": "^3.5.1",
|
||||
"crc": "^3.5.0",
|
||||
"mongoose": "^5.9.27",
|
||||
"mongoose": "^5.10.4",
|
||||
"pinus": "^1.4.9",
|
||||
"pinus-robot": "^1.4.9",
|
||||
"pinus-robot-plugin": "^1.4.9",
|
||||
@@ -30,7 +31,6 @@
|
||||
"ts-node": "^8.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/mongoose": "^5.7.35",
|
||||
"tslint": "^5.9.1",
|
||||
"typescript": "^3.9.7"
|
||||
}
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
npm i -D @types/mongoose
|
||||
npm i -s @typegoose/typegoose
|
||||
npm i -s mongoose
|
||||
@@ -2,6 +2,6 @@
|
||||
cnpm install -d #安装依赖库
|
||||
npm run build
|
||||
node generatePm2Config.js #使用pm2来做进程管理,生成进程配置文件
|
||||
rm -rf /game-server/shared
|
||||
cp -r /game-server/dist/shared /game-server
|
||||
#rm -rf /game-server/shared
|
||||
#cp -r /game-server/dist/shared /game-server
|
||||
pm2-runtime pomeloPm2Start.json #pm2 启动游戏服务器
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
npm install
|
||||
cd ./game-server && npm install -d
|
||||
echo '============ game-server npm installed ============'
|
||||
cd ..
|
||||
|
||||
85
package-lock.json
generated
85
package-lock.json
generated
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"requires": true,
|
||||
"name": "zyz_server",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@typegoose/typegoose": {
|
||||
"version": "7.3.5",
|
||||
@@ -12,13 +14,19 @@
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"semver": "^7.3.2",
|
||||
"tslib": "^2.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "7.3.2",
|
||||
"resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.2.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz",
|
||||
"integrity": "sha1-YElisFK4HtB4aq6EOJ/7pw/9OTg="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@types/bson": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npm.taobao.org/@types/bson/download/@types/bson-4.0.2.tgz",
|
||||
"integrity": "sha1-esy4WUL8ObvbdRXU3kN8BPaYEV8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
@@ -27,7 +35,6 @@
|
||||
"version": "3.5.27",
|
||||
"resolved": "https://registry.npm.taobao.org/@types/mongodb/download/@types/mongodb-3.5.27.tgz?cache=0&sync_timestamp=1599138259359&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fmongodb%2Fdownload%2F%40types%2Fmongodb-3.5.27.tgz",
|
||||
"integrity": "sha1-FYp6Q84l7zWSrIpi5iqzi+v2YfI=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/bson": "*",
|
||||
"@types/node": "*"
|
||||
@@ -37,22 +44,20 @@
|
||||
"version": "5.7.36",
|
||||
"resolved": "https://registry.npm.taobao.org/@types/mongoose/download/@types/mongoose-5.7.36.tgz",
|
||||
"integrity": "sha1-La4oxjBBxq+6ioPqApafRjs/ECE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/mongodb": "*",
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "14.6.4",
|
||||
"resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.6.4.tgz?cache=0&sync_timestamp=1599568905640&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.6.4.tgz",
|
||||
"integrity": "sha1-oUXMC7FO+cR3c2G3u6+lz446y1o=",
|
||||
"dev": true
|
||||
"version": "14.10.0",
|
||||
"resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.10.0.tgz?cache=0&sync_timestamp=1599757029267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.10.0.tgz",
|
||||
"integrity": "sha1-FYFd/4LI3DCCf2sShvhlkClFCVo="
|
||||
},
|
||||
"bl": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npm.taobao.org/bl/download/bl-2.2.0.tgz?cache=0&sync_timestamp=1584503263385&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-2.2.0.tgz",
|
||||
"integrity": "sha1-4aV0zfUo5AUwGbuACwQcCsiNpJM=",
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npm.taobao.org/bl/download/bl-2.2.1.tgz?cache=0&sync_timestamp=1599194088618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-2.2.1.tgz",
|
||||
"integrity": "sha1-jBGntzBlXF1WiYzchxIk9A/ZAdU=",
|
||||
"requires": {
|
||||
"readable-stream": "^2.3.5",
|
||||
"safe-buffer": "^5.1.1"
|
||||
@@ -114,19 +119,25 @@
|
||||
"integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI="
|
||||
},
|
||||
"loglevel": {
|
||||
"version": "1.6.8",
|
||||
"resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.6.8.tgz",
|
||||
"integrity": "sha1-iiX7ddCSIw7NRFcnDYC1TigBEXE="
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.0.tgz?cache=0&sync_timestamp=1598447642950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.7.0.tgz",
|
||||
"integrity": "sha1-coFmhVp0DVnTjbAc9G8ELKoEG7A="
|
||||
},
|
||||
"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="
|
||||
"integrity": "sha1-2HUWVdItOEaCdByXLyw9bfo+ZrU=",
|
||||
"optional": true
|
||||
},
|
||||
"moment": {
|
||||
"version": "2.27.0",
|
||||
"resolved": "https://registry.npm.taobao.org/moment/download/moment-2.27.0.tgz?cache=0&sync_timestamp=1592516084857&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmoment%2Fdownload%2Fmoment-2.27.0.tgz",
|
||||
"integrity": "sha1-i/9OPiaiNiIN/j423nVrbrqgEF0="
|
||||
},
|
||||
"mongodb": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npm.taobao.org/mongodb/download/mongodb-3.6.0.tgz",
|
||||
"integrity": "sha1-ur1xcuxxfi7T+F4Hmz8aop3ORyQ=",
|
||||
"version": "3.6.1",
|
||||
"resolved": "https://registry.npm.taobao.org/mongodb/download/mongodb-3.6.1.tgz",
|
||||
"integrity": "sha1-LFzCqBRWuhg+jEMtgOeHMsxy2r0=",
|
||||
"requires": {
|
||||
"bl": "^2.2.0",
|
||||
"bson": "^1.1.4",
|
||||
@@ -137,9 +148,9 @@
|
||||
}
|
||||
},
|
||||
"mongoose": {
|
||||
"version": "5.10.3",
|
||||
"resolved": "https://registry.npm.taobao.org/mongoose/download/mongoose-5.10.3.tgz",
|
||||
"integrity": "sha1-7yjNo/EeW/daMJol6YmfhWpaU3A=",
|
||||
"version": "5.10.4",
|
||||
"resolved": "https://registry.npm.taobao.org/mongoose/download/mongoose-5.10.4.tgz",
|
||||
"integrity": "sha1-CVGSYZmCQ95H7XLtKNyMOtv2qRA=",
|
||||
"requires": {
|
||||
"bson": "^1.1.4",
|
||||
"kareem": "2.3.1",
|
||||
@@ -152,21 +163,6 @@
|
||||
"safe-buffer": "5.2.1",
|
||||
"sift": "7.0.1",
|
||||
"sliced": "1.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"mongodb": {
|
||||
"version": "3.6.1",
|
||||
"resolved": "https://registry.npm.taobao.org/mongodb/download/mongodb-3.6.1.tgz?cache=0&sync_timestamp=1599050790615&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmongodb%2Fdownload%2Fmongodb-3.6.1.tgz",
|
||||
"integrity": "sha1-LFzCqBRWuhg+jEMtgOeHMsxy2r0=",
|
||||
"requires": {
|
||||
"bl": "^2.2.0",
|
||||
"bson": "^1.1.4",
|
||||
"denque": "^1.4.1",
|
||||
"require_optional": "^1.0.1",
|
||||
"safe-buffer": "^5.1.2",
|
||||
"saslprep": "^1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"mongoose-legacy-pluralize": {
|
||||
@@ -246,13 +242,6 @@
|
||||
"requires": {
|
||||
"resolve-from": "^2.0.0",
|
||||
"semver": "^5.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
|
||||
"integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc="
|
||||
}
|
||||
}
|
||||
},
|
||||
"resolve-from": {
|
||||
@@ -269,18 +258,19 @@
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npm.taobao.org/saslprep/download/saslprep-1.0.3.tgz",
|
||||
"integrity": "sha1-TAL5RrVs9UKX40e6EJPnrKxM8iY=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"sparse-bitfield": "^3.0.3"
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
"version": "7.3.2",
|
||||
"resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.2.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz",
|
||||
"integrity": "sha1-YElisFK4HtB4aq6EOJ/7pw/9OTg="
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
|
||||
"integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc="
|
||||
},
|
||||
"sift": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npm.taobao.org/sift/download/sift-7.0.1.tgz?cache=0&sync_timestamp=1594916082498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsift%2Fdownload%2Fsift-7.0.1.tgz",
|
||||
"resolved": "https://registry.npm.taobao.org/sift/download/sift-7.0.1.tgz",
|
||||
"integrity": "sha1-R9YsULFZ0xbxNy+LU/nBDNIaSwg="
|
||||
},
|
||||
"sliced": {
|
||||
@@ -292,6 +282,7 @@
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npm.taobao.org/sparse-bitfield/download/sparse-bitfield-3.0.3.tgz",
|
||||
"integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"memory-pager": "^1.0.2"
|
||||
}
|
||||
|
||||
22
package.json
Normal file
22
package.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"name": "zyz_server",
|
||||
"version": "1.0.0",
|
||||
"description": "- 安装 ts 环境 `npm install -g tsc ts-node typescript` - 安装 pinus `npm install -g pinus`",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"@typegoose/typegoose": "^7.3.5",
|
||||
"@types/mongoose": "^5.7.36",
|
||||
"moment": "^2.27.0",
|
||||
"mongoose": "^5.10.4"
|
||||
},
|
||||
"devDependencies": {},
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://gitlab.trgame.cn/zyztech/zyz_server.git"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC"
|
||||
}
|
||||
@@ -1,5 +1,3 @@
|
||||
import { COUNTER } from './../consts/consts';
|
||||
import { CounterModel } from './Counter';
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop } from '@typegoose/typegoose';
|
||||
|
||||
@@ -47,12 +45,12 @@ export default class Equip extends BaseModel {
|
||||
}
|
||||
|
||||
public static async createEquip(equipInfo: {roleId: string, roleName: string, eid: number, seqId: number, type: number, eName: string}, lean = true) {
|
||||
const equip = await EquipModel.findOneAndUpdate({ seqId: equipInfo.seqId }, equipInfo, {upsert: true, new: true}).lean();
|
||||
const equip = await EquipModel.findOneAndUpdate({ seqId: equipInfo.seqId }, equipInfo, {upsert: true, new: true}).lean(lean);
|
||||
return equip;
|
||||
}
|
||||
|
||||
public static async putOn(hid: number, equipId: string, lean = true) {
|
||||
const equip = await EquipModel.findOneAndUpdate({ _id: equipId }, {hid}, {new: true});
|
||||
const equip = await EquipModel.findOneAndUpdate({ _id: equipId }, {hid}, {new: true}).lean(lean);
|
||||
return equip;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { APP_ID } from '../../game-server/app/consts/consts';
|
||||
import { APP_ID } from './../consts/consts';
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop } from '@typegoose/typegoose';
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, arrayProp, Ref, mongoose } from '@typegoose/typegoose';
|
||||
import { index, getModelForClass, prop, Ref, mongoose } from '@typegoose/typegoose';
|
||||
import Equip from './Equip';
|
||||
|
||||
/**
|
||||
@@ -57,7 +57,9 @@ export default class Hero extends BaseModel {
|
||||
|
||||
public static async addEquip(roleId: string, hid: number, equipId: string, lean = true) {
|
||||
const hero = await HeroModel.findOneAndUpdate({ roleId, hid }, {$push: {equips: equipId}}, {new: true}).lean(lean);
|
||||
await Equip.putOn(hero.hid, equipId);
|
||||
if (hero) {
|
||||
await Equip.putOn(hero.hid, equipId);
|
||||
}
|
||||
return hero;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { CounterModel } from './Counter';
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop } from '@typegoose/typegoose';
|
||||
import User from './User';
|
||||
@@ -97,8 +96,12 @@ export default class Role extends BaseModel {
|
||||
return role;
|
||||
}
|
||||
|
||||
public static async createRole(userInfo: User, serverType: string, serverId: number, roleName: string) {
|
||||
|
||||
public static async createRole(uid: number, serverId: number, roleInfo: {roleId: string; roleName: string; seqId: number; code: string}, lean = true) {
|
||||
const user = await User.findUserByUid(uid);
|
||||
if (!user) return null;
|
||||
const info = Object.assign(roleInfo, { userInfo: user, serverType: user.serverType, serverId });
|
||||
const role = await RoleModel.findOneAndUpdate({ 'userInfo.uid': uid, serverId }, info, { upsert: true, new: true }).lean(lean);
|
||||
return role;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ export default class User extends BaseModel {
|
||||
telHash: string;
|
||||
|
||||
@prop({ required: true })
|
||||
channelId: string;COUNTER
|
||||
channelId: string;
|
||||
|
||||
@prop({ required: true })
|
||||
guestId: string;
|
||||
|
||||
1
web-server/app/consts
Symbolic link
1
web-server/app/consts
Symbolic link
@@ -0,0 +1 @@
|
||||
../../shared/consts
|
||||
@@ -1,12 +0,0 @@
|
||||
// export const TURBO_CORE_URL = 'https://coresrv.tgamebox.cn';
|
||||
// export const APP_ID = 'AXaXmIHPs9eONvzrBesD8aSKQNXYdALF';
|
||||
// export const TURBO_PARM_SECRET = 'ipqw05du6ob4x130w89t31yrqd6xs005zzltcmg2zpqnvrjp1s';
|
||||
|
||||
// export const ENCRYPT_IV = 'f7182j5f04e377ux';
|
||||
// export const ENCRYPT_KEY = 'fiqaxijabbantusmprc234fj';
|
||||
|
||||
// export const AUTH_SMS_CNT_PER_DAY = 8;
|
||||
|
||||
// export const COUNTER = {
|
||||
// UID: 'uid',
|
||||
// };
|
||||
1
web-server/app/db
Symbolic link
1
web-server/app/db
Symbolic link
@@ -0,0 +1 @@
|
||||
../../shared/db
|
||||
@@ -1,24 +0,0 @@
|
||||
import { prop, pre } from '@typegoose/typegoose';
|
||||
|
||||
/**
|
||||
* BaseModel
|
||||
*/
|
||||
@pre<BaseModel>('save', function(next) {
|
||||
if (!this.createdAt || this.isNew) {
|
||||
this.createdAt = this.updatedAt = new Date();
|
||||
} else {
|
||||
this.updatedAt = new Date();
|
||||
}
|
||||
next();
|
||||
})
|
||||
|
||||
export default class BaseModel {
|
||||
|
||||
_id?: string
|
||||
|
||||
@prop()
|
||||
createdAt: Date
|
||||
|
||||
@prop()
|
||||
updatedAt: Date
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop } from '@typegoose/typegoose';
|
||||
|
||||
/**
|
||||
* 自增 ID
|
||||
*/
|
||||
@index({ name: 1 })
|
||||
export default class Counter extends BaseModel {
|
||||
|
||||
@prop({ required: true })
|
||||
name: string;
|
||||
|
||||
@prop({ required: true, default: 1 })
|
||||
seq: number;
|
||||
|
||||
public static async getNewCounter(name: string, lean = true) {
|
||||
const counter = await CounterModel.findOneAndUpdate({ name }, { $inc: { seq: 1 } }, { new: true, upsert: true }).lean(lean);
|
||||
return counter?.seq;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export const CounterModel = getModelForClass(Counter);
|
||||
@@ -1,42 +0,0 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop } from '@typegoose/typegoose';
|
||||
|
||||
|
||||
@index({ roleId: 1, hid: 1, eid: 1 })
|
||||
@index({ seqId: 1 })
|
||||
export default class Equip extends BaseModel {
|
||||
@prop({ required: true })
|
||||
roleId: number; // 角色 id
|
||||
@prop({ required: true })
|
||||
roleName: string; // 角色名称
|
||||
|
||||
@prop({ required: true })
|
||||
eid: number; // 装备 id
|
||||
@prop({ required: true })
|
||||
type: number; // 装备类型
|
||||
@prop({ required: true })
|
||||
eName: string; // 装备名称
|
||||
@prop({ required: true })
|
||||
seqId: number; // 装备表自增 id
|
||||
@prop({ required: true })
|
||||
hid: number; // 装备此装备的武将 id
|
||||
|
||||
@prop({ required: true })
|
||||
lv: number; // 强化等级
|
||||
randSe: [{ // 强化随机属性
|
||||
seType: number; // 属性类型
|
||||
value: number; // 属性数值
|
||||
}];
|
||||
|
||||
@prop({ required: true })
|
||||
randRange: number; // 物攻策攻数值浮动上下限变化率,浮点数
|
||||
@prop({ required: true })
|
||||
initHoleCnt: number; // 初始珠宝孔位个数
|
||||
@prop({ required: true })
|
||||
holes: [{
|
||||
id: number; // 宝石 id,待定,也可能是 type + lv
|
||||
lv: number; // 宝石等级
|
||||
}];
|
||||
}
|
||||
|
||||
export const EquipModel = getModelForClass(Equip);
|
||||
@@ -1,74 +0,0 @@
|
||||
import { APP_ID } from './../../../shared/consts/consts';
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop } from '@typegoose/typegoose';
|
||||
|
||||
class ServerInfo {
|
||||
@prop({ required: true })
|
||||
name: string;
|
||||
|
||||
@prop({ required: true })
|
||||
host: string;
|
||||
|
||||
@prop({ required: false })
|
||||
port: number;
|
||||
|
||||
@prop({ required: true })
|
||||
status: number;
|
||||
|
||||
@prop({ required: true })
|
||||
createTime: Date;
|
||||
|
||||
@prop({ required: true })
|
||||
serverType: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 游戏字段接口
|
||||
*/
|
||||
@index({ id: 1 })
|
||||
export default class Game extends BaseModel {
|
||||
|
||||
@prop({ required: true })
|
||||
id: number;
|
||||
|
||||
@prop({ required: true })
|
||||
name: string;
|
||||
|
||||
@prop({ required: true })
|
||||
nameEn: string;
|
||||
|
||||
@prop({ required: true })
|
||||
des: string;
|
||||
|
||||
@prop({ required: true })
|
||||
serverList: Array<ServerInfo>;
|
||||
|
||||
@prop({ required: true })
|
||||
iconUrl: string;
|
||||
|
||||
@prop({ required: true })
|
||||
version: string;
|
||||
|
||||
@prop({ required: true })
|
||||
versionCode: number;
|
||||
|
||||
public static async getServerListByType(serverType: string) {
|
||||
let game = await GameModel.findOne().lean();
|
||||
if (!game) {
|
||||
const serverInfo: ServerInfo = { name: '常山少年', host: 'pinus_test.trgame.cn', port: 3014, status: 1, createTime: new Date(), serverType: 'official' };
|
||||
const iconUrl = `https://download.tgamebox.cn/avatar/${APP_ID}/1.png`;
|
||||
game = await GameModel.findOneAndUpdate(
|
||||
{},
|
||||
{ id: 1, name: '赵云传', nameEn: 'zyz', des: '牛逼的战棋', iconUrl, version: '0.0.1', versionCode: 1, $push: { serverList: serverInfo } },
|
||||
{ upsert: true, new: true },
|
||||
).lean();
|
||||
}
|
||||
console.log(serverType, game);
|
||||
let serverList: Array<ServerInfo> = game ? game.serverList : [];
|
||||
serverList = serverList.filter(item => { return item.serverType === serverType; });
|
||||
console.log(serverType, serverList);
|
||||
return serverList;
|
||||
}
|
||||
}
|
||||
|
||||
export const GameModel = getModelForClass(Game);
|
||||
@@ -1,54 +0,0 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, Ref } from '@typegoose/typegoose';
|
||||
import Equip from './Equip';
|
||||
|
||||
/**
|
||||
* 英雄表
|
||||
*/
|
||||
@index({ roleId: 1, hid: 1 })
|
||||
export default class Hero extends BaseModel {
|
||||
|
||||
@prop({ required: true })
|
||||
roleId: number; // 角色 id
|
||||
@prop({ required: true })
|
||||
roleName: string; // 角色名称
|
||||
|
||||
@prop({ required: true })
|
||||
hid: number; // 武将 id
|
||||
@prop({ required: true })
|
||||
hName: string; // 武将名
|
||||
@prop({ required: true })
|
||||
seqId: number; // 武将表自增 id
|
||||
|
||||
@prop({ required: true })
|
||||
exp: number; // 经验值
|
||||
@prop({ required: true })
|
||||
lv: number; // 武将等级
|
||||
@prop({ required: true })
|
||||
ce: number; // 武将战力
|
||||
|
||||
@prop({ required: true })
|
||||
star: number; // 星级
|
||||
@prop({ required: true })
|
||||
rank: number; // 阶数
|
||||
@prop({ required: true })
|
||||
favour: number; // 好感度
|
||||
@prop({ required: true })
|
||||
favourLv: number; // 好感等级
|
||||
@prop({ required: true })
|
||||
conections: [{ // 羁绊
|
||||
id: number; // 羁绊编号
|
||||
name: string; // 羁绊名称
|
||||
valid: boolean; // 是否开启
|
||||
}];
|
||||
@prop({ required: true })
|
||||
skins: [{ // 皮肤
|
||||
id: number; // id
|
||||
enable: boolean; // 是否装备
|
||||
}];
|
||||
|
||||
@prop({ ref: Equip })
|
||||
equips: Ref<Equip>[]; // 武将装备引用数组
|
||||
}
|
||||
|
||||
export const HeroModel = getModelForClass(Hero);
|
||||
@@ -1,108 +0,0 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop } from '@typegoose/typegoose';
|
||||
import User from './User';
|
||||
|
||||
/**
|
||||
* 角色字段接口
|
||||
*/
|
||||
@index({ roleId: 1 })
|
||||
// @index({ userInfo.uid: 1, serverId: 1 })
|
||||
export default class Role extends BaseModel {
|
||||
@prop({ required: true })
|
||||
userInfo: User;
|
||||
|
||||
@prop({ required: true })
|
||||
seqId: number;
|
||||
|
||||
@prop({ required: true })
|
||||
roleId: string; // 角色 id,生成编码
|
||||
@prop({ required: true })
|
||||
roleName: string; // 角色名
|
||||
@prop({ required: true })
|
||||
serverType: string; // 服务器类型
|
||||
@prop({ required: true })
|
||||
serverId: number; // 区服 id
|
||||
@prop({ required: true, default: false })
|
||||
blocked: boolean; // 是否屏蔽
|
||||
@prop({ required: true })
|
||||
code: string; // 邀请码
|
||||
|
||||
@prop({ required: true, default: 0 })
|
||||
exp: number; // 经验值
|
||||
@prop({ required: true, default: 1 })
|
||||
lv: number; // 主公等级
|
||||
@prop({ required: true, default: 0 })
|
||||
ce: number; // 总战力
|
||||
@prop({ required: true, default: 100 })
|
||||
tili: number; // 体力值
|
||||
|
||||
@prop({ required: true, default: 0 })
|
||||
vLv: number; // VIP 等级
|
||||
@prop({ required: true, default: 100 })
|
||||
gold: number; // 总金币
|
||||
@prop({ required: true, default: 0 })
|
||||
paidGold: number; // 支付所得金币
|
||||
@prop({ required: true, default: 100 })
|
||||
giftGold: number; // 赠送所得金币
|
||||
@prop({ required: true, default: 0 })
|
||||
totalPay: number; // 总支付金额
|
||||
@prop({ required: true, default: 0 })
|
||||
totalBuy: number; // 总金币购买
|
||||
@prop({ required: true, default: 0 })
|
||||
totalCost: number; // 金币总花费
|
||||
@prop({ required: true, default: [] })
|
||||
payRecord: [{ // 支付记录
|
||||
id: string; // 购买项 product id
|
||||
cnt: number; // 购买次数
|
||||
}];
|
||||
|
||||
@prop({ required: true, default: [] })
|
||||
consumeGoods: [{ // 消耗品
|
||||
id: number; // id
|
||||
cnt: number; // 数量
|
||||
}];
|
||||
@prop({ required: true, default: [] })
|
||||
souls: [{ // 将魂
|
||||
id: number; // 武将 id
|
||||
cnt: number; // 数量
|
||||
}];
|
||||
@prop({ required: true, default: [] })
|
||||
pieces: [{ // 装备碎片
|
||||
id: number; // 装备 id
|
||||
cnt: number; // 数量
|
||||
}];
|
||||
@prop({ required: true, default: [] })
|
||||
jewels: [{ // 珠宝
|
||||
id: number; // 待定,也可能是 type + lv
|
||||
cnt: number; // 数量
|
||||
}];
|
||||
|
||||
@prop({ required: true, default: [] })
|
||||
warStar: [{ // 关卡星级
|
||||
id: number; // 关卡 id
|
||||
star: number; // 星级
|
||||
}];
|
||||
|
||||
@prop({ required: true, default: 1 })
|
||||
loginCnt: number; // 登录次数
|
||||
@prop({ required: true })
|
||||
createTime: Date; // 创建时间
|
||||
@prop({ required: true })
|
||||
loginTime: Date; // 更新 / 登录时间
|
||||
|
||||
|
||||
public static async findByUid(uid: number, serverId: number, lean = true) {
|
||||
const role = await RoleModel.findOne({ 'userInfo.uid': uid, serverId }).lean(lean);
|
||||
return role;
|
||||
}
|
||||
|
||||
public static async createRole(uid: number, serverId: number, roleInfo: {roleId: string; roleName: string; seqId: number; code: string}, lean = true) {
|
||||
const user = await User.findUserByUid(uid);
|
||||
if (!user) return null;
|
||||
const info = Object.assign(roleInfo, { userInfo: user, serverType: user.serverType, serverId });
|
||||
const role = await RoleModel.findOneAndUpdate({ 'userInfo.uid': uid, serverId }, info, { upsert: true, new: true }).lean(lean);
|
||||
return role;
|
||||
}
|
||||
}
|
||||
|
||||
export const RoleModel = getModelForClass(Role);
|
||||
@@ -1,64 +0,0 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop } from '@typegoose/typegoose';
|
||||
const moment = require('moment');
|
||||
|
||||
/**
|
||||
* 短信字段接口
|
||||
*/
|
||||
@index({ tel: 1 })
|
||||
export default class Sms extends BaseModel {
|
||||
|
||||
@prop({ required: true })
|
||||
tel: string;
|
||||
|
||||
@prop({ required: true })
|
||||
telHash: string;
|
||||
|
||||
@prop({ required: true })
|
||||
code: string;
|
||||
|
||||
@prop({ required: true })
|
||||
used: boolean;
|
||||
|
||||
@prop({ required: true })
|
||||
updateTime: Date;
|
||||
|
||||
@prop({ required: true })
|
||||
countToday: number;
|
||||
|
||||
public static async findByTel(tel: string, lean = true) {
|
||||
const sms = await smsModel.findOne({ tel }).lean(lean);
|
||||
return sms;
|
||||
}
|
||||
|
||||
public static async updateByTel(tel: string, code: string, used: boolean, updateTime: Date, countToday: number, lean = true) {
|
||||
await smsModel.findOneAndUpdate({ tel }, { code, used, updateTime, countToday }, { upsert: true }).lean(lean);
|
||||
}
|
||||
|
||||
public static async validateSms(tel: string, code: string, lean = true) {
|
||||
const record = await smsModel.findOneAndUpdate({ tel, code, used: false }, { used: true }).lean(lean);
|
||||
return !!record;
|
||||
}
|
||||
|
||||
public async timeLimit(interval: number) {
|
||||
if (Date.now() > this.updateTime.getTime() + interval) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public async cntLimit(cnt: number) {
|
||||
console.log('hasSendToday:', this.hasSendToday());
|
||||
if (await this.hasSendToday() && this.countToday >= cnt) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public async hasSendToday() {
|
||||
console.log(moment(this.updateTime).format('YYYY-MM-DD'), moment(Date.now()).format('YYYY-MM-DD'));
|
||||
return moment(this.updateTime).format('YYYY-MM-DD') === moment(Date.now()).format('YYYY-MM-DD');
|
||||
}
|
||||
}
|
||||
|
||||
export const smsModel = getModelForClass(Sms);
|
||||
@@ -1,91 +0,0 @@
|
||||
import { COUNTER } from './../../../shared/consts/consts';
|
||||
import { CounterModel } from './Counter';
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop } from '@typegoose/typegoose';
|
||||
|
||||
/**
|
||||
* 用户字段接口
|
||||
*/
|
||||
@index({ tel: 1 })
|
||||
@index({ uid: 1 })
|
||||
export default class User extends BaseModel {
|
||||
|
||||
@prop({ required: true })
|
||||
uid: number;
|
||||
|
||||
@prop({ required: true })
|
||||
username: string;
|
||||
|
||||
@prop({ required: true })
|
||||
token: string;
|
||||
|
||||
@prop({ required: true })
|
||||
tel: string;
|
||||
|
||||
@prop({ required: true })
|
||||
telHash: string;
|
||||
|
||||
@prop({ required: true })
|
||||
channelId: string;
|
||||
|
||||
@prop({ required: true })
|
||||
guestId: string;
|
||||
|
||||
// 最后登录 IP
|
||||
@prop({ required: true })
|
||||
ip: string;
|
||||
|
||||
@prop({ required: true })
|
||||
lastLoginTime: Date;
|
||||
|
||||
@prop({ required: true })
|
||||
createTime: Date;
|
||||
|
||||
platform: string;
|
||||
@prop({ required: true })
|
||||
platforms: [{
|
||||
platform: string; // 平台:ios, android, web, pc
|
||||
unionId: string; // 用户标识
|
||||
}];
|
||||
|
||||
@prop({ required: true })
|
||||
pkgName: string;
|
||||
|
||||
// 服务器类型:official, channel, ios, oversea
|
||||
@prop({ required: true })
|
||||
serverType: string;
|
||||
|
||||
// 账号是否被屏蔽
|
||||
@prop({ required: true })
|
||||
blocked: boolean;
|
||||
|
||||
public static async updateToken(tel: string, token: string, platform: string, pkgName: string, serverType: string, lean = true) {
|
||||
let user = await UserModel.findOne({ tel }).lean();
|
||||
const curTime: Date = new Date();
|
||||
let update = {};
|
||||
if (!user) {
|
||||
const uid = await CounterModel.getNewCounter(COUNTER.UID);
|
||||
update = Object.assign(update, { platform, pkgName, serverType, createTime: curTime, uid, username: `用户${uid}` });
|
||||
}
|
||||
update = Object.assign(update, { token, lastLoginTime: curTime });
|
||||
user = await UserModel.findOneAndUpdate({ tel }, update, { upsert: true, new: true }).lean(lean);
|
||||
return user;
|
||||
}
|
||||
|
||||
public static async findUserByToken(token: string, lean = true) {
|
||||
const user = await UserModel.findOne({ token }).select('uid token').lean(lean);
|
||||
return user;
|
||||
}
|
||||
|
||||
public static async findUserByTel(tel: string, lean = true) {
|
||||
const user = await UserModel.findOne({ tel }).select('uid tel').lean(lean);
|
||||
return user;
|
||||
}
|
||||
|
||||
public static async findUserByUid(uid: number, lean = true) {
|
||||
const user = await UserModel.findOne({ uid }).select('uid tel').lean(lean);
|
||||
return user;
|
||||
}
|
||||
}
|
||||
|
||||
export const UserModel = getModelForClass(User);
|
||||
@@ -48,7 +48,6 @@ export default class Auth extends Service {
|
||||
if (telVerify.status !== 0) {
|
||||
return telVerify;
|
||||
}
|
||||
|
||||
const sms = await smsModel.findByTel(tel, false);
|
||||
if (sms) {
|
||||
if (await sms.timeLimit(10000)) {
|
||||
|
||||
@@ -21,7 +21,7 @@ export default (appInfo: EggAppInfo) => {
|
||||
|
||||
config.mongoose = {
|
||||
url: 'mongodb://root:zyz_2020@dds-8vbdb47c6fb58a541.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdb47c6fb58a542.mongodb.zhangbei.rds.aliyuncs.com:3717/admin?replicaSet=mgset-500808098', // 内网
|
||||
options: {},
|
||||
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
||||
};
|
||||
|
||||
config.alinode = {
|
||||
|
||||
252
web-server/package-lock.json
generated
252
web-server/package-lock.json
generated
@@ -254,30 +254,6 @@
|
||||
"resolved": "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz",
|
||||
"integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs="
|
||||
},
|
||||
"@typegoose/typegoose": {
|
||||
"version": "7.3.4",
|
||||
"resolved": "https://registry.npm.taobao.org/@typegoose/typegoose/download/@typegoose/typegoose-7.3.4.tgz",
|
||||
"integrity": "sha1-HO0W0Z+cSTirrsSwNRwL+1YtQSE=",
|
||||
"requires": {
|
||||
"lodash": "^4.17.19",
|
||||
"loglevel": "^1.6.8",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"semver": "^7.3.2",
|
||||
"tslib": "^2.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "7.3.2",
|
||||
"resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.2.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz",
|
||||
"integrity": "sha1-YElisFK4HtB4aq6EOJ/7pw/9OTg="
|
||||
},
|
||||
"tslib": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npm.taobao.org/tslib/download/tslib-2.0.1.tgz?cache=0&sync_timestamp=1596751904317&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-2.0.1.tgz",
|
||||
"integrity": "sha1-QQ6w0RPltjVkkO7HSWA3JbAhtD4="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@types/accepts": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npm.taobao.org/@types/accepts/download/@types/accepts-1.3.5.tgz",
|
||||
@@ -309,15 +285,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"@types/bson": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npm.taobao.org/@types/bson/download/@types/bson-4.0.2.tgz",
|
||||
"integrity": "sha1-esy4WUL8ObvbdRXU3kN8BPaYEV8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/color-name": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npm.taobao.org/@types/color-name/download/@types/color-name-1.1.1.tgz?cache=0&sync_timestamp=1596837707987&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcolor-name%2Fdownload%2F%40types%2Fcolor-name-1.1.1.tgz",
|
||||
@@ -539,26 +506,6 @@
|
||||
"integrity": "sha1-NSOxJqCwSUguHDwRh3Rg92Yi/6s=",
|
||||
"dev": true
|
||||
},
|
||||
"@types/mongodb": {
|
||||
"version": "3.5.26",
|
||||
"resolved": "https://registry.npm.taobao.org/@types/mongodb/download/@types/mongodb-3.5.26.tgz?cache=0&sync_timestamp=1598396385471&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fmongodb%2Fdownload%2F%40types%2Fmongodb-3.5.26.tgz",
|
||||
"integrity": "sha1-qhAxWSW6EM3Hkx7ygMD/b1T9N/M=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/bson": "*",
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/mongoose": {
|
||||
"version": "5.7.36",
|
||||
"resolved": "https://registry.npm.taobao.org/@types/mongoose/download/@types/mongoose-5.7.36.tgz",
|
||||
"integrity": "sha1-La4oxjBBxq+6ioPqApafRjs/ECE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/mongodb": "*",
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "7.10.11",
|
||||
"resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-7.10.11.tgz?cache=0&sync_timestamp=1596839227404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-7.10.11.tgz",
|
||||
@@ -2333,54 +2280,11 @@
|
||||
"file-uri-to-path": "1.0.0"
|
||||
}
|
||||
},
|
||||
"bl": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npm.taobao.org/bl/download/bl-2.2.1.tgz?cache=0&sync_timestamp=1598428657095&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-2.2.1.tgz",
|
||||
"integrity": "sha1-jBGntzBlXF1WiYzchxIk9A/ZAdU=",
|
||||
"requires": {
|
||||
"readable-stream": "^2.3.5",
|
||||
"safe-buffer": "^5.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
|
||||
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.3.7",
|
||||
"resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz",
|
||||
"integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=",
|
||||
"requires": {
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.3",
|
||||
"isarray": "~1.0.0",
|
||||
"process-nextick-args": "~2.0.0",
|
||||
"safe-buffer": "~5.1.1",
|
||||
"string_decoder": "~1.1.1",
|
||||
"util-deprecate": "~1.0.1"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=",
|
||||
"requires": {
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"black-hole-stream": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npm.taobao.org/black-hole-stream/download/black-hole-stream-0.0.1.tgz",
|
||||
"integrity": "sha1-M7ega58edFPWBBuCl0SB0hUq6kI="
|
||||
},
|
||||
"bluebird": {
|
||||
"version": "3.5.1",
|
||||
"resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.5.1.tgz",
|
||||
"integrity": "sha1-2VUfnemPH82h5oPRfukaBgLuLrk="
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz",
|
||||
@@ -2423,11 +2327,6 @@
|
||||
"electron-to-chromium": "^1.3.47"
|
||||
}
|
||||
},
|
||||
"bson": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npm.taobao.org/bson/download/bson-1.1.5.tgz?cache=0&sync_timestamp=1597069108497&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbson%2Fdownload%2Fbson-1.1.5.tgz",
|
||||
"integrity": "sha1-Kqrpj832dQwISLDLod3sPHMGCjQ="
|
||||
},
|
||||
"buffer": {
|
||||
"version": "5.6.0",
|
||||
"resolved": "https://registry.npm.taobao.org/buffer/download/buffer-5.6.0.tgz",
|
||||
@@ -3141,11 +3040,6 @@
|
||||
"resolved": "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz",
|
||||
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
|
||||
},
|
||||
"denque": {
|
||||
"version": "1.4.1",
|
||||
"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",
|
||||
@@ -6294,11 +6188,6 @@
|
||||
"object.assign": "^4.1.0"
|
||||
}
|
||||
},
|
||||
"kareem": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npm.taobao.org/kareem/download/kareem-2.3.1.tgz",
|
||||
"integrity": "sha1-3vEtnJQQF/q/sA+HOvlenJnhvoc="
|
||||
},
|
||||
"keygrip": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npm.taobao.org/keygrip/download/keygrip-1.1.0.tgz",
|
||||
@@ -6551,7 +6440,8 @@
|
||||
"lodash": {
|
||||
"version": "4.17.20",
|
||||
"resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597336097104&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz",
|
||||
"integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI="
|
||||
"integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=",
|
||||
"dev": true
|
||||
},
|
||||
"log-symbols": {
|
||||
"version": "2.2.0",
|
||||
@@ -6562,11 +6452,6 @@
|
||||
"chalk": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"loglevel": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.0.tgz?cache=0&sync_timestamp=1598447642950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.7.0.tgz",
|
||||
"integrity": "sha1-coFmhVp0DVnTjbAc9G8ELKoEG7A="
|
||||
},
|
||||
"long": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npm.taobao.org/long/download/long-4.0.0.tgz",
|
||||
@@ -6657,12 +6542,6 @@
|
||||
"p-is-promise": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"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
|
||||
},
|
||||
"merge-descriptors": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz",
|
||||
@@ -6815,81 +6694,6 @@
|
||||
"moment": ">= 2.9.0"
|
||||
}
|
||||
},
|
||||
"mongodb": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npm.taobao.org/mongodb/download/mongodb-3.6.0.tgz",
|
||||
"integrity": "sha1-ur1xcuxxfi7T+F4Hmz8aop3ORyQ=",
|
||||
"requires": {
|
||||
"bl": "^2.2.0",
|
||||
"bson": "^1.1.4",
|
||||
"denque": "^1.4.1",
|
||||
"require_optional": "^1.0.1",
|
||||
"safe-buffer": "^5.1.2",
|
||||
"saslprep": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"mongoose": {
|
||||
"version": "5.10.1",
|
||||
"resolved": "https://registry.npm.taobao.org/mongoose/download/mongoose-5.10.1.tgz",
|
||||
"integrity": "sha1-zdCD1y4ZpcT/E0Fx19Gpl2vwH+k=",
|
||||
"requires": {
|
||||
"bson": "^1.1.4",
|
||||
"kareem": "2.3.1",
|
||||
"mongodb": "3.6.0",
|
||||
"mongoose-legacy-pluralize": "1.0.2",
|
||||
"mpath": "0.7.0",
|
||||
"mquery": "3.2.2",
|
||||
"ms": "2.1.2",
|
||||
"regexp-clone": "1.0.0",
|
||||
"safe-buffer": "5.2.1",
|
||||
"sift": "7.0.1",
|
||||
"sliced": "1.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"safe-buffer": {
|
||||
"version": "5.2.1",
|
||||
"resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz?cache=0&sync_timestamp=1589129010497&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz",
|
||||
"integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY="
|
||||
}
|
||||
}
|
||||
},
|
||||
"mongoose-legacy-pluralize": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npm.taobao.org/mongoose-legacy-pluralize/download/mongoose-legacy-pluralize-1.0.2.tgz",
|
||||
"integrity": "sha1-O6n5H6UHtRhtOZ+0CFS/8Y+1Y+Q="
|
||||
},
|
||||
"mpath": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npm.taobao.org/mpath/download/mpath-0.7.0.tgz",
|
||||
"integrity": "sha1-IOgQLidrcXCdbgfp+NTQ9kGvv7g="
|
||||
},
|
||||
"mquery": {
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npm.taobao.org/mquery/download/mquery-3.2.2.tgz",
|
||||
"integrity": "sha1-4Tg6OVGFLOI+N/YZqbNQ8fs2ZOc=",
|
||||
"requires": {
|
||||
"bluebird": "3.5.1",
|
||||
"debug": "3.1.0",
|
||||
"regexp-clone": "^1.0.0",
|
||||
"safe-buffer": "5.1.2",
|
||||
"sliced": "1.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz",
|
||||
"integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1575472461218&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||
}
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1575472461218&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz",
|
||||
@@ -8643,8 +8447,7 @@
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz",
|
||||
"integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"pify": {
|
||||
"version": "3.0.0",
|
||||
@@ -9161,11 +8964,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"regexp-clone": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npm.taobao.org/regexp-clone/download/regexp-clone-1.0.0.tgz",
|
||||
"integrity": "sha1-Ii25Z2IydwViYLmSYmNUoEzpv2M="
|
||||
},
|
||||
"regexp.prototype.flags": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.0.tgz",
|
||||
@@ -9251,22 +9049,6 @@
|
||||
"resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz",
|
||||
"integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
|
||||
},
|
||||
"require_optional": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npm.taobao.org/require_optional/download/require_optional-1.0.1.tgz",
|
||||
"integrity": "sha1-TPNaQkf2TKPfjC7yCMxJSxyo/C4=",
|
||||
"requires": {
|
||||
"resolve-from": "^2.0.0",
|
||||
"semver": "^5.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"resolve-from": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-2.0.0.tgz",
|
||||
"integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
|
||||
}
|
||||
}
|
||||
},
|
||||
"resolve": {
|
||||
"version": "1.17.0",
|
||||
"resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.17.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.17.0.tgz",
|
||||
@@ -9404,15 +9186,6 @@
|
||||
"resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz",
|
||||
"integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo="
|
||||
},
|
||||
"saslprep": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npm.taobao.org/saslprep/download/saslprep-1.0.3.tgz",
|
||||
"integrity": "sha1-TAL5RrVs9UKX40e6EJPnrKxM8iY=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"sparse-bitfield": "^3.0.3"
|
||||
}
|
||||
},
|
||||
"scmp": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npm.taobao.org/scmp/download/scmp-2.1.0.tgz",
|
||||
@@ -9522,11 +9295,6 @@
|
||||
"object-inspect": "^1.7.0"
|
||||
}
|
||||
},
|
||||
"sift": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npm.taobao.org/sift/download/sift-7.0.1.tgz?cache=0&sync_timestamp=1597975540611&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsift%2Fdownload%2Fsift-7.0.1.tgz",
|
||||
"integrity": "sha1-R9YsULFZ0xbxNy+LU/nBDNIaSwg="
|
||||
},
|
||||
"signal-exit": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz?cache=0&sync_timestamp=1585253373618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.3.tgz",
|
||||
@@ -9548,11 +9316,6 @@
|
||||
"is-fullwidth-code-point": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"sliced": {
|
||||
"version": "1.0.1",
|
||||
"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",
|
||||
@@ -9734,15 +9497,6 @@
|
||||
"resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz",
|
||||
"integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
|
||||
},
|
||||
"sparse-bitfield": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npm.taobao.org/sparse-bitfield/download/sparse-bitfield-3.0.3.tgz",
|
||||
"integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"memory-pager": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"spdx-correct": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz?cache=0&sync_timestamp=1590161967473&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz",
|
||||
|
||||
@@ -22,19 +22,16 @@
|
||||
"clean": "ets clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@typegoose/typegoose": "^7.3.4",
|
||||
"csprng": "^0.1.2",
|
||||
"egg": "^2.6.1",
|
||||
"egg-alinode": "^2.0.1",
|
||||
"egg-cors": "^2.2.3",
|
||||
"egg-scripts": "^2.6.0",
|
||||
"mongoose": "^5.10.1",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"underscore": "^1.10.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/mocha": "^2.2.40",
|
||||
"@types/mongoose": "^5.7.36",
|
||||
"@types/node": "^7.0.12",
|
||||
"@types/supertest": "^2.0.0",
|
||||
"autod": "^3.0.1",
|
||||
|
||||
Reference in New Issue
Block a user