1
This commit is contained in:
parent
ef53eed0af
commit
9a59abdb5e
6
.gitignore
vendored
6
.gitignore
vendored
@ -2,4 +2,8 @@ server/bin
|
||||
target/
|
||||
Cargo.lock
|
||||
mt.rs
|
||||
node_modules/
|
||||
node_modules/
|
||||
*#
|
||||
*#*
|
||||
cs_msgid.rs
|
||||
cs_proto.rs
|
@ -1,7 +1,9 @@
|
||||
fn main() {
|
||||
protobuf_codegen_pure::Codegen::new()
|
||||
.out_dir("src")
|
||||
.inputs(&["proto/mt.proto"])
|
||||
.inputs(&["proto/mt.proto",
|
||||
"proto/cs_msgid.proto",
|
||||
"proto/cs_proto.proto"])
|
||||
.include("proto")
|
||||
.run()
|
||||
.expect("Codegen failed.");
|
||||
|
65
server/notifyserver/proto/cs_msgid.proto
Normal file
65
server/notifyserver/proto/cs_msgid.proto
Normal file
@ -0,0 +1,65 @@
|
||||
package cs;
|
||||
|
||||
//消息id定义
|
||||
enum CMMessageId_e
|
||||
{
|
||||
_CMKcpHandshake = 99;
|
||||
_CMPing = 101;
|
||||
|
||||
_CMJoin = 103;
|
||||
_CMReconnect = 104;
|
||||
_CMMove = 201;
|
||||
_CMEmote = 204;
|
||||
_CMVoice = 206;
|
||||
_CMGameOver = 207;
|
||||
_CMWatchWar = 208;
|
||||
_CMLeave = 209;
|
||||
_CMRevive = 210;
|
||||
_CMCancelRevive = 211;
|
||||
_CMExecCommand = 217;
|
||||
_CMMatchCancel = 218;
|
||||
_CMMatchChoose = 219;
|
||||
_CMMatchStartGame = 220;
|
||||
_CMMatchCancelStartGame = 221;
|
||||
_CMMatchSendMsg = 222;
|
||||
_CMMatchBroadcastMsg = 223;
|
||||
_CMRequestBulletDmg = 230;
|
||||
_CMStowShield = 231;
|
||||
_CMImmediateMsg = 232;
|
||||
_CMTeamMarkTargetPos = 233;
|
||||
_CMRequestThrowDmg = 236;
|
||||
}
|
||||
|
||||
enum SMMessageId_e
|
||||
{
|
||||
_SMKcpHandshake = 99;
|
||||
_SMPing = 101;
|
||||
_SMRpcError = 102;
|
||||
_SMReconnect = 104;
|
||||
|
||||
_SMWatchWar = 208;
|
||||
_SMLeave = 209;
|
||||
_SMMatchCancel = 218;
|
||||
|
||||
_SMJoinedNotify = 103;
|
||||
_SMMapInfo = 1002;
|
||||
_SMPlayerInfo = 1003;
|
||||
_SMUpdate = 1004;
|
||||
_SMRollMsg = 1005;
|
||||
_SMVoiceNotify = 1007;
|
||||
_SMDisconnectNotify = 1008;
|
||||
_SMGameOver = 1009;
|
||||
_SMDebugMsg = 1010;
|
||||
_SMUiUpdate = 1012;
|
||||
_SMGameStart = 1013;
|
||||
_SMSysPiaoMsg = 1014;
|
||||
_SMShowCountdown = 1015;
|
||||
_SMShowTeamUI = 1016;
|
||||
_SMUpdateMatchInfo = 1017;
|
||||
_SMGetItemNotify = 1018;
|
||||
_SMMatchMemberMsgNotify = 1019;
|
||||
_SMPvePassWave = 1020;
|
||||
_SMTeamMarkTargetPosList = 1021;
|
||||
_SMDebugCmd = 1022;
|
||||
_SMNewBieEnd = 1023;
|
||||
}
|
1687
server/notifyserver/proto/cs_proto.proto
Executable file
1687
server/notifyserver/proto/cs_proto.proto
Executable file
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,10 @@
|
||||
use f9::app::App;
|
||||
use protobuf::Message;
|
||||
|
||||
pub mod app;
|
||||
pub mod mt;
|
||||
pub mod cs_msgid;
|
||||
pub mod cs_proto;
|
||||
|
||||
fn main() {
|
||||
App::instance().borrow_mut().init(
|
||||
@ -8,4 +12,6 @@ fn main() {
|
||||
);
|
||||
App::instance().borrow_mut().run();
|
||||
App::instance().borrow_mut().uninit();
|
||||
let data: Vec<u8> = Vec::new();
|
||||
let psystem = crate::mt::AliKeyConf::parse_from_bytes(&data).unwrap();
|
||||
}
|
||||
|
405
server/notifyserver/tools/pbtools/app.js
Normal file
405
server/notifyserver/tools/pbtools/app.js
Normal file
@ -0,0 +1,405 @@
|
||||
const protobuf = require('protobufjs');
|
||||
const parseArgs = require('minimist');
|
||||
const fs = require('fs');
|
||||
const assert = require('assert');
|
||||
|
||||
class PBTools {
|
||||
|
||||
constructor() {
|
||||
this.csMsgIdPb = null;
|
||||
this.csProtoPb = null;
|
||||
this.ssMsgIdPb = null;
|
||||
this.ssProtoPb = null;
|
||||
this.mtPb = null;
|
||||
this.protoDir = './proto/';
|
||||
}
|
||||
|
||||
async init() {
|
||||
{
|
||||
this.csProtoPb = await (new protobuf.Root()).load(
|
||||
this.protoDir + 'cs_proto.proto',
|
||||
{
|
||||
'keepCase': true
|
||||
}
|
||||
);
|
||||
}
|
||||
{
|
||||
this.csMsgIdPb = await (new protobuf.Root()).load(
|
||||
this.protoDir + 'cs_msgid.proto',
|
||||
{
|
||||
'keepCase': true
|
||||
}
|
||||
);
|
||||
this.csCmMsgId = this.csMsgIdPb.lookup('CMMessageId_e');
|
||||
this.csSmMsgId = this.csMsgIdPb.lookup('SMMessageId_e');
|
||||
}
|
||||
{
|
||||
this.ssProtoPb = await (new protobuf.Root()).load(
|
||||
this.protoDir + 'ss_proto.proto',
|
||||
{
|
||||
'keepCase': true
|
||||
}
|
||||
);
|
||||
}
|
||||
{
|
||||
this.ssMsgIdPb = await (new protobuf.Root()).load(
|
||||
this.protoDir + 'ss_msgid.proto',
|
||||
{
|
||||
'keepCase': true
|
||||
}
|
||||
);
|
||||
this.ssSSmMsgId = this.ssMsgIdPb.lookup('SSMMessageId_e');
|
||||
}
|
||||
{
|
||||
this.mtPb = await (new protobuf.Root()).load(
|
||||
this.protoDir + 'mt.proto',
|
||||
{
|
||||
'keepCase': true
|
||||
}
|
||||
);
|
||||
}
|
||||
await this.genCsAutoGen();
|
||||
await this.genMtbAutoGen();
|
||||
await this.genSsAutoGen();
|
||||
}
|
||||
|
||||
async genCsAutoGen() {
|
||||
let data = `package cs
|
||||
|
||||
import (
|
||||
"f5"
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
)
|
||||
|
||||
type CsNetMsgHandler f5.NetMsgHandler[MsgHandler];
|
||||
|
||||
type MsgHandlerImpl struct {
|
||||
}
|
||||
|
||||
var handlers [2000]*CsNetMsgHandler
|
||||
|
||||
func GetNetMsgHandler(msgId uint16) *CsNetMsgHandler {
|
||||
handler := handlers[msgId]
|
||||
return handler
|
||||
}
|
||||
|
||||
func DispatchMsg(handler *CsNetMsgHandler, hdr *f5.MsgHdr, msgHandler MsgHandler) {
|
||||
handler.Cb(hdr, msgHandler)
|
||||
}
|
||||
|
||||
func RegHandlerId(msgId int, handlerId int) {
|
||||
handler := handlers[msgId]
|
||||
handler.HandlerId = handlerId
|
||||
}
|
||||
|
||||
func ParsePb(msgId uint16, data []byte) interface{} {
|
||||
handler := handlers[msgId]
|
||||
if handler == nil {
|
||||
return nil
|
||||
}
|
||||
return handler.ParseCb(data)
|
||||
}
|
||||
`;
|
||||
data += `
|
||||
type MsgHandler interface {`;
|
||||
this.csProtoPb.nested.cs.nestedArray.forEach(
|
||||
(item) => {
|
||||
if (item.name[0] == 'C' &&
|
||||
item.name[1] == 'M') {
|
||||
data += `
|
||||
${item.name}(*f5.MsgHdr, *${item.name})`;
|
||||
}
|
||||
});
|
||||
data += `
|
||||
}
|
||||
`;
|
||||
this.csProtoPb.nested.cs.nestedArray.forEach(
|
||||
(item) => {
|
||||
if (item.name[0] == 'C' &&
|
||||
item.name[1] == 'M') {
|
||||
data += `
|
||||
func (this *MsgHandlerImpl) ${item.name}(hdr *f5.MsgHdr, msg *${item.name}) {
|
||||
}
|
||||
`;
|
||||
}
|
||||
});
|
||||
this.csProtoPb.nested.cs.nestedArray.forEach(
|
||||
(item) => {
|
||||
if (item.name[0] == 'C' &&
|
||||
item.name[1] == 'M') {
|
||||
data += `
|
||||
func (this *${item.name}) GetNetMsgId() uint16 {
|
||||
return uint16(CMMessageIdE__${item.name})
|
||||
}
|
||||
`;
|
||||
} else if (item.name[0] == 'S' &&
|
||||
item.name[1] == 'M') {
|
||||
data += `
|
||||
func (this *${item.name}) GetNetMsgId() uint16 {
|
||||
return uint16(SMMessageIdE__${item.name})
|
||||
}
|
||||
`;
|
||||
}
|
||||
});
|
||||
data += `
|
||||
func init() {
|
||||
`;
|
||||
this.csProtoPb.nested.cs.nestedArray.forEach(
|
||||
(item) => {
|
||||
if (item.name[0] == 'C' &&
|
||||
item.name[1] == 'M') {
|
||||
data += `
|
||||
handlers[int(CMMessageIdE__${item.name})] = &CsNetMsgHandler{
|
||||
MsgId: int(CMMessageIdE__${item.name}),
|
||||
ParseCb: func (data []byte) interface{} {
|
||||
msg := &${item.name}{}
|
||||
proto.Unmarshal(data, msg)
|
||||
return msg
|
||||
},
|
||||
Cb: func (hdr *f5.MsgHdr, handler MsgHandler) {
|
||||
handler.${item.name}(hdr, hdr.Msg.(*${item.name}))
|
||||
},
|
||||
}
|
||||
`;
|
||||
}
|
||||
});
|
||||
data += `
|
||||
}`;
|
||||
fs.writeFileSync('./cs/cs.auto_gen.go', data);
|
||||
}
|
||||
|
||||
async genSsAutoGen() {
|
||||
let data = `package ss
|
||||
|
||||
import (
|
||||
"f5"
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
)
|
||||
|
||||
type SsNetMsgHandler f5.NetMsgHandler[MsgHandler];
|
||||
|
||||
type MsgHandlerImpl struct {
|
||||
}
|
||||
|
||||
var handlers [2000]*SsNetMsgHandler
|
||||
|
||||
func GetNetMsgHandler(msgId uint16) *SsNetMsgHandler {
|
||||
handler := handlers[msgId]
|
||||
return handler
|
||||
}
|
||||
|
||||
func DispatchMsg(handler *SsNetMsgHandler, hdr *f5.MsgHdr, msgHandler MsgHandler) {
|
||||
handler.Cb(hdr, msgHandler)
|
||||
}
|
||||
|
||||
func RegHandlerId(msgId int, handlerId int) {
|
||||
handler := handlers[msgId]
|
||||
handler.HandlerId = handlerId
|
||||
}
|
||||
|
||||
func ParsePb(msgId uint16, data []byte) interface{} {
|
||||
handler := handlers[msgId]
|
||||
if handler == nil {
|
||||
return nil
|
||||
}
|
||||
return handler.ParseCb(data)
|
||||
}
|
||||
`;
|
||||
data += `
|
||||
type MsgHandler interface {`;
|
||||
this.ssProtoPb.nested.ss.nestedArray.forEach(
|
||||
(item) => {
|
||||
if (item.name[0] == 'S' &&
|
||||
item.name[1] == 'S') {
|
||||
data += `
|
||||
${item.name}(*f5.MsgHdr, *${item.name})`;
|
||||
}
|
||||
});
|
||||
data += `
|
||||
}
|
||||
`;
|
||||
this.ssProtoPb.nested.ss.nestedArray.forEach(
|
||||
(item) => {
|
||||
if (item.name[0] == 'S' &&
|
||||
item.name[1] == 'S') {
|
||||
data += `
|
||||
func (this *MsgHandlerImpl) ${item.name}(hdr *f5.MsgHdr, msg *${item.name}) {
|
||||
}
|
||||
`;
|
||||
}
|
||||
});
|
||||
this.ssProtoPb.nested.ss.nestedArray.forEach(
|
||||
(item) => {
|
||||
if (item.name[0] == 'S' &&
|
||||
item.name[1] == 'S') {
|
||||
data += `
|
||||
func (this *${item.name}) GetNetMsgId() uint16 {
|
||||
return uint16(SSMessageIdE__${item.name})
|
||||
}
|
||||
`;
|
||||
} else if (item.name[0] == 'S' &&
|
||||
item.name[1] == 'M') {
|
||||
data += `
|
||||
func (this *${item.name}) GetNetMsgId() uint16 {
|
||||
return uint16(SMMessageIdE__${item.name})
|
||||
}
|
||||
`;
|
||||
}
|
||||
});
|
||||
data += `
|
||||
func init() {
|
||||
`;
|
||||
this.ssProtoPb.nested.ss.nestedArray.forEach(
|
||||
(item) => {
|
||||
if (item.name[0] == 'S' &&
|
||||
item.name[1] == 'S') {
|
||||
data += `
|
||||
handlers[int(SSMessageIdE__${item.name})] = &SsNetMsgHandler{
|
||||
MsgId: int(SSMessageIdE__${item.name}),
|
||||
ParseCb: func (data []byte) interface{} {
|
||||
msg := &${item.name}{}
|
||||
proto.Unmarshal(data, msg)
|
||||
return msg
|
||||
},
|
||||
Cb: func (hdr *f5.MsgHdr, handler MsgHandler) {
|
||||
handler.${item.name}(hdr, hdr.Msg.(*${item.name}))
|
||||
},
|
||||
}
|
||||
`;
|
||||
}
|
||||
});
|
||||
data += `
|
||||
}`;
|
||||
fs.writeFileSync('./ss/ss.auto_gen.go', data);
|
||||
}
|
||||
|
||||
async genMtbAutoGen() {
|
||||
let data = `package mtb
|
||||
|
||||
import (
|
||||
"f5"
|
||||
)
|
||||
|
||||
`;
|
||||
this.mtPb.nested.mt.nestedArray.forEach(
|
||||
(item) => {
|
||||
data += `type ${item.name} struct {\n`;
|
||||
item.fieldsArray.forEach
|
||||
(
|
||||
(item2, index) => {
|
||||
assert(item2.id <= 127);
|
||||
data += ` ${item2.name} ` + this.dumpClassField(item, item2, index) + `\n`;
|
||||
}
|
||||
);
|
||||
data += `
|
||||
_flags1_ uint64
|
||||
_flags2_ uint64
|
||||
}
|
||||
|
||||
`;
|
||||
}
|
||||
);
|
||||
data += '';
|
||||
this.mtPb.nested.mt.nestedArray.forEach(
|
||||
(item) => {
|
||||
item.fieldsArray.forEach
|
||||
(
|
||||
(item2, index) => {
|
||||
const newName = this.converUpperCamelCaseName(item2.name);
|
||||
data += `func (this *${item.name}) Get${newName}() ` +
|
||||
this.dumpClassField(item, item2, index) + ` {\n`;
|
||||
data += ` return this.${item2.name}\n`;
|
||||
data += `}\n\n`;
|
||||
data += `func (this *${item.name}) Has${newName}() bool {\n`;
|
||||
if (item2.id < 64) {
|
||||
data += ` return (this._flags1_ & (uint64(1) << ${item2.id})) > 0\n`;
|
||||
} else {
|
||||
data += ` return (this._flags2_ & (uint64(1) << (${item2.id} - 64))) > 0\n`;
|
||||
}
|
||||
data += `}\n\n`;
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
this.mtPb.nested.mt.nestedArray.forEach(
|
||||
(item) => {
|
||||
data += `
|
||||
func (this *${item.name}) LoadFromKv(kv map[string]interface{}) {
|
||||
`;
|
||||
item.fieldsArray.forEach
|
||||
(
|
||||
(item2, index) => {
|
||||
if (item2.id < 64) {
|
||||
data += ` f5.ReadMetaTableField(&this.${item2.name}, "${item2.name}", &this._flags1_, ${item2.id}, kv)\n`;
|
||||
} else {
|
||||
data += ` f5.ReadMetaTableField(&this.${item2.name}, "${item2.name}", &this._flags2_, ${item2.id} - 64, kv)\n`;
|
||||
}
|
||||
}
|
||||
);
|
||||
data += '}\n';
|
||||
}
|
||||
);
|
||||
fs.writeFileSync('./mtb/mtb.auto_gen.go', data);
|
||||
}
|
||||
|
||||
dumpClassField(cls, field, index) {
|
||||
const fieldName = field.name;
|
||||
switch (field.type) {
|
||||
case 'int32':
|
||||
{
|
||||
return `int32`;
|
||||
}
|
||||
break;
|
||||
case 'int64':
|
||||
{
|
||||
return `int64`;
|
||||
}
|
||||
break;
|
||||
case 'float':
|
||||
{
|
||||
return `float32`;
|
||||
}
|
||||
break;
|
||||
case 'double':
|
||||
{
|
||||
return `float64`;
|
||||
}
|
||||
break;
|
||||
case 'string':
|
||||
{
|
||||
return `string`;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
console.log(field);
|
||||
assert(false, 'error field type:' + field.type);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
converUpperCamelCaseName(name) {
|
||||
let newName = '';
|
||||
let preIs_ = false;
|
||||
for (let i = 0; i < name.length; ++i) {
|
||||
if (i == 0) {
|
||||
newName += name[i].toUpperCase();
|
||||
preIs_ = name[i] == '_';
|
||||
} else {
|
||||
if (preIs_) {
|
||||
if (name[i] != '_') {
|
||||
newName += name[i].toUpperCase();
|
||||
}
|
||||
} else {
|
||||
if (name[i] != '_') {
|
||||
newName += name[i];
|
||||
}
|
||||
}
|
||||
preIs_ = name[i] == '_';
|
||||
}
|
||||
}
|
||||
return newName;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
(new PBTools).init();
|
162
server/notifyserver/tools/pbtools/package-lock.json
generated
Normal file
162
server/notifyserver/tools/pbtools/package-lock.json
generated
Normal file
@ -0,0 +1,162 @@
|
||||
{
|
||||
"name": "pbtools",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@protobufjs/aspromise": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
|
||||
"integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ=="
|
||||
},
|
||||
"@protobufjs/base64": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
|
||||
"integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
|
||||
},
|
||||
"@protobufjs/codegen": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
|
||||
"integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
|
||||
},
|
||||
"@protobufjs/eventemitter": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
|
||||
"integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q=="
|
||||
},
|
||||
"@protobufjs/fetch": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
|
||||
"integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
|
||||
"requires": {
|
||||
"@protobufjs/aspromise": "^1.1.1",
|
||||
"@protobufjs/inquire": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"@protobufjs/float": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
|
||||
"integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ=="
|
||||
},
|
||||
"@protobufjs/inquire": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
|
||||
"integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q=="
|
||||
},
|
||||
"@protobufjs/path": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
|
||||
"integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA=="
|
||||
},
|
||||
"@protobufjs/pool": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
|
||||
"integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw=="
|
||||
},
|
||||
"@protobufjs/utf8": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
|
||||
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
|
||||
},
|
||||
"@types/long": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
|
||||
"integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA=="
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "20.4.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.9.tgz",
|
||||
"integrity": "sha512-8e2HYcg7ohnTUbHk8focoklEQYvemQmu9M/f43DZVx43kHn0tE3BY/6gSDxS7k0SprtS0NHvj+L80cGLnoOUcQ=="
|
||||
},
|
||||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
|
||||
},
|
||||
"axios": {
|
||||
"version": "0.27.2",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
|
||||
"integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
|
||||
"requires": {
|
||||
"follow-redirects": "^1.14.9",
|
||||
"form-data": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
|
||||
},
|
||||
"follow-redirects": {
|
||||
"version": "1.15.2",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
|
||||
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
|
||||
},
|
||||
"form-data": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.8",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"long": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
|
||||
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.52.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
|
||||
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.35",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
|
||||
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
||||
"requires": {
|
||||
"mime-db": "1.52.0"
|
||||
}
|
||||
},
|
||||
"minimist": {
|
||||
"version": "1.2.8",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
|
||||
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
|
||||
},
|
||||
"nodejs-websocket": {
|
||||
"version": "1.7.2",
|
||||
"resolved": "https://registry.npmjs.org/nodejs-websocket/-/nodejs-websocket-1.7.2.tgz",
|
||||
"integrity": "sha512-PFX6ypJcCNDs7obRellR0DGTebfUhw1SXGKe2zpB+Ng1DQJhdzbzx1ob+AvJCLzy2TJF4r8cCDqMQqei1CZdPQ=="
|
||||
},
|
||||
"protobufjs": {
|
||||
"version": "6.11.3",
|
||||
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz",
|
||||
"integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==",
|
||||
"requires": {
|
||||
"@protobufjs/aspromise": "^1.1.2",
|
||||
"@protobufjs/base64": "^1.1.2",
|
||||
"@protobufjs/codegen": "^2.0.4",
|
||||
"@protobufjs/eventemitter": "^1.1.0",
|
||||
"@protobufjs/fetch": "^1.1.0",
|
||||
"@protobufjs/float": "^1.0.2",
|
||||
"@protobufjs/inquire": "^1.1.0",
|
||||
"@protobufjs/path": "^1.1.2",
|
||||
"@protobufjs/pool": "^1.1.0",
|
||||
"@protobufjs/utf8": "^1.1.0",
|
||||
"@types/long": "^4.0.1",
|
||||
"@types/node": ">=13.7.0",
|
||||
"long": "^4.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
13
server/notifyserver/tools/pbtools/package.json
Normal file
13
server/notifyserver/tools/pbtools/package.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "pbtools",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"private": true,
|
||||
"scripts": {},
|
||||
"dependencies": {
|
||||
"axios": "^0.27.0",
|
||||
"nodejs-websocket": "^1.7.2",
|
||||
"protobufjs": "^6.11.2",
|
||||
"minimist": "^1.2.6"
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user