x
This commit is contained in:
@@ -32,3 +32,5 @@ core/dist
|
|||||||
test
|
test
|
||||||
.sillyplus
|
.sillyplus
|
||||||
test*
|
test*
|
||||||
|
node_modules
|
||||||
|
plugins
|
||||||
+43
-9
@@ -532,17 +532,32 @@ func (f *Factory) SetIsAdmin(function func(string) bool) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *Factory) Sender2() *CustomSender {
|
func (f *Factory) Sender2(options map[string]string) *CustomSender {
|
||||||
var demo = *f.demo
|
var demo = *f.demo
|
||||||
sender := &demo
|
sender := &demo
|
||||||
|
sender.SetID()
|
||||||
|
if options != nil {
|
||||||
|
fsp := &common.FakerSenderParams{}
|
||||||
|
if v, ok := options[CONETNT]; ok {
|
||||||
|
fsp.Content = v
|
||||||
|
}
|
||||||
|
if v, ok := options[USER_ID]; ok {
|
||||||
|
fsp.UserID = v
|
||||||
|
}
|
||||||
|
if v, ok := options[CHAT_ID]; ok {
|
||||||
|
fsp.ChatID = v
|
||||||
|
}
|
||||||
|
if v, ok := options[MESSAGE_ID]; ok {
|
||||||
|
fsp.MessageID = v
|
||||||
|
}
|
||||||
|
sender.SetFsps(fsp)
|
||||||
|
}
|
||||||
return sender
|
return sender
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *Factory) Sender() interface{} {
|
func (f *Factory) Sender() interface{} {
|
||||||
var demo = *f.demo
|
|
||||||
sender := &demo
|
|
||||||
return &SenderJsIplm{
|
return &SenderJsIplm{
|
||||||
Message: sender,
|
Message: f.Sender2(nil),
|
||||||
Vm: f.vm,
|
Vm: f.vm,
|
||||||
Private: "private",
|
Private: "private",
|
||||||
Group: "group",
|
Group: "group",
|
||||||
@@ -552,10 +567,11 @@ func (f *Factory) Sender() interface{} {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *Factory) Receive(wt interface{}) *CustomSender {
|
func (f *Factory) Receive(props map[string]interface{}) *CustomSender {
|
||||||
var demo = *f.demo
|
var demo = *f.demo
|
||||||
sender := &demo
|
sender := &demo
|
||||||
props := wt.(map[string]interface{})
|
sender.SetID()
|
||||||
|
console.Log("senderId", sender.GetID())
|
||||||
emf := map[string]interface{}{}
|
emf := map[string]interface{}{}
|
||||||
for i := range props {
|
for i := range props {
|
||||||
h := false
|
h := false
|
||||||
@@ -636,12 +652,12 @@ func (sender *CustomSender) GetBotID() string {
|
|||||||
|
|
||||||
type PUSH string
|
type PUSH string
|
||||||
|
|
||||||
func (sender *CustomSender) Action(options map[string]interface{}) (interface{}, string) {
|
func (sender *CustomSender) Action(options map[string]interface{}) (interface{}, error) {
|
||||||
var platform = sender.f.botplt
|
var platform = sender.f.botplt
|
||||||
var any *common.Function
|
var any *common.Function
|
||||||
var one *common.Function
|
var one *common.Function
|
||||||
var result interface{}
|
var result interface{}
|
||||||
var err = ""
|
var err error
|
||||||
for _, function := range Functions {
|
for _, function := range Functions {
|
||||||
if function.Reply != nil && function.Reply.Platform == platform {
|
if function.Reply != nil && function.Reply.Platform == platform {
|
||||||
if len(function.Reply.BotsID) == 0 {
|
if len(function.Reply.BotsID) == 0 {
|
||||||
@@ -668,7 +684,7 @@ func (sender *CustomSender) Action(options map[string]interface{}) (interface{},
|
|||||||
result = value
|
result = value
|
||||||
}
|
}
|
||||||
if property == "error" {
|
if property == "error" {
|
||||||
err = value.String()
|
err = errors.New(value.String())
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
@@ -897,3 +913,21 @@ func (sender *CustomSender) IsAdmin() bool {
|
|||||||
}
|
}
|
||||||
return sender.f.isAdmin(sender.GetUserID())
|
return sender.f.isAdmin(sender.GetUserID())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (sender *CustomSender) GetID() string {
|
||||||
|
return sender.id
|
||||||
|
}
|
||||||
|
|
||||||
|
var test = "4d6371a8-2778-11ee-a3c2-821680fbbf6b"
|
||||||
|
|
||||||
|
func (sender *CustomSender) SetID() {
|
||||||
|
if test != "" {
|
||||||
|
sender.id = test
|
||||||
|
test = ""
|
||||||
|
} else {
|
||||||
|
sender.id = utils.GenUUID()
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.CreatedAt = time.Now()
|
||||||
|
senders.Store(sender.id, sender)
|
||||||
|
}
|
||||||
|
|||||||
+18
-3
@@ -160,6 +160,8 @@ type BaseSender struct {
|
|||||||
params []string
|
params []string
|
||||||
level int
|
level int
|
||||||
emf map[string]interface{}
|
emf map[string]interface{}
|
||||||
|
id string
|
||||||
|
CreatedAt time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sender *BaseSender) SetLevel(l int) {
|
func (sender *BaseSender) SetLevel(l int) {
|
||||||
@@ -369,8 +371,22 @@ func (sender *BaseSender) Event() map[string]interface{} {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sender *BaseSender) Action(map[string]interface{}) (interface{}, string) {
|
func (sender *BaseSender) Action(map[string]interface{}) (interface{}, error) {
|
||||||
return nil, ""
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sender *BaseSender) GetID() string {
|
||||||
|
return sender.id
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sender *BaseSender) SetID() {
|
||||||
|
sender.id = utils.GenUUID()
|
||||||
|
sender.CreatedAt = time.Now()
|
||||||
|
senders.Store(sender.id, sender)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sender *BaseSender) GetTime() time.Time {
|
||||||
|
return sender.CreatedAt
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sender *BaseSender) IsAtLast() bool {
|
func (sender *BaseSender) IsAtLast() bool {
|
||||||
@@ -581,7 +597,6 @@ func (s *BaseSender) Await(message common.Sender, callback func(common.Sender) i
|
|||||||
c.Result <- result
|
c.Result <- result
|
||||||
return s.GetContent()
|
return s.GetContent()
|
||||||
}
|
}
|
||||||
|
|
||||||
case error:
|
case error:
|
||||||
if handleErr != nil {
|
if handleErr != nil {
|
||||||
handleErr(s)
|
handleErr(s)
|
||||||
|
|||||||
+3
-3
@@ -63,7 +63,7 @@ func initCarry() {
|
|||||||
q := value.(*Queue)
|
q := value.(*Queue)
|
||||||
for _, qm := range q.GetValues() {
|
for _, qm := range q.GetValues() {
|
||||||
if qm.From != nil && qm.From.GetMessageID() == event["message_id"] {
|
if qm.From != nil && qm.From.GetMessageID() == event["message_id"] {
|
||||||
qm.To.Sender2().RecallMessage(qm.MessageID)
|
qm.To.Sender2(nil).RecallMessage(qm.MessageID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
@@ -434,7 +434,7 @@ func init() {
|
|||||||
functions := Functions
|
functions := Functions
|
||||||
for _, function := range functions {
|
for _, function := range functions {
|
||||||
if function.UUID != "" {
|
if function.UUID != "" {
|
||||||
scripts[function.UUID] = function.Title + ".js"
|
scripts[function.UUID] = function.Title + function.Suffix
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ctx.JSON(200, map[string]interface{}{
|
ctx.JSON(200, map[string]interface{}{
|
||||||
@@ -496,7 +496,7 @@ func init() {
|
|||||||
functions := Functions
|
functions := Functions
|
||||||
for _, function := range functions {
|
for _, function := range functions {
|
||||||
if function.UUID != "" && ((len(function.Rules) == 0 && !function.OnStart && !function.Module && len(function.Https) == 0 && function.Reply == nil) || function.Carry) {
|
if function.UUID != "" && ((len(function.Rules) == 0 && !function.OnStart && !function.Module && len(function.Https) == 0 && function.Reply == nil) || function.Carry) {
|
||||||
scripts[function.UUID] = function.Title + ".js"
|
scripts[function.UUID] = function.Title + function.Suffix
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var user_names = []NicklabeL{}
|
var user_names = []NicklabeL{}
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ type Function struct {
|
|||||||
Origin string `json:"-"`
|
Origin string `json:"-"`
|
||||||
UUID string `json:"id"`
|
UUID string `json:"id"`
|
||||||
Title string `json:"title"`
|
Title string `json:"title"`
|
||||||
|
Type string `json:"type"` //脚本类型
|
||||||
|
Suffix string `json:"suffix"` //脚本后缀
|
||||||
Description string `json:"description"`
|
Description string `json:"description"`
|
||||||
Public bool `json:"public"`
|
Public bool `json:"public"`
|
||||||
Icon string `json:"icon"`
|
Icon string `json:"icon"`
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package common
|
package common
|
||||||
|
|
||||||
|
import "time"
|
||||||
|
|
||||||
type Sender interface {
|
type Sender interface {
|
||||||
|
GetID() string
|
||||||
|
GetTime() time.Time
|
||||||
|
SetID()
|
||||||
GetUserID() string
|
GetUserID() string
|
||||||
GetChatID() string
|
GetChatID() string
|
||||||
GetBotID() string
|
GetBotID() string
|
||||||
@@ -51,7 +56,7 @@ type Sender interface {
|
|||||||
SetLevel(int)
|
SetLevel(int)
|
||||||
GetLevel() int
|
GetLevel() int
|
||||||
Event() map[string]interface{}
|
Event() map[string]interface{}
|
||||||
Action(map[string]interface{}) (interface{}, string)
|
Action(map[string]interface{}) (interface{}, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type FakerSenderParams struct {
|
type FakerSenderParams struct {
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package core
|
||||||
|
|
||||||
|
import (
|
||||||
|
"log"
|
||||||
|
"net"
|
||||||
|
|
||||||
|
"github.com/cdle/sillyplus/proto3/srpc"
|
||||||
|
"google.golang.org/grpc"
|
||||||
|
)
|
||||||
|
|
||||||
|
// protoc --go_out=. -I. --go-grpc_out=. bucket.proto
|
||||||
|
func init() {
|
||||||
|
go func() {
|
||||||
|
lis, err := net.Listen("tcp", ":50051")
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("failed to listen: %v", err)
|
||||||
|
}
|
||||||
|
s := grpc.NewServer()
|
||||||
|
srpc.RegisterSillyGirlServiceServer(s, &SillyGirlService{})
|
||||||
|
log.Printf("grpc server listening at %v", lis.Addr())
|
||||||
|
if err := s.Serve(lis); err != nil {
|
||||||
|
log.Fatalf("failed to serve: %v", err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
}
|
||||||
@@ -0,0 +1,110 @@
|
|||||||
|
package core
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
"sync"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/cdle/sillyplus/proto3/srpc"
|
||||||
|
"github.com/cdle/sillyplus/utils"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) AdapterRegist(stream srpc.SillyGirlService_AdapterRegistServer) error {
|
||||||
|
var adapter *Factory
|
||||||
|
var echos sync.Map
|
||||||
|
for {
|
||||||
|
req, err := stream.Recv()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if adapter == nil {
|
||||||
|
bot_id := req.GetBotId()
|
||||||
|
platform := req.GetPlatform()
|
||||||
|
adapter = &Factory{}
|
||||||
|
defer adapter.Destroy()
|
||||||
|
adapter.Init(platform, bot_id, nil)
|
||||||
|
adapter.SetReplyHandler(func(m map[string]interface{}) string {
|
||||||
|
m["__type__"] = "reply"
|
||||||
|
echo := utils.GenUUID()
|
||||||
|
ch := make(chan string)
|
||||||
|
echos.Store(echo, ch)
|
||||||
|
defer echos.Delete(echo)
|
||||||
|
m["echo"] = echo
|
||||||
|
stream.Send(&srpc.Default{
|
||||||
|
Value: string(utils.JsonMarshal(m)),
|
||||||
|
})
|
||||||
|
select {
|
||||||
|
case v := <-ch:
|
||||||
|
return v
|
||||||
|
case <-time.After(time.Second * 5):
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
echo := req.GetBotId()
|
||||||
|
message_id := req.GetPlatform()
|
||||||
|
v, ok := echos.Load(echo)
|
||||||
|
if ok {
|
||||||
|
select {
|
||||||
|
case v.(chan string) <- message_id:
|
||||||
|
case <-time.After(time.Millisecond):
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) AdapterReceive(ctx context.Context, req *srpc.AdapterRequest) (*srpc.Default, error) {
|
||||||
|
msgs := map[string]interface{}{}
|
||||||
|
bot_id := req.GetBotId()
|
||||||
|
platform := req.GetPlatform()
|
||||||
|
json.Unmarshal([]byte(req.Value), &msgs)
|
||||||
|
adapter, err := GetAdapter(bot_id, platform)
|
||||||
|
if err == nil {
|
||||||
|
s := adapter.Receive(msgs)
|
||||||
|
return &srpc.Default{Value: s.GetID()}, nil
|
||||||
|
}
|
||||||
|
return &srpc.Default{Value: ""}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) AdapterPush(ctx context.Context, req *srpc.AdapterRequest) (*srpc.Default, error) {
|
||||||
|
msgs := map[string]string{}
|
||||||
|
bot_id := req.GetBotId()
|
||||||
|
platform := req.GetPlatform()
|
||||||
|
json.Unmarshal([]byte(req.Value), &msgs)
|
||||||
|
adapter, err := GetAdapter(bot_id, platform)
|
||||||
|
if err == nil {
|
||||||
|
result := adapter.Push(msgs)
|
||||||
|
message_id := result["message_id"]
|
||||||
|
error := result["error"]
|
||||||
|
if error != "" {
|
||||||
|
return &srpc.Default{Value: ""}, err
|
||||||
|
}
|
||||||
|
return &srpc.Default{Value: message_id}, err
|
||||||
|
}
|
||||||
|
return &srpc.Default{Value: ""}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) AdapterSender(ctx context.Context, req *srpc.AdapterRequest) (*srpc.Default, error) {
|
||||||
|
msgs := map[string]string{}
|
||||||
|
bot_id := req.GetBotId()
|
||||||
|
platform := req.GetPlatform()
|
||||||
|
json.Unmarshal([]byte(req.Value), &msgs)
|
||||||
|
adapter, err := GetAdapter(bot_id, platform)
|
||||||
|
if err == nil {
|
||||||
|
s := adapter.Sender2(msgs)
|
||||||
|
return &srpc.Default{Value: s.GetID()}, nil
|
||||||
|
}
|
||||||
|
return &srpc.Default{Value: ""}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) AdapterDestroy(ctx context.Context, req *srpc.AdapterRequest) (*srpc.Empty, error) {
|
||||||
|
bot_id := req.GetBotId()
|
||||||
|
platform := req.GetPlatform()
|
||||||
|
adapter, err := GetAdapter(bot_id, platform)
|
||||||
|
if err == nil {
|
||||||
|
adapter.Destroy()
|
||||||
|
}
|
||||||
|
return &srpc.Empty{}, err
|
||||||
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
package core
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/cdle/sillyplus/proto3/srpc"
|
||||||
|
"github.com/cdle/sillyplus/utils"
|
||||||
|
)
|
||||||
|
|
||||||
|
type SillyGirlService struct {
|
||||||
|
srpc.UnsafeSillyGirlServiceServer
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get implements BucketServiceServer.Get.
|
||||||
|
func (sg *SillyGirlService) BucketGet(ctx context.Context, req *srpc.BucketKeyRequest) (*srpc.Default, error) {
|
||||||
|
value := MakeBucket(req.Name).GetString(req.Key)
|
||||||
|
return &srpc.Default{Value: value}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set implements BucketServiceServer.Set.
|
||||||
|
func (sg *SillyGirlService) BucketSet(ctx context.Context, req *srpc.BucketSetRequest) (*srpc.BucketSetResponse, error) {
|
||||||
|
message, changed, err := MakeBucket(req.Name).Set(req.Key, req.Value)
|
||||||
|
return &srpc.BucketSetResponse{Changed: changed, Message: message}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete implements BucketServiceServer.Delete.
|
||||||
|
func (sg *SillyGirlService) BucketDelete(ctx context.Context, req *srpc.BucketRequest) (*srpc.Empty, error) {
|
||||||
|
err := MakeBucket(req.Name).Delete()
|
||||||
|
return &srpc.Empty{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Keys implements BucketServiceServer.Keys.
|
||||||
|
func (sg *SillyGirlService) BucketKeys(ctx context.Context, req *srpc.BucketRequest) (*srpc.BucketKeysResponse, error) {
|
||||||
|
keys, err := MakeBucket(req.Name).Keys()
|
||||||
|
return &srpc.BucketKeysResponse{Keys: keys}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Len implements BucketServiceServer.Len.
|
||||||
|
func (sg *SillyGirlService) BucketLen(ctx context.Context, req *srpc.BucketRequest) (*srpc.LenResponse, error) {
|
||||||
|
keys, err := MakeBucket(req.Name).Keys()
|
||||||
|
return &srpc.LenResponse{Length: int32(len(keys))}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) BucketGetAll(ctx context.Context, req *srpc.BucketRequest) (*srpc.Default, error) {
|
||||||
|
var values = map[string]string{}
|
||||||
|
MakeBucket(req.Name).Foreach(func(b1, b2 []byte) error {
|
||||||
|
values[string(b1)] = string(b2)
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
return &srpc.Default{Value: string(utils.JsonMarshal(values))}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Buckets implements BucketServiceServer.Buckets.
|
||||||
|
func (sg *SillyGirlService) BucketBuckets(ctx context.Context, req *srpc.Empty) (*srpc.BucketsResponse, error) {
|
||||||
|
return &srpc.BucketsResponse{Buckets: MakeBucket("app").Buckets()}, nil
|
||||||
|
}
|
||||||
@@ -0,0 +1,197 @@
|
|||||||
|
package core
|
||||||
|
|
||||||
|
import (
|
||||||
|
"crypto/sha1"
|
||||||
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
|
"os/exec"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/cdle/sillyplus/core/common"
|
||||||
|
"github.com/cdle/sillyplus/core/storage"
|
||||||
|
"github.com/cdle/sillyplus/utils"
|
||||||
|
"github.com/dop251/goja"
|
||||||
|
"github.com/fsnotify/fsnotify"
|
||||||
|
"github.com/google/uuid"
|
||||||
|
cron "github.com/robfig/cron/v3"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
go initNodePlugins()
|
||||||
|
}
|
||||||
|
|
||||||
|
func initNodePlugins() {
|
||||||
|
root := utils.ExecPath + "/plugins"
|
||||||
|
plugins := []string{root}
|
||||||
|
os.Mkdir(root, 0755)
|
||||||
|
filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
|
||||||
|
if !strings.HasPrefix(path, "/Users/a1-6/Code/sillyplus/plugins/") {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
files := strings.Split(strings.Replace(path, root+"/", "", 1), "/")
|
||||||
|
// var plugin_dir = false
|
||||||
|
// var plugin_index = false
|
||||||
|
switch len(files) {
|
||||||
|
case 1:
|
||||||
|
// plugin_dir = true
|
||||||
|
if info.IsDir() {
|
||||||
|
plugins = append(plugins, path)
|
||||||
|
}
|
||||||
|
case 2:
|
||||||
|
if (files[1] == "main.ts" || files[1] == "main.js") && !info.IsDir() {
|
||||||
|
AddNodePlugin(path, files[0])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
watcher, err := fsnotify.NewWatcher()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("创建监视器失败:", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer watcher.Close()
|
||||||
|
|
||||||
|
// 要监控的文件夹路径
|
||||||
|
|
||||||
|
for _, dir := range plugins {
|
||||||
|
err = watcher.Add(dir)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("添加监视目录失败:", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case event, ok := <-watcher.Events:
|
||||||
|
if !ok {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// fmt.Println(event.Name, "op", event.Op.String())
|
||||||
|
files := strings.Split(strings.Replace(event.Name, root+"/", "", 1), "/")
|
||||||
|
var plugin_dir = false
|
||||||
|
var plugin_index = false
|
||||||
|
var plugin_name = ""
|
||||||
|
switch len(files) {
|
||||||
|
case 1:
|
||||||
|
plugin_dir = true
|
||||||
|
fmt.Println("目录事件")
|
||||||
|
plugin_name = files[0]
|
||||||
|
case 2:
|
||||||
|
if files[1] == "main.ts" || files[1] == "main.js" {
|
||||||
|
plugin_index = true
|
||||||
|
fmt.Println("入口文件事件")
|
||||||
|
}
|
||||||
|
plugin_name = files[0]
|
||||||
|
}
|
||||||
|
switch event.Op.String() {
|
||||||
|
case "CREATE":
|
||||||
|
if plugin_dir {
|
||||||
|
info, err := os.Stat(event.Name)
|
||||||
|
// fmt.Println(err)
|
||||||
|
if err == nil && info.IsDir() {
|
||||||
|
watcher.Add(event.Name)
|
||||||
|
// fmt.Println("增加插件目录", event.Name)
|
||||||
|
} else {
|
||||||
|
// fmt.Println("非插件目录", event.Name)
|
||||||
|
}
|
||||||
|
} else if plugin_index {
|
||||||
|
// fmt.Println("增加插件", event.Name)
|
||||||
|
AddNodePlugin(event.Name, plugin_name)
|
||||||
|
}
|
||||||
|
case "REMOVE", "RENAME", "REMOVE|RENAME":
|
||||||
|
if plugin_dir {
|
||||||
|
watcher.Remove(event.Name)
|
||||||
|
// fmt.Println("移除插件目录", event.Name)
|
||||||
|
// fmt.Println("移除插件", plugin_name)
|
||||||
|
RemNodePlugin(plugin_name)
|
||||||
|
} else if plugin_index {
|
||||||
|
// fmt.Println("移除插件", plugin_name)
|
||||||
|
RemNodePlugin(plugin_name)
|
||||||
|
}
|
||||||
|
case "WRITE":
|
||||||
|
if plugin_index {
|
||||||
|
RemNodePlugin(plugin_name)
|
||||||
|
AddNodePlugin(event.Name, plugin_name)
|
||||||
|
// fmt.Println("变更插件", event.Name, plugin_name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case err, ok := <-watcher.Errors:
|
||||||
|
if !ok {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Println("错误:", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func RemNodePlugin(name string) error {
|
||||||
|
pluginLock.Lock()
|
||||||
|
defer pluginLock.Unlock()
|
||||||
|
key := nameUuid(name)
|
||||||
|
fmt.Println("rem", key, name)
|
||||||
|
for i := range Functions {
|
||||||
|
if Functions[i].UUID == key {
|
||||||
|
fmt.Println("pl", key)
|
||||||
|
DestroyAdapterByUUID(key)
|
||||||
|
Functions[i].Running = false
|
||||||
|
if len(Functions[i].CronIds) != 0 {
|
||||||
|
for _, id := range Functions[i].CronIds {
|
||||||
|
CRON.Remove(cron.EntryID(id))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Functions = append(Functions[:i], Functions[i+1:]...)
|
||||||
|
CancelPluginCrons(key)
|
||||||
|
CancelPluginWebs(key)
|
||||||
|
CancelPluginlistening(key)
|
||||||
|
CancelHttpListen(key)
|
||||||
|
remStatic(key)
|
||||||
|
storage.DisableHandle(key)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func nameUuid(name string) string {
|
||||||
|
hash := sha1.Sum([]byte(name))
|
||||||
|
return uuid.NewSHA1(uuid.Nil, hash[:]).String()
|
||||||
|
}
|
||||||
|
|
||||||
|
func AddNodePlugin(path, name string) error {
|
||||||
|
pluginLock.Lock()
|
||||||
|
defer pluginLock.Unlock()
|
||||||
|
file, err := os.Open(path)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
data, err := ioutil.ReadAll(file)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
uuid := nameUuid(name)
|
||||||
|
// fmt.Println("add,", uuid, name)
|
||||||
|
f, cbs := pluginParse(string(data), uuid)
|
||||||
|
f.Suffix = ".ts"
|
||||||
|
f.Type = "typescript"
|
||||||
|
f.Handle = func(s common.Sender, f func(vm *goja.Runtime)) interface{} {
|
||||||
|
cmd := exec.Command("node", "/Users/a1-6/.nvm/versions/node/v18.16.1/lib/node_modules/ts-node/dist/bin.js", path)
|
||||||
|
cmd.Env = append(cmd.Env, "SENDER_ID="+s.GetID())
|
||||||
|
// 执行命令,并捕获其输出
|
||||||
|
output, err := cmd.Output()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("命令执行失败:", err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
// 输出命令的输出结果
|
||||||
|
fmt.Println(string(output))
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
for _, cb := range cbs {
|
||||||
|
cb()
|
||||||
|
}
|
||||||
|
AddCommand([]*common.Function{f})
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@@ -0,0 +1,196 @@
|
|||||||
|
package core
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
|
"sync"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/cdle/sillyplus/core/common"
|
||||||
|
"github.com/cdle/sillyplus/proto3/srpc"
|
||||||
|
"github.com/cdle/sillyplus/utils"
|
||||||
|
)
|
||||||
|
|
||||||
|
var senders sync.Map
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
//垃圾回收
|
||||||
|
go func() {
|
||||||
|
for {
|
||||||
|
time.Sleep(time.Minute)
|
||||||
|
senders.Range(func(key, value any) bool {
|
||||||
|
s := value.(common.Sender)
|
||||||
|
if s.GetTime().Add(time.Minute * 20).Before(time.Now()) {
|
||||||
|
senders.Delete(s.GetID())
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetSender(uuid string) (common.Sender, error) {
|
||||||
|
v, ok := senders.Load(uuid)
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.New("not found sender")
|
||||||
|
}
|
||||||
|
return v.(common.Sender), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) SenderGetUserId(ctx context.Context, req *srpc.SenderRequest) (*srpc.Default, error) {
|
||||||
|
s, err := GetSender(req.Uuid)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &srpc.Default{Value: s.GetChatID()}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) SenderGetUserName(ctx context.Context, req *srpc.SenderRequest) (*srpc.Default, error) {
|
||||||
|
s, err := GetSender(req.Uuid)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &srpc.Default{Value: s.GetUserName()}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) SenderGetChatId(ctx context.Context, req *srpc.SenderRequest) (*srpc.Default, error) {
|
||||||
|
s, err := GetSender(req.Uuid)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &srpc.Default{Value: s.GetChatID()}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) SenderGetChatName(ctx context.Context, req *srpc.SenderRequest) (*srpc.Default, error) {
|
||||||
|
s, err := GetSender(req.Uuid)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &srpc.Default{Value: s.GetChatName()}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) SenderGetMessageId(ctx context.Context, req *srpc.SenderRequest) (*srpc.Default, error) {
|
||||||
|
s, err := GetSender(req.Uuid)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &srpc.Default{Value: s.GetMessageID()}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) SenderGetPlatform(ctx context.Context, req *srpc.SenderRequest) (*srpc.Default, error) {
|
||||||
|
s, err := GetSender(req.Uuid)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &srpc.Default{Value: s.GetImType()}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) SenderGetBotId(ctx context.Context, req *srpc.SenderRequest) (*srpc.Default, error) {
|
||||||
|
s, err := GetSender(req.Uuid)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &srpc.Default{Value: s.GetBotID()}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) SenderGetContent(ctx context.Context, req *srpc.SenderRequest) (*srpc.Default, error) {
|
||||||
|
s, err := GetSender(req.Uuid)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &srpc.Default{Value: s.GetContent()}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) SenderSetContent(ctx context.Context, req *srpc.SenderContentRequest) (*srpc.Empty, error) {
|
||||||
|
s, err := GetSender(req.Uuid)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
s.SetContent(req.Content)
|
||||||
|
return &srpc.Empty{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) SenderContinue(ctx context.Context, req *srpc.SenderRequest) (*srpc.Empty, error) {
|
||||||
|
s, err := GetSender(req.Uuid)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
s.Continue()
|
||||||
|
return &srpc.Empty{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// todo
|
||||||
|
func (sg *SillyGirlService) SenderListen(ctx context.Context, req *srpc.SenderListenRequest) (*srpc.Default, error) {
|
||||||
|
s, err := GetSender(req.Uuid)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
options := []interface{}{}
|
||||||
|
var carry = &Carry{
|
||||||
|
ListenPrivate: req.ListenPrivate,
|
||||||
|
ListenGroup: req.ListenGroup,
|
||||||
|
RequireAdmin: req.RequireAdmin,
|
||||||
|
AllowPlatforms: req.AllowPlatforms,
|
||||||
|
ProhibitPlatforms: req.ProhibitPlatforms,
|
||||||
|
AllowGroups: req.AllowGroups,
|
||||||
|
ProhibitGroups: req.ProhibitGroups,
|
||||||
|
AllowUsers: req.AllowUsers,
|
||||||
|
ProhibitUsers: req.ProhibitUsers,
|
||||||
|
UserID: s.GetUserID(),
|
||||||
|
ChatID: s.GetChatID(),
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.Timeout != 0 {
|
||||||
|
options = append(options, time.Duration(req.Timeout)*time.Millisecond)
|
||||||
|
}
|
||||||
|
if len(req.Rules) != 0 {
|
||||||
|
for _, rule := range req.Rules {
|
||||||
|
_rs := formatRule(rule)
|
||||||
|
if len(_rs) != 0 {
|
||||||
|
carry.Function.Rules = append(carry.Function.Rules, _rs...)
|
||||||
|
} else {
|
||||||
|
carry.Function.Rules = append(carry.Function.Rules, rule)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
options = append(options, carry)
|
||||||
|
id := ""
|
||||||
|
s.Await(s, func(s common.Sender) interface{} {
|
||||||
|
id = s.GetID()
|
||||||
|
return nil
|
||||||
|
}, options...)
|
||||||
|
return &srpc.Default{Value: id}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) SenderEvent(ctx context.Context, req *srpc.SenderRequest) (*srpc.Default, error) {
|
||||||
|
s, err := GetSender(req.Uuid)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &srpc.Default{Value: string(utils.JsonMarshal(s.Event()))}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) SenderReply(ctx context.Context, req *srpc.ReplyRequest) (*srpc.Default, error) {
|
||||||
|
s, err := GetSender(req.Uuid)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
message_id, err := s.Reply(req.Content)
|
||||||
|
return &srpc.Default{Value: message_id}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sg *SillyGirlService) SenderAction(ctx context.Context, req *srpc.ReplyRequest) (*srpc.Default, error) {
|
||||||
|
s, err := GetSender(req.Uuid)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
var params = map[string]interface{}{}
|
||||||
|
err = json.Unmarshal([]byte(req.Content), ¶ms)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
result, err := s.Action(params)
|
||||||
|
return &srpc.Default{Value: string(utils.JsonMarshal(result))}, err
|
||||||
|
}
|
||||||
+115
-368
@@ -19,6 +19,8 @@ import (
|
|||||||
"github.com/robfig/cron/v3"
|
"github.com/robfig/cron/v3"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var pluginLock = new(sync.Mutex)
|
||||||
|
|
||||||
type myFieldNameMapper struct{}
|
type myFieldNameMapper struct{}
|
||||||
|
|
||||||
var mutexMap = make(map[string]*sync.Mutex)
|
var mutexMap = make(map[string]*sync.Mutex)
|
||||||
@@ -89,7 +91,9 @@ func initPlugins() {
|
|||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
plugins.Foreach(func(key, data []byte) error {
|
plugins.Foreach(func(key, data []byte) error {
|
||||||
f, cbs, err := initPlugin(string(data), string(key))
|
pluginLock.Lock()
|
||||||
|
defer pluginLock.Unlock()
|
||||||
|
f, cbs, err := initPlugin(string(data), string(key), "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
console.Error("初始化插件%s错误: %v", key, err)
|
console.Error("初始化插件%s错误: %v", key, err)
|
||||||
}
|
}
|
||||||
@@ -100,7 +104,7 @@ func initPlugins() {
|
|||||||
// os.WriteFile(fmt.Sprintf("%s/%s.js", pluginPath, f.Title), data, 0600)
|
// os.WriteFile(fmt.Sprintf("%s/%s.js", pluginPath, f.Title), data, 0600)
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
var pluginLock = new(sync.Mutex)
|
|
||||||
storage.Watch(plugins, nil, func(old, new, key string) (fin *storage.Final) {
|
storage.Watch(plugins, nil, func(old, new, key string) (fin *storage.Final) {
|
||||||
pluginLock.Lock()
|
pluginLock.Lock()
|
||||||
defer pluginLock.Unlock()
|
defer pluginLock.Unlock()
|
||||||
@@ -110,7 +114,7 @@ func initPlugins() {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
script := string(fetchScript(p.Address, key))
|
script := string(fetchScript(p.Address, key))
|
||||||
if f, _, _ := initPlugin(script, p.UUID); f.CreateAt != "" {
|
if f, _, _ := initPlugin(script, p.UUID, ""); f.CreateAt != "" {
|
||||||
fin = &storage.Final{
|
fin = &storage.Final{
|
||||||
Now: script,
|
Now: script,
|
||||||
}
|
}
|
||||||
@@ -203,7 +207,7 @@ func initPlugins() {
|
|||||||
}
|
}
|
||||||
new = su.script
|
new = su.script
|
||||||
}
|
}
|
||||||
f, cbs, err := initPlugin(new, key)
|
f, cbs, err := initPlugin(new, key, "")
|
||||||
if err != nil && new != "" {
|
if err != nil && new != "" {
|
||||||
pluginConsole(key).Error(err)
|
pluginConsole(key).Error(err)
|
||||||
}
|
}
|
||||||
@@ -227,13 +231,13 @@ func initPlugins() {
|
|||||||
if new != "" {
|
if new != "" {
|
||||||
AddCommand([]*common.Function{f})
|
AddCommand([]*common.Function{f})
|
||||||
if old == "" {
|
if old == "" {
|
||||||
console.Log("已加载 %s.js", f.Title)
|
console.Log("已加载 %s%s", f.Title, f.Suffix)
|
||||||
} else if !f.OnStart {
|
} else if !f.OnStart {
|
||||||
console.Log("已重载 %s.js", f.Title)
|
console.Log("已重载 %s%s", f.Title, f.Suffix)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
of, _, _ := initPlugin(old, key)
|
of, _, _ := initPlugin(old, key, "")
|
||||||
console.Log("已卸载 %s.js", of.Title)
|
console.Log("已卸载 %s%s", of.Title, of.Suffix)
|
||||||
}
|
}
|
||||||
apd = true
|
apd = true
|
||||||
break
|
break
|
||||||
@@ -255,236 +259,12 @@ func initPlugins() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func initPlugin(data string, uuid string) (*common.Function, []func(), error) {
|
func initPlugin(data string, uuid string, scriptType string) (*common.Function, []func(), error) {
|
||||||
var cbs = []func(){}
|
f, cbs := pluginParse(data, uuid)
|
||||||
var err error
|
f.Suffix = ".js"
|
||||||
var rules []string
|
f.Type = "goja"
|
||||||
var imType *common.Filter
|
|
||||||
var userId *common.Filter
|
|
||||||
var groupId *common.Filter
|
|
||||||
var cron = map[string]string{}
|
|
||||||
var admin bool
|
|
||||||
var disable bool
|
|
||||||
var priority int
|
|
||||||
var title string
|
|
||||||
var public bool
|
|
||||||
var description string
|
|
||||||
var icon string
|
|
||||||
var version string = "v1.0.0"
|
|
||||||
var author string
|
|
||||||
var create_at string
|
|
||||||
var module bool
|
|
||||||
var web bool
|
|
||||||
var encrypt bool
|
|
||||||
var onStart bool
|
|
||||||
var origin = "自定义"
|
|
||||||
var https = []*common.Http{}
|
|
||||||
var message *common.Reply
|
|
||||||
var FindAll bool
|
|
||||||
var hasForm bool
|
|
||||||
var carry bool
|
|
||||||
var classes = []string{}
|
|
||||||
ks := map[string]bool{}
|
|
||||||
ress := regexp.MustCompile(
|
|
||||||
`\*\s?@([\d\w+-]+)\s+([^\n]+?)\n`,
|
|
||||||
).FindAllStringSubmatch(data, -1)
|
|
||||||
for _, res := range ress {
|
|
||||||
switch res[1] {
|
|
||||||
case "rule", "match", "regex", "pattern":
|
|
||||||
rule := strings.TrimSpace(res[2])
|
|
||||||
rule = parseReply3(rule, func(s1, s2 string) {
|
|
||||||
k := s1 + "." + s2
|
|
||||||
if _, ok := ks[k]; !ok {
|
|
||||||
cbs = append(cbs, func() {
|
|
||||||
storage.Watch(MakeBucket(s1), s2, func(old, new, key string) *storage.Final {
|
|
||||||
return &storage.Final{
|
|
||||||
EndFunc: func() {
|
|
||||||
plugins.Set(uuid, "reload")
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}, uuid)
|
|
||||||
})
|
|
||||||
ks[k] = true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
_rs := []string{}
|
|
||||||
FR:
|
|
||||||
ress := regexp.MustCompile(`\[([^\s\[\]]+)\]`).FindAllStringSubmatch(rule, -1)
|
|
||||||
if len(ress) != 0 {
|
|
||||||
res := ress[len(ress)-1]
|
|
||||||
var inner = res[1]
|
|
||||||
slice := strings.SplitN(inner, ":", 2)
|
|
||||||
name := slice[0]
|
|
||||||
ps := ""
|
|
||||||
if len(slice) == 2 {
|
|
||||||
ps = slice[1]
|
|
||||||
}
|
|
||||||
if strings.HasSuffix(name, "?") {
|
|
||||||
name = strings.TrimRight(name, "?")
|
|
||||||
rep := ""
|
|
||||||
if ps == "" {
|
|
||||||
rep = fmt.Sprintf("[%s]", name)
|
|
||||||
} else {
|
|
||||||
rep = fmt.Sprintf("[%s:%s]", name, ps)
|
|
||||||
}
|
|
||||||
for l := range _rs {
|
|
||||||
_rs[l] = strings.Replace(_rs[l], res[0], rep, 1)
|
|
||||||
}
|
|
||||||
rule1 := strings.Replace(rule, res[0], rep, 1)
|
|
||||||
if len(_rs) == 0 {
|
|
||||||
_rs = append(_rs, rule1)
|
|
||||||
}
|
|
||||||
rule = strings.Replace(rule, res[0], "", 1)
|
|
||||||
rule = regexp.MustCompile("\x20{2,}").ReplaceAllString(rule, " ")
|
|
||||||
rule = strings.TrimSpace(rule)
|
|
||||||
_rs = append(_rs, rule)
|
|
||||||
goto FR
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if len(_rs) != 0 {
|
|
||||||
rules = append(rules, _rs...)
|
|
||||||
} else {
|
|
||||||
rules = append(rules, rule)
|
|
||||||
}
|
|
||||||
case "class":
|
|
||||||
classes = append(classes, regexp.MustCompile(`[\S]+`).FindAllString(res[2], -1)...)
|
|
||||||
classes = utils.Unique(classes)
|
|
||||||
case "platform", "imType", "platform+", "imType+":
|
|
||||||
var item []string
|
|
||||||
for _, i := range regexp.MustCompile(`[\d\w-]+`).FindAllString(res[2], -1) {
|
|
||||||
item = append(item, strings.TrimSpace(i))
|
|
||||||
}
|
|
||||||
imType = &common.Filter{
|
|
||||||
BlackMode: false,
|
|
||||||
Items: item,
|
|
||||||
}
|
|
||||||
case "platform-", "imType-":
|
|
||||||
var item []string
|
|
||||||
for _, i := range regexp.MustCompile(`[\d\w-]+`).FindAllString(res[2], -1) {
|
|
||||||
item = append(item, strings.TrimSpace(i))
|
|
||||||
}
|
|
||||||
imType = &common.Filter{
|
|
||||||
BlackMode: true,
|
|
||||||
Items: item,
|
|
||||||
}
|
|
||||||
case "userId", "userID", "uid", "userId+", "userID+", "uid+":
|
|
||||||
var item []string
|
|
||||||
for _, i := range regexp.MustCompile(`[\d\w-]+`).FindAllString(res[2], -1) {
|
|
||||||
item = append(item, strings.TrimSpace(i))
|
|
||||||
}
|
|
||||||
userId = &common.Filter{
|
|
||||||
BlackMode: false,
|
|
||||||
Items: item,
|
|
||||||
}
|
|
||||||
case "userId-", "userID-", "uid-":
|
|
||||||
var item []string
|
|
||||||
for _, i := range regexp.MustCompile(`[\d\w-]+`).FindAllString(res[2], -1) {
|
|
||||||
item = append(item, strings.TrimSpace(i))
|
|
||||||
}
|
|
||||||
userId = &common.Filter{
|
|
||||||
BlackMode: true,
|
|
||||||
Items: item,
|
|
||||||
}
|
|
||||||
case "groupId", "groupID", "groupCode", "chat_id", "chat_id+", "chatId", "chatID", "gid", "groupId+", "groupID+", "groupCode+", "chatId+", "chatID+", "gid+":
|
|
||||||
var item []string
|
|
||||||
for _, i := range regexp.MustCompile(`[\d\w-]+`).FindAllString(res[2], -1) {
|
|
||||||
item = append(item, strings.TrimSpace(i))
|
|
||||||
}
|
|
||||||
groupId = &common.Filter{
|
|
||||||
BlackMode: false,
|
|
||||||
Items: item,
|
|
||||||
}
|
|
||||||
case "groupId-", "groupID-", "groupCode-", "chatId-", "chat_id-", "chatID-", "gid-":
|
|
||||||
var item []string
|
|
||||||
for _, i := range regexp.MustCompile(`[\d\w-]+`).FindAllString(res[2], -1) {
|
|
||||||
item = append(item, strings.TrimSpace(i))
|
|
||||||
}
|
|
||||||
groupId = &common.Filter{
|
|
||||||
BlackMode: true,
|
|
||||||
Items: item,
|
|
||||||
}
|
|
||||||
|
|
||||||
case "admin":
|
|
||||||
admin = strings.TrimSpace(res[2]) == "true"
|
|
||||||
case "disable":
|
|
||||||
disable = strings.TrimSpace(res[2]) == "true"
|
|
||||||
case "findall":
|
|
||||||
FindAll = strings.TrimSpace(res[2]) == "true"
|
|
||||||
case "priority":
|
|
||||||
priority = utils.Int(strings.TrimSpace(res[2]))
|
|
||||||
case "title", "name", "show":
|
|
||||||
title = strings.TrimSpace(res[2])
|
|
||||||
case "public":
|
|
||||||
public = strings.TrimSpace(res[2]) == "true"
|
|
||||||
case "description":
|
|
||||||
description = strings.TrimSpace(res[2])
|
|
||||||
case "icon":
|
|
||||||
icon = strings.TrimSpace(res[2])
|
|
||||||
case "version":
|
|
||||||
version = strings.TrimSpace(res[2])
|
|
||||||
case "author":
|
|
||||||
author = strings.TrimSpace(res[2])
|
|
||||||
case "http":
|
|
||||||
ss := regexp.MustCompile(`[\S]+`).FindAllString(strings.TrimSpace(res[2]), -1)
|
|
||||||
if len(ss) == 2 {
|
|
||||||
https = append(https, &common.Http{
|
|
||||||
Path: ss[1],
|
|
||||||
Method: strings.ToUpper(ss[0]),
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
console.Warn("http param is not 2")
|
|
||||||
}
|
|
||||||
case "message":
|
|
||||||
ss := regexp.MustCompile(`[\S]+`).FindAllString(strings.TrimSpace(res[2]), -1)
|
|
||||||
if len(ss) > 1 {
|
|
||||||
if len(ss) == 2 && ss[1] == "*" {
|
|
||||||
message = &common.Reply{
|
|
||||||
Platform: ss[0],
|
|
||||||
BotsID: []string{},
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
message = &common.Reply{
|
|
||||||
Platform: ss[0],
|
|
||||||
BotsID: ss[1:],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
console.Warn("message param is 0")
|
|
||||||
}
|
|
||||||
case "create_at":
|
|
||||||
create_at = strings.TrimSpace(res[2])
|
|
||||||
case "origin":
|
|
||||||
origin = strings.TrimSpace(res[2])
|
|
||||||
case "module":
|
|
||||||
module = strings.TrimSpace(res[2]) == "true"
|
|
||||||
case "web":
|
|
||||||
web = strings.TrimSpace(res[2]) == "true"
|
|
||||||
case "carry":
|
|
||||||
carry = strings.TrimSpace(res[2]) == "true"
|
|
||||||
case "encrypt":
|
|
||||||
encrypt = strings.TrimSpace(res[2]) == "true"
|
|
||||||
case "on_start":
|
|
||||||
onStart = strings.TrimSpace(res[2]) == "true"
|
|
||||||
case "form":
|
|
||||||
hasForm = true
|
|
||||||
case "paterner":
|
|
||||||
paterner := strings.TrimSpace(res[2])
|
|
||||||
go func() {
|
|
||||||
time.Sleep(time.Second * 2)
|
|
||||||
getPaterner(uuid, strings.TrimSpace(paterner))
|
|
||||||
}()
|
|
||||||
default:
|
|
||||||
cron_ := strings.TrimSpace(res[2])
|
|
||||||
cron_ = strings.ReplaceAll(cron_, `\/`, "/")
|
|
||||||
if strings.HasPrefix(res[1], "cron") {
|
|
||||||
cron[res[1]] = cron_
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
script := ""
|
script := ""
|
||||||
if encrypt {
|
if f.Encrypt {
|
||||||
script = DecryptPlugin(string(data))
|
script = DecryptPlugin(string(data))
|
||||||
} else {
|
} else {
|
||||||
script = string(data)
|
script = string(data)
|
||||||
@@ -494,152 +274,119 @@ func initPlugin(data string, uuid string) (*common.Function, []func(), error) {
|
|||||||
script = strings.ReplaceAll(script, "new Bucket", "Bucket")
|
script = strings.ReplaceAll(script, "new Bucket", "Bucket")
|
||||||
// script = regexp.MustCompile(`import\s+\{\s*([^\}]+)\s*\}\s*from\s*['"]([^'"]+)['"]\s*;`).ReplaceAllString(script, "const {$1} = require('$2');")
|
// script = regexp.MustCompile(`import\s+\{\s*([^\}]+)\s*\}\s*from\s*['"]([^'"]+)['"]\s*;`).ReplaceAllString(script, "const {$1} = require('$2');")
|
||||||
// script = regexp.MustCompile(`import\s+\s*([^\}]+)\s*\s*from\s*['"]([^'"]+)['"]\s*;`).ReplaceAllString(script, "const $1 = require('$2');")
|
// script = regexp.MustCompile(`import\s+\s*([^\}]+)\s*\s*from\s*['"]([^'"]+)['"]\s*;`).ReplaceAllString(script, "const $1 = require('$2');")
|
||||||
if !hasForm {
|
var err error
|
||||||
hasForm = strings.Contains(script, "Form(")
|
prg, err2 := goja.Compile(f.Title+".js", script, false)
|
||||||
}
|
|
||||||
prg, err2 := goja.Compile(title+".js", script, false)
|
|
||||||
if err == nil && err2 != nil {
|
if err == nil && err2 != nil {
|
||||||
err = err2
|
err = err2
|
||||||
}
|
}
|
||||||
// if err == nil && len(rules) == 0 && cron != "" {
|
// if err == nil && len(rules) == 0 && cron != "" {
|
||||||
// err = fmt.Errorf("无效的脚本%s", title)
|
// err = fmt.Errorf("无效的脚本%s", title)
|
||||||
// }
|
// }
|
||||||
if web {
|
|
||||||
onStart = true
|
|
||||||
}
|
|
||||||
// if icon == "" {
|
// if icon == "" {
|
||||||
// icon = "https://joeschmoe.io/api/v1/random?t=" + fmt.Sprint(time.Now().Nanosecond())
|
// icon = "https://joeschmoe.io/api/v1/random?t=" + fmt.Sprint(time.Now().Nanosecond())
|
||||||
// }
|
// }
|
||||||
var running func() bool
|
var running func() bool
|
||||||
|
|
||||||
f := &common.Function{
|
f.Handle = func(s common.Sender, set func(vm *goja.Runtime)) interface{} {
|
||||||
Handle: func(s common.Sender, set func(vm *goja.Runtime)) interface{} {
|
if !debug {
|
||||||
if !debug {
|
defer func() {
|
||||||
defer func() {
|
err := recover()
|
||||||
err := recover()
|
|
||||||
if err != nil {
|
|
||||||
pluginConsole(uuid).Error(err)
|
|
||||||
// s.Reply(fmt.Sprint(err))
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
}
|
|
||||||
if err2 != nil {
|
|
||||||
panic(err2)
|
|
||||||
}
|
|
||||||
loop := eventloop.NewEventLoop()
|
|
||||||
loop.Run(func(vm *goja.Runtime) {
|
|
||||||
SetPluginMethod(vm, uuid, onStart, running)
|
|
||||||
ss := &SenderJsIplm{
|
|
||||||
Message: s,
|
|
||||||
Vm: vm,
|
|
||||||
Private: "private",
|
|
||||||
Group: "group",
|
|
||||||
Routine: "routine",
|
|
||||||
Persistent: "persistent",
|
|
||||||
UUID: uuid,
|
|
||||||
}
|
|
||||||
vm.Set("msg", goja.Undefined())
|
|
||||||
vm.Set("message", goja.Undefined())
|
|
||||||
vm.Set("res", goja.Undefined())
|
|
||||||
vm.Set("req", goja.Undefined())
|
|
||||||
vm.Set("action", goja.Undefined())
|
|
||||||
vm.Set("sender", ss)
|
|
||||||
vm.Set("run", func(uuid string) bool { //执行子脚本
|
|
||||||
fs := Functions
|
|
||||||
for i := range fs {
|
|
||||||
if fs[i].UUID == uuid {
|
|
||||||
fs[i].Handle(s, nil)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
})
|
|
||||||
vm.Set("s", ss)
|
|
||||||
vm.Set("InitAdapter", func(plt, botid string, params map[string]interface{}) *Factory {
|
|
||||||
f := &Factory{
|
|
||||||
uuid: uuid,
|
|
||||||
vm: vm,
|
|
||||||
}
|
|
||||||
f.Init(plt, botid, params)
|
|
||||||
return f
|
|
||||||
})
|
|
||||||
vm.Set("initAdapter", func(plt, botid string, params map[string]interface{}) *Factory {
|
|
||||||
f := &Factory{
|
|
||||||
uuid: uuid,
|
|
||||||
vm: vm,
|
|
||||||
}
|
|
||||||
f.Init(plt, botid, params)
|
|
||||||
return f
|
|
||||||
})
|
|
||||||
getAdapter := func(plt, botid string) map[string]interface{} {
|
|
||||||
adapter, err := GetAdapter(plt, botid)
|
|
||||||
errstr := ""
|
|
||||||
if err != nil {
|
|
||||||
errstr = err.Error()
|
|
||||||
}
|
|
||||||
return map[string]interface{}{
|
|
||||||
"error": errstr,
|
|
||||||
"adapter": adapter,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
vm.Set("GetAdapter", getAdapter)
|
|
||||||
vm.Set("getAdapter", getAdapter)
|
|
||||||
vm.Set("getAdapterBotsID", GetAdapterBotsID)
|
|
||||||
vm.Set("getAdapterBotPlts", GetAdapterBotPlts)
|
|
||||||
vm.Set("GetAdapterBotsID", GetAdapterBotsID)
|
|
||||||
vm.Set("GetAdapterBotPlts", GetAdapterBotPlts)
|
|
||||||
vm.Set("running", running)
|
|
||||||
vm.Set("Running", running)
|
|
||||||
vm.Set("uuid", func() string {
|
|
||||||
return uuid
|
|
||||||
})
|
|
||||||
vm.Set("genUuid", func() string {
|
|
||||||
return utils.GenUUID()
|
|
||||||
})
|
|
||||||
vm.Set("genUUID", func() string {
|
|
||||||
return utils.GenUUID()
|
|
||||||
})
|
|
||||||
vm.Set("UUID", func() string {
|
|
||||||
return uuid
|
|
||||||
})
|
|
||||||
if set != nil {
|
|
||||||
set(vm)
|
|
||||||
}
|
|
||||||
_, err := vm.RunProgram(prg)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
pluginConsole(uuid).Error(strings.ReplaceAll(strings.ReplaceAll(err.Error(), "node_modules/", ""), "github.com/dop251/goja_nodejs/require", ""))
|
pluginConsole(uuid).Error(err)
|
||||||
|
// s.Reply(fmt.Sprint(err))
|
||||||
}
|
}
|
||||||
|
}()
|
||||||
|
}
|
||||||
|
if err2 != nil {
|
||||||
|
panic(err2)
|
||||||
|
}
|
||||||
|
loop := eventloop.NewEventLoop()
|
||||||
|
loop.Run(func(vm *goja.Runtime) {
|
||||||
|
SetPluginMethod(vm, uuid, f.OnStart, running)
|
||||||
|
ss := &SenderJsIplm{
|
||||||
|
Message: s,
|
||||||
|
Vm: vm,
|
||||||
|
Private: "private",
|
||||||
|
Group: "group",
|
||||||
|
Routine: "routine",
|
||||||
|
Persistent: "persistent",
|
||||||
|
UUID: uuid,
|
||||||
|
}
|
||||||
|
vm.Set("msg", goja.Undefined())
|
||||||
|
vm.Set("message", goja.Undefined())
|
||||||
|
vm.Set("res", goja.Undefined())
|
||||||
|
vm.Set("req", goja.Undefined())
|
||||||
|
vm.Set("action", goja.Undefined())
|
||||||
|
vm.Set("sender", ss)
|
||||||
|
vm.Set("run", func(uuid string) bool { //执行子脚本
|
||||||
|
fs := Functions
|
||||||
|
for i := range fs {
|
||||||
|
if fs[i].UUID == uuid {
|
||||||
|
fs[i].Handle(s, nil)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
})
|
})
|
||||||
return nil
|
vm.Set("s", ss)
|
||||||
},
|
vm.Set("InitAdapter", func(plt, botid string, params map[string]interface{}) *Factory {
|
||||||
Rules: rules,
|
f := &Factory{
|
||||||
ImType: imType,
|
uuid: uuid,
|
||||||
UserId: userId,
|
vm: vm,
|
||||||
GroupId: groupId,
|
}
|
||||||
Cron: cron,
|
f.Init(plt, botid, params)
|
||||||
Admin: admin,
|
return f
|
||||||
Priority: priority,
|
})
|
||||||
Disable: disable,
|
vm.Set("initAdapter", func(plt, botid string, params map[string]interface{}) *Factory {
|
||||||
UUID: uuid,
|
f := &Factory{
|
||||||
Title: title,
|
uuid: uuid,
|
||||||
Public: public,
|
vm: vm,
|
||||||
Description: description,
|
}
|
||||||
Icon: icon,
|
f.Init(plt, botid, params)
|
||||||
Version: version,
|
return f
|
||||||
Author: author,
|
})
|
||||||
CreateAt: create_at,
|
getAdapter := func(plt, botid string) map[string]interface{} {
|
||||||
Module: module,
|
adapter, err := GetAdapter(plt, botid)
|
||||||
Encrypt: encrypt,
|
errstr := ""
|
||||||
OnStart: onStart,
|
if err != nil {
|
||||||
Origin: origin,
|
errstr = err.Error()
|
||||||
Running: onStart,
|
}
|
||||||
Reply: message,
|
return map[string]interface{}{
|
||||||
Https: https,
|
"error": errstr,
|
||||||
FindAll: FindAll,
|
"adapter": adapter,
|
||||||
HasForm: hasForm,
|
}
|
||||||
Carry: carry,
|
}
|
||||||
Classes: classes,
|
vm.Set("GetAdapter", getAdapter)
|
||||||
|
vm.Set("getAdapter", getAdapter)
|
||||||
|
vm.Set("getAdapterBotsID", GetAdapterBotsID)
|
||||||
|
vm.Set("getAdapterBotPlts", GetAdapterBotPlts)
|
||||||
|
vm.Set("GetAdapterBotsID", GetAdapterBotsID)
|
||||||
|
vm.Set("GetAdapterBotPlts", GetAdapterBotPlts)
|
||||||
|
vm.Set("running", running)
|
||||||
|
vm.Set("Running", running)
|
||||||
|
vm.Set("uuid", func() string {
|
||||||
|
return uuid
|
||||||
|
})
|
||||||
|
vm.Set("genUuid", func() string {
|
||||||
|
return utils.GenUUID()
|
||||||
|
})
|
||||||
|
vm.Set("genUUID", func() string {
|
||||||
|
return utils.GenUUID()
|
||||||
|
})
|
||||||
|
vm.Set("UUID", func() string {
|
||||||
|
return uuid
|
||||||
|
})
|
||||||
|
if set != nil {
|
||||||
|
set(vm)
|
||||||
|
}
|
||||||
|
_, err := vm.RunProgram(prg)
|
||||||
|
if err != nil {
|
||||||
|
pluginConsole(uuid).Error(strings.ReplaceAll(strings.ReplaceAll(err.Error(), "node_modules/", ""), "github.com/dop251/goja_nodejs/require", ""))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
running = func() bool {
|
running = func() bool {
|
||||||
return f.Running
|
return f.Running
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -23,10 +23,10 @@ var sleep = func(i int) {
|
|||||||
func GetScriptNameByUUID(uuid string) string {
|
func GetScriptNameByUUID(uuid string) string {
|
||||||
for _, f := range Functions {
|
for _, f := range Functions {
|
||||||
if f.UUID == uuid {
|
if f.UUID == uuid {
|
||||||
return fmt.Sprintf("%s.js", f.Title)
|
return fmt.Sprintf("%s%s", f.Title, f.Suffix)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return "未知脚本.js"
|
return "未知脚本"
|
||||||
}
|
}
|
||||||
|
|
||||||
type SenderJsIplm struct {
|
type SenderJsIplm struct {
|
||||||
|
|||||||
@@ -0,0 +1,268 @@
|
|||||||
|
package core
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"regexp"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/cdle/sillyplus/core/common"
|
||||||
|
"github.com/cdle/sillyplus/core/storage"
|
||||||
|
"github.com/cdle/sillyplus/utils"
|
||||||
|
)
|
||||||
|
|
||||||
|
func pluginParse(script string, uuid string) (*common.Function, []func()) {
|
||||||
|
var cbs = []func(){}
|
||||||
|
var rules []string
|
||||||
|
var imType *common.Filter
|
||||||
|
var userId *common.Filter
|
||||||
|
var groupId *common.Filter
|
||||||
|
var cron = map[string]string{}
|
||||||
|
var admin bool
|
||||||
|
var disable bool
|
||||||
|
var priority int
|
||||||
|
var title string
|
||||||
|
var public bool
|
||||||
|
var description string
|
||||||
|
var icon string
|
||||||
|
var version string = "v1.0.0"
|
||||||
|
var author string
|
||||||
|
var create_at string
|
||||||
|
var module bool
|
||||||
|
var encrypt bool
|
||||||
|
var onStart bool
|
||||||
|
var origin = "自定义"
|
||||||
|
var https = []*common.Http{}
|
||||||
|
var message *common.Reply
|
||||||
|
var FindAll bool
|
||||||
|
var hasForm bool
|
||||||
|
var carry bool
|
||||||
|
var classes = []string{}
|
||||||
|
ks := map[string]bool{}
|
||||||
|
ress := regexp.MustCompile(
|
||||||
|
`\*\s?@([\d\w+-]+)\s+([^\n]+?)\n`,
|
||||||
|
).FindAllStringSubmatch(script, -1)
|
||||||
|
for _, res := range ress {
|
||||||
|
switch res[1] {
|
||||||
|
case "rule", "match", "regex", "pattern":
|
||||||
|
rule := strings.TrimSpace(res[2])
|
||||||
|
rule = parseReply3(rule, func(s1, s2 string) {
|
||||||
|
k := s1 + "." + s2
|
||||||
|
if _, ok := ks[k]; !ok {
|
||||||
|
cbs = append(cbs, func() {
|
||||||
|
storage.Watch(MakeBucket(s1), s2, func(old, new, key string) *storage.Final {
|
||||||
|
return &storage.Final{
|
||||||
|
EndFunc: func() {
|
||||||
|
plugins.Set(uuid, "reload")
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}, uuid)
|
||||||
|
})
|
||||||
|
ks[k] = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
_rs := []string{}
|
||||||
|
FR:
|
||||||
|
ress := regexp.MustCompile(`\[([^\s\[\]]+)\]`).FindAllStringSubmatch(rule, -1)
|
||||||
|
if len(ress) != 0 {
|
||||||
|
res := ress[len(ress)-1]
|
||||||
|
var inner = res[1]
|
||||||
|
slice := strings.SplitN(inner, ":", 2)
|
||||||
|
name := slice[0]
|
||||||
|
ps := ""
|
||||||
|
if len(slice) == 2 {
|
||||||
|
ps = slice[1]
|
||||||
|
}
|
||||||
|
if strings.HasSuffix(name, "?") {
|
||||||
|
name = strings.TrimRight(name, "?")
|
||||||
|
rep := ""
|
||||||
|
if ps == "" {
|
||||||
|
rep = fmt.Sprintf("[%s]", name)
|
||||||
|
} else {
|
||||||
|
rep = fmt.Sprintf("[%s:%s]", name, ps)
|
||||||
|
}
|
||||||
|
for l := range _rs {
|
||||||
|
_rs[l] = strings.Replace(_rs[l], res[0], rep, 1)
|
||||||
|
}
|
||||||
|
rule1 := strings.Replace(rule, res[0], rep, 1)
|
||||||
|
if len(_rs) == 0 {
|
||||||
|
_rs = append(_rs, rule1)
|
||||||
|
}
|
||||||
|
rule = strings.Replace(rule, res[0], "", 1)
|
||||||
|
rule = regexp.MustCompile("\x20{2,}").ReplaceAllString(rule, " ")
|
||||||
|
rule = strings.TrimSpace(rule)
|
||||||
|
_rs = append(_rs, rule)
|
||||||
|
goto FR
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(_rs) != 0 {
|
||||||
|
rules = append(rules, _rs...)
|
||||||
|
} else {
|
||||||
|
rules = append(rules, rule)
|
||||||
|
}
|
||||||
|
case "class":
|
||||||
|
classes = append(classes, regexp.MustCompile(`[\S]+`).FindAllString(res[2], -1)...)
|
||||||
|
classes = utils.Unique(classes)
|
||||||
|
case "platform", "imType", "platform+", "imType+":
|
||||||
|
var item []string
|
||||||
|
for _, i := range regexp.MustCompile(`[\d\w-]+`).FindAllString(res[2], -1) {
|
||||||
|
item = append(item, strings.TrimSpace(i))
|
||||||
|
}
|
||||||
|
imType = &common.Filter{
|
||||||
|
BlackMode: false,
|
||||||
|
Items: item,
|
||||||
|
}
|
||||||
|
case "platform-", "imType-":
|
||||||
|
var item []string
|
||||||
|
for _, i := range regexp.MustCompile(`[\d\w-]+`).FindAllString(res[2], -1) {
|
||||||
|
item = append(item, strings.TrimSpace(i))
|
||||||
|
}
|
||||||
|
imType = &common.Filter{
|
||||||
|
BlackMode: true,
|
||||||
|
Items: item,
|
||||||
|
}
|
||||||
|
case "userId", "userID", "uid", "userId+", "userID+", "uid+":
|
||||||
|
var item []string
|
||||||
|
for _, i := range regexp.MustCompile(`[\d\w-]+`).FindAllString(res[2], -1) {
|
||||||
|
item = append(item, strings.TrimSpace(i))
|
||||||
|
}
|
||||||
|
userId = &common.Filter{
|
||||||
|
BlackMode: false,
|
||||||
|
Items: item,
|
||||||
|
}
|
||||||
|
case "userId-", "userID-", "uid-":
|
||||||
|
var item []string
|
||||||
|
for _, i := range regexp.MustCompile(`[\d\w-]+`).FindAllString(res[2], -1) {
|
||||||
|
item = append(item, strings.TrimSpace(i))
|
||||||
|
}
|
||||||
|
userId = &common.Filter{
|
||||||
|
BlackMode: true,
|
||||||
|
Items: item,
|
||||||
|
}
|
||||||
|
case "groupId", "groupID", "groupCode", "chat_id", "chat_id+", "chatId", "chatID", "gid", "groupId+", "groupID+", "groupCode+", "chatId+", "chatID+", "gid+":
|
||||||
|
var item []string
|
||||||
|
for _, i := range regexp.MustCompile(`[\d\w-]+`).FindAllString(res[2], -1) {
|
||||||
|
item = append(item, strings.TrimSpace(i))
|
||||||
|
}
|
||||||
|
groupId = &common.Filter{
|
||||||
|
BlackMode: false,
|
||||||
|
Items: item,
|
||||||
|
}
|
||||||
|
case "groupId-", "groupID-", "groupCode-", "chatId-", "chat_id-", "chatID-", "gid-":
|
||||||
|
var item []string
|
||||||
|
for _, i := range regexp.MustCompile(`[\d\w-]+`).FindAllString(res[2], -1) {
|
||||||
|
item = append(item, strings.TrimSpace(i))
|
||||||
|
}
|
||||||
|
groupId = &common.Filter{
|
||||||
|
BlackMode: true,
|
||||||
|
Items: item,
|
||||||
|
}
|
||||||
|
|
||||||
|
case "admin":
|
||||||
|
admin = strings.TrimSpace(res[2]) == "true"
|
||||||
|
case "disable":
|
||||||
|
disable = strings.TrimSpace(res[2]) == "true"
|
||||||
|
case "findall":
|
||||||
|
FindAll = strings.TrimSpace(res[2]) == "true"
|
||||||
|
case "priority":
|
||||||
|
priority = utils.Int(strings.TrimSpace(res[2]))
|
||||||
|
case "title", "name", "show":
|
||||||
|
title = strings.TrimSpace(res[2])
|
||||||
|
case "public":
|
||||||
|
public = strings.TrimSpace(res[2]) == "true"
|
||||||
|
case "description":
|
||||||
|
description = strings.TrimSpace(res[2])
|
||||||
|
case "icon":
|
||||||
|
icon = strings.TrimSpace(res[2])
|
||||||
|
case "version":
|
||||||
|
version = strings.TrimSpace(res[2])
|
||||||
|
case "author":
|
||||||
|
author = strings.TrimSpace(res[2])
|
||||||
|
case "http":
|
||||||
|
ss := regexp.MustCompile(`[\S]+`).FindAllString(strings.TrimSpace(res[2]), -1)
|
||||||
|
if len(ss) == 2 {
|
||||||
|
https = append(https, &common.Http{
|
||||||
|
Path: ss[1],
|
||||||
|
Method: strings.ToUpper(ss[0]),
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
console.Warn("http param is not 2")
|
||||||
|
}
|
||||||
|
case "message":
|
||||||
|
ss := regexp.MustCompile(`[\S]+`).FindAllString(strings.TrimSpace(res[2]), -1)
|
||||||
|
if len(ss) > 1 {
|
||||||
|
if len(ss) == 2 && ss[1] == "*" {
|
||||||
|
message = &common.Reply{
|
||||||
|
Platform: ss[0],
|
||||||
|
BotsID: []string{},
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
message = &common.Reply{
|
||||||
|
Platform: ss[0],
|
||||||
|
BotsID: ss[1:],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
console.Warn("message param is 0")
|
||||||
|
}
|
||||||
|
case "create_at":
|
||||||
|
create_at = strings.TrimSpace(res[2])
|
||||||
|
case "origin":
|
||||||
|
origin = strings.TrimSpace(res[2])
|
||||||
|
case "module":
|
||||||
|
module = strings.TrimSpace(res[2]) == "true"
|
||||||
|
case "carry":
|
||||||
|
carry = strings.TrimSpace(res[2]) == "true"
|
||||||
|
case "encrypt":
|
||||||
|
encrypt = strings.TrimSpace(res[2]) == "true"
|
||||||
|
case "on_start":
|
||||||
|
onStart = strings.TrimSpace(res[2]) == "true"
|
||||||
|
case "form":
|
||||||
|
hasForm = true
|
||||||
|
case "paterner":
|
||||||
|
// paterner := strings.TrimSpace(res[2])
|
||||||
|
// go func() {
|
||||||
|
// time.Sleep(time.Second * 2)
|
||||||
|
// getPaterner(uuid, strings.TrimSpace(paterner))
|
||||||
|
// }()
|
||||||
|
default:
|
||||||
|
cron_ := strings.TrimSpace(res[2])
|
||||||
|
cron_ = strings.ReplaceAll(cron_, `\/`, "/")
|
||||||
|
if strings.HasPrefix(res[1], "cron") {
|
||||||
|
cron[res[1]] = cron_
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !hasForm {
|
||||||
|
hasForm = strings.Contains(script, "Form(")
|
||||||
|
}
|
||||||
|
return &common.Function{
|
||||||
|
Rules: rules,
|
||||||
|
ImType: imType,
|
||||||
|
UserId: userId,
|
||||||
|
GroupId: groupId,
|
||||||
|
Cron: cron,
|
||||||
|
Admin: admin,
|
||||||
|
Priority: priority,
|
||||||
|
Disable: disable,
|
||||||
|
UUID: uuid,
|
||||||
|
Title: title,
|
||||||
|
Public: public,
|
||||||
|
Description: description,
|
||||||
|
Icon: icon,
|
||||||
|
Version: version,
|
||||||
|
Author: author,
|
||||||
|
CreateAt: create_at,
|
||||||
|
Module: module,
|
||||||
|
Encrypt: encrypt,
|
||||||
|
OnStart: onStart,
|
||||||
|
Origin: origin,
|
||||||
|
Running: onStart,
|
||||||
|
Reply: message,
|
||||||
|
Https: https,
|
||||||
|
FindAll: FindAll,
|
||||||
|
HasForm: hasForm,
|
||||||
|
Carry: carry,
|
||||||
|
Classes: classes,
|
||||||
|
}, cbs
|
||||||
|
}
|
||||||
+2
-2
@@ -55,7 +55,7 @@ func RegistTasks(pt *Tasks) {
|
|||||||
for _, meta := range pt.Senders {
|
for _, meta := range pt.Senders {
|
||||||
adapter, _ := GetAdapter(meta.Platfrom, meta.BotID)
|
adapter, _ := GetAdapter(meta.Platfrom, meta.BotID)
|
||||||
if adapter != nil {
|
if adapter != nil {
|
||||||
sender := adapter.Sender2()
|
sender := adapter.Sender2(nil)
|
||||||
sender.SetFsps(&common.FakerSenderParams{
|
sender.SetFsps(&common.FakerSenderParams{
|
||||||
Content: content,
|
Content: content,
|
||||||
ChatID: meta.ChatID,
|
ChatID: meta.ChatID,
|
||||||
@@ -324,7 +324,7 @@ func init() {
|
|||||||
functions := Functions
|
functions := Functions
|
||||||
for _, function := range functions {
|
for _, function := range functions {
|
||||||
if function.UUID != "" {
|
if function.UUID != "" {
|
||||||
scripts[function.UUID] = function.Title + ".js"
|
scripts[function.UUID] = function.Title + function.Suffix
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var user_names = []NicklabeL{}
|
var user_names = []NicklabeL{}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ require (
|
|||||||
github.com/dop251/goja v0.0.0-20230605162241-28ee0ee714f3
|
github.com/dop251/goja v0.0.0-20230605162241-28ee0ee714f3
|
||||||
github.com/dop251/goja_nodejs v0.0.0-20230602164024-804a84515562
|
github.com/dop251/goja_nodejs v0.0.0-20230602164024-804a84515562
|
||||||
github.com/elastic/go-elasticsearch/v6 v6.8.10
|
github.com/elastic/go-elasticsearch/v6 v6.8.10
|
||||||
|
github.com/fsnotify/fsnotify v1.4.9
|
||||||
github.com/gin-gonic/gin v1.9.1
|
github.com/gin-gonic/gin v1.9.1
|
||||||
github.com/go-redis/redis/v8 v8.11.5
|
github.com/go-redis/redis/v8 v8.11.5
|
||||||
github.com/goccy/go-json v0.10.2
|
github.com/goccy/go-json v0.10.2
|
||||||
@@ -28,6 +29,7 @@ require (
|
|||||||
github.com/stretchr/testify v1.8.4
|
github.com/stretchr/testify v1.8.4
|
||||||
go.mongodb.org/mongo-driver v1.11.7
|
go.mongodb.org/mongo-driver v1.11.7
|
||||||
golang.org/x/net v0.11.0
|
golang.org/x/net v0.11.0
|
||||||
|
google.golang.org/grpc v1.41.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
@@ -37,6 +39,7 @@ require (
|
|||||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||||
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
|
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
|
||||||
github.com/gofrs/uuid/v5 v5.0.0 // indirect
|
github.com/gofrs/uuid/v5 v5.0.0 // indirect
|
||||||
|
github.com/golang/protobuf v1.5.3 // indirect
|
||||||
github.com/golang/snappy v0.0.1 // indirect
|
github.com/golang/snappy v0.0.1 // indirect
|
||||||
github.com/google/pprof v0.0.0-20230602150820-91b7bce49751 // indirect
|
github.com/google/pprof v0.0.0-20230602150820-91b7bce49751 // indirect
|
||||||
github.com/klauspost/compress v1.13.6 // indirect
|
github.com/klauspost/compress v1.13.6 // indirect
|
||||||
@@ -56,6 +59,7 @@ require (
|
|||||||
golang.org/x/mod v0.8.0 // indirect
|
golang.org/x/mod v0.8.0 // indirect
|
||||||
golang.org/x/sync v0.3.0 // indirect
|
golang.org/x/sync v0.3.0 // indirect
|
||||||
golang.org/x/tools v0.6.0 // indirect
|
golang.org/x/tools v0.6.0 // indirect
|
||||||
|
google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4 // indirect
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -80,5 +84,5 @@ require (
|
|||||||
golang.org/x/crypto v0.10.0 // indirect
|
golang.org/x/crypto v0.10.0 // indirect
|
||||||
golang.org/x/sys v0.9.0 // indirect
|
golang.org/x/sys v0.9.0 // indirect
|
||||||
golang.org/x/text v0.10.0 // indirect
|
golang.org/x/text v0.10.0 // indirect
|
||||||
google.golang.org/protobuf v1.30.0 // indirect
|
google.golang.org/protobuf v1.30.0
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,7 +1,12 @@
|
|||||||
|
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||||
|
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||||
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/Dreamacro/clash v1.17.0 h1:LWtp6KcnrCiujY58ufI8pylI+hbCBgSCsLI90EWhpi4=
|
github.com/Dreamacro/clash v1.17.0 h1:LWtp6KcnrCiujY58ufI8pylI+hbCBgSCsLI90EWhpi4=
|
||||||
github.com/Dreamacro/clash v1.17.0/go.mod h1:PtcAft7sdsK325BD6uwm8wvhOkMV3TCeED6dfZ/lnfE=
|
github.com/Dreamacro/clash v1.17.0/go.mod h1:PtcAft7sdsK325BD6uwm8wvhOkMV3TCeED6dfZ/lnfE=
|
||||||
github.com/Dreamacro/protobytes v0.0.0-20230617041236-6500a9f4f158 h1:JFnwKplz9hj8ubqYjm8HkgZS1Rvz9yW+u/XCNNTxr0k=
|
github.com/Dreamacro/protobytes v0.0.0-20230617041236-6500a9f4f158 h1:JFnwKplz9hj8ubqYjm8HkgZS1Rvz9yW+u/XCNNTxr0k=
|
||||||
github.com/Dreamacro/protobytes v0.0.0-20230617041236-6500a9f4f158/go.mod h1:QvmEZ/h6KXszPOr2wUFl7Zn3hfFNYdfbXwPVDTyZs6k=
|
github.com/Dreamacro/protobytes v0.0.0-20230617041236-6500a9f4f158/go.mod h1:QvmEZ/h6KXszPOr2wUFl7Zn3hfFNYdfbXwPVDTyZs6k=
|
||||||
|
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
||||||
|
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
||||||
github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394 h1:OYA+5W64v3OgClL+IrOD63t4i/RW7RqrAVl9LTZ9UqQ=
|
github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394 h1:OYA+5W64v3OgClL+IrOD63t4i/RW7RqrAVl9LTZ9UqQ=
|
||||||
github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394/go.mod h1:Q8n74mJTIgjX4RBBcHnJ05h//6/k6foqmgE45jTQtxg=
|
github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394/go.mod h1:Q8n74mJTIgjX4RBBcHnJ05h//6/k6foqmgE45jTQtxg=
|
||||||
github.com/beego/beego/v2 v2.1.0 h1:Lk0FtQGvDQCx5V5yEu4XwDsIgt+QOlNjt5emUa3/ZmA=
|
github.com/beego/beego/v2 v2.1.0 h1:Lk0FtQGvDQCx5V5yEu4XwDsIgt+QOlNjt5emUa3/ZmA=
|
||||||
@@ -13,6 +18,9 @@ github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx2
|
|||||||
github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
|
github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
|
||||||
github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s=
|
github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s=
|
||||||
github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U=
|
github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U=
|
||||||
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
|
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
||||||
|
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
|
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
|
||||||
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY=
|
github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY=
|
||||||
@@ -23,8 +31,13 @@ github.com/chzyer/readline v1.5.0/go.mod h1:x22KAscuvRqlLoK9CsoYsmxoXZMMFVyOl86c
|
|||||||
github.com/chzyer/test v0.0.0-20210722231415-061457976a23/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
github.com/chzyer/test v0.0.0-20210722231415-061457976a23/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
||||||
github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I=
|
github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I=
|
||||||
github.com/clbanning/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng=
|
github.com/clbanning/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng=
|
||||||
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY/k9Os/UFtwERei2/XzGemhpGnBKNg=
|
github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY/k9Os/UFtwERei2/XzGemhpGnBKNg=
|
||||||
github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80=
|
github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80=
|
||||||
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
|
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
@@ -45,9 +58,18 @@ github.com/dop251/goja_nodejs v0.0.0-20230602164024-804a84515562 h1:0gomDSJiLLlp
|
|||||||
github.com/dop251/goja_nodejs v0.0.0-20230602164024-804a84515562/go.mod h1:X2TOTJ+Uamd454RFp7ig2tmP3hQg0Z2Qk8gbVQmU0mk=
|
github.com/dop251/goja_nodejs v0.0.0-20230602164024-804a84515562/go.mod h1:X2TOTJ+Uamd454RFp7ig2tmP3hQg0Z2Qk8gbVQmU0mk=
|
||||||
github.com/elastic/go-elasticsearch/v6 v6.8.10 h1:2lN0gJ93gMBXvkhwih5xquldszpm8FlUwqG5sPzr6a8=
|
github.com/elastic/go-elasticsearch/v6 v6.8.10 h1:2lN0gJ93gMBXvkhwih5xquldszpm8FlUwqG5sPzr6a8=
|
||||||
github.com/elastic/go-elasticsearch/v6 v6.8.10/go.mod h1:UwaDJsD3rWLM5rKNFzv9hgox93HoX8utj1kxD9aFUcI=
|
github.com/elastic/go-elasticsearch/v6 v6.8.10/go.mod h1:UwaDJsD3rWLM5rKNFzv9hgox93HoX8utj1kxD9aFUcI=
|
||||||
|
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||||
|
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||||
|
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||||
|
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
||||||
|
github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
|
||||||
|
github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
|
||||||
|
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
|
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
|
||||||
|
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||||
github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
|
github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
|
||||||
github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA=
|
github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA=
|
||||||
|
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||||
github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4=
|
github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4=
|
||||||
github.com/gin-contrib/gzip v0.0.6/go.mod h1:QOJlmV2xmayAjkNS2Y8NQsMneuRShOU/kjovCXNuzzk=
|
github.com/gin-contrib/gzip v0.0.6/go.mod h1:QOJlmV2xmayAjkNS2Y8NQsMneuRShOU/kjovCXNuzzk=
|
||||||
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
|
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
|
||||||
@@ -77,9 +99,30 @@ github.com/gofrs/uuid/v5 v5.0.0 h1:p544++a97kEL+svbcFbCQVM9KFu0Yo25UoISXGNNH9M=
|
|||||||
github.com/gofrs/uuid/v5 v5.0.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8=
|
github.com/gofrs/uuid/v5 v5.0.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8=
|
||||||
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||||
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||||
|
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||||
|
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||||
|
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
|
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
|
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
|
||||||
|
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
|
||||||
|
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
|
||||||
|
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
|
||||||
|
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
|
||||||
|
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
|
||||||
|
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
|
||||||
|
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||||
|
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||||
|
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||||
|
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
|
||||||
|
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||||
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
|
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
|
||||||
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||||
|
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||||
|
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
|
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
|
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
|
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
|
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
|
||||||
@@ -87,10 +130,12 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/
|
|||||||
github.com/google/pprof v0.0.0-20230207041349-798e818bf904/go.mod h1:uglQLonpP8qtYCYyzA+8c/9qtqgA3qsXGYqCPKARAFg=
|
github.com/google/pprof v0.0.0-20230207041349-798e818bf904/go.mod h1:uglQLonpP8qtYCYyzA+8c/9qtqgA3qsXGYqCPKARAFg=
|
||||||
github.com/google/pprof v0.0.0-20230602150820-91b7bce49751 h1:hR7/MlvK23p6+lIw9SN1TigNLn9ZnF3W4SYRKq2gAHs=
|
github.com/google/pprof v0.0.0-20230602150820-91b7bce49751 h1:hR7/MlvK23p6+lIw9SN1TigNLn9ZnF3W4SYRKq2gAHs=
|
||||||
github.com/google/pprof v0.0.0-20230602150820-91b7bce49751/go.mod h1:Jh3hGz2jkYak8qXPD19ryItVnUgpgeqzdkY/D0EaeuA=
|
github.com/google/pprof v0.0.0-20230602150820-91b7bce49751/go.mod h1:Jh3hGz2jkYak8qXPD19ryItVnUgpgeqzdkY/D0EaeuA=
|
||||||
|
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
|
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
|
||||||
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
|
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
|
||||||
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||||
|
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
|
||||||
github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w=
|
github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w=
|
||||||
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||||
@@ -135,10 +180,12 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
|||||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
|
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||||
github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
|
github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
|
||||||
github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
||||||
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
|
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
|
||||||
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
|
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
|
||||||
|
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
||||||
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||||
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
|
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
|
||||||
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
|
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
|
||||||
@@ -146,10 +193,12 @@ github.com/shiena/ansicolor v0.0.0-20230509054315-a9deabde6e02 h1:v9ezJDHA1XGxVi
|
|||||||
github.com/shiena/ansicolor v0.0.0-20230509054315-a9deabde6e02/go.mod h1:RF16/A3L0xSa0oSERcnhd8Pu3IXSDZSK2gmGIMsttFE=
|
github.com/shiena/ansicolor v0.0.0-20230509054315-a9deabde6e02/go.mod h1:RF16/A3L0xSa0oSERcnhd8Pu3IXSDZSK2gmGIMsttFE=
|
||||||
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
||||||
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
||||||
|
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
|
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
@@ -177,9 +226,11 @@ github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM
|
|||||||
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
|
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
|
||||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
|
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||||
go.mongodb.org/mongo-driver v1.11.7 h1:LIwYxASDLGUg/8wOhgOOZhX8tQa/9tgZPgzZoVqJvcs=
|
go.mongodb.org/mongo-driver v1.11.7 h1:LIwYxASDLGUg/8wOhgOOZhX8tQa/9tgZPgzZoVqJvcs=
|
||||||
go.mongodb.org/mongo-driver v1.11.7/go.mod h1:G9TgswdsWjX4tmDA5zfs2+6AEPpYJwqblyjsfuh8oXY=
|
go.mongodb.org/mongo-driver v1.11.7/go.mod h1:G9TgswdsWjX4tmDA5zfs2+6AEPpYJwqblyjsfuh8oXY=
|
||||||
|
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
|
||||||
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
|
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
|
||||||
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
||||||
golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
|
golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
|
||||||
@@ -193,22 +244,41 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
|
|||||||
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||||
golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM=
|
golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM=
|
||||||
golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I=
|
golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I=
|
||||||
|
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
|
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||||
|
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||||
|
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||||
|
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
||||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
|
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||||
golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8=
|
golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8=
|
||||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||||
|
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||||
|
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||||
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||||
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
|
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
|
||||||
golang.org/x/net v0.11.0 h1:Gi2tvZIJyBtO9SDr1q9h5hEQCp/4L2RQ+ar0qjx2oNU=
|
golang.org/x/net v0.11.0 h1:Gi2tvZIJyBtO9SDr1q9h5hEQCp/4L2RQ+ar0qjx2oNU=
|
||||||
golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ=
|
golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ=
|
||||||
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
|
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
|
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
@@ -217,11 +287,16 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJ
|
|||||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
|
golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
|
||||||
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
|
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
|
||||||
|
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
@@ -240,6 +315,7 @@ golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
|||||||
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
|
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
|
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||||
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
||||||
@@ -248,9 +324,15 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
|||||||
golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58=
|
golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58=
|
||||||
golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
||||||
|
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
|
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||||
|
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||||
golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=
|
golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=
|
||||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||||
@@ -258,7 +340,35 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T
|
|||||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||||
|
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
|
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||||
|
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
||||||
|
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||||
|
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
||||||
|
google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4 h1:ysnBoUyeL/H6RCvNRhWHjKoDEmguI+mPU+qHgK8qv/w=
|
||||||
|
google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
|
||||||
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
|
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
||||||
|
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
|
||||||
|
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
||||||
|
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
|
||||||
|
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||||
|
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
||||||
|
google.golang.org/grpc v1.41.0 h1:f+PlOh7QV4iIJkPrx5NQ7qaNGFQ3OTse67yaDHfju4E=
|
||||||
|
google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k=
|
||||||
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
|
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
|
||||||
|
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
|
||||||
|
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||||
|
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||||
|
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||||
|
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
||||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||||
|
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||||
|
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||||
google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
|
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
|
||||||
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
@@ -268,10 +378,14 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntN
|
|||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
||||||
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
|
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
|
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
protoc-gen-grpc --js_out=import_style=commonjs:. --grpc_out=. srpc.proto
|
||||||
|
protoc-gen-grpc --ts_out=service=grpc-node:. --grpc_out=. srpc.proto
|
||||||
|
|
||||||
|
protoc --go_out=. -I. --go-grpc_out=. srpc.proto
|
||||||
|
|
||||||
|
protoc --plugin=protoc-gen-ts=$(which protoc-gen-ts) --js_out=import_style=commonjs,binary:./ --ts_out=./ srpc.proto
|
||||||
|
|
||||||
|
protoc --js_out=import_style=commonjs,binary:. --grpc_out=. srpc.proto
|
||||||
|
|
||||||
|
|
||||||
|
//ok
|
||||||
|
protoc --go_out=. -I. --go-grpc_out=. srpc.proto
|
||||||
|
protoc-gen-grpc --ts_out=service=grpc-node:. --grpc_out=. srpc.proto
|
||||||
Generated
+1111
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"dependencies": {
|
||||||
|
"@grpc/grpc-js": "^1.8.18",
|
||||||
|
"@grpc/proto-loader": "^0.7.8",
|
||||||
|
"google-protobuf": "^3.21.2",
|
||||||
|
"grpc": "^1.24.11",
|
||||||
|
"grpc-tools": "^1.12.4",
|
||||||
|
"grpc-web": "^1.4.2"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/google-protobuf": "^3.15.6"
|
||||||
|
}
|
||||||
|
}
|
||||||
Generated
+756
@@ -0,0 +1,756 @@
|
|||||||
|
lockfileVersion: '6.0'
|
||||||
|
|
||||||
|
settings:
|
||||||
|
autoInstallPeers: true
|
||||||
|
excludeLinksFromLockfile: false
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
'@grpc/proto-loader':
|
||||||
|
specifier: ^0.7.8
|
||||||
|
version: 0.7.8
|
||||||
|
google-protobuf:
|
||||||
|
specifier: ^3.21.2
|
||||||
|
version: 3.21.2
|
||||||
|
grpc:
|
||||||
|
specifier: ^1.24.11
|
||||||
|
version: 1.24.11
|
||||||
|
grpc-tools:
|
||||||
|
specifier: ^1.12.4
|
||||||
|
version: 1.12.4
|
||||||
|
|
||||||
|
packages:
|
||||||
|
|
||||||
|
/@grpc/proto-loader@0.7.8:
|
||||||
|
resolution: {integrity: sha512-GU12e2c8dmdXb7XUlOgYWZ2o2i+z9/VeACkxTA/zzAe2IjclC5PnVL0lpgjhrqfpDYHzM8B1TF6pqWegMYAzlA==}
|
||||||
|
engines: {node: '>=6'}
|
||||||
|
hasBin: true
|
||||||
|
dependencies:
|
||||||
|
'@types/long': 4.0.2
|
||||||
|
lodash.camelcase: 4.3.0
|
||||||
|
long: 4.0.0
|
||||||
|
protobufjs: 7.2.4
|
||||||
|
yargs: 17.7.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@mapbox/node-pre-gyp@1.0.11:
|
||||||
|
resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==}
|
||||||
|
hasBin: true
|
||||||
|
dependencies:
|
||||||
|
detect-libc: 2.0.2
|
||||||
|
https-proxy-agent: 5.0.1
|
||||||
|
make-dir: 3.1.0
|
||||||
|
node-fetch: 2.6.12
|
||||||
|
nopt: 5.0.0
|
||||||
|
npmlog: 5.0.1
|
||||||
|
rimraf: 3.0.2
|
||||||
|
semver: 7.5.4
|
||||||
|
tar: 6.1.15
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- encoding
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@protobufjs/aspromise@1.1.2:
|
||||||
|
resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@protobufjs/base64@1.1.2:
|
||||||
|
resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@protobufjs/codegen@2.0.4:
|
||||||
|
resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@protobufjs/eventemitter@1.1.0:
|
||||||
|
resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@protobufjs/fetch@1.1.0:
|
||||||
|
resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==}
|
||||||
|
dependencies:
|
||||||
|
'@protobufjs/aspromise': 1.1.2
|
||||||
|
'@protobufjs/inquire': 1.1.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@protobufjs/float@1.0.2:
|
||||||
|
resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@protobufjs/inquire@1.1.0:
|
||||||
|
resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@protobufjs/path@1.1.2:
|
||||||
|
resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@protobufjs/pool@1.1.0:
|
||||||
|
resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@protobufjs/utf8@1.1.0:
|
||||||
|
resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@types/bytebuffer@5.0.44:
|
||||||
|
resolution: {integrity: sha512-k1qonHga/SfQT02NF633i+7tIfKd+cfC/8pjnedcfuXJNMWooss/FkCgRMSnLf2WorLjbuH4bfgAZEbtyHBDoQ==}
|
||||||
|
dependencies:
|
||||||
|
'@types/long': 3.0.32
|
||||||
|
'@types/node': 20.4.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@types/long@3.0.32:
|
||||||
|
resolution: {integrity: sha512-ZXyOOm83p7X8p3s0IYM3VeueNmHpkk/yMlP8CLeOnEcu6hIwPH7YjZBvhQkR0ZFS2DqZAxKtJ/M5fcuv3OU5BA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@types/long@4.0.2:
|
||||||
|
resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@types/node@20.4.2:
|
||||||
|
resolution: {integrity: sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/abbrev@1.1.1:
|
||||||
|
resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/agent-base@6.0.2:
|
||||||
|
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
|
||||||
|
engines: {node: '>= 6.0.0'}
|
||||||
|
dependencies:
|
||||||
|
debug: 4.3.4
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/ansi-regex@2.1.1:
|
||||||
|
resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/ansi-regex@5.0.1:
|
||||||
|
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/ansi-styles@4.3.0:
|
||||||
|
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dependencies:
|
||||||
|
color-convert: 2.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/aproba@2.0.0:
|
||||||
|
resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/are-we-there-yet@2.0.0:
|
||||||
|
resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dependencies:
|
||||||
|
delegates: 1.0.0
|
||||||
|
readable-stream: 3.6.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/ascli@1.0.1:
|
||||||
|
resolution: {integrity: sha512-JGQaNxpaCJz9Bd1JvVaFIHuWn9S+l3xhN17R0V/vmUDiGE0QngNMXhjlqpwqV+91plWz9Fg+Lt28Lj7p5vjs8A==}
|
||||||
|
dependencies:
|
||||||
|
colour: 0.7.1
|
||||||
|
optjs: 3.2.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/balanced-match@1.0.2:
|
||||||
|
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/brace-expansion@1.1.11:
|
||||||
|
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||||
|
dependencies:
|
||||||
|
balanced-match: 1.0.2
|
||||||
|
concat-map: 0.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/bytebuffer@5.0.1:
|
||||||
|
resolution: {integrity: sha512-IuzSdmADppkZ6DlpycMkm8l9zeEq16fWtLvunEwFiYciR/BHo4E8/xs5piFquG+Za8OWmMqHF8zuRviz2LHvRQ==}
|
||||||
|
engines: {node: '>=0.8'}
|
||||||
|
dependencies:
|
||||||
|
long: 3.2.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/camelcase@2.1.1:
|
||||||
|
resolution: {integrity: sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/chownr@2.0.0:
|
||||||
|
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/cliui@3.2.0:
|
||||||
|
resolution: {integrity: sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==}
|
||||||
|
dependencies:
|
||||||
|
string-width: 1.0.2
|
||||||
|
strip-ansi: 3.0.1
|
||||||
|
wrap-ansi: 2.1.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/cliui@8.0.1:
|
||||||
|
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
dependencies:
|
||||||
|
string-width: 4.2.3
|
||||||
|
strip-ansi: 6.0.1
|
||||||
|
wrap-ansi: 7.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/code-point-at@1.1.0:
|
||||||
|
resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/color-convert@2.0.1:
|
||||||
|
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
|
||||||
|
engines: {node: '>=7.0.0'}
|
||||||
|
dependencies:
|
||||||
|
color-name: 1.1.4
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/color-name@1.1.4:
|
||||||
|
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/color-support@1.1.3:
|
||||||
|
resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
|
||||||
|
hasBin: true
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/colour@0.7.1:
|
||||||
|
resolution: {integrity: sha512-Rel466v0EnmKPcsxHo91L4kgPs/6XF7Pu2LJNszq9lXYwi5CFWEeIiRaTX5ym7PPMdj4udDHkLSVC1//JVkZQg==}
|
||||||
|
engines: {node: '>=0.8'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/concat-map@0.0.1:
|
||||||
|
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/console-control-strings@1.1.0:
|
||||||
|
resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/debug@4.3.4:
|
||||||
|
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
|
||||||
|
engines: {node: '>=6.0'}
|
||||||
|
peerDependencies:
|
||||||
|
supports-color: '*'
|
||||||
|
peerDependenciesMeta:
|
||||||
|
supports-color:
|
||||||
|
optional: true
|
||||||
|
dependencies:
|
||||||
|
ms: 2.1.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/decamelize@1.2.0:
|
||||||
|
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/delegates@1.0.0:
|
||||||
|
resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/detect-libc@2.0.2:
|
||||||
|
resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/emoji-regex@8.0.0:
|
||||||
|
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/escalade@3.1.1:
|
||||||
|
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
|
||||||
|
engines: {node: '>=6'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/fs-minipass@2.1.0:
|
||||||
|
resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
|
||||||
|
engines: {node: '>= 8'}
|
||||||
|
dependencies:
|
||||||
|
minipass: 3.3.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/fs.realpath@1.0.0:
|
||||||
|
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/gauge@3.0.2:
|
||||||
|
resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dependencies:
|
||||||
|
aproba: 2.0.0
|
||||||
|
color-support: 1.1.3
|
||||||
|
console-control-strings: 1.1.0
|
||||||
|
has-unicode: 2.0.1
|
||||||
|
object-assign: 4.1.1
|
||||||
|
signal-exit: 3.0.7
|
||||||
|
string-width: 4.2.3
|
||||||
|
strip-ansi: 6.0.1
|
||||||
|
wide-align: 1.1.5
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/get-caller-file@2.0.5:
|
||||||
|
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
|
||||||
|
engines: {node: 6.* || 8.* || >= 10.*}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/glob@7.2.3:
|
||||||
|
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
|
||||||
|
dependencies:
|
||||||
|
fs.realpath: 1.0.0
|
||||||
|
inflight: 1.0.6
|
||||||
|
inherits: 2.0.4
|
||||||
|
minimatch: 3.1.2
|
||||||
|
once: 1.4.0
|
||||||
|
path-is-absolute: 1.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/google-protobuf@3.21.2:
|
||||||
|
resolution: {integrity: sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/grpc-tools@1.12.4:
|
||||||
|
resolution: {integrity: sha512-5+mLAJJma3BjnW/KQp6JBjUMgvu7Mu3dBvBPd1dcbNIb+qiR0817zDpgPjS7gRb+l/8EVNIa3cB02xI9JLToKg==}
|
||||||
|
hasBin: true
|
||||||
|
requiresBuild: true
|
||||||
|
dependencies:
|
||||||
|
'@mapbox/node-pre-gyp': 1.0.11
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- encoding
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/grpc@1.24.11:
|
||||||
|
resolution: {integrity: sha512-8/AQdFCzCeCDWW3SoaMNp6ccbRvTQEH1O1u1uFtt29eWsg5gSZCJ3m6fbkduEIh3smY7WAPP+LgVJ5n3nZRxcA==}
|
||||||
|
engines: {node: '>=4'}
|
||||||
|
deprecated: This library will not receive further updates other than security fixes. We recommend using @grpc/grpc-js instead.
|
||||||
|
requiresBuild: true
|
||||||
|
dependencies:
|
||||||
|
'@mapbox/node-pre-gyp': 1.0.11
|
||||||
|
'@types/bytebuffer': 5.0.44
|
||||||
|
lodash.camelcase: 4.3.0
|
||||||
|
lodash.clone: 4.5.0
|
||||||
|
nan: 2.17.0
|
||||||
|
protobufjs: 5.0.3
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- encoding
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/has-unicode@2.0.1:
|
||||||
|
resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/https-proxy-agent@5.0.1:
|
||||||
|
resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
|
||||||
|
engines: {node: '>= 6'}
|
||||||
|
dependencies:
|
||||||
|
agent-base: 6.0.2
|
||||||
|
debug: 4.3.4
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/inflight@1.0.6:
|
||||||
|
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
|
||||||
|
dependencies:
|
||||||
|
once: 1.4.0
|
||||||
|
wrappy: 1.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/inherits@2.0.4:
|
||||||
|
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/invert-kv@1.0.0:
|
||||||
|
resolution: {integrity: sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/is-fullwidth-code-point@1.0.0:
|
||||||
|
resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dependencies:
|
||||||
|
number-is-nan: 1.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/is-fullwidth-code-point@3.0.0:
|
||||||
|
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/lcid@1.0.0:
|
||||||
|
resolution: {integrity: sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dependencies:
|
||||||
|
invert-kv: 1.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/lodash.camelcase@4.3.0:
|
||||||
|
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/lodash.clone@4.5.0:
|
||||||
|
resolution: {integrity: sha512-GhrVeweiTD6uTmmn5hV/lzgCQhccwReIVRLHp7LT4SopOjqEZ5BbX8b5WWEtAKasjmy8hR7ZPwsYlxRCku5odg==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/long@3.2.0:
|
||||||
|
resolution: {integrity: sha512-ZYvPPOMqUwPoDsbJaR10iQJYnMuZhRTvHYl62ErLIEX7RgFlziSBUUvrt3OVfc47QlHHpzPZYP17g3Fv7oeJkg==}
|
||||||
|
engines: {node: '>=0.6'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/long@4.0.0:
|
||||||
|
resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/long@5.2.3:
|
||||||
|
resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/lru-cache@6.0.0:
|
||||||
|
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dependencies:
|
||||||
|
yallist: 4.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/make-dir@3.1.0:
|
||||||
|
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dependencies:
|
||||||
|
semver: 6.3.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/minimatch@3.1.2:
|
||||||
|
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
|
||||||
|
dependencies:
|
||||||
|
brace-expansion: 1.1.11
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/minipass@3.3.6:
|
||||||
|
resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dependencies:
|
||||||
|
yallist: 4.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/minipass@5.0.0:
|
||||||
|
resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/minizlib@2.1.2:
|
||||||
|
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
|
||||||
|
engines: {node: '>= 8'}
|
||||||
|
dependencies:
|
||||||
|
minipass: 3.3.6
|
||||||
|
yallist: 4.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mkdirp@1.0.4:
|
||||||
|
resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
hasBin: true
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/ms@2.1.2:
|
||||||
|
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/nan@2.17.0:
|
||||||
|
resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/node-fetch@2.6.12:
|
||||||
|
resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==}
|
||||||
|
engines: {node: 4.x || >=6.0.0}
|
||||||
|
peerDependencies:
|
||||||
|
encoding: ^0.1.0
|
||||||
|
peerDependenciesMeta:
|
||||||
|
encoding:
|
||||||
|
optional: true
|
||||||
|
dependencies:
|
||||||
|
whatwg-url: 5.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/nopt@5.0.0:
|
||||||
|
resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
|
||||||
|
engines: {node: '>=6'}
|
||||||
|
hasBin: true
|
||||||
|
dependencies:
|
||||||
|
abbrev: 1.1.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/npmlog@5.0.1:
|
||||||
|
resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
|
||||||
|
dependencies:
|
||||||
|
are-we-there-yet: 2.0.0
|
||||||
|
console-control-strings: 1.1.0
|
||||||
|
gauge: 3.0.2
|
||||||
|
set-blocking: 2.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/number-is-nan@1.0.1:
|
||||||
|
resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/object-assign@4.1.1:
|
||||||
|
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/once@1.4.0:
|
||||||
|
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
|
||||||
|
dependencies:
|
||||||
|
wrappy: 1.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/optjs@3.2.2:
|
||||||
|
resolution: {integrity: sha512-f8lTJm4LKirX+45xsFhuRNjA4f46QVLQKfGoNH7e2AEWS+24eM4XNH4pQ8Tw2LISCIvbST/wNcLdtgvgcqVaxA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/os-locale@1.4.0:
|
||||||
|
resolution: {integrity: sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dependencies:
|
||||||
|
lcid: 1.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/path-is-absolute@1.0.1:
|
||||||
|
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/protobufjs@5.0.3:
|
||||||
|
resolution: {integrity: sha512-55Kcx1MhPZX0zTbVosMQEO5R6/rikNXd9b6RQK4KSPcrSIIwoXTtebIczUrXlwaSrbz4x8XUVThGPob1n8I4QA==}
|
||||||
|
engines: {node: '>=0.8'}
|
||||||
|
hasBin: true
|
||||||
|
dependencies:
|
||||||
|
ascli: 1.0.1
|
||||||
|
bytebuffer: 5.0.1
|
||||||
|
glob: 7.2.3
|
||||||
|
yargs: 3.32.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/protobufjs@7.2.4:
|
||||||
|
resolution: {integrity: sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==}
|
||||||
|
engines: {node: '>=12.0.0'}
|
||||||
|
requiresBuild: true
|
||||||
|
dependencies:
|
||||||
|
'@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/node': 20.4.2
|
||||||
|
long: 5.2.3
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/readable-stream@3.6.2:
|
||||||
|
resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
|
||||||
|
engines: {node: '>= 6'}
|
||||||
|
dependencies:
|
||||||
|
inherits: 2.0.4
|
||||||
|
string_decoder: 1.3.0
|
||||||
|
util-deprecate: 1.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/require-directory@2.1.1:
|
||||||
|
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/rimraf@3.0.2:
|
||||||
|
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
|
||||||
|
hasBin: true
|
||||||
|
dependencies:
|
||||||
|
glob: 7.2.3
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/safe-buffer@5.2.1:
|
||||||
|
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/semver@6.3.1:
|
||||||
|
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
|
||||||
|
hasBin: true
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/semver@7.5.4:
|
||||||
|
resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
hasBin: true
|
||||||
|
dependencies:
|
||||||
|
lru-cache: 6.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/set-blocking@2.0.0:
|
||||||
|
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/signal-exit@3.0.7:
|
||||||
|
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/string-width@1.0.2:
|
||||||
|
resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dependencies:
|
||||||
|
code-point-at: 1.1.0
|
||||||
|
is-fullwidth-code-point: 1.0.0
|
||||||
|
strip-ansi: 3.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/string-width@4.2.3:
|
||||||
|
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dependencies:
|
||||||
|
emoji-regex: 8.0.0
|
||||||
|
is-fullwidth-code-point: 3.0.0
|
||||||
|
strip-ansi: 6.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/string_decoder@1.3.0:
|
||||||
|
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
|
||||||
|
dependencies:
|
||||||
|
safe-buffer: 5.2.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/strip-ansi@3.0.1:
|
||||||
|
resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dependencies:
|
||||||
|
ansi-regex: 2.1.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/strip-ansi@6.0.1:
|
||||||
|
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dependencies:
|
||||||
|
ansi-regex: 5.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/tar@6.1.15:
|
||||||
|
resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dependencies:
|
||||||
|
chownr: 2.0.0
|
||||||
|
fs-minipass: 2.1.0
|
||||||
|
minipass: 5.0.0
|
||||||
|
minizlib: 2.1.2
|
||||||
|
mkdirp: 1.0.4
|
||||||
|
yallist: 4.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/tr46@0.0.3:
|
||||||
|
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/util-deprecate@1.0.2:
|
||||||
|
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/webidl-conversions@3.0.1:
|
||||||
|
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/whatwg-url@5.0.0:
|
||||||
|
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
|
||||||
|
dependencies:
|
||||||
|
tr46: 0.0.3
|
||||||
|
webidl-conversions: 3.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/wide-align@1.1.5:
|
||||||
|
resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
|
||||||
|
dependencies:
|
||||||
|
string-width: 4.2.3
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/window-size@0.1.4:
|
||||||
|
resolution: {integrity: sha512-2thx4pB0cV3h+Bw7QmMXcEbdmOzv9t0HFplJH/Lz6yu60hXYy5RT8rUu+wlIreVxWsGN20mo+MHeCSfUpQBwPw==}
|
||||||
|
engines: {node: '>= 0.10.0'}
|
||||||
|
hasBin: true
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/wrap-ansi@2.1.0:
|
||||||
|
resolution: {integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dependencies:
|
||||||
|
string-width: 1.0.2
|
||||||
|
strip-ansi: 3.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/wrap-ansi@7.0.0:
|
||||||
|
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dependencies:
|
||||||
|
ansi-styles: 4.3.0
|
||||||
|
string-width: 4.2.3
|
||||||
|
strip-ansi: 6.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/wrappy@1.0.2:
|
||||||
|
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/y18n@3.2.2:
|
||||||
|
resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/y18n@5.0.8:
|
||||||
|
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/yallist@4.0.0:
|
||||||
|
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/yargs-parser@21.1.1:
|
||||||
|
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/yargs@17.7.2:
|
||||||
|
resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
dependencies:
|
||||||
|
cliui: 8.0.1
|
||||||
|
escalade: 3.1.1
|
||||||
|
get-caller-file: 2.0.5
|
||||||
|
require-directory: 2.1.1
|
||||||
|
string-width: 4.2.3
|
||||||
|
y18n: 5.0.8
|
||||||
|
yargs-parser: 21.1.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/yargs@3.32.0:
|
||||||
|
resolution: {integrity: sha512-ONJZiimStfZzhKamYvR/xvmgW3uEkAUFSP91y2caTEPhzF6uP2JfPiVZcq66b/YR0C3uitxSV7+T1x8p5bkmMg==}
|
||||||
|
dependencies:
|
||||||
|
camelcase: 2.1.1
|
||||||
|
cliui: 3.2.0
|
||||||
|
decamelize: 1.2.0
|
||||||
|
os-locale: 1.4.0
|
||||||
|
string-width: 1.0.2
|
||||||
|
window-size: 0.1.4
|
||||||
|
y18n: 3.2.2
|
||||||
|
dev: false
|
||||||
@@ -0,0 +1,547 @@
|
|||||||
|
"use strict";
|
||||||
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||||
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||||
|
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||||
|
}
|
||||||
|
Object.defineProperty(o, k2, desc);
|
||||||
|
}) : (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
o[k2] = m[k];
|
||||||
|
}));
|
||||||
|
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||||
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||||
|
}) : function(o, v) {
|
||||||
|
o["default"] = v;
|
||||||
|
});
|
||||||
|
var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
|
if (mod && mod.__esModule) return mod;
|
||||||
|
var result = {};
|
||||||
|
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||||
|
__setModuleDefault(result, mod);
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||||
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||||
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||||
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
|
});
|
||||||
|
};
|
||||||
|
var _a, _b;
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.sleep = exports.sender = exports.Bucket = exports.Adapter = void 0;
|
||||||
|
const srpc_1 = require("./srpc");
|
||||||
|
const grpc_1 = __importStar(require("@grpc/grpc-js"));
|
||||||
|
let client = new srpc_1.srpc.SillyGirlServiceClient("localhost:50051", grpc_1.credentials.createInsecure());
|
||||||
|
class Sender {
|
||||||
|
constructor(uuid) {
|
||||||
|
this.uuid = uuid;
|
||||||
|
}
|
||||||
|
getUserId() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderGetUserId(new srpc_1.srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
getUserName() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderGetUserName(new srpc_1.srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
getChatId() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderGetChatId(new srpc_1.srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
getChatName() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderGetChatName(new srpc_1.srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
getMessageId() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderGetMessageId(new srpc_1.srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
getPlatform() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderGetPlatform(new srpc_1.srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
getBotId() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderGetBotId(new srpc_1.srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
getContent() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderGetContent(new srpc_1.srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
setContent(content) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderSetContent(new srpc_1.srpc.SenderContentRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
content,
|
||||||
|
}), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resolve(undefined);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
continue() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderContinue(new srpc_1.srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resolve(undefined);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
getAdapter() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Adapter({
|
||||||
|
bot_id: yield this.getBotId(),
|
||||||
|
platform: yield this.getPlatform(),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
listen(options) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
let params = {
|
||||||
|
uuid: this.uuid,
|
||||||
|
rules: options === null || options === void 0 ? void 0 : options.rules,
|
||||||
|
timeout: options === null || options === void 0 ? void 0 : options.timeout,
|
||||||
|
listen_private: options === null || options === void 0 ? void 0 : options.listen_private,
|
||||||
|
listen_group: options === null || options === void 0 ? void 0 : options.listen_group,
|
||||||
|
allow_platforms: options === null || options === void 0 ? void 0 : options.allow_platforms,
|
||||||
|
prohibit_platforms: options === null || options === void 0 ? void 0 : options.prohibit_platforms,
|
||||||
|
allow_groups: options === null || options === void 0 ? void 0 : options.allow_groups,
|
||||||
|
prohibit_groups: options === null || options === void 0 ? void 0 : options.prohibit_groups,
|
||||||
|
allow_users: options === null || options === void 0 ? void 0 : options.allow_users,
|
||||||
|
prohibit_users: options === null || options === void 0 ? void 0 : options.prohibit_users,
|
||||||
|
};
|
||||||
|
client.SenderListen(new srpc_1.srpc.SenderListenRequest(params), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (resp === null || resp === void 0 ? void 0 : resp.value) {
|
||||||
|
resolve(new Sender(resp.value));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
reject(new Error("timeout"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
reply(content) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderReply(new srpc_1.srpc.ReplyRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
content,
|
||||||
|
}), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
action(options) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
event() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
class Bucket {
|
||||||
|
constructor(name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
transform(v) {
|
||||||
|
if (!v) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
let result;
|
||||||
|
if (v.startsWith("f:")) {
|
||||||
|
result = parseFloat(v.replace("f:", ""));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
if (v.startsWith("d:")) {
|
||||||
|
result = parseInt(v.replace("d:", ""));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
if (v.startsWith("b:")) {
|
||||||
|
result = v.replace("b:", "") === "true";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
if (v.startsWith("o:")) {
|
||||||
|
result = JSON.parse(v.replace("o:", ""));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
reverseTransform(value) {
|
||||||
|
if (typeof value === "number" || typeof value === "boolean") {
|
||||||
|
return value.toString();
|
||||||
|
}
|
||||||
|
if (typeof value === "object" && value !== null) {
|
||||||
|
return "o:" + JSON.stringify(value);
|
||||||
|
}
|
||||||
|
if (value === undefined || value === null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
if (typeof value === "string") {
|
||||||
|
if (!value) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
if (!isNaN(parseFloat(value))) {
|
||||||
|
return "f:" + parseFloat(value);
|
||||||
|
}
|
||||||
|
if (!isNaN(parseInt(value))) {
|
||||||
|
return "d:" + parseInt(value);
|
||||||
|
}
|
||||||
|
if (value === "true" || value === "false") {
|
||||||
|
return "b:" + (value === "true");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
get(key, defaultValue = undefined) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.BucketGet(new srpc_1.srpc.BucketKeyRequest({ name: this.name, key }), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resolve(this.transform(resp === null || resp === void 0 ? void 0 : resp.value) || defaultValue);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
set(key, value) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.BucketSet(new srpc_1.srpc.BucketSetRequest({
|
||||||
|
name: this.name,
|
||||||
|
key,
|
||||||
|
value: this.reverseTransform(value),
|
||||||
|
}), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resolve({
|
||||||
|
message: resp === null || resp === void 0 ? void 0 : resp.message,
|
||||||
|
changed: resp === null || resp === void 0 ? void 0 : resp.changed,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
getAll() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.BucketGetAll(new srpc_1.srpc.BucketRequest({ name: this.name }), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
let values = {};
|
||||||
|
if (resp === null || resp === void 0 ? void 0 : resp.value) {
|
||||||
|
values = JSON.parse(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||||
|
for (let key in values) {
|
||||||
|
values[key] = this.transform(values[key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
resolve(values);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
delete() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.BucketDelete(new srpc_1.srpc.BucketRequest({ name: this.name }), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resolve(undefined);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
keys() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.BucketKeys(new srpc_1.srpc.BucketRequest({ name: this.name }), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resolve(resp === null || resp === void 0 ? void 0 : resp.keys);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
len() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.BucketLen(new srpc_1.srpc.BucketRequest({ name: this.name }), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resolve(resp === null || resp === void 0 ? void 0 : resp.length);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
buckets() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.BucketBuckets(new srpc_1.srpc.Empty(), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resolve(resp === null || resp === void 0 ? void 0 : resp.buckets);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
_name() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return this.name;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports.Bucket = Bucket;
|
||||||
|
class Adapter {
|
||||||
|
constructor(options) {
|
||||||
|
this.platform = options.platform;
|
||||||
|
this.bot_id = options.bot_id;
|
||||||
|
const call = client.AdapterRegist();
|
||||||
|
if (options.replyHandler) {
|
||||||
|
let callback = options.replyHandler;
|
||||||
|
call.on("data", (response) => {
|
||||||
|
let message = JSON.parse(response.value);
|
||||||
|
const { echo, __type__ } = message;
|
||||||
|
delete (message.__type__);
|
||||||
|
delete (message.echo);
|
||||||
|
if (__type__ == "reply") {
|
||||||
|
call.write(new srpc_1.srpc.AdapterRegistRequest({
|
||||||
|
bot_id: echo,
|
||||||
|
platform: callback(message),
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
call.on("error", (err) => {
|
||||||
|
// console.error(err);
|
||||||
|
});
|
||||||
|
call.write(new srpc_1.srpc.AdapterRegistRequest({
|
||||||
|
bot_id: options.bot_id,
|
||||||
|
platform: options.platform,
|
||||||
|
}));
|
||||||
|
this.call = call;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setActionHandler(func) {
|
||||||
|
// 将从服务端不断接收action消息,并处理
|
||||||
|
// 事件处理巨饼
|
||||||
|
}
|
||||||
|
receive(message) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
//投递消息
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.AdapterReceive(new srpc_1.srpc.AdapterRequest({
|
||||||
|
platform: this.platform,
|
||||||
|
bot_id: this.bot_id,
|
||||||
|
value: JSON.stringify(message),
|
||||||
|
}), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else if (resp === null || resp === void 0 ? void 0 : resp.value) {
|
||||||
|
resolve(new Sender(resp.value));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
push(message) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
//推送消息
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.AdapterPush(new srpc_1.srpc.AdapterRequest({
|
||||||
|
platform: this.platform,
|
||||||
|
bot_id: this.bot_id,
|
||||||
|
value: JSON.stringify(message),
|
||||||
|
}), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else if (resp === null || resp === void 0 ? void 0 : resp.value) {
|
||||||
|
resolve(resp.value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
destroy() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
this.call.cancel();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
sender(options) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.AdapterSender(new srpc_1.srpc.AdapterRequest({
|
||||||
|
platform: this.platform,
|
||||||
|
bot_id: this.bot_id,
|
||||||
|
}), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
else if (resp === null || resp === void 0 ? void 0 : resp.value) {
|
||||||
|
resolve(new Sender(resp.value));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports.Adapter = Adapter;
|
||||||
|
let sender = new Sender((_b = (_a = process.env) === null || _a === void 0 ? void 0 : _a.SENDER_ID) !== null && _b !== void 0 ? _b : "4d6371a8-2778-11ee-a3c2-821680fbbf6b");
|
||||||
|
exports.sender = sender;
|
||||||
|
function sleep(ms) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
exports.sleep = sleep;
|
||||||
@@ -0,0 +1,549 @@
|
|||||||
|
import { srpc } from "./srpc";
|
||||||
|
import * as grpc_1 from "@grpc/grpc-js";
|
||||||
|
|
||||||
|
let client = new srpc.SillyGirlServiceClient(
|
||||||
|
"localhost:50051",
|
||||||
|
grpc_1.credentials.createInsecure()
|
||||||
|
);
|
||||||
|
|
||||||
|
class Sender {
|
||||||
|
private uuid: string;
|
||||||
|
constructor(uuid: string) {
|
||||||
|
this.uuid = uuid;
|
||||||
|
}
|
||||||
|
async getUserId(): Promise<string | undefined> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderGetUserId(
|
||||||
|
new srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(resp?.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async getUserName(): Promise<string | undefined> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderGetUserName(
|
||||||
|
new srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(resp?.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async getChatId(): Promise<string | undefined> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderGetChatId(
|
||||||
|
new srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(resp?.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async getChatName(): Promise<string | undefined> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderGetChatName(
|
||||||
|
new srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(resp?.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async getMessageId(): Promise<string | undefined> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderGetMessageId(
|
||||||
|
new srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(resp?.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async getPlatform(): Promise<string | undefined> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderGetPlatform(
|
||||||
|
new srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(resp?.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async getBotId(): Promise<string | undefined> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderGetBotId(
|
||||||
|
new srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(resp?.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async getContent(): Promise<string | undefined> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderGetContent(
|
||||||
|
new srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(resp?.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async setContent(content: string): Promise<undefined> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderSetContent(
|
||||||
|
new srpc.SenderContentRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
content,
|
||||||
|
}),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(undefined);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async continue(): Promise<undefined> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderContinue(
|
||||||
|
new srpc.SenderRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
}),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(undefined);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async getAdapter() {
|
||||||
|
return new Adapter({
|
||||||
|
bot_id: await this.getBotId(),
|
||||||
|
platform: await this.getPlatform(),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async listen(options?: {
|
||||||
|
rules?: string[]; // 匹配规则
|
||||||
|
timeout?: number; // 超时,单位毫秒
|
||||||
|
handle?: (s: Sender) => string | void; // 如果匹配成功,则进入消息处理逻辑。如果将 holdOn(content) 的结果作为返回值,会继续监听
|
||||||
|
listen_private?: boolean; // 监听用户群内消息时,同时监听用户消息
|
||||||
|
listen_group?: boolean; // 监听用户群内消息时,同时监听群员消息
|
||||||
|
allow_platforms?: string[]; // 平台白名单
|
||||||
|
prohibit_platforms?: string[]; // 平台黑名单
|
||||||
|
allow_groups?: string[]; // 群聊白名单
|
||||||
|
prohibit_groups?: string[]; // 群聊黑名单
|
||||||
|
allow_users?: string[]; // 用户白名单
|
||||||
|
prohibit_users?: string[]; // 群聊白名单
|
||||||
|
}): Promise<Sender> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
let params: any = {
|
||||||
|
uuid: this.uuid,
|
||||||
|
rules: options?.rules,
|
||||||
|
timeout: options?.timeout,
|
||||||
|
listen_private: options?.listen_private,
|
||||||
|
listen_group: options?.listen_group,
|
||||||
|
allow_platforms: options?.allow_platforms,
|
||||||
|
prohibit_platforms: options?.prohibit_platforms,
|
||||||
|
allow_groups: options?.allow_groups,
|
||||||
|
prohibit_groups: options?.prohibit_groups,
|
||||||
|
allow_users: options?.allow_users,
|
||||||
|
prohibit_users: options?.prohibit_users,
|
||||||
|
};
|
||||||
|
client.SenderListen(new srpc.SenderListenRequest(params), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
if (resp?.value) {
|
||||||
|
resolve(new Sender(resp.value));
|
||||||
|
} else {
|
||||||
|
reject(new Error("timeout"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async reply(content: string): Promise<string | undefined> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.SenderReply(
|
||||||
|
new srpc.ReplyRequest({
|
||||||
|
uuid: this.uuid,
|
||||||
|
content,
|
||||||
|
}),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(resp?.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async action(options: any): Promise<any | undefined> {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
async event(): Promise<any | undefined> {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Bucket {
|
||||||
|
name: string;
|
||||||
|
|
||||||
|
constructor(name: string) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
transform(v: string | undefined) {
|
||||||
|
if (!v) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
let result: number | boolean;
|
||||||
|
if (v.startsWith("f:")) {
|
||||||
|
result = parseFloat(v.replace("f:", ""));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
if (v.startsWith("d:")) {
|
||||||
|
result = parseInt(v.replace("d:", ""));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
if (v.startsWith("b:")) {
|
||||||
|
result = v.replace("b:", "") === "true";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
if (v.startsWith("o:")) {
|
||||||
|
result = JSON.parse(v.replace("o:", ""));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
reverseTransform(value: any) {
|
||||||
|
if (typeof value === "number" || typeof value === "boolean") {
|
||||||
|
return value.toString();
|
||||||
|
}
|
||||||
|
if (typeof value === "object" && value !== null) {
|
||||||
|
return "o:" + JSON.stringify(value);
|
||||||
|
}
|
||||||
|
if (value === undefined || value === null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
if (typeof value === "string") {
|
||||||
|
if (!value) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
if (!isNaN(parseFloat(value))) {
|
||||||
|
return "f:" + parseFloat(value);
|
||||||
|
}
|
||||||
|
if (!isNaN(parseInt(value))) {
|
||||||
|
return "d:" + parseInt(value);
|
||||||
|
}
|
||||||
|
if (value === "true" || value === "false") {
|
||||||
|
return "b:" + (value === "true");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
async get(key: string, defaultValue: any = undefined): Promise<any> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.BucketGet(
|
||||||
|
new srpc.BucketKeyRequest({ name: this.name, key }),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(this.transform(resp?.value) || defaultValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async set(
|
||||||
|
key: string,
|
||||||
|
value: any
|
||||||
|
): Promise<{ message?: string; changed?: boolean }> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.BucketSet(
|
||||||
|
new srpc.BucketSetRequest({
|
||||||
|
name: this.name,
|
||||||
|
key,
|
||||||
|
value: this.reverseTransform(value),
|
||||||
|
}),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve({
|
||||||
|
message: resp?.message,
|
||||||
|
changed: resp?.changed,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async getAll(): Promise<any> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.BucketGetAll(
|
||||||
|
new srpc.BucketRequest({ name: this.name }),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
let values: any = {};
|
||||||
|
if (resp?.value) {
|
||||||
|
values = JSON.parse(resp?.value);
|
||||||
|
for (let key in values) {
|
||||||
|
values[key] = this.transform(values[key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
resolve(values);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async delete(): Promise<undefined> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.BucketDelete(
|
||||||
|
new srpc.BucketRequest({ name: this.name }),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(undefined);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async keys(): Promise<string[] | undefined> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.BucketKeys(
|
||||||
|
new srpc.BucketRequest({ name: this.name }),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(resp?.keys);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async len(): Promise<number | undefined> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.BucketLen(
|
||||||
|
new srpc.BucketRequest({ name: this.name }),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(resp?.length);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async buckets(): Promise<string[] | undefined> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
client.BucketBuckets(new srpc.Empty(), (err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(resp?.buckets);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async _name(): Promise<string> {
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Message {
|
||||||
|
message_id?: string; // 消息ID
|
||||||
|
user_id: string; // 用户ID
|
||||||
|
chat_id?: string; // 聊天ID
|
||||||
|
content: string; // 聊天内容
|
||||||
|
user_name?: string; // 用户名
|
||||||
|
chat_name?: string; // 群组名
|
||||||
|
}
|
||||||
|
|
||||||
|
class Adapter {
|
||||||
|
platform: string | undefined;
|
||||||
|
bot_id: string | undefined;
|
||||||
|
call: any
|
||||||
|
constructor(options: {
|
||||||
|
platform?: string;
|
||||||
|
bot_id?: string;
|
||||||
|
replyHandler?: (message: Message) => string | undefined;
|
||||||
|
}) {
|
||||||
|
this.platform = options.platform;
|
||||||
|
this.bot_id = options.bot_id;
|
||||||
|
const call = client.AdapterRegist();
|
||||||
|
if (options.replyHandler) {
|
||||||
|
let callback: any = options.replyHandler;
|
||||||
|
call.on("data", (response) => {
|
||||||
|
let message = JSON.parse(response.value);
|
||||||
|
const { echo, __type__ } = message;
|
||||||
|
delete(message.__type__)
|
||||||
|
delete(message.echo)
|
||||||
|
if (__type__ == "reply") {
|
||||||
|
call.write(
|
||||||
|
new srpc.AdapterRegistRequest({
|
||||||
|
bot_id: echo,
|
||||||
|
platform: callback(message),
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
call.on("error", (err) => {
|
||||||
|
// console.error(err);
|
||||||
|
});
|
||||||
|
call.write(
|
||||||
|
new srpc.AdapterRegistRequest({
|
||||||
|
bot_id: options.bot_id,
|
||||||
|
platform: options.platform,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
this.call = call
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setActionHandler(func: (action: {}) => any): void {
|
||||||
|
// 将从服务端不断接收action消息,并处理
|
||||||
|
// 事件处理巨饼
|
||||||
|
}
|
||||||
|
async receive(message: Message): Promise<Sender> {
|
||||||
|
//投递消息
|
||||||
|
return new Promise<Sender>((resolve, reject) => {
|
||||||
|
client.AdapterReceive(
|
||||||
|
new srpc.AdapterRequest({
|
||||||
|
platform: this.platform,
|
||||||
|
bot_id: this.bot_id,
|
||||||
|
value: JSON.stringify(message),
|
||||||
|
}),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else if (resp?.value) {
|
||||||
|
resolve(new Sender(resp.value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async push(message: Message): Promise<string> {
|
||||||
|
//推送消息
|
||||||
|
return new Promise<string>((resolve, reject) => {
|
||||||
|
client.AdapterPush(
|
||||||
|
new srpc.AdapterRequest({
|
||||||
|
platform: this.platform,
|
||||||
|
bot_id: this.bot_id,
|
||||||
|
value: JSON.stringify(message),
|
||||||
|
}),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else if (resp?.value) {
|
||||||
|
resolve(resp.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async destroy(): Promise<void> {
|
||||||
|
this.call.cancel()
|
||||||
|
}
|
||||||
|
async sender(options: any): Promise<Sender> {
|
||||||
|
return new Promise<Sender>((resolve, reject) => {
|
||||||
|
client.AdapterSender(
|
||||||
|
new srpc.AdapterRequest({
|
||||||
|
platform: this.platform,
|
||||||
|
bot_id: this.bot_id,
|
||||||
|
}),
|
||||||
|
(err, resp) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else if (resp?.value) {
|
||||||
|
resolve(new Sender(resp.value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let sender = new Sender(
|
||||||
|
process.env?.SENDER_ID ?? "4d6371a8-2778-11ee-a3c2-821680fbbf6b"
|
||||||
|
);
|
||||||
|
|
||||||
|
async function sleep(ms: number | undefined) {
|
||||||
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||||
|
}
|
||||||
|
|
||||||
|
export { Adapter, Bucket, sender, sleep };
|
||||||
+1659
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,112 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
option go_package = "srpc/";
|
||||||
|
|
||||||
|
package srpc;
|
||||||
|
|
||||||
|
message Empty {}
|
||||||
|
|
||||||
|
message Default {
|
||||||
|
string value = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message BucketSetRequest {
|
||||||
|
string name = 1;
|
||||||
|
string key = 2;
|
||||||
|
string value = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message BucketSetResponse {
|
||||||
|
bool changed = 1;
|
||||||
|
string message = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message BucketKeyRequest {
|
||||||
|
string name = 1;
|
||||||
|
string key = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message BucketRequest {
|
||||||
|
string name = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message BucketKeysResponse {
|
||||||
|
repeated string keys = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message LenResponse {
|
||||||
|
int32 length = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message BucketsResponse {
|
||||||
|
repeated string buckets = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SenderRequest {
|
||||||
|
string uuid = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ReplyRequest {
|
||||||
|
string uuid = 1;
|
||||||
|
string content = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SenderContentRequest {
|
||||||
|
string uuid = 1;
|
||||||
|
string content = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SenderListenRequest {
|
||||||
|
string uuid = 1;
|
||||||
|
repeated string rules = 2;
|
||||||
|
int32 timeout = 3;
|
||||||
|
bool listen_group = 4;
|
||||||
|
bool listen_private = 5;
|
||||||
|
bool require_admin = 6;
|
||||||
|
repeated string allow_platforms = 7;
|
||||||
|
repeated string prohibit_platforms = 8;
|
||||||
|
repeated string allow_users = 9;
|
||||||
|
repeated string prohibit_users = 10;
|
||||||
|
repeated string allow_groups = 11;
|
||||||
|
repeated string prohibit_groups = 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
message AdapterRegistRequest {
|
||||||
|
string platform = 1;
|
||||||
|
string bot_id = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message AdapterRequest {
|
||||||
|
string platform = 1;
|
||||||
|
string bot_id = 2;
|
||||||
|
string value = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
service SillyGirlService {
|
||||||
|
rpc BucketGet(BucketKeyRequest) returns (Default);
|
||||||
|
rpc BucketSet(BucketSetRequest) returns (BucketSetResponse);
|
||||||
|
rpc BucketDelete(BucketRequest) returns (Empty);
|
||||||
|
rpc BucketKeys(BucketRequest) returns (BucketKeysResponse);
|
||||||
|
rpc BucketLen(BucketRequest) returns (LenResponse);
|
||||||
|
rpc BucketGetAll(BucketRequest) returns (Default);
|
||||||
|
rpc BucketBuckets(Empty) returns (BucketsResponse);
|
||||||
|
rpc SenderGetUserId (SenderRequest) returns (Default);
|
||||||
|
rpc SenderGetUserName (SenderRequest) returns (Default);
|
||||||
|
rpc SenderGetChatId (SenderRequest) returns (Default);
|
||||||
|
rpc SenderGetChatName (SenderRequest) returns (Default);
|
||||||
|
rpc SenderGetMessageId (SenderRequest) returns (Default);
|
||||||
|
rpc SenderGetPlatform (SenderRequest) returns (Default);
|
||||||
|
rpc SenderGetBotId (SenderRequest) returns (Default);
|
||||||
|
rpc SenderGetContent (SenderRequest) returns (Default);
|
||||||
|
rpc SenderSetContent (SenderContentRequest) returns (Empty);
|
||||||
|
rpc SenderContinue (SenderRequest) returns (Empty);
|
||||||
|
rpc SenderListen (SenderListenRequest) returns (Default);
|
||||||
|
rpc SenderEvent (SenderRequest) returns (Default);
|
||||||
|
rpc SenderReply (ReplyRequest) returns (Default);
|
||||||
|
rpc SenderAction (ReplyRequest) returns (Default);
|
||||||
|
rpc AdapterRegist(stream AdapterRegistRequest) returns (stream Default);
|
||||||
|
rpc AdapterReceive(AdapterRequest) returns (Default);
|
||||||
|
rpc AdapterPush(AdapterRequest) returns (Default);
|
||||||
|
rpc AdapterDestroy(AdapterRequest) returns (Empty);
|
||||||
|
rpc AdapterSender(AdapterRequest) returns (Default);
|
||||||
|
}
|
||||||
+1819
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user