feat: 完成概览界面样式
							
								
								
									
										7
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						| @@ -1,8 +1,8 @@ | |||||||
| GOCMD=go | GOCMD=go | ||||||
| GOBUILD=$(GOCMD) build | GOBUILD=$(GOCMD) build | ||||||
| GOCLEAN=$(GOCMD) clean | GOCLEAN=$(GOCMD) clean | ||||||
| GOARCH=$(shell go env GOARCH) | GOARCH=amd64 | ||||||
| GOOS=$(shell go env GOOS ) | GOOS=linux | ||||||
|  |  | ||||||
| BASE_PAH := $(shell pwd) | BASE_PAH := $(shell pwd) | ||||||
| BUILD_PATH = $(BASE_PAH)/build | BUILD_PATH = $(BASE_PAH)/build | ||||||
| @@ -16,7 +16,6 @@ build_web: | |||||||
|  |  | ||||||
| build_bin: | build_bin: | ||||||
| 	cd $(SERVER_PATH) \ | 	cd $(SERVER_PATH) \ | ||||||
|     && GOOS=$(GOOS) GOARCH=$(GOARCH)  $(GOBUILD) -trimpath  -ldflags "-s -w"  -o $(BUILD_PATH)/$(APP_NAME) $(MAIN) |     && CGO_ENABLED=1 GOOS=$(GOOS) GOARCH=$(GOARCH) CC=x86_64-linux-musl-gcc CXX=x86_64-linux-musl-g++ $(GOBUILD) -trimpath -ldflags '-s -w --extldflags "-static -fpic"'  -o $(BUILD_PATH)/$(APP_NAME) $(MAIN) | ||||||
|  |  | ||||||
| build_all: build_web  build_bin | build_all: build_web  build_bin | ||||||
|  |  | ||||||
|   | |||||||
| @@ -9,7 +9,6 @@ import ( | |||||||
| 	"github.com/1Panel-dev/1Panel/backend/constant" | 	"github.com/1Panel-dev/1Panel/backend/constant" | ||||||
| 	"github.com/1Panel-dev/1Panel/backend/global" | 	"github.com/1Panel-dev/1Panel/backend/global" | ||||||
| 	"github.com/1Panel-dev/1Panel/backend/utils/captcha" | 	"github.com/1Panel-dev/1Panel/backend/utils/captcha" | ||||||
| 	"github.com/1Panel-dev/1Panel/backend/utils/encrypt" |  | ||||||
| 	"github.com/1Panel-dev/1Panel/backend/utils/qqwry" | 	"github.com/1Panel-dev/1Panel/backend/utils/qqwry" | ||||||
| 	"github.com/gin-gonic/gin" | 	"github.com/gin-gonic/gin" | ||||||
| ) | ) | ||||||
| @@ -99,9 +98,10 @@ func (b *BaseApi) SafeEntrance(c *gin.Context) { | |||||||
| 		helper.ErrorWithDetail(c, constant.CodeErrUnSafety, constant.ErrTypeNotSafety, errors.New("missing code")) | 		helper.ErrorWithDetail(c, constant.CodeErrUnSafety, constant.ErrTypeNotSafety, errors.New("missing code")) | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 	codeWithMD5 := encrypt.Md5(code) | 	if err := authService.SafeEntrance(c, code); err != nil { | ||||||
| 	cookieValue, _ := encrypt.StringEncrypt(codeWithMD5) | 		helper.ErrorWithDetail(c, constant.CodeErrUnSafety, constant.ErrTypeNotSafety, errors.New("missing code")) | ||||||
| 	c.SetCookie(codeWithMD5, cookieValue, 604800, "", "", false, false) | 		return | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	helper.SuccessWithData(c, nil) | 	helper.SuccessWithData(c, nil) | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										26
									
								
								backend/app/dto/dashboard.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,26 @@ | |||||||
|  | package dto | ||||||
|  |  | ||||||
|  | type DashboardBase struct { | ||||||
|  | 	HaloEnabled        bool `json:"haloEnabled"` | ||||||
|  | 	DateeaseEnabled    bool `json:"dateeaseEnabled"` | ||||||
|  | 	JumpServerEnabled  bool `json:"jumpserverEnabled"` | ||||||
|  | 	MeterSphereEnabled bool `json:"metersphereEnabled"` | ||||||
|  |  | ||||||
|  | 	WebsiteNumber     int `json:"websiteNumber"` | ||||||
|  | 	DatabaseNumber    int `json:"databaseNumber"` | ||||||
|  | 	CronjobNumber     int `json:"cronjobNumber"` | ||||||
|  | 	AppInstalldNumber int `json:"appInstalldNumber"` | ||||||
|  |  | ||||||
|  | 	HostName             string `json:"hostname"` | ||||||
|  | 	Os                   string `json:"os"` | ||||||
|  | 	Platform             string `json:"platform"` | ||||||
|  | 	PlatformFamily       string `json:"platformFamily"` | ||||||
|  | 	PlatformVersion      string `json:"platformVersion"` | ||||||
|  | 	KernelArch           string `json:"kernelArch"` | ||||||
|  | 	VirtualizationSystem string `json:"virtualizationSystem"` | ||||||
|  |  | ||||||
|  | 	CPUCores        int     `json:"cpuCores"` | ||||||
|  | 	CPULogicalCores int     `json:"cpuLogicalCores"` | ||||||
|  | 	CPUModelName    string  `json:"cpuModelName"` | ||||||
|  | 	CPUPercent      float64 `json:"cpuPercent"` | ||||||
|  | } | ||||||
| @@ -13,6 +13,7 @@ type SettingInfo struct { | |||||||
|  |  | ||||||
| 	ServerPort             int    `json:"serverPort"` | 	ServerPort             int    `json:"serverPort"` | ||||||
| 	SecurityEntrance       string `json:"securityEntrance"` | 	SecurityEntrance       string `json:"securityEntrance"` | ||||||
|  | 	ExpirationDays         int    `json:"expirationDays"` | ||||||
| 	ExpirationTime         string `json:"expirationTime"` | 	ExpirationTime         string `json:"expirationTime"` | ||||||
| 	ComplexityVerification string `json:"complexityVerification"` | 	ComplexityVerification string `json:"complexityVerification"` | ||||||
| 	MFAStatus              string `json:"mfaStatus"` | 	MFAStatus              string `json:"mfaStatus"` | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ package service | |||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"strconv" | 	"strconv" | ||||||
|  | 	"time" | ||||||
|  |  | ||||||
| 	"github.com/1Panel-dev/1Panel/backend/app/dto" | 	"github.com/1Panel-dev/1Panel/backend/app/dto" | ||||||
| 	"github.com/1Panel-dev/1Panel/backend/constant" | 	"github.com/1Panel-dev/1Panel/backend/constant" | ||||||
| @@ -18,6 +19,7 @@ type AuthService struct{} | |||||||
| type IAuthService interface { | type IAuthService interface { | ||||||
| 	SafetyStatus(c *gin.Context) error | 	SafetyStatus(c *gin.Context) error | ||||||
| 	VerifyCode(code string) (bool, error) | 	VerifyCode(code string) (bool, error) | ||||||
|  | 	SafeEntrance(c *gin.Context, code string) error | ||||||
| 	Login(c *gin.Context, info dto.Login) (*dto.UserLoginInfo, error) | 	Login(c *gin.Context, info dto.Login) (*dto.UserLoginInfo, error) | ||||||
| 	LogOut(c *gin.Context) error | 	LogOut(c *gin.Context) error | ||||||
| } | } | ||||||
| @@ -26,6 +28,23 @@ func NewIAuthService() IAuthService { | |||||||
| 	return &AuthService{} | 	return &AuthService{} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func (u *AuthService) SafeEntrance(c *gin.Context, code string) error { | ||||||
|  | 	codeWithMD5 := encrypt.Md5(code) | ||||||
|  | 	cookieValue, _ := encrypt.StringEncrypt(codeWithMD5) | ||||||
|  | 	c.SetCookie(codeWithMD5, cookieValue, 604800, "", "", false, false) | ||||||
|  |  | ||||||
|  | 	expiredSetting, err := settingRepo.Get(settingRepo.WithByKey("ExpirationDays")) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	timeout, _ := strconv.Atoi(expiredSetting.Value) | ||||||
|  | 	c.SetCookie(constant.PasswordExpiredName, encrypt.Md5(time.Now().Format("20060102150405")), 86400*timeout, "", "", false, false) | ||||||
|  | 	if err := settingRepo.Update("ExpirationTime", time.Now().AddDate(0, 0, timeout).Format("2006.01.02 15:04:05")); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
| func (u *AuthService) Login(c *gin.Context, info dto.Login) (*dto.UserLoginInfo, error) { | func (u *AuthService) Login(c *gin.Context, info dto.Login) (*dto.UserLoginInfo, error) { | ||||||
| 	nameSetting, err := settingRepo.Get(settingRepo.WithByKey("UserName")) | 	nameSetting, err := settingRepo.Get(settingRepo.WithByKey("UserName")) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|   | |||||||
							
								
								
									
										71
									
								
								backend/app/service/dashboard.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,71 @@ | |||||||
|  | package service | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"time" | ||||||
|  |  | ||||||
|  | 	"github.com/1Panel-dev/1Panel/backend/app/dto" | ||||||
|  | 	"github.com/jinzhu/copier" | ||||||
|  | 	"github.com/shirou/gopsutil/cpu" | ||||||
|  | 	"github.com/shirou/gopsutil/host" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | type DashboardService struct{} | ||||||
|  |  | ||||||
|  | type IDashboardService interface { | ||||||
|  | 	LoadBaseInfo() (*dto.DashboardBase, error) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func NewIDashboardService() IDashboardService { | ||||||
|  | 	return &DashboardService{} | ||||||
|  | } | ||||||
|  | func (u *DashboardService) LoadBaseInfo() (*dto.DashboardBase, error) { | ||||||
|  | 	var baseInfo dto.DashboardBase | ||||||
|  | 	hostInfo, err := host.Info() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	if err := copier.Copy(baseInfo, hostInfo); err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	appInstall, err := appInstallRepo.GetBy() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	for _, app := range appInstall { | ||||||
|  | 		switch app.App.Key { | ||||||
|  | 		case "dateease": | ||||||
|  | 			baseInfo.DateeaseEnabled = true | ||||||
|  | 		case "halo": | ||||||
|  | 			baseInfo.HaloEnabled = true | ||||||
|  | 		case "metersphere": | ||||||
|  | 			baseInfo.MeterSphereEnabled = true | ||||||
|  | 		case "jumpserver": | ||||||
|  | 			baseInfo.JumpServerEnabled = true | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	baseInfo.AppInstalldNumber = len(appInstall) | ||||||
|  | 	dbs, err := mysqlRepo.List() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	baseInfo.DatabaseNumber = len(dbs) | ||||||
|  | 	cornjobs, err := cronjobRepo.List() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	baseInfo.DatabaseNumber = len(cornjobs) | ||||||
|  |  | ||||||
|  | 	cpuInfo, err := cpu.Info() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	baseInfo.CPUModelName = cpuInfo[0].ModelName | ||||||
|  | 	baseInfo.CPUCores, _ = cpu.Counts(false) | ||||||
|  | 	baseInfo.CPULogicalCores, _ = cpu.Counts(true) | ||||||
|  | 	totalPercent, _ := cpu.Percent(1*time.Second, false) | ||||||
|  | 	if len(totalPercent) == 1 { | ||||||
|  | 		baseInfo.CPUPercent = totalPercent[0] | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return &baseInfo, nil | ||||||
|  | } | ||||||
| @@ -43,6 +43,7 @@ func (u *SettingService) GetSettingInfo() (*dto.SettingInfo, error) { | |||||||
| 	info.MonitorStoreDays, _ = strconv.Atoi(settingMap["MonitorStoreDays"]) | 	info.MonitorStoreDays, _ = strconv.Atoi(settingMap["MonitorStoreDays"]) | ||||||
| 	info.ServerPort, _ = strconv.Atoi(settingMap["ServerPort"]) | 	info.ServerPort, _ = strconv.Atoi(settingMap["ServerPort"]) | ||||||
| 	info.SessionTimeout, _ = strconv.Atoi(settingMap["SessionTimeout"]) | 	info.SessionTimeout, _ = strconv.Atoi(settingMap["SessionTimeout"]) | ||||||
|  | 	info.ExpirationDays, _ = strconv.Atoi(settingMap["ExpirationDays"]) | ||||||
| 	info.LocalTime = time.Now().Format("2006-01-02 15:04:05") | 	info.LocalTime = time.Now().Format("2006-01-02 15:04:05") | ||||||
| 	return &info, err | 	return &info, err | ||||||
| } | } | ||||||
|   | |||||||
| @@ -2,7 +2,6 @@ package configs | |||||||
|  |  | ||||||
| type ServerConfig struct { | type ServerConfig struct { | ||||||
| 	Sqlite    Sqlite    `mapstructure:"sqlite"` | 	Sqlite    Sqlite    `mapstructure:"sqlite"` | ||||||
| 	Mysql     Mysql     `mapstructure:"mysql"` |  | ||||||
| 	System    System    `mapstructure:"system"` | 	System    System    `mapstructure:"system"` | ||||||
| 	LogConfig LogConfig `mapstructure:"log"` | 	LogConfig LogConfig `mapstructure:"log"` | ||||||
| 	CORS      CORS      `mapstructure:"cors"` | 	CORS      CORS      `mapstructure:"cors"` | ||||||
|   | |||||||
| @@ -1,13 +0,0 @@ | |||||||
| package configs |  | ||||||
|  |  | ||||||
| type GeneralDB struct { |  | ||||||
| 	Path         string `mapstructure:"path"`           // 服务器地址 |  | ||||||
| 	Port         string `mapstructure:"port"`           //:端口 |  | ||||||
| 	Config       string `mapstructure:"config"`         // 高级配置 |  | ||||||
| 	Dbname       string `mapstructure:"db_name"`        // 数据库名 |  | ||||||
| 	Username     string `mapstructure:"username"`       // 数据库用户名 |  | ||||||
| 	Password     string `mapstructure:"password"`       // 数据库密码 |  | ||||||
| 	MaxIdleConns int    `mapstructure:"max_idle_conns"` // 空闲中的最大连接数 |  | ||||||
| 	MaxOpenConns int    `mapstructure:"max_open_conns"` // 打开到数据库的最大连接数 |  | ||||||
| 	DbFile       string `mapstructure:"db_file"` |  | ||||||
| } |  | ||||||
| @@ -1,11 +0,0 @@ | |||||||
| package configs |  | ||||||
|  |  | ||||||
| import "fmt" |  | ||||||
|  |  | ||||||
| type Mysql struct { |  | ||||||
| 	GeneralDB `yaml:",inline" mapstructure:",squash"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *Mysql) Dsn() string { |  | ||||||
| 	return fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8&parseTime=true&loc=Asia%%2FShanghai", m.Username, m.Password, m.Path, m.Port, m.Dbname) |  | ||||||
| } |  | ||||||
| @@ -1,9 +1,25 @@ | |||||||
| package configs | package configs | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"fmt" | ||||||
|  | 	"os" | ||||||
|  | ) | ||||||
|  |  | ||||||
| type Sqlite struct { | type Sqlite struct { | ||||||
| 	GeneralDB `yaml:",inline" mapstructure:",squash"` | 	Path   string `mapstructure:"path"` | ||||||
|  | 	DbFile string `mapstructure:"db_file"` | ||||||
| } | } | ||||||
|  |  | ||||||
| func (s *Sqlite) Dsn() string { | func (s *Sqlite) Dsn() string { | ||||||
|  | 	if _, err := os.Stat(s.Path); err != nil { | ||||||
|  | 		if err := os.MkdirAll(s.Path, os.ModePerm); err != nil { | ||||||
|  | 			panic(fmt.Errorf("init db dir falied, err: %v", err)) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	if _, err := os.Stat(s.Path + "/" + s.DbFile); err != nil { | ||||||
|  | 		if _, err := os.Create(s.Path + "/" + s.DbFile); err != nil { | ||||||
|  | 			panic(fmt.Errorf("init db file falied, err: %v", err)) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
| 	return s.Path + "/" + s.DbFile | 	return s.Path + "/" + s.DbFile | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,14 +1,16 @@ | |||||||
| package db | package db | ||||||
|  |  | ||||||
| import "github.com/1Panel-dev/1Panel/backend/global" | import ( | ||||||
|  | 	"github.com/1Panel-dev/1Panel/backend/global" | ||||||
|  | 	"gorm.io/driver/sqlite" | ||||||
|  | 	"gorm.io/gorm" | ||||||
|  | ) | ||||||
|  |  | ||||||
| func Init() { | func Init() { | ||||||
| 	switch global.CONF.System.DbType { | 	s := global.CONF.Sqlite | ||||||
| 	case "mysql": | 	db, err := gorm.Open(sqlite.Open(s.Dsn()), &gorm.Config{}) | ||||||
| 		global.DB = MysqlGorm() | 	if err != nil { | ||||||
| 	case "sqlite": | 		panic(err) | ||||||
| 		global.DB = SqliteGorm() |  | ||||||
| 	default: |  | ||||||
| 		global.DB = MysqlGorm() |  | ||||||
| 	} | 	} | ||||||
|  | 	global.DB = db | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,28 +0,0 @@ | |||||||
| package db |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"github.com/1Panel-dev/1Panel/backend/global" |  | ||||||
|  |  | ||||||
| 	"gorm.io/driver/mysql" |  | ||||||
| 	"gorm.io/gorm" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| func MysqlGorm() *gorm.DB { |  | ||||||
| 	m := global.CONF.Mysql |  | ||||||
| 	if m.Dbname == "" { |  | ||||||
| 		return nil |  | ||||||
| 	} |  | ||||||
| 	mysqlConfig := mysql.Config{ |  | ||||||
| 		DSN:                       m.Dsn(), |  | ||||||
| 		DefaultStringSize:         191, |  | ||||||
| 		SkipInitializeWithVersion: false, |  | ||||||
| 	} |  | ||||||
| 	if db, err := gorm.Open(mysql.New(mysqlConfig), &gorm.Config{}); err != nil { |  | ||||||
| 		panic(err) |  | ||||||
| 	} else { |  | ||||||
| 		sqlDB, _ := db.DB() |  | ||||||
| 		sqlDB.SetMaxIdleConns(m.MaxIdleConns) |  | ||||||
| 		sqlDB.SetMaxOpenConns(m.MaxOpenConns) |  | ||||||
| 		return db |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -1,17 +0,0 @@ | |||||||
| package db |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"github.com/1Panel-dev/1Panel/backend/global" |  | ||||||
|  |  | ||||||
| 	"gorm.io/driver/sqlite" |  | ||||||
| 	"gorm.io/gorm" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| func SqliteGorm() *gorm.DB { |  | ||||||
| 	s := global.CONF.Sqlite |  | ||||||
| 	if db, err := gorm.Open(sqlite.Open(s.Dsn()), &gorm.Config{}); err != nil { |  | ||||||
| 		panic(err) |  | ||||||
| 	} else { |  | ||||||
| 		return db |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -19,7 +19,6 @@ func Init() { | |||||||
| 		migrations.AddTableImageRepo, | 		migrations.AddTableImageRepo, | ||||||
| 		migrations.AddTableWebsite, | 		migrations.AddTableWebsite, | ||||||
| 		migrations.AddTableDatabaseMysql, | 		migrations.AddTableDatabaseMysql, | ||||||
| 		migrations.AddTableLoginLog, |  | ||||||
| 	}) | 	}) | ||||||
| 	if err := m.Migrate(); err != nil { | 	if err := m.Migrate(); err != nil { | ||||||
| 		global.LOG.Error(err) | 		global.LOG.Error(err) | ||||||
|   | |||||||
| @@ -57,7 +57,7 @@ var AddTableSetting = &gormigrate.Migration{ | |||||||
| 		if err := tx.Create(&model.Setting{Key: "Password", Value: "Sr2qOhssQNg8rGRvqyWhsBDJx+tV5VfLEZXdbax//dA="}).Error; err != nil { | 		if err := tx.Create(&model.Setting{Key: "Password", Value: "Sr2qOhssQNg8rGRvqyWhsBDJx+tV5VfLEZXdbax//dA="}).Error; err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 		if err := tx.Create(&model.Setting{Key: "Email", Value: ""}).Error; err != nil { | 		if err := tx.Create(&model.Setting{Key: "Email", Value: "test@qq.com"}).Error; err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| @@ -67,7 +67,7 @@ var AddTableSetting = &gormigrate.Migration{ | |||||||
| 		if err := tx.Create(&model.Setting{Key: "Language", Value: "zh"}).Error; err != nil { | 		if err := tx.Create(&model.Setting{Key: "Language", Value: "zh"}).Error; err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 		if err := tx.Create(&model.Setting{Key: "Theme", Value: "auto"}).Error; err != nil { | 		if err := tx.Create(&model.Setting{Key: "Theme", Value: "light"}).Error; err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|   | |||||||
| @@ -21,13 +21,13 @@ func (s *ContainerRouter) InitContainerRouter(Router *gin.RouterGroup) { | |||||||
| 	baseApi := v1.ApiGroupApp.BaseApi | 	baseApi := v1.ApiGroupApp.BaseApi | ||||||
| 	{ | 	{ | ||||||
| 		baRouter.GET("/exec", baseApi.ContainerExec) | 		baRouter.GET("/exec", baseApi.ContainerExec) | ||||||
|  | 		baRouter.GET("/stats/:id", baseApi.ContainerStats) | ||||||
|  |  | ||||||
| 		baRouter.POST("/search", baseApi.SearchContainer) | 		baRouter.POST("/search", baseApi.SearchContainer) | ||||||
| 		baRouter.POST("/inspect", baseApi.Inspect) | 		baRouter.POST("/inspect", baseApi.Inspect) | ||||||
| 		baRouter.POST("", baseApi.ContainerCreate) | 		baRouter.POST("", baseApi.ContainerCreate) | ||||||
| 		withRecordRouter.POST("operate", baseApi.ContainerOperation) | 		withRecordRouter.POST("operate", baseApi.ContainerOperation) | ||||||
| 		withRecordRouter.POST("/log", baseApi.ContainerLogs) | 		withRecordRouter.POST("/log", baseApi.ContainerLogs) | ||||||
| 		withRecordRouter.GET("/stats/:id", baseApi.ContainerStats) |  | ||||||
|  |  | ||||||
| 		baRouter.POST("/repo/search", baseApi.SearchRepo) | 		baRouter.POST("/repo/search", baseApi.SearchRepo) | ||||||
| 		baRouter.PUT("/repo/:id", baseApi.UpdateRepo) | 		baRouter.PUT("/repo/:id", baseApi.UpdateRepo) | ||||||
|   | |||||||
							
								
								
									
										747
									
								
								frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						| @@ -6,7 +6,7 @@ | |||||||
|     "scripts": { |     "scripts": { | ||||||
|         "dev": "vite", |         "dev": "vite", | ||||||
|         "serve": "vite", |         "serve": "vite", | ||||||
|         "build:dev": "vue-tsc --noEmit && vite build --mode development", |         "build:dev": "vite build --mode development", | ||||||
|         "build:test": "vue-tsc --noEmit && vite build --mode test", |         "build:test": "vue-tsc --noEmit && vite build --mode test", | ||||||
|         "build:pro": "vue-tsc --noEmit && vite build --mode production", |         "build:pro": "vue-tsc --noEmit && vite build --mode production", | ||||||
|         "preview": "vite preview", |         "preview": "vite preview", | ||||||
|   | |||||||
| @@ -13,6 +13,7 @@ export namespace Setting { | |||||||
|  |  | ||||||
|         serverPort: number; |         serverPort: number; | ||||||
|         securityEntrance: string; |         securityEntrance: string; | ||||||
|  |         expirationDays: number; | ||||||
|         expirationTime: string; |         expirationTime: string; | ||||||
|         complexityVerification: string; |         complexityVerification: string; | ||||||
|         mfaStatus: string; |         mfaStatus: string; | ||||||
|   | |||||||
| @@ -605,6 +605,7 @@ export default { | |||||||
|         safeEntranceHelper: |         safeEntranceHelper: | ||||||
|             'Panel management portal. You can log in to the panel only through a specified security portal, for example: onepanel', |             'Panel management portal. You can log in to the panel only through a specified security portal, for example: onepanel', | ||||||
|         expirationTime: 'Expiration Time', |         expirationTime: 'Expiration Time', | ||||||
|  |         days: 'Expiration Days', | ||||||
|         expiredHelper: 'The current password has expired. Please change the password again.', |         expiredHelper: 'The current password has expired. Please change the password again.', | ||||||
|         timeoutHelper: |         timeoutHelper: | ||||||
|             '[ {0} days ] The panel password is about to expire. After the expiration, you need to reset the password', |             '[ {0} days ] The panel password is about to expire. After the expiration, you need to reset the password', | ||||||
|   | |||||||
| @@ -619,6 +619,7 @@ export default { | |||||||
|         safeEntrance: '安全入口', |         safeEntrance: '安全入口', | ||||||
|         safeEntranceHelper: '面板管理入口,设置后只能通过指定安全入口登录面板,如: onepanel', |         safeEntranceHelper: '面板管理入口,设置后只能通过指定安全入口登录面板,如: onepanel', | ||||||
|         expirationTime: '密码过期时间', |         expirationTime: '密码过期时间', | ||||||
|  |         days: '过期天数', | ||||||
|         expiredHelper: '当前密码已过期,请重新修改密码:', |         expiredHelper: '当前密码已过期,请重新修改密码:', | ||||||
|         timeoutHelper: '【 {0} 天后 】面板密码即将过期,过期后需要重新设置密码', |         timeoutHelper: '【 {0} 天后 】面板密码即将过期,过期后需要重新设置密码', | ||||||
|         complexity: '密码复杂度验证', |         complexity: '密码复杂度验证', | ||||||
|   | |||||||
| @@ -10,14 +10,14 @@ const hostRouter = { | |||||||
|         title: 'menu.host', |         title: 'menu.host', | ||||||
|     }, |     }, | ||||||
|     children: [ |     children: [ | ||||||
|         { |         // { | ||||||
|             path: '/hosts/security', |         //     path: '/hosts/security', | ||||||
|             name: 'Security', |         //     name: 'Security', | ||||||
|             component: () => import('@/views/host/security/index.vue'), |         //     component: () => import('@/views/host/security/index.vue'), | ||||||
|             meta: { |         //     meta: { | ||||||
|                 title: 'menu.security', |         //         title: 'menu.security', | ||||||
|             }, |         //     }, | ||||||
|         }, |         // }, | ||||||
|         { |         { | ||||||
|             path: '/hosts/files', |             path: '/hosts/files', | ||||||
|             name: 'File', |             name: 'File', | ||||||
|   | |||||||
| @@ -1,22 +0,0 @@ | |||||||
| import { Layout } from '@/routers/constant'; |  | ||||||
|  |  | ||||||
| const toolBoxRouter = { |  | ||||||
|     sort: 9, |  | ||||||
|     path: '/toolbox', |  | ||||||
|     component: Layout, |  | ||||||
|     redirect: '/toolbox', |  | ||||||
|     meta: { |  | ||||||
|         icon: 'p-toolbox', |  | ||||||
|         title: 'menu.toolbox', |  | ||||||
|     }, |  | ||||||
|     children: [ |  | ||||||
|         { |  | ||||||
|             path: '/toolbox', |  | ||||||
|             name: 'ToolBox', |  | ||||||
|             component: () => import('@/views/toolbox/index.vue'), |  | ||||||
|             meta: {}, |  | ||||||
|         }, |  | ||||||
|     ], |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default toolBoxRouter; |  | ||||||
| @@ -57,7 +57,13 @@ | |||||||
|                     :formatter="dateFromat" |                     :formatter="dateFromat" | ||||||
|                     show-overflow-tooltip |                     show-overflow-tooltip | ||||||
|                 /> |                 /> | ||||||
|                 <fu-table-operations :buttons="buttons" :label="$t('commons.table.operate')" fix /> |                 <fu-table-operations | ||||||
|  |                     width="200px" | ||||||
|  |                     :ellipsis="10" | ||||||
|  |                     :buttons="buttons" | ||||||
|  |                     :label="$t('commons.table.operate')" | ||||||
|  |                     fix | ||||||
|  |                 /> | ||||||
|             </ComplexTable> |             </ComplexTable> | ||||||
|         </el-card> |         </el-card> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -32,7 +32,12 @@ | |||||||
|                         {{ dateFromat(0, 0, row.createdAt) }} |                         {{ dateFromat(0, 0, row.createdAt) }} | ||||||
|                     </template> |                     </template> | ||||||
|                 </el-table-column> |                 </el-table-column> | ||||||
|                 <fu-table-operations :buttons="buttons" :label="$t('commons.table.operate')" /> |                 <fu-table-operations | ||||||
|  |                     width="200px" | ||||||
|  |                     :ellipsis="10" | ||||||
|  |                     :buttons="buttons" | ||||||
|  |                     :label="$t('commons.table.operate')" | ||||||
|  |                 /> | ||||||
|             </ComplexTable> |             </ComplexTable> | ||||||
|         </el-card> |         </el-card> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -66,7 +66,13 @@ | |||||||
|                     {{ loadBackupName(row.targetDir) }} |                     {{ loadBackupName(row.targetDir) }} | ||||||
|                 </template> |                 </template> | ||||||
|             </el-table-column> |             </el-table-column> | ||||||
|             <fu-table-operations type="icon" :buttons="buttons" :label="$t('commons.table.operate')" fix /> |             <fu-table-operations | ||||||
|  |                 width="200px" | ||||||
|  |                 :buttons="buttons" | ||||||
|  |                 :ellipsis="10" | ||||||
|  |                 :label="$t('commons.table.operate')" | ||||||
|  |                 fix | ||||||
|  |             /> | ||||||
|         </ComplexTable> |         </ComplexTable> | ||||||
|  |  | ||||||
|         <OperatrDialog @search="search" ref="dialogRef" /> |         <OperatrDialog @search="search" ref="dialogRef" /> | ||||||
|   | |||||||
| @@ -1,153 +0,0 @@ | |||||||
| <template> |  | ||||||
|     <!-- 数据来源 --> |  | ||||||
|     <div class="echarts" id="curve"></div> |  | ||||||
| </template> |  | ||||||
| <script setup lang="ts" name="cure"> |  | ||||||
| import { ECharts, init } from 'echarts'; |  | ||||||
| const initChart = (data: any): ECharts => { |  | ||||||
|     const echartsBox = document.getElementById('curve') as HTMLElement; |  | ||||||
|     const echarts: ECharts = init(echartsBox); |  | ||||||
|     const option = { |  | ||||||
|         tooltip: { |  | ||||||
|             trigger: 'axis', |  | ||||||
|             backgroundColor: 'transparent', |  | ||||||
|             axisPointer: { |  | ||||||
|                 type: 'none', |  | ||||||
|             }, |  | ||||||
|             padding: 0, |  | ||||||
|             formatter: (p: any) => { |  | ||||||
|                 let dom = `<div style="width:100%; height: 70px !important; display:flex;flex-direction: column;justify-content: space-between;padding:10px;box-sizing: border-box; |  | ||||||
|       color:#fff; background: #6B9DFE;border-radius: 4px;font-size:14px; "> |  | ||||||
|         <div style="display: flex; align-items: center;"> <div style="width:5px;height:5px;background:#ffffff;border-radius: 50%;margin-right:5px"></div>平台 :  ${p[0].name}</div> |  | ||||||
|         <div style="display: flex;align-items: center;"><div style="width:5px;height:5px;background:#ffffff;border-radius: 50%;margin-right:5px"></div>数据量 :  ${p[0].value}</div> |  | ||||||
|       </div>`; |  | ||||||
|                 return dom; |  | ||||||
|             }, |  | ||||||
|         }, |  | ||||||
|         toolbox: { |  | ||||||
|             show: true, |  | ||||||
|             orient: 'horizontal', |  | ||||||
|         }, |  | ||||||
|         grid: { |  | ||||||
|             left: '5%', |  | ||||||
|             right: '6%', |  | ||||||
|         }, |  | ||||||
|         dataZoom: [ |  | ||||||
|             { |  | ||||||
|                 show: false, |  | ||||||
|                 height: 10, |  | ||||||
|                 xAxisIndex: [0], |  | ||||||
|                 bottom: 0, |  | ||||||
|                 startValue: 0, //数据窗口范围的起始数值 |  | ||||||
|                 endValue: 9, //数据窗口范围的结束数值 |  | ||||||
|                 handleStyle: { |  | ||||||
|                     color: '#6b9dfe', |  | ||||||
|                 }, |  | ||||||
|                 textStyle: { |  | ||||||
|                     color: 'transparent', |  | ||||||
|                 }, |  | ||||||
|             }, |  | ||||||
|             { |  | ||||||
|                 type: 'inside', |  | ||||||
|                 show: true, |  | ||||||
|                 height: 0, |  | ||||||
|                 zoomLock: true, //控制伸缩 |  | ||||||
|             }, |  | ||||||
|         ], |  | ||||||
|         xAxis: [ |  | ||||||
|             { |  | ||||||
|                 type: 'category', |  | ||||||
|                 data: data.map((val: any) => { |  | ||||||
|                     return { |  | ||||||
|                         value: val.spotName, |  | ||||||
|                     }; |  | ||||||
|                 }), |  | ||||||
|                 axisTick: { |  | ||||||
|                     show: false, |  | ||||||
|                 }, |  | ||||||
|                 axisLabel: { |  | ||||||
|                     // interval: time > 4 ? 27 : 0, |  | ||||||
|                     margin: 20, |  | ||||||
|                     interval: 0, |  | ||||||
|                     color: '#a1a1a1', |  | ||||||
|                     fontSize: 14, |  | ||||||
|                     formatter: function (name: string) { |  | ||||||
|                         undefined; |  | ||||||
|                         return name.length > 8 ? name.slice(0, 8) + '...' : name; |  | ||||||
|                     }, |  | ||||||
|                 }, |  | ||||||
|                 axisLine: { |  | ||||||
|                     lineStyle: { |  | ||||||
|                         color: '#F6F6F7', |  | ||||||
|                         width: 2, |  | ||||||
|                     }, |  | ||||||
|                 }, |  | ||||||
|             }, |  | ||||||
|         ], |  | ||||||
|         yAxis: [ |  | ||||||
|             { |  | ||||||
|                 min: 0, |  | ||||||
|                 axisLine: { |  | ||||||
|                     show: false, |  | ||||||
|                 }, |  | ||||||
|                 axisTick: { |  | ||||||
|                     show: false, |  | ||||||
|                 }, |  | ||||||
|                 splitLine: { |  | ||||||
|                     show: true, |  | ||||||
|                     lineStyle: { |  | ||||||
|                         type: 'dashed', |  | ||||||
|                         color: '#edeff5', |  | ||||||
|                         width: 2, |  | ||||||
|                     }, |  | ||||||
|                 }, |  | ||||||
|                 axisLabel: { |  | ||||||
|                     color: '#a1a1a1', |  | ||||||
|                     fontSize: 16, |  | ||||||
|                     fontWeight: 400, |  | ||||||
|                     formatter: function (value: number) { |  | ||||||
|                         if (value === 0) { |  | ||||||
|                             return value; |  | ||||||
|                         } else if (value >= 10000) { |  | ||||||
|                             return value / 10000 + 'w'; |  | ||||||
|                         } |  | ||||||
|                         return value; |  | ||||||
|                     }, |  | ||||||
|                 }, |  | ||||||
|             }, |  | ||||||
|         ], |  | ||||||
|         series: [ |  | ||||||
|             { |  | ||||||
|                 name: 'Direct', |  | ||||||
|                 type: 'bar', |  | ||||||
|                 data: data.map((val: any) => { |  | ||||||
|                     return { |  | ||||||
|                         value: val.value, |  | ||||||
|                     }; |  | ||||||
|                 }), |  | ||||||
|                 barWidth: '45px', |  | ||||||
|                 itemStyle: { |  | ||||||
|                     color: '#C5D8FF', |  | ||||||
|                     borderRadius: [12, 12, 0, 0], |  | ||||||
|                 }, |  | ||||||
|                 emphasis: { |  | ||||||
|                     itemStyle: { |  | ||||||
|                         color: '#6B9DFE', |  | ||||||
|                     }, |  | ||||||
|                 }, |  | ||||||
|             }, |  | ||||||
|         ], |  | ||||||
|     }; |  | ||||||
|     echarts.setOption(option); |  | ||||||
|     return echarts; |  | ||||||
| }; |  | ||||||
| defineExpose({ |  | ||||||
|     initChart, |  | ||||||
| }); |  | ||||||
| </script> |  | ||||||
| <style lang="scss" scoped> |  | ||||||
| .echarts { |  | ||||||
|     width: 100%; |  | ||||||
|     height: 100%; |  | ||||||
| } |  | ||||||
| </style> |  | ||||||
| @@ -1,130 +0,0 @@ | |||||||
| <template> |  | ||||||
|     <!-- Gitee / GitHub 访问量占比 --> |  | ||||||
|     <div class="echarts" id="pie"></div> |  | ||||||
| </template> |  | ||||||
| <script setup lang="ts" name="pie"> |  | ||||||
| import { ECharts, init } from 'echarts'; |  | ||||||
| const initChart = (data: any): ECharts => { |  | ||||||
|     const echartsBox = document.getElementById('pie') as HTMLElement; |  | ||||||
|     const echarts: ECharts = init(echartsBox); |  | ||||||
|     const option = { |  | ||||||
|         title: { |  | ||||||
|             text: 'Gitee / GitHub', |  | ||||||
|             subtext: '访问占比', |  | ||||||
|             left: '56%', |  | ||||||
|             top: '45%', |  | ||||||
|             textAlign: 'center', |  | ||||||
|             textStyle: { |  | ||||||
|                 fontSize: 18, |  | ||||||
|                 color: '#767676', |  | ||||||
|             }, |  | ||||||
|             subtextStyle: { |  | ||||||
|                 fontSize: 15, |  | ||||||
|                 color: '#a1a1a1', |  | ||||||
|             }, |  | ||||||
|         }, |  | ||||||
|         tooltip: { |  | ||||||
|             trigger: 'item', |  | ||||||
|         }, |  | ||||||
|         legend: { |  | ||||||
|             top: '4%', |  | ||||||
|             left: '2%', |  | ||||||
|             orient: 'vertical', |  | ||||||
|             icon: 'circle', //图例形状 |  | ||||||
|             align: 'left', |  | ||||||
|             itemGap: 20, |  | ||||||
|             textStyle: { |  | ||||||
|                 fontSize: 13, |  | ||||||
|                 color: '#a1a1a1', |  | ||||||
|                 fontWeight: 500, |  | ||||||
|             }, |  | ||||||
|             formatter: function (name: string) { |  | ||||||
|                 let dataCopy = ''; |  | ||||||
|                 for (let i = 0; i < data.length; i++) { |  | ||||||
|                     if (data[i].name == name && data[i].value >= 10000) { |  | ||||||
|                         dataCopy = (data[i].value / 10000).toFixed(2); |  | ||||||
|                         return name + '      ' + dataCopy + 'w'; |  | ||||||
|                     } else if (data[i].name == name) { |  | ||||||
|                         dataCopy = data[i].value; |  | ||||||
|                         return name + '      ' + dataCopy; |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             }, |  | ||||||
|         }, |  | ||||||
|         series: [ |  | ||||||
|             { |  | ||||||
|                 type: 'pie', |  | ||||||
|                 radius: ['70%', '40%'], |  | ||||||
|                 center: ['57%', '52%'], |  | ||||||
|                 silent: true, |  | ||||||
|                 clockwise: true, |  | ||||||
|                 startAngle: 150, |  | ||||||
|                 data: data, |  | ||||||
|                 labelLine: { |  | ||||||
|                     length: 80, |  | ||||||
|                     length2: 30, |  | ||||||
|                     lineStyle: { |  | ||||||
|                         width: 1, |  | ||||||
|                     }, |  | ||||||
|                 }, |  | ||||||
|                 label: { |  | ||||||
|                     position: 'outside', |  | ||||||
|                     show: true, |  | ||||||
|                     formatter: '{d}%', |  | ||||||
|                     fontWeight: 400, |  | ||||||
|                     fontSize: 19, |  | ||||||
|                     color: '#a1a1a1', |  | ||||||
|                 }, |  | ||||||
|                 color: [ |  | ||||||
|                     { |  | ||||||
|                         type: 'linear', |  | ||||||
|                         x: 0, |  | ||||||
|                         y: 0, |  | ||||||
|                         x2: 0.5, |  | ||||||
|                         y2: 1, |  | ||||||
|                         colorStops: [ |  | ||||||
|                             { |  | ||||||
|                                 offset: 0, |  | ||||||
|                                 color: '#feb791', // 0% 处的颜色 |  | ||||||
|                             }, |  | ||||||
|                             { |  | ||||||
|                                 offset: 1, |  | ||||||
|                                 color: '#fe8b4c', // 100% 处的颜色 |  | ||||||
|                             }, |  | ||||||
|                         ], |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         type: 'linear', |  | ||||||
|                         x: 0, |  | ||||||
|                         y: 0, |  | ||||||
|                         x2: 1, |  | ||||||
|                         y2: 0.5, |  | ||||||
|                         colorStops: [ |  | ||||||
|                             { |  | ||||||
|                                 offset: 0, |  | ||||||
|                                 color: '#b898fd', // 0% 处的颜色 |  | ||||||
|                             }, |  | ||||||
|                             { |  | ||||||
|                                 offset: 1, |  | ||||||
|                                 color: '#8347fd', // 100% 处的颜色 |  | ||||||
|                             }, |  | ||||||
|                         ], |  | ||||||
|                     }, |  | ||||||
|                 ], |  | ||||||
|             }, |  | ||||||
|         ], |  | ||||||
|     }; |  | ||||||
|     echarts.setOption(option); |  | ||||||
|     return echarts; |  | ||||||
| }; |  | ||||||
| defineExpose({ |  | ||||||
|     initChart, |  | ||||||
| }); |  | ||||||
| </script> |  | ||||||
|  |  | ||||||
| <style lang="scss" scoped> |  | ||||||
| .echarts { |  | ||||||
|     width: 100%; |  | ||||||
|     height: 100%; |  | ||||||
| } |  | ||||||
| </style> |  | ||||||
| Before Width: | Height: | Size: 6.6 KiB | 
| Before Width: | Height: | Size: 6.7 KiB | 
| Before Width: | Height: | Size: 7.7 KiB | 
| Before Width: | Height: | Size: 8.0 KiB | 
| Before Width: | Height: | Size: 780 B | 
| Before Width: | Height: | Size: 1.1 KiB | 
| Before Width: | Height: | Size: 124 KiB | 
| Before Width: | Height: | Size: 3.0 KiB | 
| Before Width: | Height: | Size: 859 B | 
							
								
								
									
										
											BIN
										
									
								
								frontend/src/views/home/images/de.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 11 KiB | 
							
								
								
									
										
											BIN
										
									
								
								frontend/src/views/home/images/halo.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 34 KiB | 
							
								
								
									
										
											BIN
										
									
								
								frontend/src/views/home/images/js.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 34 KiB | 
							
								
								
									
										
											BIN
										
									
								
								frontend/src/views/home/images/ms.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 40 KiB | 
| Before Width: | Height: | Size: 704 B | 
| @@ -1,181 +0,0 @@ | |||||||
| .dataVisualize-box { |  | ||||||
|     box-sizing: border-box; |  | ||||||
|     display: flex; |  | ||||||
|     flex-direction: column; |  | ||||||
|     align-items: center; |  | ||||||
|     width: 100%; |  | ||||||
|     min-height: 650px; |  | ||||||
|     padding: 10px 15px; |  | ||||||
|     .top-box { |  | ||||||
|         box-sizing: border-box; |  | ||||||
|         display: flex; |  | ||||||
|         flex-direction: column; |  | ||||||
|         width: 100%; |  | ||||||
|         padding: 20px 50px 30px; |  | ||||||
|         margin-bottom: 40px; |  | ||||||
|         border-radius: 35px; |  | ||||||
|         box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%); |  | ||||||
|         .top-title { |  | ||||||
|             margin-bottom: 10px; |  | ||||||
|             font-family: 'PingFang SC'; |  | ||||||
|             font-size: 18px; |  | ||||||
|             font-weight: 600; |  | ||||||
|         } |  | ||||||
|         .top-content { |  | ||||||
|             display: flex; |  | ||||||
|             flex: 1; |  | ||||||
|             justify-content: space-between; |  | ||||||
|             margin-top: 10px; |  | ||||||
|             .item-left { |  | ||||||
|                 box-sizing: border-box; |  | ||||||
|                 width: 22%; |  | ||||||
|                 padding: 40px 0 120px 30px; |  | ||||||
|                 overflow: hidden; |  | ||||||
|                 color: #ffffff; |  | ||||||
|                 background: url('./images/book-bg.png'); |  | ||||||
|                 background-size: 100% 100%; |  | ||||||
|                 border-radius: 20px; |  | ||||||
|                 .left-title { |  | ||||||
|                     font-family: 'PingFang SC'; |  | ||||||
|                     font-size: 20px; |  | ||||||
|                     font-weight: 500; |  | ||||||
|                 } |  | ||||||
|                 .img-box { |  | ||||||
|                     display: flex; |  | ||||||
|                     align-items: center; |  | ||||||
|                     justify-content: center; |  | ||||||
|                     width: 90px; |  | ||||||
|                     height: 90px; |  | ||||||
|                     margin: 40px 0 20px; |  | ||||||
|                     background: #ffffff; |  | ||||||
|                     background-color: #ffffff; |  | ||||||
|                     border-radius: 20px; |  | ||||||
|                     box-shadow: 0 10px 20px rgb(0 0 0 / 14%); |  | ||||||
|                     img { |  | ||||||
|                         width: 60px; |  | ||||||
|                         height: 65px; |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|                 .left-number { |  | ||||||
|                     overflow: hidden; |  | ||||||
|                     font-family: DIN; |  | ||||||
|                     font-size: 62px; |  | ||||||
|                     font-weight: 500; |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             .item-center { |  | ||||||
|                 display: flex; |  | ||||||
|                 flex: 1; |  | ||||||
|                 flex-wrap: wrap; |  | ||||||
|                 align-content: space-between; |  | ||||||
|                 justify-content: space-between; |  | ||||||
|                 min-width: 250px; |  | ||||||
|                 padding: 0 50px; |  | ||||||
|                 .traffic-box { |  | ||||||
|                     box-sizing: border-box; |  | ||||||
|                     display: flex; |  | ||||||
|                     flex-direction: column; |  | ||||||
|                     width: 47%; |  | ||||||
|                     height: 48%; |  | ||||||
|                     padding: 25px; |  | ||||||
|                     border-radius: 30px; |  | ||||||
|                     .traffic-img { |  | ||||||
|                         display: flex; |  | ||||||
|                         align-items: center; |  | ||||||
|                         justify-content: center; |  | ||||||
|                         width: 70px; |  | ||||||
|                         height: 70px; |  | ||||||
|                         margin-bottom: 10px; |  | ||||||
|                         background-color: #ffffff; |  | ||||||
|                         border-radius: 19px; |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|                 img { |  | ||||||
|                     width: 33px; |  | ||||||
|                     height: 33px; |  | ||||||
|                 } |  | ||||||
|                 .item-value { |  | ||||||
|                     margin-bottom: 4px; |  | ||||||
|                     font-family: DIN; |  | ||||||
|                     font-size: 28px; |  | ||||||
|                     font-weight: bold; |  | ||||||
|                     color: #1a1a37; |  | ||||||
|                 } |  | ||||||
|                 .traffic-name { |  | ||||||
|                     overflow: hidden; |  | ||||||
|                     font-family: DIN; |  | ||||||
|                     font-size: 15px; |  | ||||||
|                     font-weight: 400; |  | ||||||
|                     color: #1a1a37; |  | ||||||
|                     white-space: nowrap; |  | ||||||
|                 } |  | ||||||
|                 .gitee-traffic { |  | ||||||
|                     background: url('./images/1-bg.png'); |  | ||||||
|                     background-color: #e8faea; |  | ||||||
|                     background-size: 100% 100%; |  | ||||||
|                 } |  | ||||||
|                 .gitHub-traffic { |  | ||||||
|                     background: url('./images/2-bg.png'); |  | ||||||
|                     background-color: #e7e1fb; |  | ||||||
|                     background-size: 100% 100%; |  | ||||||
|                 } |  | ||||||
|                 .today-traffic { |  | ||||||
|                     background: url('./images/3-bg.png'); |  | ||||||
|                     background-color: #fdf3e9; |  | ||||||
|                     background-size: 100% 100%; |  | ||||||
|                 } |  | ||||||
|                 .yesterday-traffic { |  | ||||||
|                     background: url('./images/4-bg.png'); |  | ||||||
|                     background-color: #f0f5fb; |  | ||||||
|                     background-size: 100% 100%; |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             .item-right { |  | ||||||
|                 box-sizing: border-box; |  | ||||||
|                 display: flex; |  | ||||||
|                 flex-direction: column; |  | ||||||
|                 width: 40%; |  | ||||||
|                 height: 430px; |  | ||||||
|                 margin-right: 20px; |  | ||||||
|                 border: 1px solid #e5e7eb; |  | ||||||
|                 border-radius: 25px; |  | ||||||
|                 .echarts-title { |  | ||||||
|                     padding: 15px 20px; |  | ||||||
|                     font-family: 'PingFang SC'; |  | ||||||
|                     font-size: 18px; |  | ||||||
|                     font-weight: 600; |  | ||||||
|                     border-bottom: 1px solid #e5e7eb; |  | ||||||
|                 } |  | ||||||
|                 .book-echarts { |  | ||||||
|                     flex: 1; |  | ||||||
|                     width: 100%; |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|     .bottom-box { |  | ||||||
|         position: relative; |  | ||||||
|         box-sizing: border-box; |  | ||||||
|         width: 100%; |  | ||||||
|         height: 480px; |  | ||||||
|         padding: 20px 0; |  | ||||||
|         border-radius: 35px; |  | ||||||
|         box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%); |  | ||||||
|         .bottom-title { |  | ||||||
|             position: absolute; |  | ||||||
|             top: 16%; |  | ||||||
|             left: 3%; |  | ||||||
|             font-family: 'PingFang SC'; |  | ||||||
|             font-size: 18px; |  | ||||||
|             font-weight: 600; |  | ||||||
|         } |  | ||||||
|         .bottom-tabs { |  | ||||||
|             padding: 0 50px; |  | ||||||
|         } |  | ||||||
|         .curve-echarts { |  | ||||||
|             width: 100%; |  | ||||||
|             height: 90%; |  | ||||||
|             padding-left: 10px; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| @@ -1,151 +1,425 @@ | |||||||
| <template> | <template> | ||||||
|     <div class="dataVisualize-box"> |     <div> | ||||||
|         <div class="top-box"> |         <el-row :gutter="20" class="row-box"> | ||||||
|             <div class="top-title">概览</div> |             <el-col :span="8"> | ||||||
|             <el-tabs v-model="data.activeName" class="demo-tabs" @tab-click="handleClick"> |                 <el-card class="el-card"> | ||||||
|                 <el-tab-pane v-for="item in tab" :key="item.name" :label="item.label" :name="item.name"></el-tab-pane> |                     <template #header> | ||||||
|             </el-tabs> |                         <div class="card-header"> | ||||||
|             <div class="top-content"> |                             <span>概 览</span> | ||||||
|                 <div class="item-left sle"> |  | ||||||
|                     <span class="left-title">访问总数</span> |  | ||||||
|                     <div class="img-box"> |  | ||||||
|                         <img src="./images/book-sum.png" alt="" /> |  | ||||||
|                     </div> |  | ||||||
|                     <span class="left-number">{{ data.bookSum }}</span> |  | ||||||
|                 </div> |  | ||||||
|                 <div class="item-center"> |  | ||||||
|                     <div class="gitee-traffic traffic-box"> |  | ||||||
|                         <div class="traffic-img"> |  | ||||||
|                             <img src="./images/add_person.png" alt="" /> |  | ||||||
|                         </div> |                         </div> | ||||||
|                         <span class="item-value">2222</span> |                     </template> | ||||||
|                         <span class="traffic-name sle">Gitee 访问量</span> |                     <el-row :gutter="20"> | ||||||
|                     </div> |                         <el-col :span="12"> | ||||||
|                     <div class="gitHub-traffic traffic-box"> |                             <el-card style="font-size: 12px; height: 80px; border-radius: 10px"> | ||||||
|                         <div class="traffic-img"> |                                 <svg-icon style="float: left; margin-left: 5px" iconName="p-website"></svg-icon> | ||||||
|                             <img src="./images/add_team.png" alt="" /> |                                 <span style="float: left; margin-left: 5px; margin-top: 10px">网站</span> | ||||||
|  |                                 <el-link | ||||||
|  |                                     style="float: right; font-size: 24px; margin-right: 5px" | ||||||
|  |                                     @click="goRouter('/websites')" | ||||||
|  |                                     type="primary" | ||||||
|  |                                 > | ||||||
|  |                                     2 | ||||||
|  |                                 </el-link> | ||||||
|  |                             </el-card> | ||||||
|  |                         </el-col> | ||||||
|  |                         <el-col :span="12"> | ||||||
|  |                             <el-card style="font-size: 12px; height: 80px; border-radius: 10px"> | ||||||
|  |                                 <svg-icon style="float: left; margin-left: 5px" iconName="p-database"></svg-icon> | ||||||
|  |                                 <span style="float: left; margin-left: 5px; margin-top: 10px">数据库</span> | ||||||
|  |                                 <el-link | ||||||
|  |                                     style="float: right; font-size: 24px; margin-right: 5px" | ||||||
|  |                                     @click="goRouter('/databases')" | ||||||
|  |                                     type="primary" | ||||||
|  |                                 > | ||||||
|  |                                     5 | ||||||
|  |                                 </el-link> | ||||||
|  |                             </el-card> | ||||||
|  |                         </el-col> | ||||||
|  |                     </el-row> | ||||||
|  |                     <el-row :gutter="20" style="margin-top: 20px; margin-top: 30px"> | ||||||
|  |                         <el-col :span="12"> | ||||||
|  |                             <el-card style="font-size: 12px; height: 80px; border-radius: 10px"> | ||||||
|  |                                 <svg-icon style="float: left; margin-left: 5px" iconName="p-plan"></svg-icon> | ||||||
|  |                                 <span style="float: left; margin-left: 5px; margin-top: 10px">定时任务</span> | ||||||
|  |                                 <el-link | ||||||
|  |                                     style="float: right; font-size: 24px; margin-right: 5px" | ||||||
|  |                                     @click="goRouter('/cronjobs')" | ||||||
|  |                                     type="primary" | ||||||
|  |                                 > | ||||||
|  |                                     7 | ||||||
|  |                                 </el-link> | ||||||
|  |                             </el-card> | ||||||
|  |                         </el-col> | ||||||
|  |                         <el-col :span="12"> | ||||||
|  |                             <el-card style="font-size: 12px; height: 80px; border-radius: 10px"> | ||||||
|  |                                 <svg-icon style="float: left; margin-left: 5px" iconName="p-appstore"></svg-icon> | ||||||
|  |                                 <span style="float: left; margin-left: 5px; margin-top: 10px">已安装应用</span> | ||||||
|  |                                 <el-link | ||||||
|  |                                     style="float: right; font-size: 24px; margin-right: 5px" | ||||||
|  |                                     @click="goRouter('/apps')" | ||||||
|  |                                     type="primary" | ||||||
|  |                                 > | ||||||
|  |                                     3 | ||||||
|  |                                 </el-link> | ||||||
|  |                             </el-card> | ||||||
|  |                         </el-col> | ||||||
|  |                     </el-row> | ||||||
|  |                 </el-card> | ||||||
|  |             </el-col> | ||||||
|  |             <el-col :span="8"> | ||||||
|  |                 <el-card class="el-card"> | ||||||
|  |                     <template #header> | ||||||
|  |                         <div class="card-header"> | ||||||
|  |                             <span>状态</span> | ||||||
|                         </div> |                         </div> | ||||||
|                         <span class="item-value">2222</span> |                     </template> | ||||||
|                         <span class="traffic-name sle">GitHub 访问量</span> |                     <el-row :gutter="10"> | ||||||
|                     </div> |                         <el-col :span="12" align="center"> | ||||||
|                     <div class="today-traffic traffic-box"> |                             <el-progress type="dashboard" :width="80" :percentage="80"> | ||||||
|                         <div class="traffic-img"> |                                 <template #default="{ percentage }"> | ||||||
|                             <img src="./images/today.png" alt="" /> |                                     <span class="percentage-value">{{ percentage }}%</span> | ||||||
|  |                                     <span class="percentage-label">CPU</span> | ||||||
|  |                                 </template> | ||||||
|  |                             </el-progress> | ||||||
|  |                             <br /> | ||||||
|  |                             <span>(0.56 / 8.00) Core</span> | ||||||
|  |                         </el-col> | ||||||
|  |                         <el-col :span="12" align="center"> | ||||||
|  |                             <el-progress type="dashboard" :width="80" :percentage="30"> | ||||||
|  |                                 <template #default="{ percentage }"> | ||||||
|  |                                     <span class="percentage-value">{{ percentage }}%</span> | ||||||
|  |                                     <span class="percentage-label">内存</span> | ||||||
|  |                                 </template> | ||||||
|  |                             </el-progress> | ||||||
|  |                             <br /> | ||||||
|  |                             <span>(851 / 7812) MB</span> | ||||||
|  |                         </el-col> | ||||||
|  |                     </el-row> | ||||||
|  |                     <el-row :gutter="10" style="margin-top: 30px"> | ||||||
|  |                         <el-col :span="12" align="center"> | ||||||
|  |                             <el-progress type="dashboard" :width="80" :percentage="50"> | ||||||
|  |                                 <template #default="{ percentage }"> | ||||||
|  |                                     <span class="percentage-value">{{ percentage }}%</span> | ||||||
|  |                                     <span class="percentage-label">负载</span> | ||||||
|  |                                 </template> | ||||||
|  |                             </el-progress> | ||||||
|  |                             <br /> | ||||||
|  |                             <span>(0.36 / 8.00) Core</span> | ||||||
|  |                         </el-col> | ||||||
|  |                         <el-col :span="12" align="center"> | ||||||
|  |                             <el-progress type="dashboard" :width="80" :percentage="40"> | ||||||
|  |                                 <template #default="{ percentage }"> | ||||||
|  |                                     <span class="percentage-value">{{ percentage }}%</span> | ||||||
|  |                                     <span class="percentage-label">磁盘</span> | ||||||
|  |                                 </template> | ||||||
|  |                             </el-progress> | ||||||
|  |                             <br /> | ||||||
|  |                             <span>(6.23 / 46.97) GB</span> | ||||||
|  |                         </el-col> | ||||||
|  |                     </el-row> | ||||||
|  |                 </el-card> | ||||||
|  |             </el-col> | ||||||
|  |             <el-col :span="8"> | ||||||
|  |                 <el-card class="el-card"> | ||||||
|  |                     <template #header> | ||||||
|  |                         <div class="card-header"> | ||||||
|  |                             <span>系统信息</span> | ||||||
|                         </div> |                         </div> | ||||||
|                         <span class="item-value">4567</span> |                     </template> | ||||||
|                         <span class="traffic-name sle">今日访问量</span> |                     <el-form> | ||||||
|                     </div> |                         <el-form-item label="主机名称">ko-deploy</el-form-item> | ||||||
|                     <div class="yesterday-traffic traffic-box"> |                         <el-form-item label="发行版本">centos-7.6.1810</el-form-item> | ||||||
|                         <div class="traffic-img"> |                         <el-form-item label="内核版本"> | ||||||
|                             <img src="./images/book_sum.png" alt="" /> |                             Linux version 3.10.0-957.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 | ||||||
|  |                             20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Thu Nov 8 23:39:32 UTC 2018 | ||||||
|  |                         </el-form-item> | ||||||
|  |                         <el-form-item label="系统类型">x86_64</el-form-item> | ||||||
|  |                     </el-form> | ||||||
|  |                 </el-card> | ||||||
|  |             </el-col> | ||||||
|  |         </el-row> | ||||||
|  |         <el-row :gutter="20" style="margin-top: 20px" class="row-box"> | ||||||
|  |             <el-col :span="12"> | ||||||
|  |                 <el-card class="el-card"> | ||||||
|  |                     <template #header> | ||||||
|  |                         <div class="card-header"> | ||||||
|  |                             <span>应用</span> | ||||||
|                         </div> |                         </div> | ||||||
|                         <span class="item-value">1234</span> |                     </template> | ||||||
|                         <span class="traffic-name sle">昨日访问量</span> |                     <el-row :gutter="20"> | ||||||
|                     </div> |                         <el-col :span="12"> | ||||||
|                 </div> |                             <el-card @mouseover="hoverApp = 'halo'" @mouseleave="hoverApp = ''" style="height: 110px"> | ||||||
|                 <div class="item-right"> |                                 <el-row> | ||||||
|                     <div class="echarts-title">Gitee / GitHub 访问量占比</div> |                                     <el-col :span="4"> | ||||||
|                     <div class="book-echarts"> |                                         <img style="width: 40px; height: 40px" src="./images/halo.jpg" alt="" /> | ||||||
|                         <Pie ref="pie" /> |                                     </el-col> | ||||||
|                     </div> |                                     <el-col :span="2"><br /></el-col> | ||||||
|                 </div> |                                     <el-col :span="18"> | ||||||
|             </div> |                                         <span style="font-size: 20px; color: #214bc8">Halo</span> | ||||||
|         </div> |                                         <div><span class="input-help">现代化开源建站 / CMS系统</span></div> | ||||||
|         <div class="bottom-box"> |                                     </el-col> | ||||||
|             <div class="bottom-title">数据来源</div> |                                 </el-row> | ||||||
|             <div class="bottom-tabs"> |                                 <div v-show="hoverApp === 'halo'" style="float: right; margin-top: 10px"> | ||||||
|                 <el-tabs v-model="data.activeName" class="demo-tabs" @tab-click="handleClick"> |                                     <el-button>停止</el-button> | ||||||
|                     <el-tab-pane |                                     <el-button>重启</el-button> | ||||||
|                         v-for="item in tab" |                                 </div> | ||||||
|                         :key="item.name" |                             </el-card> | ||||||
|                         :label="item.label" |                         </el-col> | ||||||
|                         :name="item.name" |                         <el-col :span="12"> | ||||||
|                     ></el-tab-pane> |                             <el-card @mouseover="hoverApp = 'de'" @mouseleave="hoverApp = ''" style="height: 110px"> | ||||||
|                 </el-tabs> |                                 <el-row> | ||||||
|             </div> |                                     <el-col :span="4"> | ||||||
|             <div class="curve-echarts"> |                                         <img style="width: 40px; height: 40px" src="./images/de.jpg" alt="" /> | ||||||
|                 <Curve ref="curve" /> |                                     </el-col> | ||||||
|             </div> |                                     <el-col :span="2"><br /></el-col> | ||||||
|         </div> |                                     <el-col :span="18"> | ||||||
|  |                                         <span style="font-size: 20px; color: #0070d6">Dataease</span> | ||||||
|  |                                         <div><span class="input-help">开源数据可视化分析工具</span></div> | ||||||
|  |                                     </el-col> | ||||||
|  |                                 </el-row> | ||||||
|  |                                 <div v-show="hoverApp === 'de'" style="float: right; margin-top: 10px"> | ||||||
|  |                                     <el-button>启动</el-button> | ||||||
|  |                                 </div> | ||||||
|  |                             </el-card> | ||||||
|  |                         </el-col> | ||||||
|  |                     </el-row> | ||||||
|  |                     <el-row :gutter="20" style="margin-top: 20px"> | ||||||
|  |                         <el-col :span="12"> | ||||||
|  |                             <el-card @mouseover="hoverApp = 'js'" @mouseleave="hoverApp = ''" style="height: 110px"> | ||||||
|  |                                 <el-row> | ||||||
|  |                                     <el-col :span="4"> | ||||||
|  |                                         <img style="width: 40px; height: 40px" src="./images/js.jpg" alt="" /> | ||||||
|  |                                     </el-col> | ||||||
|  |                                     <el-col :span="2"><br /></el-col> | ||||||
|  |                                     <el-col :span="18"> | ||||||
|  |                                         <span style="font-size: 16px; color: #008d75">JumpServer</span> | ||||||
|  |                                         <div><span class="input-help">广受欢迎的开源堡垒机</span></div> | ||||||
|  |                                     </el-col> | ||||||
|  |                                 </el-row> | ||||||
|  |                                 <div v-show="hoverApp === 'js'" style="float: right; margin-top: 10px"> | ||||||
|  |                                     <el-button>停止</el-button> | ||||||
|  |                                     <el-button>重启</el-button> | ||||||
|  |                                 </div> | ||||||
|  |                             </el-card> | ||||||
|  |                         </el-col> | ||||||
|  |                         <el-col :span="12"> | ||||||
|  |                             <el-card @mouseover="hoverApp = 'ms'" @mouseleave="hoverApp = ''" style="height: 110px"> | ||||||
|  |                                 <el-row> | ||||||
|  |                                     <el-col :span="4"> | ||||||
|  |                                         <img style="width: 40px; height: 40px" src="./images/ms.jpg" alt="" /> | ||||||
|  |                                     </el-col> | ||||||
|  |                                     <el-col :span="2"><br /></el-col> | ||||||
|  |                                     <el-col :span="18"> | ||||||
|  |                                         <span style="font-size: 16px; color: #723279">MeterSphere</span> | ||||||
|  |                                         <div><span class="input-help">一站式开源持续测试平台</span></div> | ||||||
|  |                                     </el-col> | ||||||
|  |                                 </el-row> | ||||||
|  |                                 <div v-show="hoverApp === 'ms'" style="float: right; margin-top: 10px"> | ||||||
|  |                                     <el-button>启动</el-button> | ||||||
|  |                                 </div> | ||||||
|  |                             </el-card> | ||||||
|  |                         </el-col> | ||||||
|  |                     </el-row> | ||||||
|  |                 </el-card> | ||||||
|  |             </el-col> | ||||||
|  |             <el-col :span="12"> | ||||||
|  |                 <el-card class="el-card"> | ||||||
|  |                     <el-radio-group v-model="chartOption" @change="changeOption"> | ||||||
|  |                         <el-radio-button label="io">流量</el-radio-button> | ||||||
|  |                         <el-radio-button label="network">网络</el-radio-button> | ||||||
|  |                     </el-radio-group> | ||||||
|  |                     <div v-if="chartOption === 'io'" id="ioChart" style="width: 100%; height: 320px"></div> | ||||||
|  |                     <div v-if="chartOption === 'network'" id="networkChart" style="width: 100%; height: 320px"></div> | ||||||
|  |                 </el-card> | ||||||
|  |             </el-col> | ||||||
|  |         </el-row> | ||||||
|     </div> |     </div> | ||||||
| </template> | </template> | ||||||
|  |  | ||||||
| <script setup lang="ts" name="dataVisualize"> | <script setup lang="ts" name="dataVisualize"> | ||||||
| import { ref, reactive, onMounted, onBeforeUnmount } from 'vue'; | import { onMounted, onBeforeUnmount, ref } from 'vue'; | ||||||
| import Pie from './components/pie.vue'; | import * as echarts from 'echarts'; | ||||||
| import Curve from './components/curve.vue'; | import i18n from '@/lang'; | ||||||
| import { ECharts } from 'echarts'; | import { ContainerStats } from '@/api/modules/container'; | ||||||
| /* 声明echarts实例 */ | import { dateFromatForSecond } from '@/utils/util'; | ||||||
| interface ChartProps { | import { useRouter } from 'vue-router'; | ||||||
|     [key: string]: ECharts | null; | const router = useRouter(); | ||||||
| } |  | ||||||
| /* 获取子组件的ref */ |  | ||||||
| interface ChartExpose { |  | ||||||
|     initChart: (params: any) => ECharts; |  | ||||||
| } |  | ||||||
| const pie = ref<ChartExpose>(); |  | ||||||
| const curve = ref<ChartExpose>(); |  | ||||||
| const data = reactive({ |  | ||||||
|     activeName: 1, |  | ||||||
|     bookSum: '848.132w', |  | ||||||
| }); |  | ||||||
| const dataScreen: ChartProps = reactive({ |  | ||||||
|     chart1: null, |  | ||||||
|     chart2: null, |  | ||||||
| }); |  | ||||||
| const handleClick = (): void => {}; |  | ||||||
| let tab = [ |  | ||||||
|     { label: '未来7日', name: 1 }, |  | ||||||
|     { label: '近七日', name: 2 }, |  | ||||||
|     { label: '近一月', name: 3 }, |  | ||||||
|     { label: '近三月', name: 4 }, |  | ||||||
|     { label: '近半年', name: 5 }, |  | ||||||
|     { label: '近一年', name: 6 }, |  | ||||||
| ]; |  | ||||||
| // 模拟数据 |  | ||||||
| let pieData = [ |  | ||||||
|     { value: 5000, name: 'Gitee 访问量' }, |  | ||||||
|     { value: 5000, name: 'GitHub 访问量' }, |  | ||||||
| ]; |  | ||||||
| let curveData = [ |  | ||||||
|     { value: 30, spotName: '掘金' }, |  | ||||||
|     { value: 90, spotName: 'CSDN' }, |  | ||||||
|     { value: 10, spotName: 'Gitee' }, |  | ||||||
|     { value: 70, spotName: 'GitHub' }, |  | ||||||
|     { value: 20, spotName: '知乎' }, |  | ||||||
|     { value: 60, spotName: 'MyBlog' }, |  | ||||||
|     { value: 55, spotName: '简书' }, |  | ||||||
|     { value: 80, spotName: 'StackOverFlow' }, |  | ||||||
|     { value: 50, spotName: '博客园' }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| /* 初始化 echarts */ | const hoverApp = ref(); | ||||||
| const initCharts = (): void => { | const chartOption = ref('io'); | ||||||
|     dataScreen.chart1 = pie.value?.initChart(pieData) as ECharts; | let timer: NodeJS.Timer | null = null; | ||||||
|     dataScreen.chart2 = curve.value?.initChart(curveData) as ECharts; | let isInit = ref<boolean>(true); | ||||||
|  |  | ||||||
|  | const ioReadDatas = ref<Array<string>>([]); | ||||||
|  | const ioWriteDatas = ref<Array<string>>([]); | ||||||
|  | const netTxDatas = ref<Array<string>>([]); | ||||||
|  | const netRxDatas = ref<Array<string>>([]); | ||||||
|  | const timeDatas = ref<Array<string>>([]); | ||||||
|  |  | ||||||
|  | const changeOption = async () => { | ||||||
|  |     isInit.value = true; | ||||||
|  |     loadData(); | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | const goRouter = async (path: string) => { | ||||||
|  |     router.push({ path: path }); | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | const loadData = async () => { | ||||||
|  |     try { | ||||||
|  |         const res = await ContainerStats('kubeoperator_nginx'); | ||||||
|  |         ioReadDatas.value.push(res.data.ioRead.toFixed(2)); | ||||||
|  |         if (ioReadDatas.value.length > 20) { | ||||||
|  |             ioReadDatas.value.splice(0, 1); | ||||||
|  |         } | ||||||
|  |         ioWriteDatas.value.push(res.data.ioWrite.toFixed(2)); | ||||||
|  |         if (ioWriteDatas.value.length > 20) { | ||||||
|  |             ioWriteDatas.value.splice(0, 1); | ||||||
|  |         } | ||||||
|  |         netTxDatas.value.push(res.data.networkTX.toFixed(2)); | ||||||
|  |         if (netTxDatas.value.length > 20) { | ||||||
|  |             netTxDatas.value.splice(0, 1); | ||||||
|  |         } | ||||||
|  |         netRxDatas.value.push(res.data.networkRX.toFixed(2)); | ||||||
|  |         if (netRxDatas.value.length > 20) { | ||||||
|  |             netRxDatas.value.splice(0, 1); | ||||||
|  |         } | ||||||
|  |         timeDatas.value.push(dateFromatForSecond(res.data.shotTime)); | ||||||
|  |         if (timeDatas.value.length > 20) { | ||||||
|  |             timeDatas.value.splice(0, 1); | ||||||
|  |         } | ||||||
|  |         if (chartOption.value === 'io') { | ||||||
|  |             let ioReadYDatas = { | ||||||
|  |                 name: i18n.global.t('monitor.read'), | ||||||
|  |                 type: 'line', | ||||||
|  |                 areaStyle: { | ||||||
|  |                     color: '#ebdee3', | ||||||
|  |                 }, | ||||||
|  |                 data: ioReadDatas.value, | ||||||
|  |                 showSymbol: false, | ||||||
|  |             }; | ||||||
|  |             let ioWriteYDatas = { | ||||||
|  |                 name: i18n.global.t('monitor.write'), | ||||||
|  |                 type: 'line', | ||||||
|  |                 areaStyle: { | ||||||
|  |                     color: '#ebdee3', | ||||||
|  |                 }, | ||||||
|  |                 data: ioWriteDatas.value, | ||||||
|  |                 showSymbol: false, | ||||||
|  |             }; | ||||||
|  |             freshChart( | ||||||
|  |                 'ioChart', | ||||||
|  |                 [i18n.global.t('monitor.read'), i18n.global.t('monitor.write')], | ||||||
|  |                 timeDatas.value, | ||||||
|  |                 [ioReadYDatas, ioWriteYDatas], | ||||||
|  |                 '流量', | ||||||
|  |                 'MB', | ||||||
|  |             ); | ||||||
|  |         } else { | ||||||
|  |             let netTxYDatas = { | ||||||
|  |                 name: i18n.global.t('monitor.up'), | ||||||
|  |                 type: 'line', | ||||||
|  |                 areaStyle: { | ||||||
|  |                     color: '#ebdee3', | ||||||
|  |                 }, | ||||||
|  |                 data: netTxDatas.value, | ||||||
|  |                 showSymbol: false, | ||||||
|  |             }; | ||||||
|  |             let netRxYDatas = { | ||||||
|  |                 name: i18n.global.t('monitor.down'), | ||||||
|  |                 type: 'line', | ||||||
|  |                 areaStyle: { | ||||||
|  |                     color: '#ebdee3', | ||||||
|  |                 }, | ||||||
|  |                 data: netRxDatas.value, | ||||||
|  |                 showSymbol: false, | ||||||
|  |             }; | ||||||
|  |             freshChart( | ||||||
|  |                 'networkChart', | ||||||
|  |                 [i18n.global.t('monitor.up'), i18n.global.t('monitor.down')], | ||||||
|  |                 timeDatas.value, | ||||||
|  |                 [netTxYDatas, netRxYDatas], | ||||||
|  |                 i18n.global.t('monitor.network'), | ||||||
|  |                 'KB/s', | ||||||
|  |             ); | ||||||
|  |         } | ||||||
|  |     } catch { | ||||||
|  |         clearInterval(Number(timer)); | ||||||
|  |         timer = null; | ||||||
|  |     } | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | function freshChart(chartName: string, legendDatas: any, xDatas: any, yDatas: any, yTitle: string, formatStr: string) { | ||||||
|  |     console.log(chartName, echarts.getInstanceByDom(document.getElementById(chartName) as HTMLElement)); | ||||||
|  |     if (isInit.value) { | ||||||
|  |         echarts.init(document.getElementById(chartName) as HTMLElement); | ||||||
|  |         isInit.value = false; | ||||||
|  |     } | ||||||
|  |     let itemChart = echarts.getInstanceByDom(document.getElementById(chartName) as HTMLElement); | ||||||
|  |     const option = { | ||||||
|  |         title: [ | ||||||
|  |             { | ||||||
|  |                 left: 'center', | ||||||
|  |                 text: yTitle, | ||||||
|  |             }, | ||||||
|  |         ], | ||||||
|  |         zlevel: 1, | ||||||
|  |         z: 1, | ||||||
|  |         tooltip: { | ||||||
|  |             trigger: 'axis', | ||||||
|  |             formatter: function (datas: any) { | ||||||
|  |                 let res = datas[0].name + '<br/>'; | ||||||
|  |                 for (const item of datas) { | ||||||
|  |                     res += item.marker + ' ' + item.seriesName + ':' + item.data + formatStr + '<br/>'; | ||||||
|  |                 } | ||||||
|  |                 return res; | ||||||
|  |             }, | ||||||
|  |         }, | ||||||
|  |         grid: { left: '7%', right: '7%', bottom: '20%' }, | ||||||
|  |         legend: { | ||||||
|  |             data: legendDatas, | ||||||
|  |             right: 10, | ||||||
|  |         }, | ||||||
|  |         xAxis: { data: xDatas, boundaryGap: false }, | ||||||
|  |         yAxis: { name: '( ' + formatStr + ' )' }, | ||||||
|  |         series: yDatas, | ||||||
|  |     }; | ||||||
|  |     itemChart?.setOption(option, true); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function changeChartSize() { | ||||||
|  |     echarts.getInstanceByDom(document.getElementById('ioChart') as HTMLElement)?.resize(); | ||||||
|  |     echarts.getInstanceByDom(document.getElementById('networkChart') as HTMLElement)?.resize(); | ||||||
|  | } | ||||||
|  |  | ||||||
| onMounted(() => { | onMounted(() => { | ||||||
|     /* 初始化echarts */ |     loadData(); | ||||||
|     initCharts(); |     window.addEventListener('resize', changeChartSize); | ||||||
|     // 为浏览器绑定事件 |     timer = setInterval(async () => { | ||||||
|     window.addEventListener('resize', resize); |         loadData(); | ||||||
|  |     }, 3000); | ||||||
| }); | }); | ||||||
|  |  | ||||||
| /* 浏览器监听 resize 事件 */ |  | ||||||
| const resize = () => { |  | ||||||
|     // 使用了 scale 的echarts其实不需要需要重新计算缩放比例 |  | ||||||
|     Object.values(dataScreen).forEach((chart) => { |  | ||||||
|         chart && chart.resize(); |  | ||||||
|     }); |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| /* 销毁时触发 */ |  | ||||||
| onBeforeUnmount(() => { | onBeforeUnmount(() => { | ||||||
|     window.removeEventListener('resize', resize); |     clearInterval(Number(timer)); | ||||||
|  |     timer = null; | ||||||
|  |     window.removeEventListener('resize', changeChartSize); | ||||||
| }); | }); | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
| <style scoped lang="scss"> | <style scoped> | ||||||
| @import './index.scss'; | .percentage-value { | ||||||
|  |     display: block; | ||||||
|  |     font-size: 16px; | ||||||
|  | } | ||||||
|  | .percentage-label { | ||||||
|  |     display: block; | ||||||
|  |     margin-top: 10px; | ||||||
|  |     font-size: 12px; | ||||||
|  | } | ||||||
|  | .card-header { | ||||||
|  |     display: flex; | ||||||
|  |     justify-content: space-between; | ||||||
|  |     align-items: center; | ||||||
|  | } | ||||||
| </style> | </style> | ||||||
|   | |||||||
| @@ -358,6 +358,7 @@ const submitAddHost = (formEl: FormInstance | undefined, ops: string) => { | |||||||
|     if (!formEl) return; |     if (!formEl) return; | ||||||
|     formEl.validate(async (valid) => { |     formEl.validate(async (valid) => { | ||||||
|         if (!valid) return; |         if (!valid) return; | ||||||
|  |         hostInfo.groupBelong = 'default'; | ||||||
|         switch (ops) { |         switch (ops) { | ||||||
|             case 'testConn': |             case 'testConn': | ||||||
|                 await testConn(hostInfo); |                 await testConn(hostInfo); | ||||||
|   | |||||||
| @@ -72,6 +72,7 @@ let settingForm = reactive<Setting.SettingInfo>({ | |||||||
|     language: '', |     language: '', | ||||||
|     serverPort: 8888, |     serverPort: 8888, | ||||||
|     securityEntrance: '', |     securityEntrance: '', | ||||||
|  |     expirationDays: 0, | ||||||
|     expirationTime: '', |     expirationTime: '', | ||||||
|     complexityVerification: 'enable', |     complexityVerification: 'enable', | ||||||
|     mfaStatus: '', |     mfaStatus: '', | ||||||
|   | |||||||
| @@ -56,6 +56,7 @@ let form = ref<Setting.SettingInfo>({ | |||||||
|     language: '', |     language: '', | ||||||
|     serverPort: 8888, |     serverPort: 8888, | ||||||
|     securityEntrance: '', |     securityEntrance: '', | ||||||
|  |     expirationDays: 0, | ||||||
|     expirationTime: '', |     expirationTime: '', | ||||||
|     complexityVerification: '', |     complexityVerification: '', | ||||||
|     mfaStatus: '', |     mfaStatus: '', | ||||||
| @@ -72,6 +73,7 @@ const search = async () => { | |||||||
|     const res = await getSettingInfo(); |     const res = await getSettingInfo(); | ||||||
|     form.value = res.data; |     form.value = res.data; | ||||||
|     form.value.password = '******'; |     form.value.password = '******'; | ||||||
|  |     form.value.expirationTime = form.value.expirationDays === 0 ? '-' : form.value.expirationTime; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| const { switchDark } = useTheme(); | const { switchDark } = useTheme(); | ||||||
|   | |||||||
| @@ -148,9 +148,9 @@ | |||||||
|                 </el-row> |                 </el-row> | ||||||
|             </el-card> |             </el-card> | ||||||
|         </el-form> |         </el-form> | ||||||
|         <el-dialog v-model="timeoutVisiable" :title="$t('setting.changePassword')" width="30%"> |         <el-dialog v-model="timeoutVisiable" :title="$t('setting.expirationTime')" width="30%"> | ||||||
|             <el-form ref="timeoutFormRef" label-width="80px" label-position="left" :model="timeoutForm"> |             <el-form ref="timeoutFormRef" label-width="80px" label-position="left" :model="timeoutForm"> | ||||||
|                 <el-form-item :label="$t('setting.oldPassword')" prop="days" :rules="Rules.number"> |                 <el-form-item :label="$t('setting.days')" prop="days" :rules="Rules.number"> | ||||||
|                     <el-input clearable v-model.number="timeoutForm.days" /> |                     <el-input clearable v-model.number="timeoutForm.days" /> | ||||||
|                 </el-form-item> |                 </el-form-item> | ||||||
|             </el-form> |             </el-form> | ||||||
| @@ -194,7 +194,7 @@ type FormInstance = InstanceType<typeof ElForm>; | |||||||
| const timeoutFormRef = ref<FormInstance>(); | const timeoutFormRef = ref<FormInstance>(); | ||||||
| const timeoutVisiable = ref<boolean>(false); | const timeoutVisiable = ref<boolean>(false); | ||||||
| const timeoutForm = reactive({ | const timeoutForm = reactive({ | ||||||
|     days: 10, |     days: 0, | ||||||
| }); | }); | ||||||
|  |  | ||||||
| const isMFAShow = ref<boolean>(false); | const isMFAShow = ref<boolean>(false); | ||||||
| @@ -237,14 +237,17 @@ const submitTimeout = async (formEl: FormInstance | undefined) => { | |||||||
|     formEl.validate(async (valid) => { |     formEl.validate(async (valid) => { | ||||||
|         if (!valid) return; |         if (!valid) return; | ||||||
|         let time = new Date(new Date().getTime() + 3600 * 1000 * 24 * timeoutForm.days); |         let time = new Date(new Date().getTime() + 3600 * 1000 * 24 * timeoutForm.days); | ||||||
|         await updateSetting({ key: 'expirationTime', value: dateFromat(0, 0, time) }); |         await updateSetting({ key: 'ExpirationDays', value: timeoutForm.days + '' }); | ||||||
|         form.settingInfo.expirationTime = dateFromat(0, 0, time); |         form.settingInfo.expirationTime = dateFromat(0, 0, time); | ||||||
|         timeoutVisiable.value = false; |         timeoutVisiable.value = false; | ||||||
|     }); |     }); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| function loadTimeOut() { | function loadTimeOut() { | ||||||
|  |     if (form.settingInfo.expirationDays === 0) { | ||||||
|  |         return '-'; | ||||||
|  |     } | ||||||
|     let staytimeGap = new Date(form.settingInfo.expirationTime).getTime() - new Date().getTime(); |     let staytimeGap = new Date(form.settingInfo.expirationTime).getTime() - new Date().getTime(); | ||||||
|     return Math.floor(staytimeGap / (3600 * 1000 * 24)); |     return staytimeGap < 0 ? '-' : Math.floor(staytimeGap / (3600 * 1000 * 24)); | ||||||
| } | } | ||||||
| </script> | </script> | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ | |||||||
|         "moduleResolution": "node", |         "moduleResolution": "node", | ||||||
|  |  | ||||||
|         /* Strict Type-Checking Options */ |         /* Strict Type-Checking Options */ | ||||||
|         "strict": true /* Enable all strict type-checking options. */, |         "strict": false /* Enable all strict type-checking options. */, | ||||||
|         // "noImplicitAny": true,                 /* Raise error on expressions and declarations with an implied 'any' type. */ |         // "noImplicitAny": true,                 /* Raise error on expressions and declarations with an implied 'any' type. */ | ||||||
|         // "strictNullChecks": true,              /* Enable strict null checks. */ |         // "strictNullChecks": true,              /* Enable strict null checks. */ | ||||||
|         // "strictFunctionTypes": true,           /* Enable strict checking of function types. */ |         // "strictFunctionTypes": true,           /* Enable strict checking of function types. */ | ||||||
| @@ -33,6 +33,6 @@ | |||||||
|         "skipLibCheck": true, |         "skipLibCheck": true, | ||||||
|         "suppressImplicitAnyIndexErrors": true |         "suppressImplicitAnyIndexErrors": true | ||||||
|     }, |     }, | ||||||
|     "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue", "vite.config.ts"], |     // "include": ["./src/views"], | ||||||
|     "exclude": ["node_modules", "dist", "**/*.js"] |     "exclude": ["node_modules", "dist", "**/*.js", "*.json", "*.md"] | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						| @@ -48,9 +48,9 @@ require ( | |||||||
| 	golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa | 	golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa | ||||||
| 	golang.org/x/net v0.0.0-20220722155237-a158d28d115b | 	golang.org/x/net v0.0.0-20220722155237-a158d28d115b | ||||||
| 	golang.org/x/text v0.3.7 | 	golang.org/x/text v0.3.7 | ||||||
|  | 	gopkg.in/square/go-jose.v2 v2.6.0 | ||||||
| 	gopkg.in/yaml.v2 v2.4.0 | 	gopkg.in/yaml.v2 v2.4.0 | ||||||
| 	gopkg.in/yaml.v3 v3.0.1 | 	gopkg.in/yaml.v3 v3.0.1 | ||||||
| 	gorm.io/driver/mysql v1.3.5 |  | ||||||
| 	gorm.io/driver/sqlite v1.3.6 | 	gorm.io/driver/sqlite v1.3.6 | ||||||
| 	gorm.io/gorm v1.23.8 | 	gorm.io/gorm v1.23.8 | ||||||
| ) | ) | ||||||
| @@ -116,7 +116,6 @@ require ( | |||||||
| 	github.com/miekg/dns v1.1.50 // indirect | 	github.com/miekg/dns v1.1.50 // indirect | ||||||
| 	github.com/minio/md5-simd v1.1.2 // indirect | 	github.com/minio/md5-simd v1.1.2 // indirect | ||||||
| 	github.com/minio/sha256-simd v1.0.0 // indirect | 	github.com/minio/sha256-simd v1.0.0 // indirect | ||||||
| 	github.com/mitchellh/go-homedir v1.1.0 // indirect |  | ||||||
| 	github.com/mitchellh/mapstructure v1.5.0 // indirect | 	github.com/mitchellh/mapstructure v1.5.0 // indirect | ||||||
| 	github.com/moby/sys/mount v0.3.3 // indirect | 	github.com/moby/sys/mount v0.3.3 // indirect | ||||||
| 	github.com/moby/sys/mountinfo v0.6.2 // indirect | 	github.com/moby/sys/mountinfo v0.6.2 // indirect | ||||||
| @@ -127,7 +126,6 @@ require ( | |||||||
| 	github.com/nwaples/rardecode/v2 v2.0.0-beta.2 // indirect | 	github.com/nwaples/rardecode/v2 v2.0.0-beta.2 // indirect | ||||||
| 	github.com/opencontainers/go-digest v1.0.0 // indirect | 	github.com/opencontainers/go-digest v1.0.0 // indirect | ||||||
| 	github.com/opencontainers/runc v1.1.4 // indirect | 	github.com/opencontainers/runc v1.1.4 // indirect | ||||||
| 	github.com/patrickmn/go-cache v2.1.0+incompatible // indirect |  | ||||||
| 	github.com/pelletier/go-toml v1.9.5 // indirect | 	github.com/pelletier/go-toml v1.9.5 // indirect | ||||||
| 	github.com/pelletier/go-toml/v2 v2.0.2 // indirect | 	github.com/pelletier/go-toml/v2 v2.0.2 // indirect | ||||||
| 	github.com/pierrec/lz4/v4 v4.1.15 // indirect | 	github.com/pierrec/lz4/v4 v4.1.15 // indirect | ||||||
| @@ -156,5 +154,4 @@ require ( | |||||||
| 	golang.org/x/tools v0.1.12 // indirect | 	golang.org/x/tools v0.1.12 // indirect | ||||||
| 	google.golang.org/protobuf v1.28.0 // indirect | 	google.golang.org/protobuf v1.28.0 // indirect | ||||||
| 	gopkg.in/ini.v1 v1.66.6 // indirect | 	gopkg.in/ini.v1 v1.66.6 // indirect | ||||||
| 	gopkg.in/square/go-jose.v2 v2.6.0 // indirect |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										213
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						| @@ -18,35 +18,14 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb | |||||||
| cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= | cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= | ||||||
| cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= | cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= | ||||||
| cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= | cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= | ||||||
| cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= |  | ||||||
| cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= |  | ||||||
| cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= |  | ||||||
| cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= |  | ||||||
| cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= |  | ||||||
| cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= |  | ||||||
| cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= |  | ||||||
| cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= |  | ||||||
| cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= |  | ||||||
| cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= |  | ||||||
| cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= |  | ||||||
| cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= |  | ||||||
| cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= |  | ||||||
| cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= | cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= | ||||||
| cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= | cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= | ||||||
| cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= | cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= | ||||||
| cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= | cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= | ||||||
| cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= | cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= | ||||||
| cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= | cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= | ||||||
| cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= |  | ||||||
| cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= |  | ||||||
| cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= |  | ||||||
| cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= |  | ||||||
| cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= |  | ||||||
| cloud.google.com/go/compute v1.7.0 h1:v/k9Eueb8aAJ0vZuxKMrgm6kPhCLZU9HxFU+AFDs9Uk= |  | ||||||
| cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= |  | ||||||
| cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= | cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= | ||||||
| cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= | cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= | ||||||
| cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= |  | ||||||
| cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= | cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= | ||||||
| cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= | cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= | ||||||
| cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= | cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= | ||||||
| @@ -57,40 +36,20 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl | |||||||
| cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= | cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= | ||||||
| cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= | cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= | ||||||
| cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= | cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= | ||||||
| cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= |  | ||||||
| dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= | dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= | ||||||
| github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= | github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= | ||||||
| github.com/Azure/azure-sdk-for-go v56.3.0+incompatible h1:DmhwMrUIvpeoTDiWRDtNHqelNUd3Og8JCkrLHQK795c= |  | ||||||
| github.com/Azure/azure-sdk-for-go v56.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= |  | ||||||
| github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= | github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= | ||||||
| github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= | github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= | ||||||
| github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= | github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= | ||||||
| github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= | github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= | ||||||
| github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= |  | ||||||
| github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= | github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= | ||||||
| github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= | github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= | ||||||
| github.com/Azure/go-autorest/autorest v0.11.24 h1:1fIGgHKqVm54KIPT+q8Zmd1QlVsmHqeUGso5qm2BqqE= |  | ||||||
| github.com/Azure/go-autorest/autorest v0.11.24/go.mod h1:G6kyRlFnTuSbEYkQGawPfsCswgme4iYf6rfSKUDzbCc= |  | ||||||
| github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= | github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= | ||||||
| github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= | github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= | ||||||
| github.com/Azure/go-autorest/autorest/adal v0.9.18 h1:kLnPsRjzZZUF3K5REu/Kc+qMQrvuza2bwSnNdhmzLfQ= |  | ||||||
| github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= |  | ||||||
| github.com/Azure/go-autorest/autorest/azure/auth v0.5.11 h1:P6bYXFoao05z5uhOQzbC3Qd8JqF3jUoocoTeIxkp2cA= |  | ||||||
| github.com/Azure/go-autorest/autorest/azure/auth v0.5.11/go.mod h1:84w/uV8E37feW2NCJ08uT9VBfjfUHpgLVnG2InYD6cg= |  | ||||||
| github.com/Azure/go-autorest/autorest/azure/cli v0.4.5 h1:0W/yGmFdTIT77fvdlGZ0LMISoLHFJ7Tx4U0yeB+uFs4= |  | ||||||
| github.com/Azure/go-autorest/autorest/azure/cli v0.4.5/go.mod h1:ADQAXrkgm7acgWVUNamOgh8YNrv4p27l3Wc55oVfpzg= |  | ||||||
| github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= |  | ||||||
| github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= | github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= | ||||||
| github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= | github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= | ||||||
| github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= | github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= | ||||||
| github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk= |  | ||||||
| github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= |  | ||||||
| github.com/Azure/go-autorest/autorest/validation v0.3.1 h1:AgyqjAd94fwNAoTjl/WQXg4VvFeRFpO+UhNyRXqF1ac= |  | ||||||
| github.com/Azure/go-autorest/autorest/validation v0.3.1/go.mod h1:yhLgjC0Wda5DYXl6JAsWyUe4KVNffhoDhG0zVzUMo3E= |  | ||||||
| github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= | github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= | ||||||
| github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= |  | ||||||
| github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= |  | ||||||
| github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= |  | ||||||
| github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= | github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= | ||||||
| github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= | github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= | ||||||
| github.com/BurntSushi/toml v1.2.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0= | github.com/BurntSushi/toml v1.2.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0= | ||||||
| @@ -122,8 +81,6 @@ github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:m | |||||||
| github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= | github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= | ||||||
| github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= | github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= | ||||||
| github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= | github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= | ||||||
| github.com/OpenDNS/vegadns2client v0.0.0-20180418235048-a3fa4a771d87 h1:xPMsUicZ3iosVPSIP7bW5EcGUzjiiMl1OYTe14y/R24= |  | ||||||
| github.com/OpenDNS/vegadns2client v0.0.0-20180418235048-a3fa4a771d87/go.mod h1:iGLljf5n9GjT6kc0HBvyI1nOKnGQbNB66VzSNbK5iks= |  | ||||||
| github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= | github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= | ||||||
| github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= | github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= | ||||||
| github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= | github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= | ||||||
| @@ -132,8 +89,6 @@ github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV | |||||||
| github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= | github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= | ||||||
| github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= | github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= | ||||||
| github.com/agiledragon/gomonkey/v2 v2.3.1/go.mod h1:ap1AmDzcVOAz1YpeJ3TCzIgstoaWLA6jbbgxfB4w2iY= | github.com/agiledragon/gomonkey/v2 v2.3.1/go.mod h1:ap1AmDzcVOAz1YpeJ3TCzIgstoaWLA6jbbgxfB4w2iY= | ||||||
| github.com/akamai/AkamaiOPEN-edgegrid-golang v1.2.1 h1:5BIsppVPdWJA29Yb5cYawQYeh5geN413WxAgBZvEtdA= |  | ||||||
| github.com/akamai/AkamaiOPEN-edgegrid-golang v1.2.1/go.mod h1:kX6YddBkXqqywAe8c9LyvgTCyFuZCTMF4cRPQhc3Fy8= |  | ||||||
| github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= | github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= | ||||||
| github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= | github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= | ||||||
| github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= | github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= | ||||||
| @@ -193,12 +148,7 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk | |||||||
| github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= | github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= | ||||||
| github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= | github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= | ||||||
| github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= | github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= | ||||||
| github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= |  | ||||||
| github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= | 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/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= |  | ||||||
| github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= |  | ||||||
| github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= |  | ||||||
| github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= | github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= | ||||||
| github.com/compose-spec/compose-go v1.6.0 h1:7Ol/UULMUtbPmB0EYrETASRoum821JpOh/XaEf+hN+Q= | github.com/compose-spec/compose-go v1.6.0 h1:7Ol/UULMUtbPmB0EYrETASRoum821JpOh/XaEf+hN+Q= | ||||||
| github.com/compose-spec/compose-go v1.6.0/go.mod h1:os+Ulh2jlZxY1XT1hbciERadjSUU/BtZ6+gcN7vD7J0= | github.com/compose-spec/compose-go v1.6.0/go.mod h1:os+Ulh2jlZxY1XT1hbciERadjSUU/BtZ6+gcN7vD7J0= | ||||||
| @@ -336,8 +286,6 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm | |||||||
| github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA= | github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA= | ||||||
| github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= | github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= | ||||||
| github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= | github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= | ||||||
| github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U= |  | ||||||
| github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= |  | ||||||
| github.com/distribution/distribution/v3 v3.0.0-20220725133111-4bf3547399eb h1:oCCuuU3kMO3sjZH/p7LamvQNW9SWoT4yQuMGcdSxGAE= | github.com/distribution/distribution/v3 v3.0.0-20220725133111-4bf3547399eb h1:oCCuuU3kMO3sjZH/p7LamvQNW9SWoT4yQuMGcdSxGAE= | ||||||
| github.com/distribution/distribution/v3 v3.0.0-20220725133111-4bf3547399eb/go.mod h1:28YO/VJk9/64+sTGNuYaBjWxrXTPrj0C0XmgTIOjxX4= | github.com/distribution/distribution/v3 v3.0.0-20220725133111-4bf3547399eb/go.mod h1:28YO/VJk9/64+sTGNuYaBjWxrXTPrj0C0XmgTIOjxX4= | ||||||
| github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= | github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= | ||||||
| @@ -377,10 +325,7 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m | |||||||
| github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= | github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= | ||||||
| github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= | github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= | ||||||
| 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.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= | ||||||
| github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/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.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/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= |  | ||||||
| github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= | github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= | ||||||
| github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= | github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= | ||||||
| github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= | github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= | ||||||
| @@ -486,8 +431,6 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP | |||||||
| 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/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A= | github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A= | ||||||
| github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= |  | ||||||
| github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= |  | ||||||
| github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs= | github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs= | ||||||
| github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= | github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= | ||||||
| github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY= | github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY= | ||||||
| @@ -510,7 +453,6 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt | |||||||
| github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= | github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= | ||||||
| github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= | github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= | ||||||
| github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= | github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= | ||||||
| github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= |  | ||||||
| github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= | github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= | ||||||
| github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | ||||||
| github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | ||||||
| @@ -527,7 +469,6 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD | |||||||
| github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= | 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.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.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= |  | ||||||
| github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= | github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= | ||||||
| github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= | github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= | ||||||
| github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | ||||||
| @@ -551,17 +492,13 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ | |||||||
| github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | github.com/google/go-cmp v0.5.4/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.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||||
| github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= |  | ||||||
| github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= | github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= | ||||||
| github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= |  | ||||||
| github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0= | github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0= | ||||||
| github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= |  | ||||||
| github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | ||||||
| github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | ||||||
| github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= | github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= | ||||||
| github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= | github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= | ||||||
| github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= | github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= | ||||||
| github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= |  | ||||||
| github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= | github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= | ||||||
| github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= | github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= | ||||||
| github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= | github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= | ||||||
| @@ -572,11 +509,6 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf | |||||||
| github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= | github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= | ||||||
| github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= | github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= | ||||||
| github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= | github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= | ||||||
| github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= |  | ||||||
| github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= |  | ||||||
| github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= |  | ||||||
| github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= |  | ||||||
| github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= |  | ||||||
| github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= | github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= | ||||||
| github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||||
| github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||||
| @@ -584,18 +516,9 @@ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ | |||||||
| github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | github.com/google/uuid v1.2.0/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/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa h1:7MYGT2XEMam7Mtzv1yDUYXANedWvwk3HKkR3MyGowy8= |  | ||||||
| github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= |  | ||||||
| github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= | github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= | ||||||
| github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= | github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= | ||||||
| github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= |  | ||||||
| github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= |  | ||||||
| github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= |  | ||||||
| github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= |  | ||||||
| github.com/googleapis/gax-go/v2 v2.4.0 h1:dS9eYAjhrE2RjmzYw2XAPvcXfmcQLtFEQWn0CR82awk= |  | ||||||
| github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= |  | ||||||
| github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= | github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= | ||||||
| github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= |  | ||||||
| github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= | github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= | ||||||
| github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= | github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= | ||||||
| github.com/gorilla/csrf v1.7.1 h1:Ir3o2c1/Uzj6FBxMlAUB6SivgVMy1ONXwYgXn+/aHPE= | github.com/gorilla/csrf v1.7.1 h1:Ir3o2c1/Uzj6FBxMlAUB6SivgVMy1ONXwYgXn+/aHPE= | ||||||
| @@ -621,7 +544,6 @@ github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t | |||||||
| github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= | github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= | ||||||
| github.com/gwatts/gin-adapter v1.0.0 h1:TsmmhYTR79/RMTsfYJ2IQvI1F5KZ3ZFJxuQSYEOpyIA= | github.com/gwatts/gin-adapter v1.0.0 h1:TsmmhYTR79/RMTsfYJ2IQvI1F5KZ3ZFJxuQSYEOpyIA= | ||||||
| github.com/gwatts/gin-adapter v1.0.0/go.mod h1:44AEV+938HsS0mjfXtBDCUZS9vONlF2gwvh8wu4sRYc= | github.com/gwatts/gin-adapter v1.0.0/go.mod h1:44AEV+938HsS0mjfXtBDCUZS9vONlF2gwvh8wu4sRYc= | ||||||
| github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI= |  | ||||||
| github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= | github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= | ||||||
| github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= | github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= | ||||||
| github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= | github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= | ||||||
| @@ -765,7 +687,6 @@ github.com/minio/minio-go/v7 v7.0.36/go.mod h1:nCrRzjoSUQh8hgKKtu3Y708OLvRLtuASM | |||||||
| github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= | github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= | ||||||
| github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= | github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= | ||||||
| github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= | github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= | ||||||
| github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= |  | ||||||
| github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= | github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= | ||||||
| github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= | github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= | ||||||
| github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= | github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= | ||||||
| @@ -801,7 +722,6 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRW | |||||||
| github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= | github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= | ||||||
| github.com/natefinch/lumberjack v2.0.0+incompatible h1:4QJd3OLAMgj7ph+yZTuX13Ld4UpgHp07nNdFX7mqFfM= | github.com/natefinch/lumberjack v2.0.0+incompatible h1:4QJd3OLAMgj7ph+yZTuX13Ld4UpgHp07nNdFX7mqFfM= | ||||||
| github.com/natefinch/lumberjack v2.0.0+incompatible/go.mod h1:Wi9p2TTF5DG5oU+6YfsmYQpsTIOm0B1VNzQg9Mw6nPk= | github.com/natefinch/lumberjack v2.0.0+incompatible/go.mod h1:Wi9p2TTF5DG5oU+6YfsmYQpsTIOm0B1VNzQg9Mw6nPk= | ||||||
| github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= |  | ||||||
| github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= | github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= | ||||||
| github.com/nicksnyder/go-i18n/v2 v2.1.2 h1:QHYxcUJnGHBaq7XbvgunmZ2Pn0focXFqTD61CkH146c= | github.com/nicksnyder/go-i18n/v2 v2.1.2 h1:QHYxcUJnGHBaq7XbvgunmZ2Pn0focXFqTD61CkH146c= | ||||||
| github.com/nicksnyder/go-i18n/v2 v2.1.2/go.mod h1:d++QJC9ZVf7pa48qrsRWhMJ5pSHIPmS3OLqK1niyLxs= | github.com/nicksnyder/go-i18n/v2 v2.1.2/go.mod h1:d++QJC9ZVf7pa48qrsRWhMJ5pSHIPmS3OLqK1niyLxs= | ||||||
| @@ -865,8 +785,6 @@ github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJ | |||||||
| github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= | github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= | ||||||
| github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= | github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= | ||||||
| github.com/otiai10/mint v1.3.3/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= | github.com/otiai10/mint v1.3.3/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= | ||||||
| github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= |  | ||||||
| github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= |  | ||||||
| github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= | github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= | ||||||
| github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc= | github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc= | ||||||
| github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= | github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= | ||||||
| @@ -1107,7 +1025,6 @@ golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPh | |||||||
| golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= | golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= | ||||||
| golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= | golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= | ||||||
| golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | ||||||
| golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= |  | ||||||
| golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | ||||||
| golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= | golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= | ||||||
| golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c= | golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c= | ||||||
| @@ -1137,7 +1054,6 @@ golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRu | |||||||
| golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= | golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= | ||||||
| golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= | golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= | ||||||
| golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= | golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= | ||||||
| golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= |  | ||||||
| golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= | golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= | ||||||
| golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= | golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= | ||||||
| golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= | golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= | ||||||
| @@ -1193,23 +1109,16 @@ golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwY | |||||||
| golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||||
| golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | ||||||
| golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | ||||||
| golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= |  | ||||||
| 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-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= |  | ||||||
| golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= | golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= | ||||||
| golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= | golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= | ||||||
| golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= |  | ||||||
| golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= | golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= | ||||||
| golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= | golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= | ||||||
| golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= | golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= | ||||||
| golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= | golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= | ||||||
| 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-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= | golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= | ||||||
| golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= |  | ||||||
| golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= |  | ||||||
| golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= |  | ||||||
| golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= | golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= | ||||||
| golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= |  | ||||||
| golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | ||||||
| golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= | golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= | ||||||
| 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= | ||||||
| @@ -1222,19 +1131,6 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ | |||||||
| golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||||
| golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||||
| golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||||
| golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= |  | ||||||
| golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= |  | ||||||
| golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= |  | ||||||
| golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= |  | ||||||
| golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= |  | ||||||
| golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= |  | ||||||
| golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= |  | ||||||
| golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= |  | ||||||
| golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= |  | ||||||
| golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= |  | ||||||
| golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= |  | ||||||
| golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1 h1:lxqLZaMad/dJHMFZH0NiNpiEZI/nhgWhe4wgzpE+MuA= |  | ||||||
| golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= |  | ||||||
| golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | 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-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-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| @@ -1246,7 +1142,6 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ | |||||||
| 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= | ||||||
| golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= |  | ||||||
| golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw= | golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw= | ||||||
| golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
| @@ -1320,11 +1215,7 @@ golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7w | |||||||
| golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= |  | ||||||
| golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= |  | ||||||
| golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= |  | ||||||
| golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= |  | ||||||
| golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| @@ -1332,31 +1223,19 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w | |||||||
| golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/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-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |  | ||||||
| golang.org/x/sys v0.0.0-20210603125802-9665404d3644/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-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/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= | ||||||
| golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |  | ||||||
| golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |  | ||||||
| golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |  | ||||||
| golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |  | ||||||
| golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |  | ||||||
| golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |  | ||||||
| golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |  | ||||||
| golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |  | ||||||
| golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |  | ||||||
| golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |  | ||||||
| golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab h1:2QkjZIsXupsJbJIdSjjUOgWK3aEtzyuh2mPt3l/CkeU= | golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab h1:2QkjZIsXupsJbJIdSjjUOgWK3aEtzyuh2mPt3l/CkeU= | ||||||
| @@ -1370,7 +1249,6 @@ golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3 | |||||||
| golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= | golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= | ||||||
| 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.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | golang.org/x/text v0.3.4/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 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= | golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= | ||||||
| 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= | ||||||
| @@ -1442,9 +1320,6 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f | |||||||
| golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | ||||||
| golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= | golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= | ||||||
| golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= | golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= | ||||||
| golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= |  | ||||||
| golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= |  | ||||||
| golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= |  | ||||||
| golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= | golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= | ||||||
| golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= | golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= | ||||||
| golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= | golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= | ||||||
| @@ -1454,9 +1329,6 @@ 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= | ||||||
| golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= |  | ||||||
| golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= |  | ||||||
| golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= |  | ||||||
| google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= | google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= | ||||||
| google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= | google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= | ||||||
| google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= | google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= | ||||||
| @@ -1477,34 +1349,12 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 | |||||||
| google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= | google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= | ||||||
| google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= | google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= | ||||||
| google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= | google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= | ||||||
| google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= |  | ||||||
| google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= |  | ||||||
| google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= |  | ||||||
| google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= |  | ||||||
| google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= |  | ||||||
| google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= |  | ||||||
| google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= |  | ||||||
| google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= |  | ||||||
| google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= |  | ||||||
| google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= |  | ||||||
| google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= |  | ||||||
| google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= |  | ||||||
| google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= |  | ||||||
| google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= |  | ||||||
| google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= |  | ||||||
| google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= |  | ||||||
| google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= |  | ||||||
| google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= |  | ||||||
| google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= |  | ||||||
| google.golang.org/api v0.84.0 h1:NMB9J4cCxs9xEm+1Z9QiO3eFvn7EnQj3Eo3hN6ugVlg= |  | ||||||
| google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= |  | ||||||
| google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= | 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/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= | ||||||
| google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= | google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= | ||||||
| google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= | google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= | ||||||
| google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= | google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= | ||||||
| google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= | google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= | ||||||
| google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= |  | ||||||
| google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= | google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= | ||||||
| google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= | google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= | ||||||
| google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= | google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= | ||||||
| @@ -1547,51 +1397,7 @@ google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6D | |||||||
| google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | ||||||
| google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | ||||||
| google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | ||||||
| google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= |  | ||||||
| google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | ||||||
| google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= |  | ||||||
| google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= |  | ||||||
| google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= |  | ||||||
| google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= |  | ||||||
| google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= |  | ||||||
| google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= |  | ||||||
| google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= |  | ||||||
| google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= |  | ||||||
| google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= |  | ||||||
| google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= |  | ||||||
| google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= |  | ||||||
| google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= |  | ||||||
| google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= |  | ||||||
| google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= |  | ||||||
| google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= |  | ||||||
| google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= |  | ||||||
| google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= |  | ||||||
| google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= |  | ||||||
| google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= |  | ||||||
| google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= |  | ||||||
| google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= |  | ||||||
| google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= |  | ||||||
| google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= |  | ||||||
| google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= |  | ||||||
| google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= |  | ||||||
| google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= |  | ||||||
| google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= |  | ||||||
| google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= |  | ||||||
| google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= |  | ||||||
| google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= |  | ||||||
| google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= |  | ||||||
| google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= |  | ||||||
| google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= |  | ||||||
| google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= |  | ||||||
| google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= |  | ||||||
| google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= |  | ||||||
| google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= |  | ||||||
| google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= |  | ||||||
| google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= |  | ||||||
| google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= |  | ||||||
| google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= |  | ||||||
| google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90 h1:4SPz2GL2CXJt28MTF8V6Ap/9ZiVbQlJeGSd9qtA7DLs= |  | ||||||
| google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= |  | ||||||
| google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= | google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= | ||||||
| google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= | google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= | ||||||
| google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= | google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= | ||||||
| @@ -1614,21 +1420,7 @@ google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv | |||||||
| google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= | google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= | ||||||
| google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= | google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= | ||||||
| google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= | google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= | ||||||
| google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= |  | ||||||
| google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= |  | ||||||
| google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= |  | ||||||
| google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= |  | ||||||
| google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= |  | ||||||
| google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= |  | ||||||
| google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= | google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= | ||||||
| google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= |  | ||||||
| google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= |  | ||||||
| google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= |  | ||||||
| google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= |  | ||||||
| google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= |  | ||||||
| google.golang.org/grpc v1.47.0 h1:9n77onPX5F3qfFCqjy9dhn8PbNQsIKeVU04J9G7umt8= |  | ||||||
| google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= |  | ||||||
| google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= |  | ||||||
| google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= | 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-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 v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= | ||||||
| @@ -1657,9 +1449,7 @@ gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qS | |||||||
| 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/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= | gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= | ||||||
| gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= | gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= | ||||||
| gopkg.in/h2non/gock.v1 v1.0.15/go.mod h1:sX4zAkdYX1TRGJ2JY156cFspQn4yRWn6p9EMdODlynE= |  | ||||||
| gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= | gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= | ||||||
| gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= |  | ||||||
| gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= | gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= | ||||||
| gopkg.in/ini.v1 v1.66.6 h1:LATuAqN/shcYAOkv3wl2L4rkaKqkcgTBQjOyYDvcPKI= | gopkg.in/ini.v1 v1.66.6 h1:LATuAqN/shcYAOkv3wl2L4rkaKqkcgTBQjOyYDvcPKI= | ||||||
| gopkg.in/ini.v1 v1.66.6/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= | gopkg.in/ini.v1 v1.66.6/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= | ||||||
| @@ -1688,8 +1478,7 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C | |||||||
| gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | gopkg.in/yaml.v3 v3.0.0/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= | ||||||
| gorm.io/driver/mysql v1.3.5 h1:iWBTVW/8Ij5AG4e0G/zqzaJblYkBI1VIL1LG2HUGsvY= | gorm.io/driver/mysql v1.3.3 h1:jXG9ANrwBc4+bMvBcSl8zCfPBaVoPyBEBshA8dA93X8= | ||||||
| gorm.io/driver/mysql v1.3.5/go.mod h1:sSIebwZAVPiT+27jK9HIwvsqOGKx3YMPmrA3mBJR10c= |  | ||||||
| gorm.io/driver/postgres v1.3.7 h1:FKF6sIMDHDEvvMF/XJvbnCl0nu6KSKUaPXevJ4r+VYQ= | gorm.io/driver/postgres v1.3.7 h1:FKF6sIMDHDEvvMF/XJvbnCl0nu6KSKUaPXevJ4r+VYQ= | ||||||
| gorm.io/driver/sqlite v1.3.6 h1:Fi8xNYCUplOqWiPa3/GuCeowRNBRGTf62DEmhMDHeQQ= | gorm.io/driver/sqlite v1.3.6 h1:Fi8xNYCUplOqWiPa3/GuCeowRNBRGTf62DEmhMDHeQQ= | ||||||
| gorm.io/driver/sqlite v1.3.6/go.mod h1:Sg1/pvnKtbQ7jLXxfZa+jSHvoX8hoZA8cn4xllOMTgE= | gorm.io/driver/sqlite v1.3.6/go.mod h1:Sg1/pvnKtbQ7jLXxfZa+jSHvoX8hoZA8cn4xllOMTgE= | ||||||
|   | |||||||
 ssongliu
					ssongliu