diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
deleted file mode 100644
index bcd5c45..0000000
--- a/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# Contributor Covenant Code of Conduct
-
-## Our Pledge
-
-In the interest of fostering an open and welcoming environment, we as
-contributors and maintainers pledge to making participation in our project and
-our community a harassment-free experience for everyone, regardless of age, body
-size, disability, ethnicity, sex characteristics, gender identity and expression,
-level of experience, education, socio-economic status, nationality, personal
-appearance, race, religion, or sexual identity and orientation.
-
-## Our Standards
-
-Examples of behavior that contributes to creating a positive environment
-include:
-
-* Using welcoming and inclusive language
-* Being respectful of differing viewpoints and experiences
-* Gracefully accepting constructive criticism
-* Focusing on what is best for the community
-* Showing empathy towards other community members
-
-Examples of unacceptable behavior by participants include:
-
-* The use of sexualized language or imagery and unwelcome sexual attention or
- advances
-* Trolling, insulting/derogatory comments, and personal or political attacks
-* Public or private harassment
-* Publishing others' private information, such as a physical or electronic
- address, without explicit permission
-* Other conduct which could reasonably be considered inappropriate in a
- professional setting
-
-## Our Responsibilities
-
-Project maintainers are responsible for clarifying the standards of acceptable
-behavior and are expected to take appropriate and fair corrective action in
-response to any instances of unacceptable behavior.
-
-Project maintainers have the right and responsibility to remove, edit, or
-reject comments, commits, code, wiki edits, issues, and other contributions
-that are not aligned to this Code of Conduct, or to ban temporarily or
-permanently any contributor for other behaviors that they deem inappropriate,
-threatening, offensive, or harmful.
-
-## Scope
-
-This Code of Conduct applies both within project spaces and in public spaces
-when an individual is representing the project or its community. Examples of
-representing a project or community include using an official project e-mail
-address, posting via an official social media account, or acting as an appointed
-representative at an online or offline event. Representation of a project may be
-further defined and clarified by project maintainers.
-
-## Enforcement
-
-Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported by contacting the project team at 303176530@qq.com. All
-complaints will be reviewed and investigated and will result in a response that
-is deemed necessary and appropriate to the circumstances. The project team is
-obligated to maintain confidentiality with regard to the reporter of an incident.
-Further details of specific enforcement policies may be posted separately.
-
-Project maintainers who do not follow or enforce the Code of Conduct in good
-faith may face temporary or permanent repercussions as determined by other
-members of the project's leadership.
-
-## Attribution
-
-This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
-available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
-
-[homepage]: https://www.contributor-covenant.org
-
-For answers to common questions about this code of conduct, see
-https://www.contributor-covenant.org/faq
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index b3076b2..0000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,19 +0,0 @@
-
-### Contributing Guide
-#### 1 Issue Guidelines
-
-- Issues are exclusively for bug reports, feature requests and design-related topics. Other questions may be closed directly. If any questions come up when you are using Element, please hit [Gitter](https://gitter.im/element-en/Lobby) for help.
-
-- Before submitting an issue, please check if similar problems have already been issued.
-
-#### 2 Pull Request Guidelines
-
-- Fork this repository to your own account. Do not create branches here.
-
-- Commit info should be formatted as `[File Name]: Info about commit.` (e.g. `README.md: Fix xxx bug`)
-
-- Make sure PRs are created to `develop` branch instead of `master` branch.
-
-- If your PR fixes a bug, please provide a description about the related bug.
-
-- Merging a PR takes two maintainers: one approves the changes after reviewing, and then the other reviews and merges.
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index 11955dc..0000000
--- a/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-FROM golang:alpine as builder
-
-WORKDIR /go/src/zc-admin/server
-COPY . .
-
-RUN go env -w GO111MODULE=on \
- && go env -w GOPROXY=https://goproxy.cn,direct \
- && go env -w CGO_ENABLED=0 \
- && go env \
- && go mod tidy \
- && go build -o server .
-
-FROM alpine:latest
-
-LABEL MAINTAINER="SliverHorn@sliver_horn@qq.com"
-
-WORKDIR /go/src/zc-admin/server
-
-COPY --from=0 /go/src/zc-admin/server/server ./
-COPY --from=0 /go/src/zc-admin/server/resource ./resource/
-COPY --from=0 /go/src/zc-admin/server/config.docker.yaml ./
-
-EXPOSE 8888
-ENTRYPOINT ./server -c config.docker.yaml
diff --git a/api/v1/slot/slot.go b/api/v1/slot/slot.go
index 3f8f304..dc6fb12 100644
--- a/api/v1/slot/slot.go
+++ b/api/v1/slot/slot.go
@@ -1,13 +1,9 @@
package slot
import (
- "context"
- "fmt"
"github.com/gin-gonic/gin"
- "oplian/global"
"oplian/model/common/response"
"oplian/model/slot/request"
- "oplian/service/pb"
)
type SlotApi struct{}
@@ -30,14 +26,14 @@ func (slot *SlotApi) InstallSlot(c *gin.Context) {
var errMsg string
switch param.Name {
case "unsealed":
- for _, gclient := range global.GateWayClinets.Gets() {
- //新增存储
- _, err = gclient.InstallUnsealed(context.Background(), &pb.String{})
- if err != nil {
- errMsg += fmt.Sprintf("%s\n", err.Error())
- continue
- }
- }
+ //for _, gclient := range global.GateWayClinets.Gets() {
+ // //新增存储
+ // //_, err = gclient.InstallUnsealed(context.Background(), &pb.String{})
+ // //if err != nil {
+ // // errMsg += fmt.Sprintf("%s\n", err.Error())
+ // // continue
+ // //}
+ //}
}
response.OkWithMessage(errMsg, c)
}
diff --git a/api/v1/system/enter.go b/api/v1/system/enter.go
index ee7135e..7873c76 100644
--- a/api/v1/system/enter.go
+++ b/api/v1/system/enter.go
@@ -9,13 +9,11 @@ type ApiGroup struct {
BaseApi
SystemApi
CasbinApi
- AutoCodeApi
SystemApiApi
AuthorityApi
DictionaryApi
AuthorityMenuApi
OperationRecordApi
- AutoCodeHistoryApi
DictionaryDetailApi
AuthorityBtnApi
MachineRoomRecordApi
@@ -39,13 +37,11 @@ var (
userService = service.ServiceGroupApp.SystemServiceGroup.UserService
initDBService = service.ServiceGroupApp.SystemServiceGroup.InitDBService
casbinService = service.ServiceGroupApp.SystemServiceGroup.CasbinService
- autoCodeService = service.ServiceGroupApp.SystemServiceGroup.AutoCodeService
baseMenuService = service.ServiceGroupApp.SystemServiceGroup.BaseMenuService
authorityService = service.ServiceGroupApp.SystemServiceGroup.AuthorityService
dictionaryService = service.ServiceGroupApp.SystemServiceGroup.DictionaryService
systemConfigService = service.ServiceGroupApp.SystemServiceGroup.SystemConfigService
operationRecordService = service.ServiceGroupApp.SystemServiceGroup.OperationRecordService
- autoCodeHistoryService = service.ServiceGroupApp.SystemServiceGroup.AutoCodeHistoryService
dictionaryDetailService = service.ServiceGroupApp.SystemServiceGroup.DictionaryDetailService
authorityBtnService = service.ServiceGroupApp.SystemServiceGroup.AuthorityBtnService
machineRoomRecordService = service.ServiceGroupApp.SystemServiceGroup.MachineRoomRecordService
diff --git a/api/v1/system/sys_auto_code.go b/api/v1/system/sys_auto_code.go
deleted file mode 100644
index ad5a7e6..0000000
--- a/api/v1/system/sys_auto_code.go
+++ /dev/null
@@ -1,298 +0,0 @@
-package system
-
-import (
- "errors"
- "fmt"
- "net/url"
- "os"
- "strings"
-
- "golang.org/x/text/cases"
- "golang.org/x/text/language"
- "oplian/global"
- "oplian/model/common/response"
- "oplian/model/system"
- "oplian/utils"
-
- "github.com/gin-gonic/gin"
- "go.uber.org/zap"
-)
-
-type AutoCodeApi struct{}
-
-var caser = cases.Title(language.English)
-
-// PreviewTemp
-// @Tags AutoCode
-// @Summary Preview the created code
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body
-// @Success 200 {object} response.Response{data=map[string]interface{},msg=string}
-// @Router /autoCode/preview [post]
-func (autoApi *AutoCodeApi) PreviewTemp(c *gin.Context) {
- var a system.AutoCodeStruct
- _ = c.ShouldBindJSON(&a)
- if err := utils.Verify(a, utils.AutoCodeVerify); err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- a.Pretreatment() // Process go keywords
- a.PackageT = caser.String(a.Package)
- autoCode, err := autoCodeService.PreviewTemp(a)
- if err != nil {
- global.ZC_LOG.Error("Preview failed!", zap.Error(err))
- response.FailWithMessage("Preview failed", c)
- } else {
- response.OkWithDetailed(gin.H{"autoCode": autoCode}, "Preview successful", c)
- }
-}
-
-// CreateTemp
-// @Tags AutoCode
-// @Summary Automatic Code Template
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"Created successfully"}"
-// @Router /autoCode/createTemp [post]
-func (autoApi *AutoCodeApi) CreateTemp(c *gin.Context) {
- var a system.AutoCodeStruct
- _ = c.ShouldBindJSON(&a)
- if err := utils.Verify(a, utils.AutoCodeVerify); err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- a.Pretreatment()
- var apiIds []uint
- if a.AutoCreateApiToSql {
- if ids, err := autoCodeService.AutoCreateApi(&a); err != nil {
- global.ZC_LOG.Error("Automation creation failed! Please clear junk data by yourself!", zap.Error(err))
- c.Writer.Header().Add("success", "false")
- c.Writer.Header().Add("msg", url.QueryEscape("Automation creation failed! Please clear junk data by yourself!"))
- return
- } else {
- apiIds = ids
- }
- }
- a.PackageT = caser.String(a.Package)
- err := autoCodeService.CreateTemp(a, apiIds...)
- if err != nil {
- if errors.Is(err, system.ErrAutoMove) {
- c.Writer.Header().Add("success", "true")
- c.Writer.Header().Add("msg", url.QueryEscape(err.Error()))
- } else {
- c.Writer.Header().Add("success", "false")
- c.Writer.Header().Add("msg", url.QueryEscape(err.Error()))
- _ = os.Remove("./ginvueadmin.zip")
- }
- } else {
- c.Writer.Header().Add("Content-Disposition", fmt.Sprintf("attachment; filename=%s", "ginvueadmin.zip")) // fmt.Sprintf("attachment; filename=%s", filename)对下载的文件重命名
- c.Writer.Header().Add("Content-Type", "application/json")
- c.Writer.Header().Add("success", "true")
- c.File("./ginvueadmin.zip")
- _ = os.Remove("./ginvueadmin.zip")
- }
-}
-
-// GetDB
-// @Tags AutoCode
-// @Summary Get all current databases
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Success 200 {object} response.Response{data=map[string]interface{},msg=string}
-// @Router /autoCode/getDatabase [get]
-func (autoApi *AutoCodeApi) GetDB(c *gin.Context) {
- businessDB := c.Query("businessDB")
- dbs, err := autoCodeService.Database(businessDB).GetDB(businessDB)
- var dbList []map[string]interface{}
- for _, db := range global.ZC_CONFIG.DBList {
- var item = make(map[string]interface{})
- item["aliasName"] = db.AliasName
- item["dbName"] = db.Dbname
- item["disable"] = db.Disable
- item["dbtype"] = db.Type
- dbList = append(dbList, item)
- }
- if err != nil {
- global.ZC_LOG.Error("Acquisition failed!", zap.Error(err))
- response.FailWithMessage("Acquisition failed", c)
- } else {
- response.OkWithDetailed(gin.H{"dbs": dbs, "dbList": dbList}, "Successfully obtained", c)
- }
-}
-
-// GetTables
-// @Tags AutoCode
-// @Summary Get all tables in the current database
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Success 200 {object} response.Response{data=map[string]interface{},msg=string}
-// @Router /autoCode/getTables [get]
-func (autoApi *AutoCodeApi) GetTables(c *gin.Context) {
- dbName := c.DefaultQuery("dbName", global.ZC_CONFIG.Mysql.Dbname)
- businessDB := c.Query("businessDB")
- tables, err := autoCodeService.Database(businessDB).GetTables(businessDB, dbName)
- if err != nil {
- global.ZC_LOG.Error("Query table failed!", zap.Error(err))
- response.FailWithMessage("Query table failed", c)
- } else {
- response.OkWithDetailed(gin.H{"tables": tables}, "Successfully obtained", c)
- }
-}
-
-// GetColumn
-// @Tags AutoCode
-// @Summary Get all fields in the current table
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Success 200 {object} response.Response{data=map[string]interface{},msg=string}
-// @Router /autoCode/getColumn [get]
-func (autoApi *AutoCodeApi) GetColumn(c *gin.Context) {
- businessDB := c.Query("businessDB")
- dbName := c.DefaultQuery("dbName", global.ZC_CONFIG.Mysql.Dbname)
- tableName := c.Query("tableName")
- columns, err := autoCodeService.Database(businessDB).GetColumn(businessDB, tableName, dbName)
- if err != nil {
- global.ZC_LOG.Error("Acquisition failed!", zap.Error(err))
- response.FailWithMessage("Acquisition failed", c)
- } else {
- response.OkWithDetailed(gin.H{"columns": columns}, "Successfully obtained", c)
- }
-}
-
-// CreatePackage
-// @Tags AutoCode
-// @Summary Create package
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body
-// @Success 200 {object} response.Response{data=map[string]interface{},msg=string}
-// @Router /autoCode/createPackage [post]
-func (autoApi *AutoCodeApi) CreatePackage(c *gin.Context) {
- var a system.SysAutoCode
- _ = c.ShouldBindJSON(&a)
- if err := utils.Verify(a, utils.AutoPackageVerify); err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- err := autoCodeService.CreateAutoCode(&a)
- if err != nil {
-
- global.ZC_LOG.Error("Created successfully!", zap.Error(err))
- response.FailWithMessage("Creation failed", c)
- } else {
- response.OkWithMessage("Created successfully", c)
- }
-}
-
-// GetPackage
-// @Tags AutoCode
-// @Summary Get package
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Success 200 {object} response.Response{data=map[string]interface{},msg=string}
-// @Router /autoCode/getPackage [post]
-func (autoApi *AutoCodeApi) GetPackage(c *gin.Context) {
- pkgs, err := autoCodeService.GetPackage()
- if err != nil {
- global.ZC_LOG.Error("Acquisition failed!", zap.Error(err))
- response.FailWithMessage("Acquisition failed", c)
- } else {
- response.OkWithDetailed(gin.H{"pkgs": pkgs}, "Successfully obtained", c)
- }
-}
-
-// DelPackage
-// @Tags AutoCode
-// @Summary Delete package
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body
-// @Success 200 {object} response.Response{data=map[string]interface{},msg=string}
-// @Router /autoCode/delPackage [post]
-func (autoApi *AutoCodeApi) DelPackage(c *gin.Context) {
- var a system.SysAutoCode
- _ = c.ShouldBindJSON(&a)
- err := autoCodeService.DelPackage(a)
- if err != nil {
- global.ZC_LOG.Error("Delete failed!", zap.Error(err))
- response.FailWithMessage("Delete failed", c)
- } else {
- response.OkWithMessage("Delete successful", c)
- }
-}
-
-// AutoPlug
-// @Tags AutoCode
-// @Summary Create plugin template
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body
-// @Success 200 {object} response.Response{data=map[string]interface{},msg=string}
-// @Router /autoCode/createPlug [post]
-func (autoApi *AutoCodeApi) AutoPlug(c *gin.Context) {
- var a system.AutoPlugReq
- err := c.ShouldBindJSON(&a)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- a.Snake = strings.ToLower(a.PlugName)
- a.NeedModel = a.HasRequest || a.HasResponse
- err = autoCodeService.CreatePlug(a)
- if err != nil {
- global.ZC_LOG.Error("Preview failed!", zap.Error(err))
- response.FailWithMessage("Preview failed", c)
- return
- }
- response.Ok(c)
-}
-
-// InstallPlugin
-// @Tags AutoCode
-// @Summary Install plug-in
-// @Security ApiKeyAuth
-// @accept multipart/form-data
-// @Produce application/json
-// @Param plug formData file
-// @Success 200 {object} response.Response{data=[]interface{},msg=string}
-// @Router /autoCode/createPlug [post]
-func (autoApi *AutoCodeApi) InstallPlugin(c *gin.Context) {
- header, err := c.FormFile("plug")
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- web, server, err := autoCodeService.InstallPlugin(header)
- webStr := "Web plugin installation successful"
- serverStr := "Server plugin installation successful"
- if web == -1 {
- webStr = "The web plugin was not successfully installed. Please decompress and install it according to the documentation. If it is a pure backend plugin, please ignore this prompt"
- }
- if server == -1 {
- serverStr = "The server-side plugin was not successfully installed. Please decompress and install it according to the documentation. If it is a pure front-end plugin, please ignore this prompt"
- }
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- response.OkWithData([]interface{}{
- gin.H{
- "code": web,
- "msg": webStr,
- },
- gin.H{
- "code": server,
- "msg": serverStr,
- }}, c)
-}
diff --git a/api/v1/system/sys_auto_code_history.go b/api/v1/system/sys_auto_code_history.go
deleted file mode 100644
index e090eb9..0000000
--- a/api/v1/system/sys_auto_code_history.go
+++ /dev/null
@@ -1,115 +0,0 @@
-package system
-
-import (
- "github.com/gin-gonic/gin"
- "go.uber.org/zap"
- "oplian/global"
- "oplian/model/common/request"
- "oplian/model/common/response"
- systemReq "oplian/model/system/request"
-)
-
-type AutoCodeHistoryApi struct{}
-
-// First
-// @Tags AutoCode
-// @Summary Obtaining Meta Information
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body
-// @Success 200 {object} response.Response{data=map[string]interface{},msg=string}
-// @Router /autoCode/getMeta [post]
-func (a *AutoCodeHistoryApi) First(c *gin.Context) {
- var info request.GetById
- err := c.ShouldBindJSON(&info)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- data, err := autoCodeHistoryService.First(&info)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- response.OkWithDetailed(gin.H{"meta": data}, "Successfully obtained", c)
-}
-
-// Delete
-// @Tags AutoCode
-// @Summary Delete rollback record
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body
-// @Success 200 {object} response.Response{msg=string}
-// @Router /autoCode/delSysHistory [post]
-func (a *AutoCodeHistoryApi) Delete(c *gin.Context) {
- var info request.GetById
- err := c.ShouldBindJSON(&info)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- err = autoCodeHistoryService.Delete(&info)
- if err != nil {
- global.ZC_LOG.Error("Delete failed!", zap.Error(err))
- response.FailWithMessage("Delete failed", c)
- return
- }
- response.OkWithMessage("Delete successful", c)
-}
-
-// RollBack
-// @Tags AutoCode
-// @Summary Rollback automatic code generation
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body
-// @Success 200 {object} response.Response{msg=string}
-// @Router /autoCode/rollback [post]
-func (a *AutoCodeHistoryApi) RollBack(c *gin.Context) {
- var info systemReq.RollBack
- err := c.ShouldBindJSON(&info)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- err = autoCodeHistoryService.RollBack(&info)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- response.OkWithMessage("Rollback successful", c)
-}
-
-// GetList
-// @Tags AutoCode
-// @Summary Query rollback records
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body
-// @Success 200 {object} response.Response{data=response.PageResult,msg=string}
-// @Router /autoCode/getSysHistory [post]
-func (a *AutoCodeHistoryApi) GetList(c *gin.Context) {
- var search systemReq.SysAutoHistory
- err := c.ShouldBindJSON(&search)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- list, total, err := autoCodeHistoryService.GetList(search.PageInfo)
- if err != nil {
- global.ZC_LOG.Error("Acquisition failed!", zap.Error(err))
- response.FailWithMessage("Acquisition failed", c)
- return
- }
- response.OkWithDetailed(response.PageResult{
- List: list,
- Total: total,
- Page: search.Page,
- PageSize: search.PageSize,
- }, "Successfully obtained", c)
-}
diff --git a/api/v1/system/sys_captcha.go b/api/v1/system/sys_captcha.go
index acdea82..ba72391 100644
--- a/api/v1/system/sys_captcha.go
+++ b/api/v1/system/sys_captcha.go
@@ -23,7 +23,7 @@ type BaseApi struct{}
// @Router /base/captcha [post]
func (b *BaseApi) Captcha(c *gin.Context) {
- driver := base64Captcha.NewDriverDigit(global.ZC_CONFIG.Captcha.ImgHeight, global.ZC_CONFIG.Captcha.ImgWidth, global.ZC_CONFIG.Captcha.KeyLong, 0.7, 80)
+ driver := base64Captcha.NewDriverDigit(80, 240, 6, 0.7, 80)
// cp := base64Captcha.NewCaptcha(driver, store.UseWithCtx(c))
cp := base64Captcha.NewCaptcha(driver, store)
id, b64s, err := cp.Generate()
@@ -35,6 +35,6 @@ func (b *BaseApi) Captcha(c *gin.Context) {
response.OkWithDetailed(systemRes.SysCaptchaResponse{
CaptchaId: id,
PicPath: b64s,
- CaptchaLength: global.ZC_CONFIG.Captcha.KeyLong,
+ CaptchaLength: 6,
}, "Verification code obtained successfully", c)
}
diff --git a/api_grpc/slot_gateway/enter.go b/api_grpc/slot_gateway/enter.go
index 527ca0e..643264c 100644
--- a/api_grpc/slot_gateway/enter.go
+++ b/api_grpc/slot_gateway/enter.go
@@ -1,7 +1,160 @@
package slot_gateway
-import "oplian/service"
+import (
+ "context"
+ "encoding/json"
+ "errors"
+ "fmt"
+ "go.uber.org/zap"
+ "google.golang.org/protobuf/types/known/emptypb"
+ "log"
+ "oplian/define"
+ "oplian/global"
+ "oplian/model/common/response"
+ responseModel "oplian/model/system/response"
+ "oplian/service"
+ "oplian/service/gateway"
+ "oplian/service/pb"
+ systemModel "oplian/service/system"
+ "oplian/utils"
+ "strings"
+ "time"
+)
var (
- deployService = service.ServiceGroupApp.LotusServiceGroup.DeployService
+ deployService = service.ServiceGroupApp.LotusServiceGroup.DeployService
)
+
+type ExaFileUploadAndDownload struct {
+ ID uint `json:"fileId"` // 文件id
+ Name string `json:"name"` // 文件名
+ Url string `json:"url"` // 文件地址
+ Version string `json:"version"` // 版本号
+ SuitSystem string `json:"suitSystem"` // 适用的系统
+ FileMd5 string `json:"fileMd5"` // 文件md5编码
+}
+
+func (slot *SlotGateWayServiceImpl) ReplacePlugFile(ctx context.Context, args *pb.ReplaceFileInfo) (*emptypb.Empty, error) {
+ defer func() {
+ if err := recover(); err != nil {
+ println(err.(string))
+ }
+ }()
+
+ log.Println("ReplaceFile begin")
+
+ var fileList []ExaFileUploadAndDownload
+
+ switch args.FileName {
+ case define.ProgramLotus.String(), define.ProgramMiner.String(), define.ProgramWorkerTask.String(), define.ProgramWorkerStorage.String(), "test":
+ //os.Remove(path.Join(define.PathIpfsProgram, args.FileName))
+ // 获取对应的产品id对应的文件id
+ data, err := utils.RequestDo(args.DownloadUrl, define.SlotFileListRouter+"?productId="+utils.Int64ToString(int64(args.ProductId)),
+ "", nil, time.Second*15)
+ if err != nil {
+ log.Println("get slot file List failed: ", err.Error())
+ return &emptypb.Empty{}, err
+ }
+ // 解析返回信息
+ type Response struct {
+ Code int `json:"code"`
+ Data response.PageResult `json:"data"`
+ Msg string `json:"msg"`
+ }
+ var dataRes Response
+ if err = json.Unmarshal(data, &dataRes); err != nil {
+ log.Println(err.Error())
+ return &emptypb.Empty{}, err
+ }
+ // 解析返回的file信息
+ fileData, _ := json.Marshal(dataRes.Data.List)
+ if err = json.Unmarshal(fileData, &fileList); err != nil {
+ log.Println(err.Error())
+ return &emptypb.Empty{}, err
+ }
+ // 循环拉取文件信息
+ for _, val := range fileList {
+ // 将对应的版本的文件都拉取到gateway上面,方便后面op拉取
+ _, err := new(gateway.DownloadService).DowloadFile("http://"+args.DownloadUrl+define.SlotDownloadFileRouter+"?fileId="+utils.Int64ToString(int64(val.ID)),
+ define.PathIpfsProgram, args.FileName+"-"+strings.Replace(val.SuitSystem, " ", "-", -1))
+ if err != nil {
+ log.Println("DownloadFile err:", err.Error())
+ }
+ }
+ default:
+ return &emptypb.Empty{}, errors.New("non system required plugin files")
+ }
+
+ log.Println("args", args)
+ log.Println("len(fileList)", len(fileList))
+ log.Println("fileList", fileList)
+
+ fileInfoList := make([]*pb.ReplaceInfo, len(fileList))
+ for i := 0; i < len(fileList); i++ {
+ fileInfoList[i] = &pb.ReplaceInfo{System: fileList[i].SuitSystem, FileMd5: fileList[i].FileMd5}
+ }
+
+ log.Println("fileInfoList", fileInfoList)
+
+ // 获取gateway下面的机器列表
+ hostService := systemModel.HostRecordService{}
+ hostList, err := hostService.GetSysHostRecordListForReplace(global.GateWayID.String())
+ if err != nil {
+ global.ZC_LOG.Error("获取节点下的主机列表失败!", zap.Error(err))
+ }
+
+ if len(hostList) == 0 {
+ return &emptypb.Empty{}, errors.New("non system required plugin files")
+ }
+
+ fmt.Println("pb.OpReplaceFileInfo", &pb.OpReplaceFileInfo{FileName: args.FileName, FileInfo: fileInfoList})
+
+ client, dis := global.OpClinets.GetOpClient("b4eb6358-3b86-4f99-8e01-786463e3c6ea")
+ if client == nil || dis {
+ log.Println("opClient Connection failed:" + "b4eb6358-3b86-4f99-8e01-786463e3c6ea" + " opIp: " + "10.0.8.220")
+ return &emptypb.Empty{}, errors.New("non system required plugin files")
+ }
+ // 判断是否能成功连接
+ _, err = client.OpReplacePlugFile1(ctx, &pb.String{Value: "test op connect"})
+ if err != nil {
+ log.Println("OpClinets error, opIp: ", "10.0.8.220", err.Error())
+ return &emptypb.Empty{}, errors.New("non system required plugin files")
+ }
+ // 转到op,进行文件的拉取
+ _, err = client.OpReplacePlugFile(ctx, &pb.OpReplaceFileInfo{FileName: args.FileName, FileInfo: fileInfoList})
+ if err != nil {
+ log.Println("OpReplacePlugFile error, opIp: ", "10.0.8.220", err.Error())
+ return &emptypb.Empty{}, errors.New("non system required plugin files")
+ }
+ return &emptypb.Empty{}, nil
+
+ // 循环gateway下面的op,根据对应linux版本下载不同的文件,如果文件存在,MD5相同则不拉取,不同则拉取替换
+ for _, v := range hostList {
+ go func(opInfo responseModel.SysHostRecordPatrol) {
+ defer func() {
+ if err := recover(); err != nil {
+ println(err.(string))
+ }
+ }()
+ client, dis := global.OpClinets.GetOpClient(opInfo.UUID)
+ if client == nil || dis {
+ log.Println("opClient Connection failed:" + opInfo.UUID + " opIp: " + opInfo.IntranetIP)
+ return
+ }
+ // 判断是否能成功连接
+ _, err := client.OpReplacePlugFile1(ctx, &pb.String{Value: "test op connect"})
+ if err != nil {
+ log.Println("OpClinets error, opIp: ", opInfo.IntranetIP, err.Error())
+ return
+ }
+ // 转到op,进行文件的拉取
+ _, err = client.OpReplacePlugFile(ctx, &pb.OpReplaceFileInfo{FileName: args.FileName, FileInfo: fileInfoList})
+ if err != nil {
+ log.Println("OpReplacePlugFile error, opIp: ", opInfo.IntranetIP, err.Error())
+ return
+ }
+ }(v)
+ }
+
+ return &emptypb.Empty{}, nil
+}
diff --git a/api_grpc/slot_gateway/worker_car.go b/api_grpc/slot_gateway/worker_car.go
new file mode 100644
index 0000000..0ffd267
--- /dev/null
+++ b/api_grpc/slot_gateway/worker_car.go
@@ -0,0 +1,256 @@
+package slot_gateway
+
+import (
+ "context"
+ "errors"
+ "fmt"
+ "oplian/define"
+ "oplian/model/lotus"
+ "oplian/model/slot"
+ "oplian/model/slot/response"
+ "oplian/service/pb"
+ slot2 "oplian/service/slot"
+ "oplian/utils"
+ "sync"
+)
+
+type SlotGateWayServiceImpl struct {
+ CarUrlMap map[string]string
+ CarUrlLockRW sync.RWMutex
+}
+
+var SlotGateWayService = SlotGateWayServiceImpl{
+ CarUrlMap: make(map[string]string),
+}
+
+// GetRunWorkerTask 获取在跑任务 OK
+func (sl *SlotGateWayServiceImpl) GetRunWorkerTask(ctx context.Context, args *pb.String) (*pb.CarWorkerTaskNoInfo, error) {
+
+ resInfo := &pb.CarWorkerTaskNoInfo{}
+ resData, err := slot2.WorkerCarServiceApi.GetRunWorkerTask(args)
+ if err != nil {
+ return resInfo, err
+ }
+ if (resData != slot.WorkerCarTaskNo{}) {
+
+ resInfo.Id = uint64(resData.ID)
+ resInfo.TaskId = uint64(resData.TaskId)
+ resInfo.MinerId = resData.MinerId
+ resInfo.WorkerIp = resData.WorkerIp
+ resInfo.CarNo = resData.CarNo
+ resInfo.StartNo = uint64(resData.StartNo)
+ resInfo.EndNo = uint64(resData.EndNo)
+ resInfo.InputDir = resData.InputDir
+ resInfo.OutputDir = resData.OutputDir
+ resInfo.TaskStatus = uint64(resData.TaskStatus)
+ }
+
+ return resInfo, nil
+}
+
+// ModifyCarTaskNo 更新car任务编号 OK
+func (slot *SlotGateWayServiceImpl) ModifyCarTaskNo(ctx context.Context, args *pb.CarWorkerTaskNoInfo) (*pb.ResponseMsg, error) {
+
+ resInfo := &pb.ResponseMsg{}
+ err := slot2.WorkerCarServiceApi.ModifyCarTaskNo(args)
+ if err != nil {
+ return resInfo, err
+ }
+ return resInfo, nil
+}
+
+// AddCarWorkerTaskDetail 新增workerTask明细 OK
+func (slot *SlotGateWayServiceImpl) AddCarWorkerTaskDetail(ctx context.Context, args *pb.CarWorkerTaskDetailInfo) (*pb.ResponseMsg, error) {
+
+ resInfo := &pb.ResponseMsg{}
+
+ Height := utils.BlockHeight()
+ Height += define.DealDdValidity
+ paramAr := make([]lotus.LotusSectorPiece, 0)
+ paramData := &lotus.LotusSectorPiece{
+ Actor: args.MinerId,
+ WorkerIp: args.WorkerIp,
+ QueueId: args.TaskId,
+ ExpirationTime: utils.BlockHeightToTime(int64(Height)),
+ PieceCid: args.PieceCid,
+ PieceSize: args.PieceSize,
+ CarSize: int(args.CarSize),
+ DataCid: args.DataCid,
+ }
+
+ paramAr = append(paramAr, *paramData)
+ err := slot2.WorkerCarServiceApi.AddWorkerCarTaskDetail(args.MinerId, paramAr)
+ if err != nil {
+ return resInfo, err
+ }
+ return resInfo, nil
+}
+
+// GetRunCarTaskDetail 获取在跑workerCar任务明细 OK
+func (slot *SlotGateWayServiceImpl) GetRunCarTaskDetail(ctx context.Context, args *pb.WorkerCarParam) (*pb.CarWorkerTaskDetailInfo, error) {
+
+ resInfo := &pb.CarWorkerTaskDetailInfo{}
+ resData, err := slot2.WorkerCarServiceApi.GetRunCarTaskDetail(args.WorkerIp, args.MinerId, int(args.TaskType))
+ if err != nil {
+ return resInfo, err
+ }
+
+ if (resData != response.CarTaskDetailInfo{}) {
+ resInfo.Id = uint64(resData.Id)
+ resInfo.PieceCid = resData.PieceCid
+ resInfo.PieceSize = resData.PieceSize
+ resInfo.CarSize = uint64(resData.CarSize)
+ resInfo.DataCid = resData.DataCid
+ resInfo.WalletAddr = resData.QuotaWallet
+ resInfo.TaskStatus = uint64(resData.JobStatus)
+ resInfo.OriginalOpId = resData.OriginalOpId
+ resInfo.OriginalDir = resData.OriginalDir
+ resInfo.ValidityDays = uint64(resData.ValidityDays)
+ }
+
+ return resInfo, nil
+}
+
+// ModifyCarTaskDetailInfo 更改任务明细信息 OK
+func (slot *SlotGateWayServiceImpl) ModifyCarTaskDetailInfo(ctx context.Context, args *pb.CarWorkerTaskDetailInfo) (*pb.ResponseMsg, error) {
+
+ resInfo := &pb.ResponseMsg{}
+ err := slot2.WorkerCarServiceApi.ModifyCarTaskDetailInfo(args)
+ if err != nil {
+ return resInfo, err
+ }
+ return resInfo, nil
+}
+
+// GetRand 获取随机数 OK
+func (slot *SlotGateWayServiceImpl) GetRand(ctx context.Context, args *pb.String) (*pb.RandList, error) {
+
+ resInfo := &pb.RandList{}
+ resData, err := slot2.WorkerCarServiceApi.GetRand(&pb.String{})
+ if err != nil {
+
+ }
+ for _, v := range resData {
+
+ data := &pb.RandInfo{
+ NumberIndex: uint64(v.NumIndex),
+ Number: uint64(v.Number),
+ }
+ resInfo.RandInfo = append(resInfo.RandInfo, data)
+ }
+
+ return resInfo, nil
+}
+
+// GetWaitCarTaskDetail 获取待创建任务明细 OK
+func (sl *SlotGateWayServiceImpl) GetWaitCarTaskDetail(ctx context.Context, args *pb.WorkerCarParam) (*pb.CarWorkerTaskDetailInfo, error) {
+
+ resInfo := &pb.CarWorkerTaskDetailInfo{}
+ detailData, err := slot2.WorkerCarServiceApi.GetWaitCarTaskDetail(args.WorkerIp, args.MinerId)
+ if err != nil {
+ return resInfo, err
+ }
+
+ if (detailData != slot.WorkerCarTaskDetail{}) {
+ resInfo.Id = uint64(detailData.ID)
+ resInfo.MinerId = detailData.MinerId
+ resInfo.WorkerIp = detailData.WorkerIp
+ resInfo.DealId = detailData.DealId
+ resInfo.CarName = detailData.CarName
+ }
+
+ return resInfo, nil
+}
+
+// GetAllCarTaskDetail 获取所有待创建任务明细 OK
+func (sl *SlotGateWayServiceImpl) GetAllCarTaskDetail(ctx context.Context, args *pb.WorkerCarParam) (*pb.CarWorkerTaskDetailList, error) {
+
+ resInfo := &pb.CarWorkerTaskDetailList{}
+ resData, err := slot2.WorkerCarServiceApi.GetExecuteWorkerCarTask(args.MinerId, define.CarTaskTypeManual)
+ if err != nil {
+ return resInfo, err
+ }
+ if (resData != slot.WorkerCarTask{}) {
+
+ detailData, err := slot2.WorkerCarServiceApi.GetAllCarTaskDetail(int(resData.ID), args.MinerId)
+ if err != nil {
+ return resInfo, err
+ }
+
+ if len(detailData) > 0 {
+
+ for _, v := range detailData {
+
+ data := &pb.CarWorkerTaskDetailInfo{
+ WorkerIp: v.WorkerIp,
+ //DealId: v.DealId,
+ }
+ resInfo.CarWorkerTaskDetailInfo = append(resInfo.CarWorkerTaskDetailInfo, data)
+ }
+ }
+ }
+
+ return resInfo, nil
+}
+
+// CarFileExist 判断car文件是否存在 OK
+func (slot *SlotGateWayServiceImpl) CarFileExist(ctx context.Context, args *pb.SectorID) (*pb.String, error) {
+ SlotGateWayService.CarUrlLockRW.RLock()
+ defer SlotGateWayService.CarUrlLockRW.RUnlock()
+
+ resInfo := &pb.String{}
+ if carUrl, ok := SlotGateWayService.CarUrlMap[args.PieceCid]; ok {
+ resInfo.Value = carUrl
+ } else {
+ return resInfo, fmt.Errorf("%s,car文件路径找不到", args.PieceCid)
+ }
+
+ return resInfo, nil
+}
+
+// GetBoostConfig 获取boost信息配置
+func (slot *SlotGateWayServiceImpl) GetBoostConfig(ctx context.Context, args *pb.String) (*pb.String, error) {
+ return slot2.WorkerCarServiceApi.GetBoostConfig(args.Value)
+}
+
+// GetMainDisk 获取根目录
+func (slot *SlotGateWayServiceImpl) GetMainDisk(ctx context.Context, args *pb.String) (*pb.String, error) {
+ if define.MainDisk == "" {
+ return &pb.String{}, errors.New("MainDisk 配置目录为空")
+ }
+ return &pb.String{Value: define.MainDisk}, nil
+}
+
+// DistributeWorkerTask workerCar任务分发
+func (slot *SlotGateWayServiceImpl) DistributeWorkerTask(ctx context.Context, args *pb.String) (*pb.String, error) {
+
+ go func() {
+
+ //记录Car文件
+ res, err := slot2.WorkerCarServiceApi.GetCarUrlList(args.Value)
+ if err != nil {
+ return
+ }
+
+ for _, v := range res {
+ if v.CarPath != "" && v.PieceCid != "" {
+ SlotGateWayService.CarUrlLockRW.Lock()
+ SlotGateWayService.CarUrlMap[v.PieceCid] = v.CarPath
+ SlotGateWayService.CarUrlLockRW.Unlock()
+ }
+ }
+
+ }()
+
+ return &pb.String{}, slot2.WorkerCarServiceApi.WorkerCarTask(args.Value)
+}
+
+// AddCarRand 生成随机数
+func (slot *SlotGateWayServiceImpl) AddCarRand(ctx context.Context, args *pb.String) (*pb.String, error) {
+ return &pb.String{}, slot2.WorkerCarServiceApi.AddCarRand()
+}
+
+// AddCarFile 增加Car文件
+func (slot *SlotGateWayServiceImpl) AddCarFile(ctx context.Context, args *pb.CarFiles) (*pb.String, error) {
+ return &pb.String{}, slot2.WorkerCarServiceApi.AddCarFiles(args)
+}
diff --git a/cmd/oplian-gateway/cmd/run.go b/cmd/oplian-gateway/cmd/run.go
index 8373854..cfa2986 100644
--- a/cmd/oplian-gateway/cmd/run.go
+++ b/cmd/oplian-gateway/cmd/run.go
@@ -10,6 +10,7 @@ import (
"log"
"net"
"oplian/api_grpc/gateway"
+ "oplian/api_grpc/slot_gateway"
"oplian/core"
"oplian/define"
"oplian/global"
@@ -38,8 +39,6 @@ var Run = &cli.Command{
zap.ReplaceGlobals(global.ZC_LOG)
global.ZC_DB = initialize.Gorm()
- initialize.Timer()
- initialize.DBList()
if global.ZC_DB != nil {
initialize.RegisterTables(global.ZC_DB)
log.Println(initialize.InitMysqlData())
@@ -75,12 +74,12 @@ var Run = &cli.Command{
}
}
log.Println("---step5---")
-
+
service.ServiceGroupApp.GatewayServiceGroup.DownloadAddressFile([]string{define.IPAddressFile}, define.PathIpfsConfig, define.DownLoadAddressOut)
-
+
service.ServiceGroupApp.GatewayServiceGroup.DownloadAddressFile([]string{define.ProgramLotus.String(), define.ProgramMiner.String(),
define.ProgramWorkerTask.String(), define.ProgramBoost.String(), define.ProgramBoostd.String()}, define.PathIpfsProgram, define.DownLoadAddressOut)
-
+
service.ServiceGroupApp.GatewayServiceGroup.DownloadAddressFile([]string{define.OPlianOpFile, define.OPlianOpC2File}, define.PathOplian, define.DownLoadAddressOut)
initialize.GatewayGenerateUUID()
diff --git a/cmd/oplian/main.go b/cmd/oplian/main.go
index 31c4078..d5e1e3b 100644
--- a/cmd/oplian/main.go
+++ b/cmd/oplian/main.go
@@ -44,8 +44,6 @@ func main() {
global.ZC_LOG = core.Zap()
zap.ReplaceGlobals(global.ZC_LOG)
global.ZC_DB = initialize.Gorm()
- initialize.Timer()
- initialize.DBList()
//go initialize.PolicyWarn(context.TODO())
if global.ZC_DB != nil {
initialize.RegisterTables(global.ZC_DB)
diff --git a/config.docker.yaml b/config.docker.yaml
deleted file mode 100644
index aff5af3..0000000
--- a/config.docker.yaml
+++ /dev/null
@@ -1,195 +0,0 @@
-# zc-admin/server Global Configuration
-
-# jwt configuration
-jwt:
- signing-key: qmPlus
- expires-time: 7d
- buffer-time: 1d
- issuer: qmPlus
-# zap logger configuration
-zap:
- level: info
- format: console
- prefix: "[zc-admin/server]"
- director: log
- show-line: true
- encode-level: LowercaseColorLevelEncoder
- stacktrace-key: stacktrace
- log-in-console: true
-
-# email configuration
-email:
- to: xxx@qq.com
- port: 465
- from: xxx@163.com
- host: smtp.163.com
- is-ssl: true
- secret: xxx
- nickname: test
-
-# system configuration
-system:
- env: public # Change to "develop" to skip authentication for development mode
- addr: 8888
- db-type: mysql
- oss-type: local # 控制oss选择走本地还是 七牛等其他仓 自行增加其他oss仓可以在 server/utils/upload/upload.go 中 NewOss函数配置
- use-redis: false # 使用redis
- use-multipoint: false
- # IP限制次数 一个小时15000次
- iplimit-count: 15000
- # IP限制一个小时
- iplimit-time: 3600
-
-# captcha configuration
-captcha:
- key-long: 6
- img-width: 240
- img-height: 80
-
-# mysql connect configuration
-# 未初始化之前请勿手动修改数据库信息!!!如果一定要手动初始化请看(https://gin-vue-admin.com/docs/first_master)
-mysql:
- path: ""
- port: ""
- config: ""
- db-name: ""
- username: ""
- password: ""
- max-idle-conns: 10
- max-open-conns: 100
- log-mode: ""
- log-zap: false
-
-# pgsql connect configuration
-# 未初始化之前请勿手动修改数据库信息!!!如果一定要手动初始化请看(https://gin-vue-admin.com/docs/first_master)
-pgsql:
- path: ""
- port: ""
- config: ""
- db-name: ""
- username: ""
- password: ""
- max-idle-conns: 10
- max-open-conns: 100
- log-mode: ""
- log-zap: false
-
-db-list:
- - disable: true # 是否禁用
- type: "" # 数据库的类型,目前支持mysql、pgsql
- alias-name: "" # 数据库的名称,注意: alias-name 需要在db-list中唯一
- path: ""
- port: ""
- config: ""
- db-name: ""
- username: ""
- password: ""
- max-idle-conns: 10
- max-open-conns: 100
- log-mode: ""
- log-zap: false
-
-
-# local configuration
-local:
- path: uploads/file
- store-path: uploads/file
-
-# autocode configuration
-autocode:
- transfer-restart: true
- # root 自动适配项目根目录
- # 请不要手动配置,他会在项目加载的时候识别出根路径
- root: ""
- server: /server
- server-plug: /plugin/%s
- server-api: /api/v1/%s
- server-initialize: /initialize
- server-model: /model/%s
- server-request: /model/%s/request/
- server-router: /router/%s
- server-service: /service/%s
- web: /web/src
- web-api: /api
- web-form: /view
- web-table: /view
-
-# qiniu configuration (请自行七牛申请对应的 公钥 私钥 bucket 和 域名地址)
-qiniu:
- zone: ZoneHuaDong
- bucket: ""
- img-path: ""
- use-https: false
- access-key: ""
- secret-key: ""
- use-cdn-domains: false
-
-# aliyun oss configuration
-aliyun-oss:
- endpoint: yourEndpoint
- access-key-id: yourAccessKeyId
- access-key-secret: yourAccessKeySecret
- bucket-name: yourBucketName
- bucket-url: yourBucketUrl
- base-path: yourBasePath
-
-# tencent cos configuration
-tencent-cos:
- bucket: xxxxx-10005608
- region: ap-shanghai
- secret-id: your-secret-id
- secret-key: your-secret-key
- base-url: https://gin.vue.admin
- path-prefix: zc-admin/server
-
-# aws s3 configuration (minio compatible)
-aws-s3:
- bucket: xxxxx-10005608
- region: ap-shanghai
- endpoint: ""
- s3-force-path-style: false
- disable-ssl: false
- secret-id: your-secret-id
- secret-key: your-secret-key
- base-url: https://gin.vue.admin
- path-prefix: zc-admin/server
-
-# huawei obs configuration
-hua-wei-obs:
- path: you-path
- bucket: you-bucket
- endpoint: you-endpoint
- access-key: you-access-key
- secret-key: you-secret-key
-
-# excel configuration
-excel:
- dir: ./resource/excel/
-
-# timer task db clear table
-Timer:
- start: true
- spec: "@daily" # 定时任务详细配置参考 https://pkg.go.dev/github.com/robfig/cron/v3
- detail:
- - tableName: sys_operation_records
- compareField: created_at
- interval: 2160h
- - tableName: jwt_blacklists
- compareField: created_at
- interval: 168h
-
-# 跨域配置
-# 需要配合 server/initialize/router.go#L32 使用
-cors:
- mode: whitelist # 放行模式: allow-all, 放行全部; whitelist, 白名单模式, 来自白名单内域名的请求添加 cors 头; strict-whitelist 严格白名单模式, 白名单外的请求一律拒绝
- whitelist:
- - allow-origin: example1.com
- allow-headers: content-type
- allow-methods: GET, POST
- expose-headers: Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type
- allow-credentials: true # 布尔值
- - allow-origin: example2.com
- allow-headers: content-type
- allow-methods: GET, POST
- expose-headers: Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type
- allow-credentials: true # 布尔值
diff --git a/config/auto_code.go b/config/auto_code.go
deleted file mode 100644
index 850aafd..0000000
--- a/config/auto_code.go
+++ /dev/null
@@ -1,18 +0,0 @@
-package config
-
-type Autocode struct {
- TransferRestart bool `mapstructure:"transfer-restart" json:"transfer-restart" yaml:"transfer-restart"`
- Root string `mapstructure:"root" json:"root" yaml:"root"`
- Server string `mapstructure:"server" json:"server" yaml:"server"`
- SApi string `mapstructure:"server-api" json:"server-api" yaml:"server-api"`
- SPlug string `mapstructure:"server-plug" json:"server-plug" yaml:"server-plug"`
- SInitialize string `mapstructure:"server-initialize" json:"server-initialize" yaml:"server-initialize"`
- SModel string `mapstructure:"server-model" json:"server-model" yaml:"server-model"`
- SRequest string `mapstructure:"server-request" json:"server-request" yaml:"server-request"`
- SRouter string `mapstructure:"server-router" json:"server-router" yaml:"server-router"`
- SService string `mapstructure:"server-service" json:"server-service" yaml:"server-service"`
- Web string `mapstructure:"web" json:"web" yaml:"web"`
- WApi string `mapstructure:"web-api" json:"web-api" yaml:"web-api"`
- WForm string `mapstructure:"web-form" json:"web-form" yaml:"web-form"`
- WTable string `mapstructure:"web-table" json:"web-table" yaml:"web-table"`
-}
diff --git a/config/captcha.go b/config/captcha.go
deleted file mode 100644
index 0c1b17f..0000000
--- a/config/captcha.go
+++ /dev/null
@@ -1,7 +0,0 @@
-package config
-
-type Captcha struct {
- KeyLong int `mapstructure:"key-long" json:"key-long" yaml:"key-long"`
- ImgWidth int `mapstructure:"img-width" json:"img-width" yaml:"img-width"`
- ImgHeight int `mapstructure:"img-height" json:"img-height" yaml:"img-height"`
-}
diff --git a/config/config.go b/config/config.go
index c288296..826a234 100644
--- a/config/config.go
+++ b/config/config.go
@@ -1,22 +1,14 @@
package config
type Server struct {
- JWT JWT `mapstructure:"jwt" json:"jwt" yaml:"jwt"`
- Zap Zap `mapstructure:"zap" json:"zap" yaml:"zap"`
- Email Email `mapstructure:"email" json:"email" yaml:"email"`
- System System `mapstructure:"system" json:"system" yaml:"system"`
- Captcha Captcha `mapstructure:"captcha" json:"captcha" yaml:"captcha"`
- // auto
- AutoCode Autocode `mapstructure:"autocode" json:"autocode" yaml:"autocode"`
+ JWT JWT `mapstructure:"jwt" json:"jwt" yaml:"jwt"`
+ Zap Zap `mapstructure:"zap" json:"zap" yaml:"zap"`
+ System System `mapstructure:"system" json:"system" yaml:"system"`
// gorm
- Mysql Mysql `mapstructure:"mysql" json:"mysql" yaml:"mysql"`
- DBList []SpecializedDB `mapstructure:"db-list" json:"db-list" yaml:"db-list"`
+ Mysql Mysql `mapstructure:"mysql" json:"mysql" yaml:"mysql"`
// oss
Local Local `mapstructure:"local" json:"local" yaml:"local"`
- Excel Excel `mapstructure:"excel" json:"excel" yaml:"excel"`
- Timer Timer `mapstructure:"timer" json:"timer" yaml:"timer"`
-
// 跨域配置
Cors CORS `mapstructure:"cors" json:"cors" yaml:"cors"`
}
diff --git a/config/config.yaml b/config/config.yaml
index cf0f1a5..a617139 100644
--- a/config/config.yaml
+++ b/config/config.yaml
@@ -1,22 +1,3 @@
-autocode:
- transfer-restart: true
- root: G:\project\zc-admin
- server: /server
- server-api: /api/v1/%s
- server-plug: /plugin/%s
- server-initialize: /initialize
- server-model: /model/%s
- server-request: /model/%s/request/
- server-router: /router/%s
- server-service: /service/%s
- web: /web/src
- web-api: /api
- web-form: /view
- web-table: /view
-captcha:
- key-long: 6
- img-width: 240
- img-height: 80
cors:
mode: whitelist
whitelist:
@@ -33,7 +14,7 @@ cors:
Content-Type
allow-credentials: true
jwt:
- signing-key: 8b356e3d-5e35-47a6-a933-07baa8cc0fcb
+ signing-key: abcd
expires-time: 7d
buffer-time: 1d
issuer: qmPlus
@@ -41,12 +22,12 @@ local:
path: uploads/file
store-path: uploads/file
mysql:
- path: 8.129.83.148
+ path: 127.0.0.1
port: "3306"
config: charset=utf8mb4&parseTime=True&loc=Local
- db-name: zc_test
+ db-name: test
username: root
- password: ZCXTong@2023!+
+ password: 123456
max-idle-conns: 10
max-open-conns: 100
log-mode: error
@@ -58,15 +39,4 @@ system:
oss-type: local
use-multipoint: false
iplimit-count: 15000
- iplimit-time: 3600
-timer:
- start: true
- spec: '@daily'
- with_seconds: false
- detail:
- - tableName: sys_operation_records
- compareField: created_at
- interval: 2160h
- - tableName: jwt_blacklists
- compareField: created_at
- interval: 168h
\ No newline at end of file
+ iplimit-time: 3600
\ No newline at end of file
diff --git a/core/viper.go b/core/viper.go
index 4ebbfe9..776ff86 100644
--- a/core/viper.go
+++ b/core/viper.go
@@ -3,19 +3,16 @@ package core
import (
"flag"
"fmt"
+ "github.com/fsnotify/fsnotify"
"github.com/gin-gonic/gin"
+ "github.com/spf13/viper"
"oplian/config"
"oplian/core/internal"
"oplian/define"
"os"
- "path/filepath"
-
- "github.com/fsnotify/fsnotify"
- "github.com/spf13/viper"
uuid "github.com/satori/go.uuid"
"oplian/global"
- _ "oplian/packfile"
)
func Viper(path ...string) *viper.Viper {
@@ -24,7 +21,7 @@ func Viper(path ...string) *viper.Viper {
if len(path) == 0 {
flag.StringVar(&config, "c", "", "choose config file.")
flag.Parse()
- if config == "" { // 判断命令行参数是否为空
+ if config == "" {
if configEnv := os.Getenv(internal.ConfigEnv); configEnv == "" { // 判断 internal.ConfigEnv 常量存储的环境变量是否为空
switch gin.Mode() {
case gin.DebugMode:
@@ -68,7 +65,6 @@ func Viper(path ...string) *viper.Viper {
fmt.Println(err)
}
- global.ZC_CONFIG.AutoCode.Root, _ = filepath.Abs("..")
return v
}
diff --git a/deploy/docker-compose/docker-compose-dev.yaml b/deploy/docker-compose/docker-compose-dev.yaml
deleted file mode 100644
index daa2bf3..0000000
--- a/deploy/docker-compose/docker-compose-dev.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-version: "3"
-
-# 声明一个名为network的networks,subnet为network的子网地址,默认网关是177.7.0.1
-networks:
- network:
- ipam:
- driver: default
- config:
- - subnet: '177.7.0.0/16'
-
-# 设置mysql,redis持久化保存
-volumes:
- mysql:
- redis:
-
-services:
- web:
- image: node:16
- container_name: gva-web
- hostname: gva-web #可以通过容器名访问
- restart: always
- ports:
- - '8080:8080'
- depends_on:
- - server
- working_dir: /web # 如果docker 设置了workdir 则此处不需要设置
- #若网络不太好,请自行换源,如下
- #command: bash -c "yarn config set registry https://registry.npm.taobao.org --global && yarn install && yarn serve"
- command: bash -c "yarn install && yarn serve"
- volumes:
- - ../../web:/web
- networks:
- network:
- ipv4_address: 177.7.0.11
-
- server:
- image: golang:1.16
- container_name: gva-server
- hostname: gva-server
- restart: always
- ports:
- - '8888:8888'
- depends_on:
- - mysql
- - redis
- volumes:
- - ../../server:/server
- working_dir: /server # 如果docker 设置了workdir 则此处不需要设置
- command: bash -c "go env -w GOPROXY=https://goproxy.cn,direct && go mod tidy && go run main.go"
- links:
- - mysql
- - redis
- networks:
- network:
- ipv4_address: 177.7.0.12
-
- mysql:
- image: mysql:8.0.21 # 如果您是 arm64 架构:如 MacOS 的 M1,请修改镜像为 image: mysql/mysql-server:8.0.21
- container_name: gva-mysql
- hostname: gva-mysql
- command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci #设置utf8字符集
- restart: always
- ports:
- - "13306:3306" # host物理直接映射端口为13306
- environment:
- #MYSQL_ROOT_PASSWORD: 'Aa@6447985' # root管理员用户密码
- MYSQL_DATABASE: 'qmPlus' # 初始化启动时要创建的数据库的名称
- MYSQL_USER: 'gva'
- MYSQL_PASSWORD: 'Aa@6447985'
- volumes:
- - mysql:/var/lib/mysql
- networks:
- network:
- ipv4_address: 177.7.0.13
diff --git a/deploy/docker-compose/docker-compose.yaml b/deploy/docker-compose/docker-compose.yaml
deleted file mode 100644
index 6c8ae02..0000000
--- a/deploy/docker-compose/docker-compose.yaml
+++ /dev/null
@@ -1,78 +0,0 @@
-version: "3"
-
-# 声明一个名为network的networks,subnet为network的子网地址,默认网关是177.7.0.1
-networks:
- network:
- ipam:
- driver: default
- config:
- - subnet: '177.7.0.0/16'
-
-# 设置mysql,redis持久化保存
-volumes:
- mysql:
- redis:
-
-services:
- web:
- build:
- context: ../../web
- dockerfile: ./Dockerfile
- container_name: gva-web
- restart: always
- ports:
- - '8080:8080'
- depends_on:
- - server
- command: [ 'nginx-debug', '-g', 'daemon off;' ]
- networks:
- network:
- ipv4_address: 177.7.0.11
-
- server:
- build:
- context: ../../server
- dockerfile: ./Dockerfile
- container_name: gva-server
- restart: always
- ports:
- - '8888:8888'
- depends_on:
- - mysql
- - redis
- links:
- - mysql
- - redis
- networks:
- network:
- ipv4_address: 177.7.0.12
-
- mysql:
- image: mysql:8.0.21 # 如果您是 arm64 架构:如 MacOS 的 M1,请修改镜像为 image: mysql/mysql-server:8.0.21
- container_name: gva-mysql
- command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci #设置utf8字符集
- restart: always
- ports:
- - "13306:3306" # host物理直接映射端口为13306
- environment:
- #MYSQL_ROOT_PASSWORD: 'Aa@6447985' # root管理员用户密码
- MYSQL_DATABASE: 'qmPlus' # 初始化启动时要创建的数据库的名称
- MYSQL_USER: 'gva'
- MYSQL_PASSWORD: 'Aa@6447985'
- volumes:
- - mysql:/var/lib/mysql
- networks:
- network:
- ipv4_address: 177.7.0.13
-
- redis:
- image: redis:6.0.6
- container_name: gva-redis # 容器名
- restart: always
- ports:
- - '16379:6379'
- volumes:
- - redis:/data
- networks:
- network:
- ipv4_address: 177.7.0.14
diff --git a/deploy/docker/Dockerfile b/deploy/docker/Dockerfile
deleted file mode 100644
index 0a567f2..0000000
--- a/deploy/docker/Dockerfile
+++ /dev/null
@@ -1,18 +0,0 @@
-FROM centos:7
-WORKDIR /opt
-ENV LANG=en_US.utf8
-COPY deploy/docker/entrypoint.sh .
-COPY build/ /usr/share/nginx/html/
-COPY server/config.yaml /usr/share/nginx/html/config.yaml
-COPY web/.docker-compose/nginx/conf.d/nginx.conf /etc/nginx/conf.d/nginx.conf
-RUN set -ex \
- && echo "LANG=en_US.utf8" > /etc/locale.conf \
- && echo "net.core.somaxconn = 1024" >> /etc/sysctl.conf \
- && echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf \
- && yum -y install yum -y install *epel* \
- && yum -y localinstall http://mirrors.ustc.edu.cn/mysql-repo/mysql57-community-release-el7.rpm \
- && yum -y install mysql-community-server git redis nginx go npm --nogpgcheck && chmod +x ./entrypoint.sh \
- && npm install -g yarn && go env -w GO111MODULE=on && go env -w GOPROXY=https://goproxy.cn,direct \
- && echo "start" > /dev/null
-EXPOSE 80
-ENTRYPOINT ["./entrypoint.sh"]
\ No newline at end of file
diff --git a/deploy/docker/entrypoint.sh b/deploy/docker/entrypoint.sh
deleted file mode 100644
index 0f6dd13..0000000
--- a/deploy/docker/entrypoint.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-if [ ! -d "/var/lib/mysql/gva" ]; then
- mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql
- mysqld --daemonize --user=mysql
- sleep 5s
- mysql -uroot -e "create database gva default charset 'utf8' collate 'utf8_bin'; grant all on gva.* to 'root'@'127.0.0.1' identified by '123456'; flush privileges;"
-else
- mysqld --daemonize --user=mysql
-fi
-redis-server &
-if [ "$1" = "actions" ]; then
- cd /opt/gva/server && go run main.go &
- cd /opt/gva/web/ && yarn serve &
-else
- /usr/sbin/nginx &
- cd /usr/share/nginx/html/ && ./server &
-fi
-echo "gva ALL start!!!"
-tail -f /dev/null
\ No newline at end of file
diff --git a/deploy/kubernetes/server/gva-server-configmap.yaml b/deploy/kubernetes/server/gva-server-configmap.yaml
deleted file mode 100644
index 573c12e..0000000
--- a/deploy/kubernetes/server/gva-server-configmap.yaml
+++ /dev/null
@@ -1,148 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: config.yaml
- annotations:
- flipped-aurora/gin-vue-admin: backend
- github: "https://github.com/flipped-aurora/gin-vue-admin.git"
- app.kubernetes.io/version: 0.0.1
- labels:
- app: gva-server
- version: gva-vue3
-data:
- config.yaml: |
- # zc-admin/server Global Configuration
-
- # jwt configuration
- jwt:
- signing-key: 'qmPlus'
- expires-time: 604800
- buffer-time: 86400
-
- # zap logger configuration
- zap:
- level: 'info'
- format: 'console'
- prefix: '[zc-admin/server]'
- director: 'log'
- link-name: 'latest_log'
- show-line: true
- encode-level: 'LowercaseColorLevelEncoder'
- stacktrace-key: 'stacktrace'
- log-in-console: true
-
- # redis configuration
- redis:
- db: 0
- addr: '127.0.0.1:6379'
- password: ''
-
- # email configuration
- email:
- to: 'xxx@qq.com'
- port: 465
- from: 'xxx@163.com'
- host: 'smtp.163.com'
- is-ssl: true
- secret: 'xxx'
- nickname: 'test'
-
- # casbin configuration
- casbin:
- model-path: './resource/rbac_model.conf'
-
- # system configuration
- system:
- env: 'develop' # Change to "develop" to skip authentication for development mode
- addr: 8888
- db-type: 'mysql'
- oss-type: 'local' # 控制oss选择走本期还是 七牛等其他仓 自行增加其他oss仓可以在 server/utils/upload/upload.go 中 NewOss函数配置
- use-multipoint: false
-
- # captcha configuration
- captcha:
- key-long: 6
- img-width: 240
- img-height: 80
-
- # mysql connect configuration
- # 未初始化之前请勿手动修改数据库信息!!!如果一定要手动初始化请看(https://www.zc-admin/server.com/docs/first)
- mysql:
- path: ''
- config: ''
- db-name: ''
- username: ''
- password: ''
- max-idle-conns: 10
- max-open-conns: 100
- log-mode: false
- log-zap: ""
-
- # local configuration
- local:
- path: 'uploads/file'
-
- # autocode configuration
- autocode:
- transfer-restart: true
- root: ""
- server: /server
- server-api: /api/v1/autocode
- server-initialize: /initialize
- server-model: /model/autocode
- server-request: /model/autocode/request/
- server-router: /router/autocode
- server-service: /service/autocode
- web: /web/src
- web-api: /api
- web-flow: /view
- web-form: /view
- web-table: /view
-
- # qiniu configuration (请自行七牛申请对应的 公钥 私钥 bucket 和 域名地址)
- qiniu:
- zone: 'ZoneHuaDong'
- bucket: ''
- img-path: ''
- use-https: false
- access-key: ''
- secret-key: ''
- use-cdn-domains: false
-
-
- # aliyun oss configuration
- aliyun-oss:
- endpoint: 'yourEndpoint'
- access-key-id: 'yourAccessKeyId'
- access-key-secret: 'yourAccessKeySecret'
- bucket-name: 'yourBucketName'
- bucket-url: 'yourBucketUrl'
- base-path: 'yourBasePath'
-
- # tencent cos configuration
- tencent-cos:
- bucket: 'xxxxx-10005608'
- region: 'ap-shanghai'
- secret-id: 'xxxxxxxx'
- secret-key: 'xxxxxxxx'
- base-url: 'https://gin.vue.admin'
- path-prefix: 'zc-admin/server'
-
- # excel configuration
- excel:
- dir: './resource/excel/'
-
-
- # timer task db clear table
- Timer:
- start: true
- spec: "@daily" # 定时任务详细配置参考 https://pkg.go.dev/github.com/robfig/cron/v3
- detail: [
- # tableName: 需要清理的表名
- # compareField: 需要比较时间的字段
- # interval: 时间间隔, 具体配置详看 time.ParseDuration() 中字符串表示 且不能为负数
- # 2160h = 24 * 30 * 3 -> 三个月
- { tableName: "sys_operation_records" , compareField: "created_at", interval: "2160h" },
- { tableName: "jwt_blacklists" , compareField: "created_at", interval: "168h" }
- #{ tableName: "log2" , compareField: "created_at", interval: "2160h" }
- ]
diff --git a/deploy/kubernetes/server/gva-server-deployment.yaml b/deploy/kubernetes/server/gva-server-deployment.yaml
deleted file mode 100644
index 766fccb..0000000
--- a/deploy/kubernetes/server/gva-server-deployment.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: gva-server
- annotations:
- flipped-aurora/gin-vue-admin: backend
- github: "https://github.com/flipped-aurora/gin-vue-admin.git"
- app.kubernetes.io/version: 0.0.1
- labels:
- app: gva-server
- version: gva-vue3
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: gva-server
- version: gva-vue3
- template:
- metadata:
- labels:
- app: gva-server
- version: gva-vue3
- spec:
- containers:
- - name: gin-vue-admin-container
- image: registry.cn-hangzhou.aliyuncs.com/gva/server:latest
- imagePullPolicy: Always
- ports:
- - containerPort: 8888
- name: http
- volumeMounts:
- - mountPath: /go/src/zc-admin/server/config.yaml
- name: config
- subPath: config.yaml
- - mountPath: /etc/localtime
- name: localtime
- resources:
- limits:
- cpu: 1000m
- memory: 2000Mi
- requests:
- cpu: 100m
- memory: 200Mi
- livenessProbe:
- failureThreshold: 1
- periodSeconds: 5
- successThreshold: 1
- tcpSocket:
- port: 8888
- timeoutSeconds: 1
- readinessProbe:
- failureThreshold: 3
- initialDelaySeconds: 30
- periodSeconds: 5
- successThreshold: 1
- tcpSocket:
- port: 8888
- timeoutSeconds: 1
- startupProbe:
- failureThreshold: 40
- periodSeconds: 5
- successThreshold: 1
- tcpSocket:
- port: 8888
- timeoutSeconds: 1
- #imagePullSecrets:
- # - name: docker-registry
- volumes:
- - name: localtime
- hostPath:
- path: /etc/localtime
- - name: config
- configMap:
- name: config.yaml
diff --git a/deploy/kubernetes/server/gva-server-service.yaml b/deploy/kubernetes/server/gva-server-service.yaml
deleted file mode 100644
index 17aaef2..0000000
--- a/deploy/kubernetes/server/gva-server-service.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: gva-server
- annotations:
- flipped-aurora/gin-vue-admin: backend
- github: "https://github.com/flipped-aurora/gin-vue-admin.git"
- app.kubernetes.io/version: 0.0.1
- labels:
- app: gva-server
- version: gva-vue3
-spec:
- selector:
- app: gva-server
- version: gva-vue3
- ports:
- - port: 8888
- name: http
- targetPort: 8888
- type: ClusterIP
-# type: NodePort
diff --git a/deploy/kubernetes/web/gva-web-configmap.yaml b/deploy/kubernetes/web/gva-web-configmap.yaml
deleted file mode 100644
index 189b861..0000000
--- a/deploy/kubernetes/web/gva-web-configmap.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: my.conf
-data:
- my.conf: |
- server {
- listen 8080;
- server_name localhost;
-
- #charset koi8-r;
- #access_log logs/host.access.log main;
-
- location / {
- root /usr/share/nginx/html;
- add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
- try_files $uri $uri/ /index.html;
- }
-
- location /api {
- proxy_set_header Host $http_host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto $scheme;
- rewrite ^/api/(.*)$ /$1 break; #重写
- proxy_pass http://gva-server:8888; # 设置代理服务器的协议和地址
- }
-
- location /api/swagger/index.html {
- proxy_pass http://gva-server:8888/swagger/index.html;
- }
- }
\ No newline at end of file
diff --git a/deploy/kubernetes/web/gva-web-deploymemt.yaml b/deploy/kubernetes/web/gva-web-deploymemt.yaml
deleted file mode 100644
index e6d15bc..0000000
--- a/deploy/kubernetes/web/gva-web-deploymemt.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: gva-web
- annotations:
- flipped-aurora/gin-vue-admin: ui
- github: "https://github.com/flipped-aurora/gin-vue-admin.git"
- app.kubernetes.io/version: 0.0.1
- labels:
- app: gva-web
- version: gva-vue3
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: gva-web
- version: gva-vue3
- template:
- metadata:
- labels:
- app: gva-web
- version: gva-vue3
- spec:
- containers:
- - name: gin-vue-admin-nginx-container
- image: registry.cn-hangzhou.aliyuncs.com/gva/web:latest
- imagePullPolicy: Always
- ports:
- - containerPort: 8080
- name: http
- readinessProbe:
- tcpSocket:
- port: 8080
- initialDelaySeconds: 10
- periodSeconds: 10
- successThreshold: 1
- failureThreshold: 3
- resources:
- limits:
- cpu: 500m
- memory: 1000Mi
- requests:
- cpu: 100m
- memory: 100Mi
- volumeMounts:
- - mountPath: /etc/nginx/conf.d/
- name: nginx-config
- volumes:
- - name: nginx-config
- configMap:
- name: my.conf
diff --git a/deploy/kubernetes/web/gva-web-ingress.yaml b/deploy/kubernetes/web/gva-web-ingress.yaml
deleted file mode 100644
index 81922f1..0000000
--- a/deploy/kubernetes/web/gva-web-ingress.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: gva-ingress
- annotations:
- kubernetes.io/ingress.class: "nginx"
-spec:
- rules:
- - host: demo.gin-vue-admin.com
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: gva-web
- port:
- number: 8080
\ No newline at end of file
diff --git a/deploy/kubernetes/web/gva-web-service.yaml b/deploy/kubernetes/web/gva-web-service.yaml
deleted file mode 100644
index c374bdb..0000000
--- a/deploy/kubernetes/web/gva-web-service.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: gva-web
- annotations:
- flipped-aurora/gin-vue-admin: ui
- github: "https://github.com/flipped-aurora/gin-vue-admin.git"
- app.kubernetes.io/version: 0.0.1
- labels:
- app: gva-web
- version: gva-vue3
-spec:
-# type: NodePort
- type: ClusterIP
- ports:
- - name: http
- port: 8080
- targetPort: 8080
- selector:
- app: gva-web
- version: gva-vue3
diff --git a/docs/docs.go b/docs/docs.go
deleted file mode 100644
index 8da8cf6..0000000
--- a/docs/docs.go
+++ /dev/null
@@ -1,6739 +0,0 @@
-// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// This file was generated by swaggo/swag
-
-package docs
-
-import (
- "bytes"
- "encoding/json"
- "strings"
-
- "github.com/alecthomas/template"
- "github.com/swaggo/swag"
-)
-
-var doc = `{
- "schemes": {{ marshal .Schemes }},
- "swagger": "2.0",
- "info": {
- "description": "{{.Description}}",
- "title": "{{.Title}}",
- "contact": {},
- "version": "{{.Version}}"
- },
- "host": "{{.Host}}",
- "basePath": "{{.BasePath}}",
- "paths": {
- "/api/createApi": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysApi"
- ],
- "summary": "创建基础api",
- "parameters": [
- {
- "description": "api路径, api中文描述, api组, 方法",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysApi"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "创建基础api",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/api/deleteApi": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysApi"
- ],
- "summary": "删除api",
- "parameters": [
- {
- "description": "ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysApi"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除api",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/api/deleteApisByIds": {
- "delete": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysApi"
- ],
- "summary": "删除选中Api",
- "parameters": [
- {
- "description": "ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.IdsReq"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除选中Api",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/api/getAllApis": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysApi"
- ],
- "summary": "获取所有的Api 不分页",
- "responses": {
- "200": {
- "description": "获取所有的Api 不分页,返回包括api列表",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysAPIListResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/api/getApiById": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysApi"
- ],
- "summary": "根据id获取api",
- "parameters": [
- {
- "description": "根据id获取api",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.GetById"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "根据id获取api,返回包括api详情",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysAPIResponse"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/api/getApiList": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysApi"
- ],
- "summary": "分页获取API列表",
- "parameters": [
- {
- "description": "分页获取API列表",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.SearchApiParams"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "分页获取API列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/api/updateApi": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysApi"
- ],
- "summary": "修改基础api",
- "parameters": [
- {
- "description": "api路径, api中文描述, api组, 方法",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysApi"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "修改基础api",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authority/copyAuthority": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Authority"
- ],
- "summary": "拷贝角色",
- "parameters": [
- {
- "description": "旧角色id, 新权限id, 新权限名, 新父角色id",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/response.SysAuthorityCopyResponse"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "拷贝角色,返回包括系统角色详情",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysAuthorityResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authority/createAuthority": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Authority"
- ],
- "summary": "创建角色",
- "parameters": [
- {
- "description": "权限id, 权限名, 父角色id",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "创建角色,返回包括系统角色详情",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysAuthorityResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authority/deleteAuthority": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Authority"
- ],
- "summary": "删除角色",
- "parameters": [
- {
- "description": "删除角色",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除角色",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authority/getAuthorityList": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Authority"
- ],
- "summary": "分页获取角色列表",
- "parameters": [
- {
- "description": "页码, 每页大小",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.PageInfo"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "分页获取角色列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authority/setDataAuthority": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Authority"
- ],
- "summary": "设置角色资源权限",
- "parameters": [
- {
- "description": "设置角色资源权限",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "设置角色资源权限",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authority/updateAuthority": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Authority"
- ],
- "summary": "更新角色信息",
- "parameters": [
- {
- "description": "权限id, 权限名, 父角色id",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "更新角色信息,返回包括系统角色详情",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysAuthorityResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authorityBtn/canRemoveAuthorityBtn": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AuthorityBtn"
- ],
- "summary": "设置权限按钮",
- "responses": {
- "200": {
- "description": "Delete successful",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authorityBtn/getAuthorityBtn": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AuthorityBtn"
- ],
- "summary": "获取权限按钮",
- "parameters": [
- {
- "description": "菜单id, 角色id, 选中的按钮id",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.SysAuthorityBtnReq"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "返回列表成功",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysAuthorityBtnRes"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authorityBtn/setAuthorityBtn": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AuthorityBtn"
- ],
- "summary": "设置权限按钮",
- "parameters": [
- {
- "description": "菜单id, 角色id, 选中的按钮id",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.SysAuthorityBtnReq"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "返回列表成功",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/createPackage": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "创建package",
- "parameters": [
- {
- "description": "创建package",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysAutoCode"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "创建package成功",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/createPlug": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "multipart/form-data"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "安装插件",
- "parameters": [
- {
- "type": "file",
- "description": "this is a test file",
- "name": "plug",
- "in": "formData",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "安装插件成功",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "array",
- "items": {
- "type": "object"
- }
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/createTemp": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "自动代码模板",
- "parameters": [
- {
- "description": "创建自动代码",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.AutoCodeStruct"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "{\"success\":true,\"data\":{},\"msg\":\"Created successfully\"}",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "/autoCode/delPackage": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "删除package",
- "parameters": [
- {
- "description": "创建package",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysAutoCode"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除package成功",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/delSysHistory": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "删除回滚记录",
- "parameters": [
- {
- "description": "请求参数",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.GetById"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除回滚记录",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/getColumn": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "获取当前表所有字段",
- "responses": {
- "200": {
- "description": "获取当前表所有字段",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/getDatabase": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "获取当前所有数据库",
- "responses": {
- "200": {
- "description": "获取当前所有数据库",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/getMeta": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "获取meta信息",
- "parameters": [
- {
- "description": "请求参数",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.GetById"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "获取meta信息",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/getPackage": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "获取package",
- "responses": {
- "200": {
- "description": "创建package成功",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/getSysHistory": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "查询回滚记录",
- "parameters": [
- {
- "description": "请求参数",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.SysAutoHistory"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "查询回滚记录,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/getTables": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "获取当前数据库所有表",
- "responses": {
- "200": {
- "description": "获取当前数据库所有表",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/preview": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "预览创建后的代码",
- "parameters": [
- {
- "description": "预览创建代码",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.AutoCodeStruct"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "预览创建后的代码",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/rollback": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "回滚自动生成代码",
- "parameters": [
- {
- "description": "请求参数",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.RollBack"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "回滚自动生成代码",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/base/captcha": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Base"
- ],
- "summary": "生成验证码",
- "responses": {
- "200": {
- "description": "生成验证码,返回包括随机数id,base64,验证码长度",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysCaptchaResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/base/login": {
- "post": {
- "produces": [
- "application/json"
- ],
- "tags": [
- "Base"
- ],
- "summary": "用户登录",
- "parameters": [
- {
- "description": "用户名, 密码, 验证码",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.Login"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "返回包括用户信息,token,过期时间",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.LoginResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/casbin/UpdateCasbin": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Casbin"
- ],
- "summary": "更新角色api权限",
- "parameters": [
- {
- "description": "权限id, 权限模型列表",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.CasbinInReceive"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "更新角色api权限",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/casbin/getPolicyPathByAuthorityId": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Casbin"
- ],
- "summary": "获取权限列表",
- "parameters": [
- {
- "description": "权限id, 权限模型列表",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.CasbinInReceive"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "获取权限列表,返回包括casbin详情列表",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PolicyPathResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/customer/customer": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaCustomer"
- ],
- "summary": "获取单一客户信息",
- "parameters": [
- {
- "type": "string",
- "description": "创建时间",
- "name": "createdAt",
- "in": "query"
- },
- {
- "type": "string",
- "description": "客户名",
- "name": "customerName",
- "in": "query"
- },
- {
- "type": "string",
- "description": "客户手机号",
- "name": "customerPhoneData",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "主键ID",
- "name": "id",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "管理角色ID",
- "name": "sysUserAuthorityID",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "管理ID",
- "name": "sysUserId",
- "in": "query"
- },
- {
- "type": "string",
- "description": "更新时间",
- "name": "updatedAt",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "获取单一客户信息,返回包括客户详情",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.ExaCustomerResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- },
- "put": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaCustomer"
- ],
- "summary": "更新客户信息",
- "parameters": [
- {
- "description": "客户ID, 客户信息",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/example.ExaCustomer"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "更新客户信息",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- },
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaCustomer"
- ],
- "summary": "创建客户",
- "parameters": [
- {
- "description": "客户用户名, 客户手机号码",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/example.ExaCustomer"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "创建客户",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- },
- "delete": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaCustomer"
- ],
- "summary": "删除客户",
- "parameters": [
- {
- "description": "客户ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/example.ExaCustomer"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除客户",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/customer/customerList": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaCustomer"
- ],
- "summary": "分页获取权限客户列表",
- "parameters": [
- {
- "type": "string",
- "description": "关键字",
- "name": "keyword",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "页码",
- "name": "page",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "每页大小",
- "name": "pageSize",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "分页获取权限客户列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/email/emailTest": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "System"
- ],
- "summary": "发送测试邮件",
- "responses": {
- "200": {
- "description": "{\"success\":true,\"data\":{},\"msg\":\"发送成功\"}",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "/email/sendEmail": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "System"
- ],
- "summary": "发送邮件",
- "parameters": [
- {
- "description": "发送邮件必须的参数",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/response.Email"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "{\"success\":true,\"data\":{},\"msg\":\"发送成功\"}",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "/excel/downloadTemplate": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "multipart/form-data"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "excel"
- ],
- "summary": "下载模板",
- "parameters": [
- {
- "type": "string",
- "description": "模板名称",
- "name": "fileName",
- "in": "query",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": ""
- }
- }
- }
- },
- "/excel/exportExcel": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/octet-stream"
- ],
- "tags": [
- "excel"
- ],
- "summary": "导出Excel",
- "parameters": [
- {
- "description": "导出Excel文件信息",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/example.ExcelInfo"
- }
- }
- ],
- "responses": {
- "200": {
- "description": ""
- }
- }
- }
- },
- "/excel/importExcel": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "multipart/form-data"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "excel"
- ],
- "summary": "导入Excel文件",
- "parameters": [
- {
- "type": "file",
- "description": "导入Excel文件",
- "name": "file",
- "in": "formData",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "导入Excel文件",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/excel/loadExcel": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "excel"
- ],
- "summary": "加载Excel数据",
- "responses": {
- "200": {
- "description": "加载Excel数据,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/fileUploadAndDownload/breakpointContinue": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "multipart/form-data"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaFileUploadAndDownload"
- ],
- "summary": "断点续传到服务器",
- "parameters": [
- {
- "type": "file",
- "description": "an example for breakpoint resume, 断点续传示例",
- "name": "file",
- "in": "formData",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "断点续传到服务器",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/fileUploadAndDownload/deleteFile": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaFileUploadAndDownload"
- ],
- "summary": "删除文件",
- "parameters": [
- {
- "description": "传入文件里面id即可",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/example.ExaFileUploadAndDownload"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除文件",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/fileUploadAndDownload/findFile": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "multipart/form-data"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaFileUploadAndDownload"
- ],
- "summary": "创建文件",
- "parameters": [
- {
- "type": "file",
- "description": "上传文件完成",
- "name": "file",
- "in": "formData",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "创建文件,返回包括文件路径",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.FilePathResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/fileUploadAndDownload/getFileList": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaFileUploadAndDownload"
- ],
- "summary": "分页文件列表",
- "parameters": [
- {
- "description": "页码, 每页大小",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.PageInfo"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "分页文件列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/fileUploadAndDownload/removeChunk": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "multipart/form-data"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaFileUploadAndDownload"
- ],
- "summary": "删除切片",
- "parameters": [
- {
- "type": "file",
- "description": "删除缓存切片",
- "name": "file",
- "in": "formData",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "删除切片",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/fileUploadAndDownload/upload": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "multipart/form-data"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaFileUploadAndDownload"
- ],
- "summary": "上传文件示例",
- "parameters": [
- {
- "type": "file",
- "description": "上传文件示例",
- "name": "file",
- "in": "formData",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "上传文件示例,返回包括文件详情",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.ExaFileResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/init/checkdb": {
- "post": {
- "produces": [
- "application/json"
- ],
- "tags": [
- "CheckDB"
- ],
- "summary": "初始化用户数据库",
- "responses": {
- "200": {
- "description": "初始化用户数据库",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/init/initdb": {
- "post": {
- "produces": [
- "application/json"
- ],
- "tags": [
- "InitDB"
- ],
- "summary": "初始化用户数据库",
- "parameters": [
- {
- "description": "初始化数据库参数",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.InitDB"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "初始化用户数据库",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/jwt/jsonInBlacklist": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Jwt"
- ],
- "summary": "jwt加入黑名单",
- "responses": {
- "200": {
- "description": "jwt加入黑名单",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/addBaseMenu": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Menu"
- ],
- "summary": "新增菜单",
- "parameters": [
- {
- "description": "路由path, 父菜单ID, 路由name, 对应前端文件路径, 排序标记",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysBaseMenu"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "新增菜单",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/addMenuAuthority": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AuthorityMenu"
- ],
- "summary": "增加menu和角色关联关系",
- "parameters": [
- {
- "description": "角色ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.AddMenuAuthorityInfo"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "增加menu和角色关联关系",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/deleteBaseMenu": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Menu"
- ],
- "summary": "删除菜单",
- "parameters": [
- {
- "description": "菜单id",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.GetById"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除菜单",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/getBaseMenuById": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Menu"
- ],
- "summary": "根据id获取菜单",
- "parameters": [
- {
- "description": "菜单id",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.GetById"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "根据id获取菜单,返回包括系统菜单列表",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysBaseMenuResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/getBaseMenuTree": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AuthorityMenu"
- ],
- "summary": "获取用户动态路由",
- "parameters": [
- {
- "description": "空",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.Empty"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "获取用户动态路由,返回包括系统菜单列表",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysBaseMenusResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/getMenu": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AuthorityMenu"
- ],
- "summary": "获取用户动态路由",
- "parameters": [
- {
- "description": "空",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.Empty"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "获取用户动态路由,返回包括系统菜单详情列表",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysMenusResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/getMenuAuthority": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AuthorityMenu"
- ],
- "summary": "获取指定角色menu",
- "parameters": [
- {
- "description": "角色ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.GetAuthorityId"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "获取指定角色menu",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/getMenuList": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Menu"
- ],
- "summary": "分页获取基础menu列表",
- "parameters": [
- {
- "description": "页码, 每页大小",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.PageInfo"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "分页获取基础menu列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/updateBaseMenu": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Menu"
- ],
- "summary": "更新菜单",
- "parameters": [
- {
- "description": "路由path, 父菜单ID, 路由name, 对应前端文件路径, 排序标记",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysBaseMenu"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "更新菜单",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionary/createSysDictionary": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionary"
- ],
- "summary": "创建SysDictionary",
- "parameters": [
- {
- "description": "SysDictionary模型",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysDictionary"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "创建SysDictionary",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionary/deleteSysDictionary": {
- "delete": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionary"
- ],
- "summary": "删除SysDictionary",
- "parameters": [
- {
- "description": "SysDictionary模型",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysDictionary"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除SysDictionary",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionary/findSysDictionary": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionary"
- ],
- "summary": "用id查询SysDictionary",
- "parameters": [
- {
- "type": "string",
- "description": "创建时间",
- "name": "createdAt",
- "in": "query"
- },
- {
- "type": "string",
- "description": "描述",
- "name": "desc",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "主键ID",
- "name": "id",
- "in": "query"
- },
- {
- "type": "string",
- "description": "字典名(中)",
- "name": "name",
- "in": "query"
- },
- {
- "type": "boolean",
- "description": "状态",
- "name": "status",
- "in": "query"
- },
- {
- "type": "string",
- "description": "字典名(英)",
- "name": "type",
- "in": "query"
- },
- {
- "type": "string",
- "description": "更新时间",
- "name": "updatedAt",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "用id查询SysDictionary",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionary/getSysDictionaryList": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionary"
- ],
- "summary": "分页获取SysDictionary列表",
- "parameters": [
- {
- "type": "string",
- "description": "创建时间",
- "name": "createdAt",
- "in": "query"
- },
- {
- "type": "string",
- "description": "描述",
- "name": "desc",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "主键ID",
- "name": "id",
- "in": "query"
- },
- {
- "type": "string",
- "description": "关键字",
- "name": "keyword",
- "in": "query"
- },
- {
- "type": "string",
- "description": "字典名(中)",
- "name": "name",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "页码",
- "name": "page",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "每页大小",
- "name": "pageSize",
- "in": "query"
- },
- {
- "type": "boolean",
- "description": "状态",
- "name": "status",
- "in": "query"
- },
- {
- "type": "string",
- "description": "字典名(英)",
- "name": "type",
- "in": "query"
- },
- {
- "type": "string",
- "description": "更新时间",
- "name": "updatedAt",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "分页获取SysDictionary列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionary/updateSysDictionary": {
- "put": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionary"
- ],
- "summary": "更新SysDictionary",
- "parameters": [
- {
- "description": "SysDictionary模型",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysDictionary"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "更新SysDictionary",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionaryDetail/createSysDictionaryDetail": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionaryDetail"
- ],
- "summary": "创建SysDictionaryDetail",
- "parameters": [
- {
- "description": "SysDictionaryDetail模型",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysDictionaryDetail"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "创建SysDictionaryDetail",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionaryDetail/deleteSysDictionaryDetail": {
- "delete": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionaryDetail"
- ],
- "summary": "删除SysDictionaryDetail",
- "parameters": [
- {
- "description": "SysDictionaryDetail模型",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysDictionaryDetail"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除SysDictionaryDetail",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionaryDetail/findSysDictionaryDetail": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionaryDetail"
- ],
- "summary": "用id查询SysDictionaryDetail",
- "parameters": [
- {
- "type": "string",
- "description": "创建时间",
- "name": "createdAt",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "主键ID",
- "name": "id",
- "in": "query"
- },
- {
- "type": "string",
- "description": "展示值",
- "name": "label",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "排序标记",
- "name": "sort",
- "in": "query"
- },
- {
- "type": "boolean",
- "description": "启用状态",
- "name": "status",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "关联标记",
- "name": "sysDictionaryID",
- "in": "query"
- },
- {
- "type": "string",
- "description": "更新时间",
- "name": "updatedAt",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "字典值",
- "name": "value",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "用id查询SysDictionaryDetail",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionaryDetail/getSysDictionaryDetailList": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionaryDetail"
- ],
- "summary": "分页获取SysDictionaryDetail列表",
- "parameters": [
- {
- "type": "string",
- "description": "创建时间",
- "name": "createdAt",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "主键ID",
- "name": "id",
- "in": "query"
- },
- {
- "type": "string",
- "description": "关键字",
- "name": "keyword",
- "in": "query"
- },
- {
- "type": "string",
- "description": "展示值",
- "name": "label",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "页码",
- "name": "page",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "每页大小",
- "name": "pageSize",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "排序标记",
- "name": "sort",
- "in": "query"
- },
- {
- "type": "boolean",
- "description": "启用状态",
- "name": "status",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "关联标记",
- "name": "sysDictionaryID",
- "in": "query"
- },
- {
- "type": "string",
- "description": "更新时间",
- "name": "updatedAt",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "字典值",
- "name": "value",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "分页获取SysDictionaryDetail列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionaryDetail/updateSysDictionaryDetail": {
- "put": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionaryDetail"
- ],
- "summary": "更新SysDictionaryDetail",
- "parameters": [
- {
- "description": "更新SysDictionaryDetail",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysDictionaryDetail"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "更新SysDictionaryDetail",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysOperationRecord/createSysOperationRecord": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysOperationRecord"
- ],
- "summary": "创建SysOperationRecord",
- "parameters": [
- {
- "description": "创建SysOperationRecord",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysOperationRecord"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "创建SysOperationRecord",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysOperationRecord/deleteSysOperationRecord": {
- "delete": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysOperationRecord"
- ],
- "summary": "删除SysOperationRecord",
- "parameters": [
- {
- "description": "SysOperationRecord模型",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysOperationRecord"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除SysOperationRecord",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysOperationRecord/deleteSysOperationRecordByIds": {
- "delete": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysOperationRecord"
- ],
- "summary": "批量删除SysOperationRecord",
- "parameters": [
- {
- "description": "批量删除SysOperationRecord",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.IdsReq"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "批量删除SysOperationRecord",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysOperationRecord/findSysOperationRecord": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysOperationRecord"
- ],
- "summary": "用id查询SysOperationRecord",
- "parameters": [
- {
- "type": "string",
- "description": "代理",
- "name": "agent",
- "in": "query"
- },
- {
- "type": "string",
- "description": "请求Body",
- "name": "body",
- "in": "query"
- },
- {
- "type": "string",
- "description": "创建时间",
- "name": "createdAt",
- "in": "query"
- },
- {
- "type": "string",
- "description": "错误信息",
- "name": "error_message",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "主键ID",
- "name": "id",
- "in": "query"
- },
- {
- "type": "string",
- "description": "请求ip",
- "name": "ip",
- "in": "query"
- },
- {
- "type": "string",
- "description": "延迟",
- "name": "latency",
- "in": "query"
- },
- {
- "type": "string",
- "description": "请求方法",
- "name": "method",
- "in": "query"
- },
- {
- "type": "string",
- "description": "请求路径",
- "name": "path",
- "in": "query"
- },
- {
- "type": "string",
- "description": "响应Body",
- "name": "resp",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "请求状态",
- "name": "status",
- "in": "query"
- },
- {
- "type": "string",
- "description": "更新时间",
- "name": "updatedAt",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "用户id",
- "name": "user_id",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "用id查询SysOperationRecord",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysOperationRecord/getSysOperationRecordList": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysOperationRecord"
- ],
- "summary": "分页获取SysOperationRecord列表",
- "parameters": [
- {
- "type": "string",
- "description": "代理",
- "name": "agent",
- "in": "query"
- },
- {
- "type": "string",
- "description": "请求Body",
- "name": "body",
- "in": "query"
- },
- {
- "type": "string",
- "description": "创建时间",
- "name": "createdAt",
- "in": "query"
- },
- {
- "type": "string",
- "description": "错误信息",
- "name": "error_message",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "主键ID",
- "name": "id",
- "in": "query"
- },
- {
- "type": "string",
- "description": "请求ip",
- "name": "ip",
- "in": "query"
- },
- {
- "type": "string",
- "description": "关键字",
- "name": "keyword",
- "in": "query"
- },
- {
- "type": "string",
- "description": "延迟",
- "name": "latency",
- "in": "query"
- },
- {
- "type": "string",
- "description": "请求方法",
- "name": "method",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "页码",
- "name": "page",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "每页大小",
- "name": "pageSize",
- "in": "query"
- },
- {
- "type": "string",
- "description": "请求路径",
- "name": "path",
- "in": "query"
- },
- {
- "type": "string",
- "description": "响应Body",
- "name": "resp",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "请求状态",
- "name": "status",
- "in": "query"
- },
- {
- "type": "string",
- "description": "更新时间",
- "name": "updatedAt",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "用户id",
- "name": "user_id",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "分页获取SysOperationRecord列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/system/getServerInfo": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "System"
- ],
- "summary": "获取服务器信息",
- "responses": {
- "200": {
- "description": "获取服务器信息",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/system/getSystemConfig": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "System"
- ],
- "summary": "获取配置文件内容",
- "responses": {
- "200": {
- "description": "获取配置文件内容,返回包括系统配置",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysConfigResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/system/reloadSystem": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "System"
- ],
- "summary": "重启系统",
- "responses": {
- "200": {
- "description": "重启系统",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/system/setSystemConfig": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "System"
- ],
- "summary": "设置配置文件内容",
- "parameters": [
- {
- "description": "设置配置文件内容",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.System"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "设置配置文件内容",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/SetSelfInfo": {
- "put": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "设置用户信息",
- "parameters": [
- {
- "description": "ID, 用户名, 昵称, 头像链接",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysUser"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "设置用户信息",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/admin_register": {
- "post": {
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "用户注册账号",
- "parameters": [
- {
- "description": "用户名, 昵称, 密码, 角色ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.Register"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "用户注册账号,返回包括用户信息",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysUserResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/changePassword": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "用户修改密码",
- "parameters": [
- {
- "description": "用户名, 原密码, 新密码",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.ChangePasswordReq"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "用户修改密码",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/deleteUser": {
- "delete": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "删除用户",
- "parameters": [
- {
- "description": "用户ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.GetById"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除用户",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/getUserInfo": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "获取用户信息",
- "responses": {
- "200": {
- "description": "获取用户信息",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/getUserList": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "分页获取用户列表",
- "parameters": [
- {
- "description": "页码, 每页大小",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.PageInfo"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "分页获取用户列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/resetPassword": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "重置用户密码",
- "parameters": [
- {
- "description": "ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysUser"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "重置用户密码",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/setUserAuthorities": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "设置用户权限",
- "parameters": [
- {
- "description": "用户UUID, 角色ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.SetUserAuthorities"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "设置用户权限",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/setUserAuthority": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "更改用户权限",
- "parameters": [
- {
- "description": "用户UUID, 角色ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.SetUserAuth"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "设置用户权限",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/setUserInfo": {
- "put": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "设置用户信息",
- "parameters": [
- {
- "description": "ID, 用户名, 昵称, 头像链接",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysUser"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "设置用户信息",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- }
- },
- "definitions": {
- "config.AliyunOSS": {
- "type": "object",
- "properties": {
- "access-key-id": {
- "type": "string"
- },
- "access-key-secret": {
- "type": "string"
- },
- "base-path": {
- "type": "string"
- },
- "bucket-name": {
- "type": "string"
- },
- "bucket-url": {
- "type": "string"
- },
- "endpoint": {
- "type": "string"
- }
- }
- },
- "config.Autocode": {
- "type": "object",
- "properties": {
- "root": {
- "type": "string"
- },
- "server": {
- "type": "string"
- },
- "server-api": {
- "type": "string"
- },
- "server-initialize": {
- "type": "string"
- },
- "server-model": {
- "type": "string"
- },
- "server-plug": {
- "type": "string"
- },
- "server-request": {
- "type": "string"
- },
- "server-router": {
- "type": "string"
- },
- "server-service": {
- "type": "string"
- },
- "transfer-restart": {
- "type": "boolean"
- },
- "web": {
- "type": "string"
- },
- "web-api": {
- "type": "string"
- },
- "web-form": {
- "type": "string"
- },
- "web-table": {
- "type": "string"
- }
- }
- },
- "config.AwsS3": {
- "type": "object",
- "properties": {
- "base-url": {
- "type": "string"
- },
- "bucket": {
- "type": "string"
- },
- "disable-ssl": {
- "type": "boolean"
- },
- "endpoint": {
- "type": "string"
- },
- "path-prefix": {
- "type": "string"
- },
- "region": {
- "type": "string"
- },
- "s3-force-path-style": {
- "type": "boolean"
- },
- "secret-id": {
- "type": "string"
- },
- "secret-key": {
- "type": "string"
- }
- }
- },
- "config.CORS": {
- "type": "object",
- "properties": {
- "mode": {
- "type": "string"
- },
- "whitelist": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/config.CORSWhitelist"
- }
- }
- }
- },
- "config.CORSWhitelist": {
- "type": "object",
- "properties": {
- "allow-credentials": {
- "type": "boolean"
- },
- "allow-headers": {
- "type": "string"
- },
- "allow-methods": {
- "type": "string"
- },
- "allow-origin": {
- "type": "string"
- },
- "expose-headers": {
- "type": "string"
- }
- }
- },
- "config.Captcha": {
- "type": "object",
- "properties": {
- "img-height": {
- "description": "验证码高度",
- "type": "integer"
- },
- "img-width": {
- "description": "验证码宽度",
- "type": "integer"
- },
- "key-long": {
- "description": "验证码长度",
- "type": "integer"
- }
- }
- },
- "config.Detail": {
- "type": "object",
- "properties": {
- "compareField": {
- "description": "需要比较时间的字段",
- "type": "string"
- },
- "interval": {
- "description": "时间间隔",
- "type": "string"
- },
- "tableName": {
- "description": "需要清理的表名",
- "type": "string"
- }
- }
- },
- "config.Email": {
- "type": "object",
- "properties": {
- "from": {
- "description": "收件人",
- "type": "string"
- },
- "host": {
- "description": "服务器地址",
- "type": "string"
- },
- "is-ssl": {
- "description": "是否SSL",
- "type": "boolean"
- },
- "nickname": {
- "description": "昵称",
- "type": "string"
- },
- "port": {
- "description": "端口",
- "type": "integer"
- },
- "secret": {
- "description": "密钥",
- "type": "string"
- },
- "to": {
- "description": "收件人:多个以英文逗号分隔",
- "type": "string"
- }
- }
- },
- "config.Excel": {
- "type": "object",
- "properties": {
- "dir": {
- "type": "string"
- }
- }
- },
- "config.HuaWeiObs": {
- "type": "object",
- "properties": {
- "access-key": {
- "type": "string"
- },
- "bucket": {
- "type": "string"
- },
- "endpoint": {
- "type": "string"
- },
- "path": {
- "type": "string"
- },
- "secret-key": {
- "type": "string"
- }
- }
- },
- "config.JWT": {
- "type": "object",
- "properties": {
- "buffer-time": {
- "description": "缓冲时间",
- "type": "string"
- },
- "expires-time": {
- "description": "过期时间",
- "type": "string"
- },
- "issuer": {
- "description": "签发者",
- "type": "string"
- },
- "signing-key": {
- "description": "jwt签名",
- "type": "string"
- }
- }
- },
- "config.Local": {
- "type": "object",
- "properties": {
- "path": {
- "description": "本地文件访问路径",
- "type": "string"
- },
- "store-path": {
- "description": "本地文件存储路径",
- "type": "string"
- }
- }
- },
- "config.Mysql": {
- "type": "object",
- "properties": {
- "config": {
- "description": "高级配置",
- "type": "string"
- },
- "db-name": {
- "description": "数据库名",
- "type": "string"
- },
- "log-mode": {
- "description": "是否开启Gorm全局日志",
- "type": "string"
- },
- "log-zap": {
- "description": "是否通过zap写入日志文件",
- "type": "boolean"
- },
- "max-idle-conns": {
- "description": "空闲中的最大连接数",
- "type": "integer"
- },
- "max-open-conns": {
- "description": "打开到数据库的最大连接数",
- "type": "integer"
- },
- "password": {
- "description": "数据库密码",
- "type": "string"
- },
- "path": {
- "description": "服务器地址:端口",
- "type": "string"
- },
- "port": {
- "description": ":端口",
- "type": "string"
- },
- "username": {
- "description": "数据库用户名",
- "type": "string"
- }
- }
- },
- "config.Redis": {
- "type": "object",
- "properties": {
- "addr": {
- "description": "服务器地址:端口",
- "type": "string"
- },
- "db": {
- "description": "redis的哪个数据库",
- "type": "integer"
- },
- "password": {
- "description": "密码",
- "type": "string"
- }
- }
- },
- "config.Server": {
- "type": "object",
- "properties": {
- "aliyun-oss": {
- "$ref": "#/definitions/config.AliyunOSS"
- },
- "autocode": {
- "description": "auto",
- "$ref": "#/definitions/config.Autocode"
- },
- "aws-s3": {
- "$ref": "#/definitions/config.AwsS3"
- },
- "captcha": {
- "$ref": "#/definitions/config.Captcha"
- },
- "cors": {
- "description": "跨域配置",
- "$ref": "#/definitions/config.CORS"
- },
- "db-list": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/config.SpecializedDB"
- }
- },
- "email": {
- "$ref": "#/definitions/config.Email"
- },
- "excel": {
- "$ref": "#/definitions/config.Excel"
- },
- "hua-wei-obs": {
- "$ref": "#/definitions/config.HuaWeiObs"
- },
- "jwt": {
- "$ref": "#/definitions/config.JWT"
- },
- "local": {
- "description": "oss",
- "$ref": "#/definitions/config.Local"
- },
- "mysql": {
- "description": "gorm",
- "$ref": "#/definitions/config.Mysql"
- },
- "pgsql": {
- "$ref": "#/definitions/config.Pgsql"
- },
- "qiniu": {
- "$ref": "#/definitions/config.Qiniu"
- },
- "redis": {
- "$ref": "#/definitions/config.Redis"
- },
- "system": {
- "$ref": "#/definitions/config.System"
- },
- "tencent-cos": {
- "$ref": "#/definitions/config.TencentCOS"
- },
- "timer": {
- "$ref": "#/definitions/config.Timer"
- },
- "zap": {
- "$ref": "#/definitions/config.Zap"
- }
- }
- },
- "config.SpecializedDB": {
- "type": "object",
- "properties": {
- "alias-name": {
- "type": "string"
- },
- "config": {
- "description": "高级配置",
- "type": "string"
- },
- "db-name": {
- "description": "数据库名",
- "type": "string"
- },
- "disable": {
- "type": "boolean"
- },
- "log-mode": {
- "description": "是否开启Gorm全局日志",
- "type": "string"
- },
- "log-zap": {
- "description": "是否通过zap写入日志文件",
- "type": "boolean"
- },
- "max-idle-conns": {
- "description": "空闲中的最大连接数",
- "type": "integer"
- },
- "max-open-conns": {
- "description": "打开到数据库的最大连接数",
- "type": "integer"
- },
- "password": {
- "description": "数据库密码",
- "type": "string"
- },
- "path": {
- "description": "服务器地址:端口",
- "type": "string"
- },
- "port": {
- "description": ":端口",
- "type": "string"
- },
- "type": {
- "type": "string"
- },
- "username": {
- "description": "数据库用户名",
- "type": "string"
- }
- }
- },
- "config.System": {
- "type": "object",
- "properties": {
- "addr": {
- "description": "端口值",
- "type": "integer"
- },
- "db-type": {
- "description": "数据库类型:mysql(默认)|sqlite|sqlserver|postgresql",
- "type": "string"
- },
- "env": {
- "description": "环境值",
- "type": "string"
- },
- "iplimit-count": {
- "type": "integer"
- },
- "iplimit-time": {
- "type": "integer"
- },
- "oss-type": {
- "description": "Oss类型",
- "type": "string"
- },
- "use-multipoint": {
- "description": "多点登录拦截",
- "type": "boolean"
- },
- "use-redis": {
- "description": "使用redis",
- "type": "boolean"
- }
- }
- },
- "config.Timer": {
- "type": "object",
- "properties": {
- "detail": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/config.Detail"
- }
- },
- "spec": {
- "description": "CRON表达式",
- "type": "string"
- },
- "start": {
- "description": "是否启用",
- "type": "boolean"
- },
- "with_seconds": {
- "description": "是否精确到秒",
- "type": "boolean"
- }
- }
- },
- "config.Zap": {
- "type": "object",
- "properties": {
- "director": {
- "description": "日志文件夹",
- "type": "string"
- },
- "encode-level": {
- "description": "编码级",
- "type": "string"
- },
- "format": {
- "description": "输出",
- "type": "string"
- },
- "level": {
- "description": "级别",
- "type": "string"
- },
- "log-in-console": {
- "description": "输出控制台",
- "type": "boolean"
- },
- "max-age": {
- "description": "日志留存时间",
- "type": "integer"
- },
- "prefix": {
- "description": "日志前缀",
- "type": "string"
- },
- "show-line": {
- "description": "显示行",
- "type": "boolean"
- },
- "stacktrace-key": {
- "description": "栈名",
- "type": "string"
- }
- }
- },
- "example.ExaCustomer": {
- "type": "object",
- "properties": {
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "customerName": {
- "description": "客户名",
- "type": "string"
- },
- "customerPhoneData": {
- "description": "客户手机号",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "sysUser": {
- "description": "管理详情",
- "$ref": "#/definitions/system.SysUser"
- },
- "sysUserAuthorityID": {
- "description": "管理角色ID",
- "type": "integer"
- },
- "sysUserId": {
- "description": "管理ID",
- "type": "integer"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "example.ExaFile": {
- "type": "object",
- "properties": {
- "chunkTotal": {
- "type": "integer"
- },
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "exaFileChunk": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/example.ExaFileChunk"
- }
- },
- "fileMd5": {
- "type": "string"
- },
- "fileName": {
- "type": "string"
- },
- "filePath": {
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "isFinish": {
- "type": "boolean"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "example.ExaFileChunk": {
- "type": "object",
- "properties": {
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "exaFileID": {
- "type": "integer"
- },
- "fileChunkNumber": {
- "type": "integer"
- },
- "fileChunkPath": {
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "example.ExaFileUploadAndDownload": {
- "type": "object",
- "properties": {
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "key": {
- "description": "编号",
- "type": "string"
- },
- "name": {
- "description": "文件名",
- "type": "string"
- },
- "tag": {
- "description": "文件标签",
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- },
- "url": {
- "description": "文件地址",
- "type": "string"
- }
- }
- },
- "example.ExcelInfo": {
- "type": "object",
- "properties": {
- "fileName": {
- "description": "文件名",
- "type": "string"
- },
- "infoList": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenu"
- }
- }
- }
- },
- "request.AddMenuAuthorityInfo": {
- "type": "object",
- "properties": {
- "authorityId": {
- "description": "角色ID",
- "type": "integer"
- },
- "menus": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenu"
- }
- }
- }
- },
- "request.CasbinInReceive": {
- "type": "object",
- "properties": {
- "authorityId": {
- "description": "权限id",
- "type": "integer"
- },
- "casbinInfos": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/request.CasbinInfo"
- }
- }
- }
- },
- "request.CasbinInfo": {
- "type": "object",
- "properties": {
- "method": {
- "description": "方法",
- "type": "string"
- },
- "path": {
- "description": "路径",
- "type": "string"
- }
- }
- },
- "request.ChangePasswordReq": {
- "type": "object",
- "properties": {
- "newPassword": {
- "description": "新密码",
- "type": "string"
- },
- "password": {
- "description": "密码",
- "type": "string"
- }
- }
- },
- "request.Empty": {
- "type": "object"
- },
- "request.GetAuthorityId": {
- "type": "object",
- "properties": {
- "authorityId": {
- "description": "角色ID",
- "type": "integer"
- }
- }
- },
- "request.GetById": {
- "type": "object",
- "properties": {
- "id": {
- "description": "主键ID",
- "type": "integer"
- }
- }
- },
- "request.IdsReq": {
- "type": "object",
- "properties": {
- "ids": {
- "type": "array",
- "items": {
- "type": "integer"
- }
- }
- }
- },
- "request.InitDB": {
- "type": "object",
- "required": [
- "dbName",
- "userName"
- ],
- "properties": {
- "dbName": {
- "description": "数据库名",
- "type": "string"
- },
- "dbType": {
- "description": "数据库类型",
- "type": "string"
- },
- "host": {
- "description": "服务器地址",
- "type": "string"
- },
- "password": {
- "description": "数据库密码",
- "type": "string"
- },
- "port": {
- "description": "数据库连接端口",
- "type": "string"
- },
- "userName": {
- "description": "数据库用户名",
- "type": "string"
- }
- }
- },
- "request.Login": {
- "type": "object",
- "properties": {
- "captcha": {
- "description": "验证码",
- "type": "string"
- },
- "captchaId": {
- "description": "验证码ID",
- "type": "string"
- },
- "password": {
- "description": "密码",
- "type": "string"
- },
- "username": {
- "description": "用户名",
- "type": "string"
- }
- }
- },
- "request.PageInfo": {
- "type": "object",
- "properties": {
- "keyword": {
- "description": "关键字",
- "type": "string"
- },
- "page": {
- "description": "页码",
- "type": "integer"
- },
- "pageSize": {
- "description": "每页大小",
- "type": "integer"
- }
- }
- },
- "request.Register": {
- "type": "object",
- "properties": {
- "authorityId": {
- "type": "integer"
- },
- "authorityIds": {
- "type": "array",
- "items": {
- "type": "integer"
- }
- },
- "enable": {
- "type": "integer"
- },
- "headerImg": {
- "type": "string"
- },
- "nickName": {
- "type": "string"
- },
- "passWord": {
- "type": "string"
- },
- "userName": {
- "type": "string"
- }
- }
- },
- "request.RollBack": {
- "type": "object",
- "properties": {
- "deleteTable": {
- "description": "是否删除表",
- "type": "boolean"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- }
- }
- },
- "request.SearchApiParams": {
- "type": "object",
- "properties": {
- "apiGroup": {
- "description": "api组",
- "type": "string"
- },
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "desc": {
- "description": "排序方式:升序false(默认)|降序true",
- "type": "boolean"
- },
- "description": {
- "description": "api中文描述",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "keyword": {
- "description": "关键字",
- "type": "string"
- },
- "method": {
- "description": "方法:创建POST(默认)|查看GET|更新PUT|删除DELETE",
- "type": "string"
- },
- "orderKey": {
- "description": "排序",
- "type": "string"
- },
- "page": {
- "description": "页码",
- "type": "integer"
- },
- "pageSize": {
- "description": "每页大小",
- "type": "integer"
- },
- "path": {
- "description": "api路径",
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "request.SetUserAuth": {
- "type": "object",
- "properties": {
- "authorityId": {
- "description": "角色ID",
- "type": "integer"
- }
- }
- },
- "request.SetUserAuthorities": {
- "type": "object",
- "properties": {
- "authorityIds": {
- "description": "角色ID",
- "type": "array",
- "items": {
- "type": "integer"
- }
- },
- "id": {
- "type": "integer"
- }
- }
- },
- "request.SysAuthorityBtnReq": {
- "type": "object",
- "properties": {
- "authorityId": {
- "type": "integer"
- },
- "menuID": {
- "type": "integer"
- },
- "selected": {
- "type": "array",
- "items": {
- "type": "integer"
- }
- }
- }
- },
- "request.SysAutoHistory": {
- "type": "object",
- "properties": {
- "keyword": {
- "description": "关键字",
- "type": "string"
- },
- "page": {
- "description": "页码",
- "type": "integer"
- },
- "pageSize": {
- "description": "每页大小",
- "type": "integer"
- }
- }
- },
- "response.Email": {
- "type": "object",
- "properties": {
- "body": {
- "description": "邮件内容",
- "type": "string"
- },
- "subject": {
- "description": "邮件标题",
- "type": "string"
- },
- "to": {
- "description": "邮件发送给谁",
- "type": "string"
- }
- }
- },
- "response.ExaCustomerResponse": {
- "type": "object",
- "properties": {
- "customer": {
- "$ref": "#/definitions/example.ExaCustomer"
- }
- }
- },
- "response.ExaFileResponse": {
- "type": "object",
- "properties": {
- "file": {
- "$ref": "#/definitions/example.ExaFileUploadAndDownload"
- }
- }
- },
- "response.FilePathResponse": {
- "type": "object",
- "properties": {
- "filePath": {
- "type": "string"
- }
- }
- },
- "response.FileResponse": {
- "type": "object",
- "properties": {
- "file": {
- "$ref": "#/definitions/example.ExaFile"
- }
- }
- },
- "response.LoginResponse": {
- "type": "object",
- "properties": {
- "expiresAt": {
- "type": "integer"
- },
- "token": {
- "type": "string"
- },
- "user": {
- "$ref": "#/definitions/system.SysUser"
- }
- }
- },
- "response.PageResult": {
- "type": "object",
- "properties": {
- "list": {
- "type": "object"
- },
- "page": {
- "type": "integer"
- },
- "pageSize": {
- "type": "integer"
- },
- "total": {
- "type": "integer"
- }
- }
- },
- "response.PolicyPathResponse": {
- "type": "object",
- "properties": {
- "paths": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/request.CasbinInfo"
- }
- }
- }
- },
- "response.Response": {
- "type": "object",
- "properties": {
- "code": {
- "type": "integer"
- },
- "data": {
- "type": "object"
- },
- "msg": {
- "type": "string"
- }
- }
- },
- "response.SysAPIListResponse": {
- "type": "object",
- "properties": {
- "apis": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysApi"
- }
- }
- }
- },
- "response.SysAPIResponse": {
- "type": "object",
- "properties": {
- "api": {
- "$ref": "#/definitions/system.SysApi"
- }
- }
- },
- "response.SysAuthorityBtnRes": {
- "type": "object",
- "properties": {
- "selected": {
- "type": "array",
- "items": {
- "type": "integer"
- }
- }
- }
- },
- "response.SysAuthorityCopyResponse": {
- "type": "object",
- "properties": {
- "authority": {
- "$ref": "#/definitions/system.SysAuthority"
- },
- "oldAuthorityId": {
- "description": "旧角色ID",
- "type": "integer"
- }
- }
- },
- "response.SysAuthorityResponse": {
- "type": "object",
- "properties": {
- "authority": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- }
- },
- "response.SysBaseMenuResponse": {
- "type": "object",
- "properties": {
- "menu": {
- "$ref": "#/definitions/system.SysBaseMenu"
- }
- }
- },
- "response.SysBaseMenusResponse": {
- "type": "object",
- "properties": {
- "menus": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenu"
- }
- }
- }
- },
- "response.SysCaptchaResponse": {
- "type": "object",
- "properties": {
- "captchaId": {
- "type": "string"
- },
- "captchaLength": {
- "type": "integer"
- },
- "picPath": {
- "type": "string"
- }
- }
- },
- "response.SysConfigResponse": {
- "type": "object",
- "properties": {
- "config": {
- "$ref": "#/definitions/config.Server"
- }
- }
- },
- "response.SysMenusResponse": {
- "type": "object",
- "properties": {
- "menus": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysMenu"
- }
- }
- }
- },
- "response.SysUserResponse": {
- "type": "object",
- "properties": {
- "user": {
- "$ref": "#/definitions/system.SysUser"
- }
- }
- },
- "system.AutoCodeStruct": {
- "type": "object",
- "properties": {
- "abbreviation": {
- "description": "Struct简称",
- "type": "string"
- },
- "autoCreateApiToSql": {
- "description": "是否自动创建api",
- "type": "boolean"
- },
- "autoCreateResource": {
- "description": "是否自动创建资源标识",
- "type": "boolean"
- },
- "autoMoveFile": {
- "description": "是否自动移动文件",
- "type": "boolean"
- },
- "description": {
- "description": "Struct中文名称",
- "type": "string"
- },
- "fields": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.Field"
- }
- },
- "hasTimer": {
- "type": "boolean"
- },
- "humpPackageName": {
- "description": "go文件名称",
- "type": "string"
- },
- "package": {
- "type": "string"
- },
- "packageName": {
- "description": "文件名称",
- "type": "string"
- },
- "structName": {
- "description": "Struct名称",
- "type": "string"
- },
- "tableName": {
- "description": "表名",
- "type": "string"
- }
- }
- },
- "system.Field": {
- "type": "object",
- "properties": {
- "clearable": {
- "description": "是否可清空",
- "type": "boolean"
- },
- "columnName": {
- "description": "数据库字段",
- "type": "string"
- },
- "comment": {
- "description": "数据库字段描述",
- "type": "string"
- },
- "dataTypeLong": {
- "description": "数据库字段长度",
- "type": "string"
- },
- "dictType": {
- "description": "字典",
- "type": "string"
- },
- "errorText": {
- "description": "校验失败文字",
- "type": "string"
- },
- "fieldDesc": {
- "description": "中文名",
- "type": "string"
- },
- "fieldJson": {
- "description": "FieldJson",
- "type": "string"
- },
- "fieldName": {
- "description": "Field名",
- "type": "string"
- },
- "fieldSearchType": {
- "description": "搜索条件",
- "type": "string"
- },
- "fieldType": {
- "description": "Field数据类型",
- "type": "string"
- },
- "require": {
- "description": "是否必填",
- "type": "boolean"
- }
- }
- },
- "system.SysApi": {
- "type": "object",
- "properties": {
- "apiGroup": {
- "description": "api组",
- "type": "string"
- },
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "description": {
- "description": "api中文描述",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "method": {
- "description": "方法:创建POST(默认)|查看GET|更新PUT|删除DELETE",
- "type": "string"
- },
- "path": {
- "description": "api路径",
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "system.SysAuthority": {
- "type": "object",
- "properties": {
- "authorityId": {
- "description": "角色ID",
- "type": "integer"
- },
- "authorityName": {
- "description": "角色名",
- "type": "string"
- },
- "children": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- },
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "dataAuthorityId": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- },
- "defaultRouter": {
- "description": "默认菜单(默认dashboard)",
- "type": "string"
- },
- "deletedAt": {
- "type": "string"
- },
- "menus": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenu"
- }
- },
- "parentId": {
- "description": "父角色ID",
- "type": "integer"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "system.SysAutoCode": {
- "type": "object",
- "properties": {
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "desc": {
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "label": {
- "type": "string"
- },
- "packageName": {
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "system.SysBaseMenu": {
- "type": "object",
- "properties": {
- "authoritys": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- },
- "children": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenu"
- }
- },
- "closeTab": {
- "description": "自动关闭tab",
- "type": "boolean"
- },
- "component": {
- "description": "对应前端文件路径",
- "type": "string"
- },
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "defaultMenu": {
- "description": "是否是基础路由(开发中)",
- "type": "boolean"
- },
- "hidden": {
- "description": "是否在列表隐藏",
- "type": "boolean"
- },
- "icon": {
- "description": "菜单图标",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "keepAlive": {
- "description": "是否缓存",
- "type": "boolean"
- },
- "menuBtn": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenuBtn"
- }
- },
- "name": {
- "description": "路由name",
- "type": "string"
- },
- "parameters": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenuParameter"
- }
- },
- "parentId": {
- "description": "父菜单ID",
- "type": "string"
- },
- "path": {
- "description": "路由path",
- "type": "string"
- },
- "sort": {
- "description": "排序标记",
- "type": "integer"
- },
- "title": {
- "description": "菜单名",
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "system.SysBaseMenuBtn": {
- "type": "object",
- "properties": {
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "desc": {
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "name": {
- "type": "string"
- },
- "sysBaseMenuID": {
- "type": "integer"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "system.SysBaseMenuParameter": {
- "type": "object",
- "properties": {
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "key": {
- "description": "地址栏携带参数的key",
- "type": "string"
- },
- "sysBaseMenuID": {
- "type": "integer"
- },
- "type": {
- "description": "地址栏携带参数为params还是query",
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- },
- "value": {
- "description": "地址栏携带参数的值",
- "type": "string"
- }
- }
- },
- "system.SysDictionary": {
- "type": "object",
- "properties": {
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "desc": {
- "description": "描述",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "name": {
- "description": "字典名(中)",
- "type": "string"
- },
- "status": {
- "description": "状态",
- "type": "boolean"
- },
- "sysDictionaryDetails": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysDictionaryDetail"
- }
- },
- "type": {
- "description": "字典名(英)",
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "system.SysDictionaryDetail": {
- "type": "object",
- "properties": {
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "label": {
- "description": "展示值",
- "type": "string"
- },
- "sort": {
- "description": "排序标记",
- "type": "integer"
- },
- "status": {
- "description": "启用状态",
- "type": "boolean"
- },
- "sysDictionaryID": {
- "description": "关联标记",
- "type": "integer"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- },
- "value": {
- "description": "字典值",
- "type": "integer"
- }
- }
- },
- "system.SysMenu": {
- "type": "object",
- "properties": {
- "authoritys": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- },
- "btns": {
- "type": "object",
- "additionalProperties": {
- "type": "integer"
- }
- },
- "children": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysMenu"
- }
- },
- "closeTab": {
- "description": "自动关闭tab",
- "type": "boolean"
- },
- "component": {
- "description": "对应前端文件路径",
- "type": "string"
- },
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "defaultMenu": {
- "description": "是否是基础路由(开发中)",
- "type": "boolean"
- },
- "hidden": {
- "description": "是否在列表隐藏",
- "type": "boolean"
- },
- "icon": {
- "description": "菜单图标",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "keepAlive": {
- "description": "是否缓存",
- "type": "boolean"
- },
- "menuBtn": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenuBtn"
- }
- },
- "menuId": {
- "type": "string"
- },
- "name": {
- "description": "路由name",
- "type": "string"
- },
- "parameters": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenuParameter"
- }
- },
- "parentId": {
- "description": "父菜单ID",
- "type": "string"
- },
- "path": {
- "description": "路由path",
- "type": "string"
- },
- "sort": {
- "description": "排序标记",
- "type": "integer"
- },
- "title": {
- "description": "菜单名",
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "system.SysOperationRecord": {
- "type": "object",
- "properties": {
- "agent": {
- "description": "代理",
- "type": "string"
- },
- "body": {
- "description": "请求Body",
- "type": "string"
- },
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "error_message": {
- "description": "错误信息",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "ip": {
- "description": "请求ip",
- "type": "string"
- },
- "latency": {
- "description": "延迟",
- "type": "string"
- },
- "method": {
- "description": "请求方法",
- "type": "string"
- },
- "path": {
- "description": "请求路径",
- "type": "string"
- },
- "resp": {
- "description": "响应Body",
- "type": "string"
- },
- "status": {
- "description": "请求状态",
- "type": "integer"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- },
- "user": {
- "$ref": "#/definitions/system.SysUser"
- },
- "user_id": {
- "description": "用户id",
- "type": "integer"
- }
- }
- },
- "system.SysUser": {
- "type": "object",
- "properties": {
- "activeColor": {
- "description": "活跃颜色",
- "type": "string"
- },
- "authorities": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- },
- "authority": {
- "$ref": "#/definitions/system.SysAuthority"
- },
- "authorityId": {
- "description": "用户角色ID",
- "type": "integer"
- },
- "baseColor": {
- "description": "基础颜色",
- "type": "string"
- },
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "email": {
- "description": "用户邮箱",
- "type": "string"
- },
- "enable": {
- "description": "用户是否被冻结 1正常 2冻结",
- "type": "integer"
- },
- "headerImg": {
- "description": "用户头像",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "nickName": {
- "description": "用户昵称",
- "type": "string"
- },
- "phone": {
- "description": "用户手机号",
- "type": "string"
- },
- "sideMode": {
- "description": "用户侧边主题",
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- },
- "userName": {
- "description": "用户登录名",
- "type": "string"
- },
- "uuid": {
- "description": "用户UUID",
- "type": "string"
- }
- }
- },
- "system.System": {
- "type": "object",
- "properties": {
- "config": {
- "$ref": "#/definitions/config.Server"
- }
- }
- }
- },
- "securityDefinitions": {
- "ApiKeyAuth": {
- "type": "apiKey",
- "name": "x-token",
- "in": "header"
- }
- }
-}`
-
-type swaggerInfo struct {
- Version string
- Host string
- BasePath string
- Schemes []string
- Title string
- Description string
-}
-
-// SwaggerInfo holds exported Swagger Info so clients can modify it
-var SwaggerInfo = swaggerInfo{
- Version: "0.0.1",
- Host: "",
- BasePath: "/",
- Schemes: []string{},
- Title: "Swagger Example API",
- Description: "This is a sample Server pets",
-}
-
-type s struct{}
-
-func (s *s) ReadDoc() string {
- sInfo := SwaggerInfo
- sInfo.Description = strings.Replace(sInfo.Description, "\n", "\\n", -1)
-
- t, err := template.New("swagger_info").Funcs(template.FuncMap{
- "marshal": func(v interface{}) string {
- a, _ := json.Marshal(v)
- return string(a)
- },
- }).Parse(doc)
- if err != nil {
- return doc
- }
-
- var tpl bytes.Buffer
- if err := t.Execute(&tpl, sInfo); err != nil {
- return doc
- }
-
- return tpl.String()
-}
-
-func init() {
- swag.Register(swag.Name, &s{})
-}
diff --git a/docs/swagger.json b/docs/swagger.json
deleted file mode 100644
index adaceb2..0000000
--- a/docs/swagger.json
+++ /dev/null
@@ -1,6777 +0,0 @@
-{
- "swagger": "2.0",
- "info": {
- "description": "This is a sample Server pets",
- "title": "Swagger Example API",
- "contact": {},
- "version": "0.0.1"
- },
- "basePath": "/",
- "paths": {
- "/api/createApi": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysApi"
- ],
- "summary": "创建基础api",
- "parameters": [
- {
- "description": "api路径, api中文描述, api组, 方法",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysApi"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "创建基础api",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/api/deleteApi": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysApi"
- ],
- "summary": "删除api",
- "parameters": [
- {
- "description": "ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysApi"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除api",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/api/deleteApisByIds": {
- "delete": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysApi"
- ],
- "summary": "删除选中Api",
- "parameters": [
- {
- "description": "ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.IdsReq"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除选中Api",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/api/getAllApis": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysApi"
- ],
- "summary": "获取所有的Api 不分页",
- "responses": {
- "200": {
- "description": "获取所有的Api 不分页,返回包括api列表",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysAPIListResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/api/getApiById": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysApi"
- ],
- "summary": "根据id获取api",
- "parameters": [
- {
- "description": "根据id获取api",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.GetById"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "根据id获取api,返回包括api详情",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysAPIResponse"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/api/getApiList": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysApi"
- ],
- "summary": "分页获取API列表",
- "parameters": [
- {
- "description": "分页获取API列表",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.SearchApiParams"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "分页获取API列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/api/updateApi": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysApi"
- ],
- "summary": "修改基础api",
- "parameters": [
- {
- "description": "api路径, api中文描述, api组, 方法",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysApi"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "修改基础api",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authority/copyAuthority": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Authority"
- ],
- "summary": "拷贝角色",
- "parameters": [
- {
- "description": "旧角色id, 新权限id, 新权限名, 新父角色id",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/response.SysAuthorityCopyResponse"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "拷贝角色,返回包括系统角色详情",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysAuthorityResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authority/createAuthority": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Authority"
- ],
- "summary": "创建角色",
- "parameters": [
- {
- "description": "权限id, 权限名, 父角色id",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "创建角色,返回包括系统角色详情",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysAuthorityResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authority/deleteAuthority": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Authority"
- ],
- "summary": "删除角色",
- "parameters": [
- {
- "description": "删除角色",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除角色",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authority/getAuthorityList": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Authority"
- ],
- "summary": "分页获取角色列表",
- "parameters": [
- {
- "description": "页码, 每页大小",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.PageInfo"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "分页获取角色列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authority/setDataAuthority": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Authority"
- ],
- "summary": "设置角色资源权限",
- "parameters": [
- {
- "description": "设置角色资源权限",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "设置角色资源权限",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authority/updateAuthority": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Authority"
- ],
- "summary": "更新角色信息",
- "parameters": [
- {
- "description": "权限id, 权限名, 父角色id",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "更新角色信息,返回包括系统角色详情",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysAuthorityResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authorityBtn/canRemoveAuthorityBtn": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AuthorityBtn"
- ],
- "summary": "设置权限按钮",
- "responses": {
- "200": {
- "description": "删除成功",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authorityBtn/getAuthorityBtn": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AuthorityBtn"
- ],
- "summary": "获取权限按钮",
- "parameters": [
- {
- "description": "菜单id, 角色id, 选中的按钮id",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.SysAuthorityBtnReq"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "返回列表成功",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysAuthorityBtnRes"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/authorityBtn/setAuthorityBtn": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AuthorityBtn"
- ],
- "summary": "设置权限按钮",
- "parameters": [
- {
- "description": "菜单id, 角色id, 选中的按钮id",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.SysAuthorityBtnReq"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "返回列表成功",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/createPackage": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "创建package",
- "parameters": [
- {
- "description": "创建package",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysAutoCode"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "创建package成功",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/createPlug": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "multipart/form-data"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "安装插件",
- "parameters": [
- {
- "type": "file",
- "description": "this is a test file",
- "name": "plug",
- "in": "formData",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "安装插件成功",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "array",
- "items": {
- "type": "object"
- }
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/createTemp": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "自动代码模板",
- "parameters": [
- {
- "description": "创建自动代码",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.AutoCodeStruct"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "{\"success\":true,\"data\":{},\"msg\":\"创建成功\"}",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "/autoCode/delPackage": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "删除package",
- "parameters": [
- {
- "description": "创建package",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysAutoCode"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除package成功",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/delSysHistory": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "删除回滚记录",
- "parameters": [
- {
- "description": "请求参数",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.GetById"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除回滚记录",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/getColumn": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "获取当前表所有字段",
- "responses": {
- "200": {
- "description": "获取当前表所有字段",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/getDatabase": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "获取当前所有数据库",
- "responses": {
- "200": {
- "description": "获取当前所有数据库",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/getMeta": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "获取meta信息",
- "parameters": [
- {
- "description": "请求参数",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.GetById"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "获取meta信息",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/getPackage": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "获取package",
- "responses": {
- "200": {
- "description": "创建package成功",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/getSysHistory": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "查询回滚记录",
- "parameters": [
- {
- "description": "请求参数",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.SysAutoHistory"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "查询回滚记录,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/getTables": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "获取当前数据库所有表",
- "responses": {
- "200": {
- "description": "获取当前数据库所有表",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/preview": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "预览创建后的代码",
- "parameters": [
- {
- "description": "预览创建代码",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.AutoCodeStruct"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "预览创建后的代码",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/autoCode/rollback": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AutoCode"
- ],
- "summary": "回滚自动生成代码",
- "parameters": [
- {
- "description": "请求参数",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.RollBack"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "回滚自动生成代码",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/base/captcha": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Base"
- ],
- "summary": "生成验证码",
- "responses": {
- "200": {
- "description": "生成验证码,返回包括随机数id,base64,验证码长度",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysCaptchaResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/base/login": {
- "post": {
- "produces": [
- "application/json"
- ],
- "tags": [
- "Base"
- ],
- "summary": "用户登录",
- "parameters": [
- {
- "description": "用户名, 密码, 验证码",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.Login"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "返回包括用户信息,token,过期时间",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.LoginResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/casbin/UpdateCasbin": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Casbin"
- ],
- "summary": "更新角色api权限",
- "parameters": [
- {
- "description": "权限id, 权限模型列表",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.CasbinInReceive"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "更新角色api权限",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/casbin/getPolicyPathByAuthorityId": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Casbin"
- ],
- "summary": "获取权限列表",
- "parameters": [
- {
- "description": "权限id, 权限模型列表",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.CasbinInReceive"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "获取权限列表,返回包括casbin详情列表",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PolicyPathResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/customer/customer": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaCustomer"
- ],
- "summary": "获取单一客户信息",
- "parameters": [
- {
- "type": "string",
- "description": "创建时间",
- "name": "createdAt",
- "in": "query"
- },
- {
- "type": "string",
- "description": "客户名",
- "name": "customerName",
- "in": "query"
- },
- {
- "type": "string",
- "description": "客户手机号",
- "name": "customerPhoneData",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "主键ID",
- "name": "id",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "管理角色ID",
- "name": "sysUserAuthorityID",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "管理ID",
- "name": "sysUserId",
- "in": "query"
- },
- {
- "type": "string",
- "description": "更新时间",
- "name": "updatedAt",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "获取单一客户信息,返回包括客户详情",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.ExaCustomerResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- },
- "put": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaCustomer"
- ],
- "summary": "更新客户信息",
- "parameters": [
- {
- "description": "客户ID, 客户信息",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/example.ExaCustomer"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "更新客户信息",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- },
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaCustomer"
- ],
- "summary": "创建客户",
- "parameters": [
- {
- "description": "客户用户名, 客户手机号码",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/example.ExaCustomer"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "创建客户",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- },
- "delete": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaCustomer"
- ],
- "summary": "删除客户",
- "parameters": [
- {
- "description": "客户ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/example.ExaCustomer"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除客户",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/customer/customerList": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaCustomer"
- ],
- "summary": "分页获取权限客户列表",
- "parameters": [
- {
- "type": "string",
- "description": "关键字",
- "name": "keyword",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "页码",
- "name": "page",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "每页大小",
- "name": "pageSize",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "分页获取权限客户列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/email/emailTest": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "System"
- ],
- "summary": "发送测试邮件",
- "responses": {
- "200": {
- "description": "{\"success\":true,\"data\":{},\"msg\":\"发送成功\"}",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "/email/sendEmail": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "System"
- ],
- "summary": "发送邮件",
- "parameters": [
- {
- "description": "发送邮件必须的参数",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/response.Email"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "{\"success\":true,\"data\":{},\"msg\":\"发送成功\"}",
- "schema": {
- "type": "string"
- }
- }
- }
- }
- },
- "/excel/downloadTemplate": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "multipart/form-data"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "excel"
- ],
- "summary": "下载模板",
- "parameters": [
- {
- "type": "string",
- "description": "模板名称",
- "name": "fileName",
- "in": "query",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": ""
- }
- }
- }
- },
- "/excel/exportExcel": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/octet-stream"
- ],
- "tags": [
- "excel"
- ],
- "summary": "导出Excel",
- "parameters": [
- {
- "description": "导出Excel文件信息",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/example.ExcelInfo"
- }
- }
- ],
- "responses": {
- "200": {
- "description": ""
- }
- }
- }
- },
- "/excel/importExcel": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "multipart/form-data"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "excel"
- ],
- "summary": "导入Excel文件",
- "parameters": [
- {
- "type": "file",
- "description": "导入Excel文件",
- "name": "file",
- "in": "formData",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "导入Excel文件",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/excel/loadExcel": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "excel"
- ],
- "summary": "加载Excel数据",
- "responses": {
- "200": {
- "description": "加载Excel数据,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/fileUploadAndDownload/breakpointContinue": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "multipart/form-data"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaFileUploadAndDownload"
- ],
- "summary": "断点续传到服务器",
- "parameters": [
- {
- "type": "file",
- "description": "an example for breakpoint resume, 断点续传示例",
- "name": "file",
- "in": "formData",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "断点续传到服务器",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/fileUploadAndDownload/deleteFile": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaFileUploadAndDownload"
- ],
- "summary": "删除文件",
- "parameters": [
- {
- "description": "传入文件里面id即可",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/example.ExaFileUploadAndDownload"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除文件",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/fileUploadAndDownload/findFile": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "multipart/form-data"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaFileUploadAndDownload"
- ],
- "summary": "创建文件",
- "parameters": [
- {
- "type": "file",
- "description": "上传文件完成",
- "name": "file",
- "in": "formData",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "创建文件,返回包括文件路径",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.FilePathResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/fileUploadAndDownload/getFileList": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaFileUploadAndDownload"
- ],
- "summary": "分页文件列表",
- "parameters": [
- {
- "description": "页码, 每页大小",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.PageInfo"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "分页文件列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/fileUploadAndDownload/removeChunk": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "multipart/form-data"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaFileUploadAndDownload"
- ],
- "summary": "删除切片",
- "parameters": [
- {
- "type": "file",
- "description": "删除缓存切片",
- "name": "file",
- "in": "formData",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "删除切片",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/fileUploadAndDownload/upload": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "multipart/form-data"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "ExaFileUploadAndDownload"
- ],
- "summary": "上传文件示例",
- "parameters": [
- {
- "type": "file",
- "description": "上传文件示例",
- "name": "file",
- "in": "formData",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "上传文件示例,返回包括文件详情",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.ExaFileResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/init/checkdb": {
- "post": {
- "produces": [
- "application/json"
- ],
- "tags": [
- "CheckDB"
- ],
- "summary": "初始化用户数据库",
- "responses": {
- "200": {
- "description": "初始化用户数据库",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/init/initdb": {
- "post": {
- "produces": [
- "application/json"
- ],
- "tags": [
- "InitDB"
- ],
- "summary": "初始化用户数据库",
- "parameters": [
- {
- "description": "初始化数据库参数",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.InitDB"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "初始化用户数据库",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/jwt/jsonInBlacklist": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Jwt"
- ],
- "summary": "jwt加入黑名单",
- "responses": {
- "200": {
- "description": "jwt加入黑名单",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/addBaseMenu": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Menu"
- ],
- "summary": "新增菜单",
- "parameters": [
- {
- "description": "路由path, 父菜单ID, 路由name, 对应前端文件路径, 排序标记",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysBaseMenu"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "新增菜单",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/addMenuAuthority": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AuthorityMenu"
- ],
- "summary": "增加menu和角色关联关系",
- "parameters": [
- {
- "description": "角色ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.AddMenuAuthorityInfo"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "增加menu和角色关联关系",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/deleteBaseMenu": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Menu"
- ],
- "summary": "删除菜单",
- "parameters": [
- {
- "description": "菜单id",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.GetById"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除菜单",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/getBaseMenuById": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Menu"
- ],
- "summary": "根据id获取菜单",
- "parameters": [
- {
- "description": "菜单id",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.GetById"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "根据id获取菜单,返回包括系统菜单列表",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysBaseMenuResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/getBaseMenuTree": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AuthorityMenu"
- ],
- "summary": "获取用户动态路由",
- "parameters": [
- {
- "description": "空",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.Empty"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "获取用户动态路由,返回包括系统菜单列表",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysBaseMenusResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/getMenu": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AuthorityMenu"
- ],
- "summary": "获取用户动态路由",
- "parameters": [
- {
- "description": "空",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.Empty"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "获取用户动态路由,返回包括系统菜单详情列表",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysMenusResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/getMenuAuthority": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "AuthorityMenu"
- ],
- "summary": "获取指定角色menu",
- "parameters": [
- {
- "description": "角色ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.GetAuthorityId"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "获取指定角色menu",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/getMenuList": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Menu"
- ],
- "summary": "分页获取基础menu列表",
- "parameters": [
- {
- "description": "页码, 每页大小",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.PageInfo"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "分页获取基础menu列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/menu/updateBaseMenu": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Menu"
- ],
- "summary": "更新菜单",
- "parameters": [
- {
- "description": "路由path, 父菜单ID, 路由name, 对应前端文件路径, 排序标记",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysBaseMenu"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "更新菜单",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionary/createSysDictionary": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionary"
- ],
- "summary": "创建SysDictionary",
- "parameters": [
- {
- "description": "SysDictionary模型",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysDictionary"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "创建SysDictionary",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionary/deleteSysDictionary": {
- "delete": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionary"
- ],
- "summary": "删除SysDictionary",
- "parameters": [
- {
- "description": "SysDictionary模型",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysDictionary"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除SysDictionary",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionary/findSysDictionary": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionary"
- ],
- "summary": "用id查询SysDictionary",
- "parameters": [
- {
- "type": "string",
- "description": "创建时间",
- "name": "createdAt",
- "in": "query"
- },
- {
- "type": "string",
- "description": "描述",
- "name": "desc",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "主键ID",
- "name": "id",
- "in": "query"
- },
- {
- "type": "string",
- "description": "字典名(中)",
- "name": "name",
- "in": "query"
- },
- {
- "type": "boolean",
- "description": "状态",
- "name": "status",
- "in": "query"
- },
- {
- "type": "string",
- "description": "字典名(英)",
- "name": "type",
- "in": "query"
- },
- {
- "type": "string",
- "description": "更新时间",
- "name": "updatedAt",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "用id查询SysDictionary",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionary/getSysDictionaryList": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionary"
- ],
- "summary": "分页获取SysDictionary列表",
- "parameters": [
- {
- "type": "string",
- "description": "创建时间",
- "name": "createdAt",
- "in": "query"
- },
- {
- "type": "string",
- "description": "描述",
- "name": "desc",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "主键ID",
- "name": "id",
- "in": "query"
- },
- {
- "type": "string",
- "description": "关键字",
- "name": "keyword",
- "in": "query"
- },
- {
- "type": "string",
- "description": "字典名(中)",
- "name": "name",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "页码",
- "name": "page",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "每页大小",
- "name": "pageSize",
- "in": "query"
- },
- {
- "type": "boolean",
- "description": "状态",
- "name": "status",
- "in": "query"
- },
- {
- "type": "string",
- "description": "字典名(英)",
- "name": "type",
- "in": "query"
- },
- {
- "type": "string",
- "description": "更新时间",
- "name": "updatedAt",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "分页获取SysDictionary列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionary/updateSysDictionary": {
- "put": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionary"
- ],
- "summary": "更新SysDictionary",
- "parameters": [
- {
- "description": "SysDictionary模型",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysDictionary"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "更新SysDictionary",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionaryDetail/createSysDictionaryDetail": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionaryDetail"
- ],
- "summary": "创建SysDictionaryDetail",
- "parameters": [
- {
- "description": "SysDictionaryDetail模型",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysDictionaryDetail"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "创建SysDictionaryDetail",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionaryDetail/deleteSysDictionaryDetail": {
- "delete": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionaryDetail"
- ],
- "summary": "删除SysDictionaryDetail",
- "parameters": [
- {
- "description": "SysDictionaryDetail模型",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysDictionaryDetail"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除SysDictionaryDetail",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionaryDetail/findSysDictionaryDetail": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionaryDetail"
- ],
- "summary": "用id查询SysDictionaryDetail",
- "parameters": [
- {
- "type": "string",
- "description": "创建时间",
- "name": "createdAt",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "主键ID",
- "name": "id",
- "in": "query"
- },
- {
- "type": "string",
- "description": "展示值",
- "name": "label",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "排序标记",
- "name": "sort",
- "in": "query"
- },
- {
- "type": "boolean",
- "description": "启用状态",
- "name": "status",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "关联标记",
- "name": "sysDictionaryID",
- "in": "query"
- },
- {
- "type": "string",
- "description": "更新时间",
- "name": "updatedAt",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "字典值",
- "name": "value",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "用id查询SysDictionaryDetail",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionaryDetail/getSysDictionaryDetailList": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionaryDetail"
- ],
- "summary": "分页获取SysDictionaryDetail列表",
- "parameters": [
- {
- "type": "string",
- "description": "创建时间",
- "name": "createdAt",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "主键ID",
- "name": "id",
- "in": "query"
- },
- {
- "type": "string",
- "description": "关键字",
- "name": "keyword",
- "in": "query"
- },
- {
- "type": "string",
- "description": "展示值",
- "name": "label",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "页码",
- "name": "page",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "每页大小",
- "name": "pageSize",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "排序标记",
- "name": "sort",
- "in": "query"
- },
- {
- "type": "boolean",
- "description": "启用状态",
- "name": "status",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "关联标记",
- "name": "sysDictionaryID",
- "in": "query"
- },
- {
- "type": "string",
- "description": "更新时间",
- "name": "updatedAt",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "字典值",
- "name": "value",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "分页获取SysDictionaryDetail列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysDictionaryDetail/updateSysDictionaryDetail": {
- "put": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysDictionaryDetail"
- ],
- "summary": "更新SysDictionaryDetail",
- "parameters": [
- {
- "description": "更新SysDictionaryDetail",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysDictionaryDetail"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "更新SysDictionaryDetail",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysOperationRecord/createSysOperationRecord": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysOperationRecord"
- ],
- "summary": "创建SysOperationRecord",
- "parameters": [
- {
- "description": "创建SysOperationRecord",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysOperationRecord"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "创建SysOperationRecord",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysOperationRecord/deleteSysOperationRecord": {
- "delete": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysOperationRecord"
- ],
- "summary": "删除SysOperationRecord",
- "parameters": [
- {
- "description": "SysOperationRecord模型",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysOperationRecord"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除SysOperationRecord",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysOperationRecord/deleteSysOperationRecordByIds": {
- "delete": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysOperationRecord"
- ],
- "summary": "批量删除SysOperationRecord",
- "parameters": [
- {
- "description": "批量删除SysOperationRecord",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.IdsReq"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "批量删除SysOperationRecord",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysOperationRecord/findSysOperationRecord": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysOperationRecord"
- ],
- "summary": "用id查询SysOperationRecord",
- "parameters": [
- {
- "type": "string",
- "description": "代理",
- "name": "agent",
- "in": "query"
- },
- {
- "type": "string",
- "description": "请求Body",
- "name": "body",
- "in": "query"
- },
- {
- "type": "string",
- "description": "创建时间",
- "name": "createdAt",
- "in": "query"
- },
- {
- "type": "string",
- "description": "错误信息",
- "name": "error_message",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "主键ID",
- "name": "id",
- "in": "query"
- },
- {
- "type": "string",
- "description": "请求ip",
- "name": "ip",
- "in": "query"
- },
- {
- "type": "string",
- "description": "延迟",
- "name": "latency",
- "in": "query"
- },
- {
- "type": "string",
- "description": "请求方法",
- "name": "method",
- "in": "query"
- },
- {
- "type": "string",
- "description": "请求路径",
- "name": "path",
- "in": "query"
- },
- {
- "type": "string",
- "description": "响应Body",
- "name": "resp",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "请求状态",
- "name": "status",
- "in": "query"
- },
- {
- "type": "string",
- "description": "更新时间",
- "name": "updatedAt",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "用户id",
- "name": "user_id",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "用id查询SysOperationRecord",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/sysOperationRecord/getSysOperationRecordList": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysOperationRecord"
- ],
- "summary": "分页获取SysOperationRecord列表",
- "parameters": [
- {
- "type": "string",
- "description": "代理",
- "name": "agent",
- "in": "query"
- },
- {
- "type": "string",
- "description": "请求Body",
- "name": "body",
- "in": "query"
- },
- {
- "type": "string",
- "description": "创建时间",
- "name": "createdAt",
- "in": "query"
- },
- {
- "type": "string",
- "description": "错误信息",
- "name": "error_message",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "主键ID",
- "name": "id",
- "in": "query"
- },
- {
- "type": "string",
- "description": "请求ip",
- "name": "ip",
- "in": "query"
- },
- {
- "type": "string",
- "description": "关键字",
- "name": "keyword",
- "in": "query"
- },
- {
- "type": "string",
- "description": "延迟",
- "name": "latency",
- "in": "query"
- },
- {
- "type": "string",
- "description": "请求方法",
- "name": "method",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "页码",
- "name": "page",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "每页大小",
- "name": "pageSize",
- "in": "query"
- },
- {
- "type": "string",
- "description": "请求路径",
- "name": "path",
- "in": "query"
- },
- {
- "type": "string",
- "description": "响应Body",
- "name": "resp",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "请求状态",
- "name": "status",
- "in": "query"
- },
- {
- "type": "string",
- "description": "更新时间",
- "name": "updatedAt",
- "in": "query"
- },
- {
- "type": "integer",
- "description": "用户id",
- "name": "user_id",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "分页获取SysOperationRecord列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/system/getServerInfo": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "System"
- ],
- "summary": "获取服务器信息",
- "responses": {
- "200": {
- "description": "获取服务器信息",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/system/getSystemConfig": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "System"
- ],
- "summary": "获取配置文件内容",
- "responses": {
- "200": {
- "description": "获取配置文件内容,返回包括系统配置",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysConfigResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/system/reloadSystem": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "System"
- ],
- "summary": "重启系统",
- "responses": {
- "200": {
- "description": "重启系统",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/system/setSystemConfig": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "System"
- ],
- "summary": "设置配置文件内容",
- "parameters": [
- {
- "description": "设置配置文件内容",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.System"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "设置配置文件内容",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/SetSelfInfo": {
- "put": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "设置用户信息",
- "parameters": [
- {
- "description": "ID, 用户名, 昵称, 头像链接",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysUser"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "设置用户信息",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/admin_register": {
- "post": {
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "用户注册账号",
- "parameters": [
- {
- "description": "用户名, 昵称, 密码, 角色ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.Register"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "用户注册账号,返回包括用户信息",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.SysUserResponse"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/changePassword": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "用户修改密码",
- "parameters": [
- {
- "description": "用户名, 原密码, 新密码",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.ChangePasswordReq"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "用户修改密码",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/deleteUser": {
- "delete": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "删除用户",
- "parameters": [
- {
- "description": "用户ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.GetById"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "删除用户",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/getUserInfo": {
- "get": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "获取用户信息",
- "responses": {
- "200": {
- "description": "获取用户信息",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/getUserList": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "分页获取用户列表",
- "parameters": [
- {
- "description": "页码, 每页大小",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.PageInfo"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "分页获取用户列表,返回包括列表,总数,页码,每页数量",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "$ref": "#/definitions/response.PageResult"
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/resetPassword": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "重置用户密码",
- "parameters": [
- {
- "description": "ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysUser"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "重置用户密码",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/setUserAuthorities": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "设置用户权限",
- "parameters": [
- {
- "description": "用户UUID, 角色ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.SetUserAuthorities"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "设置用户权限",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/setUserAuthority": {
- "post": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "更改用户权限",
- "parameters": [
- {
- "description": "用户UUID, 角色ID",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/request.SetUserAuth"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "设置用户权限",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- },
- "/user/setUserInfo": {
- "put": {
- "security": [
- {
- "ApiKeyAuth": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "SysUser"
- ],
- "summary": "设置用户信息",
- "parameters": [
- {
- "description": "ID, 用户名, 昵称, 头像链接",
- "name": "data",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/system.SysUser"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "设置用户信息",
- "schema": {
- "allOf": [
- {
- "$ref": "#/definitions/response.Response"
- },
- {
- "type": "object",
- "properties": {
- "data": {
- "type": "object",
- "additionalProperties": true
- },
- "msg": {
- "type": "string"
- }
- }
- }
- ]
- }
- }
- }
- }
- }
- },
- "definitions": {
- "config.AliyunOSS": {
- "type": "object",
- "properties": {
- "access-key-id": {
- "type": "string"
- },
- "access-key-secret": {
- "type": "string"
- },
- "base-path": {
- "type": "string"
- },
- "bucket-name": {
- "type": "string"
- },
- "bucket-url": {
- "type": "string"
- },
- "endpoint": {
- "type": "string"
- }
- }
- },
- "config.Autocode": {
- "type": "object",
- "properties": {
- "root": {
- "type": "string"
- },
- "server": {
- "type": "string"
- },
- "server-api": {
- "type": "string"
- },
- "server-initialize": {
- "type": "string"
- },
- "server-model": {
- "type": "string"
- },
- "server-plug": {
- "type": "string"
- },
- "server-request": {
- "type": "string"
- },
- "server-router": {
- "type": "string"
- },
- "server-service": {
- "type": "string"
- },
- "transfer-restart": {
- "type": "boolean"
- },
- "web": {
- "type": "string"
- },
- "web-api": {
- "type": "string"
- },
- "web-form": {
- "type": "string"
- },
- "web-table": {
- "type": "string"
- }
- }
- },
- "config.AwsS3": {
- "type": "object",
- "properties": {
- "base-url": {
- "type": "string"
- },
- "bucket": {
- "type": "string"
- },
- "disable-ssl": {
- "type": "boolean"
- },
- "endpoint": {
- "type": "string"
- },
- "path-prefix": {
- "type": "string"
- },
- "region": {
- "type": "string"
- },
- "s3-force-path-style": {
- "type": "boolean"
- },
- "secret-id": {
- "type": "string"
- },
- "secret-key": {
- "type": "string"
- }
- }
- },
- "config.CORS": {
- "type": "object",
- "properties": {
- "mode": {
- "type": "string"
- },
- "whitelist": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/config.CORSWhitelist"
- }
- }
- }
- },
- "config.CORSWhitelist": {
- "type": "object",
- "properties": {
- "allow-credentials": {
- "type": "boolean"
- },
- "allow-headers": {
- "type": "string"
- },
- "allow-methods": {
- "type": "string"
- },
- "allow-origin": {
- "type": "string"
- },
- "expose-headers": {
- "type": "string"
- }
- }
- },
- "config.Captcha": {
- "type": "object",
- "properties": {
- "img-height": {
- "description": "验证码高度",
- "type": "integer"
- },
- "img-width": {
- "description": "验证码宽度",
- "type": "integer"
- },
- "key-long": {
- "description": "验证码长度",
- "type": "integer"
- }
- }
- },
- "config.Detail": {
- "type": "object",
- "properties": {
- "compareField": {
- "description": "需要比较时间的字段",
- "type": "string"
- },
- "interval": {
- "description": "时间间隔",
- "type": "string"
- },
- "tableName": {
- "description": "需要清理的表名",
- "type": "string"
- }
- }
- },
- "config.Email": {
- "type": "object",
- "properties": {
- "from": {
- "description": "收件人",
- "type": "string"
- },
- "host": {
- "description": "服务器地址",
- "type": "string"
- },
- "is-ssl": {
- "description": "是否SSL",
- "type": "boolean"
- },
- "nickname": {
- "description": "昵称",
- "type": "string"
- },
- "port": {
- "description": "端口",
- "type": "integer"
- },
- "secret": {
- "description": "密钥",
- "type": "string"
- },
- "to": {
- "description": "收件人:多个以英文逗号分隔",
- "type": "string"
- }
- }
- },
- "config.Excel": {
- "type": "object",
- "properties": {
- "dir": {
- "type": "string"
- }
- }
- },
- "config.HuaWeiObs": {
- "type": "object",
- "properties": {
- "access-key": {
- "type": "string"
- },
- "bucket": {
- "type": "string"
- },
- "endpoint": {
- "type": "string"
- },
- "path": {
- "type": "string"
- },
- "secret-key": {
- "type": "string"
- }
- }
- },
- "config.JWT": {
- "type": "object",
- "properties": {
- "buffer-time": {
- "description": "缓冲时间",
- "type": "string"
- },
- "expires-time": {
- "description": "过期时间",
- "type": "string"
- },
- "issuer": {
- "description": "签发者",
- "type": "string"
- },
- "signing-key": {
- "description": "jwt签名",
- "type": "string"
- }
- }
- },
- "config.Local": {
- "type": "object",
- "properties": {
- "path": {
- "description": "本地文件访问路径",
- "type": "string"
- },
- "store-path": {
- "description": "本地文件存储路径",
- "type": "string"
- }
- }
- },
- "config.Mysql": {
- "type": "object",
- "properties": {
- "config": {
- "description": "高级配置",
- "type": "string"
- },
- "db-name": {
- "description": "数据库名",
- "type": "string"
- },
- "log-mode": {
- "description": "是否开启Gorm全局日志",
- "type": "string"
- },
- "log-zap": {
- "description": "是否通过zap写入日志文件",
- "type": "boolean"
- },
- "max-idle-conns": {
- "description": "空闲中的最大连接数",
- "type": "integer"
- },
- "max-open-conns": {
- "description": "打开到数据库的最大连接数",
- "type": "integer"
- },
- "password": {
- "description": "数据库密码",
- "type": "string"
- },
- "path": {
- "description": "服务器地址:端口",
- "type": "string"
- },
- "port": {
- "description": ":端口",
- "type": "string"
- },
- "username": {
- "description": "数据库用户名",
- "type": "string"
- }
- }
- },
- "config.Pgsql": {
- "type": "object",
- "properties": {
- "config": {
- "description": "高级配置",
- "type": "string"
- },
- "db-name": {
- "description": "数据库名",
- "type": "string"
- },
- "log-mode": {
- "description": "是否开启Gorm全局日志",
- "type": "string"
- },
- "log-zap": {
- "description": "是否通过zap写入日志文件",
- "type": "boolean"
- },
- "max-idle-conns": {
- "description": "空闲中的最大连接数",
- "type": "integer"
- },
- "max-open-conns": {
- "description": "打开到数据库的最大连接数",
- "type": "integer"
- },
- "password": {
- "description": "数据库密码",
- "type": "string"
- },
- "path": {
- "description": "服务器地址:端口",
- "type": "string"
- },
- "port": {
- "description": ":端口",
- "type": "string"
- },
- "username": {
- "description": "数据库用户名",
- "type": "string"
- }
- }
- },
- "config.Qiniu": {
- "type": "object",
- "properties": {
- "access-key": {
- "description": "秘钥AK",
- "type": "string"
- },
- "bucket": {
- "description": "空间名称",
- "type": "string"
- },
- "img-path": {
- "description": "CDN加速域名",
- "type": "string"
- },
- "secret-key": {
- "description": "秘钥SK",
- "type": "string"
- },
- "use-cdn-domains": {
- "description": "上传是否使用CDN上传加速",
- "type": "boolean"
- },
- "use-https": {
- "description": "是否使用https",
- "type": "boolean"
- },
- "zone": {
- "description": "存储区域",
- "type": "string"
- }
- }
- },
- "config.Redis": {
- "type": "object",
- "properties": {
- "addr": {
- "description": "服务器地址:端口",
- "type": "string"
- },
- "db": {
- "description": "redis的哪个数据库",
- "type": "integer"
- },
- "password": {
- "description": "密码",
- "type": "string"
- }
- }
- },
- "config.Server": {
- "type": "object",
- "properties": {
- "aliyun-oss": {
- "$ref": "#/definitions/config.AliyunOSS"
- },
- "autocode": {
- "description": "auto",
- "$ref": "#/definitions/config.Autocode"
- },
- "aws-s3": {
- "$ref": "#/definitions/config.AwsS3"
- },
- "captcha": {
- "$ref": "#/definitions/config.Captcha"
- },
- "cors": {
- "description": "跨域配置",
- "$ref": "#/definitions/config.CORS"
- },
- "db-list": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/config.SpecializedDB"
- }
- },
- "email": {
- "$ref": "#/definitions/config.Email"
- },
- "excel": {
- "$ref": "#/definitions/config.Excel"
- },
- "hua-wei-obs": {
- "$ref": "#/definitions/config.HuaWeiObs"
- },
- "jwt": {
- "$ref": "#/definitions/config.JWT"
- },
- "local": {
- "description": "oss",
- "$ref": "#/definitions/config.Local"
- },
- "mysql": {
- "description": "gorm",
- "$ref": "#/definitions/config.Mysql"
- },
- "pgsql": {
- "$ref": "#/definitions/config.Pgsql"
- },
- "qiniu": {
- "$ref": "#/definitions/config.Qiniu"
- },
- "redis": {
- "$ref": "#/definitions/config.Redis"
- },
- "system": {
- "$ref": "#/definitions/config.System"
- },
- "tencent-cos": {
- "$ref": "#/definitions/config.TencentCOS"
- },
- "timer": {
- "$ref": "#/definitions/config.Timer"
- },
- "zap": {
- "$ref": "#/definitions/config.Zap"
- }
- }
- },
- "config.SpecializedDB": {
- "type": "object",
- "properties": {
- "alias-name": {
- "type": "string"
- },
- "config": {
- "description": "高级配置",
- "type": "string"
- },
- "db-name": {
- "description": "数据库名",
- "type": "string"
- },
- "disable": {
- "type": "boolean"
- },
- "log-mode": {
- "description": "是否开启Gorm全局日志",
- "type": "string"
- },
- "log-zap": {
- "description": "是否通过zap写入日志文件",
- "type": "boolean"
- },
- "max-idle-conns": {
- "description": "空闲中的最大连接数",
- "type": "integer"
- },
- "max-open-conns": {
- "description": "打开到数据库的最大连接数",
- "type": "integer"
- },
- "password": {
- "description": "数据库密码",
- "type": "string"
- },
- "path": {
- "description": "服务器地址:端口",
- "type": "string"
- },
- "port": {
- "description": ":端口",
- "type": "string"
- },
- "type": {
- "type": "string"
- },
- "username": {
- "description": "数据库用户名",
- "type": "string"
- }
- }
- },
- "config.System": {
- "type": "object",
- "properties": {
- "addr": {
- "description": "端口值",
- "type": "integer"
- },
- "db-type": {
- "description": "数据库类型:mysql(默认)|sqlite|sqlserver|postgresql",
- "type": "string"
- },
- "env": {
- "description": "环境值",
- "type": "string"
- },
- "iplimit-count": {
- "type": "integer"
- },
- "iplimit-time": {
- "type": "integer"
- },
- "oss-type": {
- "description": "Oss类型",
- "type": "string"
- },
- "use-multipoint": {
- "description": "多点登录拦截",
- "type": "boolean"
- },
- "use-redis": {
- "description": "使用redis",
- "type": "boolean"
- }
- }
- },
- "config.TencentCOS": {
- "type": "object",
- "properties": {
- "base-url": {
- "type": "string"
- },
- "bucket": {
- "type": "string"
- },
- "path-prefix": {
- "type": "string"
- },
- "region": {
- "type": "string"
- },
- "secret-id": {
- "type": "string"
- },
- "secret-key": {
- "type": "string"
- }
- }
- },
- "config.Timer": {
- "type": "object",
- "properties": {
- "detail": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/config.Detail"
- }
- },
- "spec": {
- "description": "CRON表达式",
- "type": "string"
- },
- "start": {
- "description": "是否启用",
- "type": "boolean"
- },
- "with_seconds": {
- "description": "是否精确到秒",
- "type": "boolean"
- }
- }
- },
- "config.Zap": {
- "type": "object",
- "properties": {
- "director": {
- "description": "日志文件夹",
- "type": "string"
- },
- "encode-level": {
- "description": "编码级",
- "type": "string"
- },
- "format": {
- "description": "输出",
- "type": "string"
- },
- "level": {
- "description": "级别",
- "type": "string"
- },
- "log-in-console": {
- "description": "输出控制台",
- "type": "boolean"
- },
- "max-age": {
- "description": "日志留存时间",
- "type": "integer"
- },
- "prefix": {
- "description": "日志前缀",
- "type": "string"
- },
- "show-line": {
- "description": "显示行",
- "type": "boolean"
- },
- "stacktrace-key": {
- "description": "栈名",
- "type": "string"
- }
- }
- },
- "example.ExaCustomer": {
- "type": "object",
- "properties": {
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "customerName": {
- "description": "客户名",
- "type": "string"
- },
- "customerPhoneData": {
- "description": "客户手机号",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "sysUser": {
- "description": "管理详情",
- "$ref": "#/definitions/system.SysUser"
- },
- "sysUserAuthorityID": {
- "description": "管理角色ID",
- "type": "integer"
- },
- "sysUserId": {
- "description": "管理ID",
- "type": "integer"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "example.ExaFile": {
- "type": "object",
- "properties": {
- "chunkTotal": {
- "type": "integer"
- },
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "exaFileChunk": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/example.ExaFileChunk"
- }
- },
- "fileMd5": {
- "type": "string"
- },
- "fileName": {
- "type": "string"
- },
- "filePath": {
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "isFinish": {
- "type": "boolean"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "example.ExaFileChunk": {
- "type": "object",
- "properties": {
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "exaFileID": {
- "type": "integer"
- },
- "fileChunkNumber": {
- "type": "integer"
- },
- "fileChunkPath": {
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "example.ExaFileUploadAndDownload": {
- "type": "object",
- "properties": {
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "key": {
- "description": "编号",
- "type": "string"
- },
- "name": {
- "description": "文件名",
- "type": "string"
- },
- "tag": {
- "description": "文件标签",
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- },
- "url": {
- "description": "文件地址",
- "type": "string"
- }
- }
- },
- "example.ExcelInfo": {
- "type": "object",
- "properties": {
- "fileName": {
- "description": "文件名",
- "type": "string"
- },
- "infoList": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenu"
- }
- }
- }
- },
- "request.AddMenuAuthorityInfo": {
- "type": "object",
- "properties": {
- "authorityId": {
- "description": "角色ID",
- "type": "integer"
- },
- "menus": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenu"
- }
- }
- }
- },
- "request.CasbinInReceive": {
- "type": "object",
- "properties": {
- "authorityId": {
- "description": "权限id",
- "type": "integer"
- },
- "casbinInfos": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/request.CasbinInfo"
- }
- }
- }
- },
- "request.CasbinInfo": {
- "type": "object",
- "properties": {
- "method": {
- "description": "方法",
- "type": "string"
- },
- "path": {
- "description": "路径",
- "type": "string"
- }
- }
- },
- "request.ChangePasswordReq": {
- "type": "object",
- "properties": {
- "newPassword": {
- "description": "新密码",
- "type": "string"
- },
- "password": {
- "description": "密码",
- "type": "string"
- }
- }
- },
- "request.Empty": {
- "type": "object"
- },
- "request.GetAuthorityId": {
- "type": "object",
- "properties": {
- "authorityId": {
- "description": "角色ID",
- "type": "integer"
- }
- }
- },
- "request.GetById": {
- "type": "object",
- "properties": {
- "id": {
- "description": "主键ID",
- "type": "integer"
- }
- }
- },
- "request.IdsReq": {
- "type": "object",
- "properties": {
- "ids": {
- "type": "array",
- "items": {
- "type": "integer"
- }
- }
- }
- },
- "request.InitDB": {
- "type": "object",
- "required": [
- "dbName",
- "userName"
- ],
- "properties": {
- "dbName": {
- "description": "数据库名",
- "type": "string"
- },
- "dbType": {
- "description": "数据库类型",
- "type": "string"
- },
- "host": {
- "description": "服务器地址",
- "type": "string"
- },
- "password": {
- "description": "数据库密码",
- "type": "string"
- },
- "port": {
- "description": "数据库连接端口",
- "type": "string"
- },
- "userName": {
- "description": "数据库用户名",
- "type": "string"
- }
- }
- },
- "request.Login": {
- "type": "object",
- "properties": {
- "captcha": {
- "description": "验证码",
- "type": "string"
- },
- "captchaId": {
- "description": "验证码ID",
- "type": "string"
- },
- "password": {
- "description": "密码",
- "type": "string"
- },
- "username": {
- "description": "用户名",
- "type": "string"
- }
- }
- },
- "request.PageInfo": {
- "type": "object",
- "properties": {
- "keyword": {
- "description": "关键字",
- "type": "string"
- },
- "page": {
- "description": "页码",
- "type": "integer"
- },
- "pageSize": {
- "description": "每页大小",
- "type": "integer"
- }
- }
- },
- "request.Register": {
- "type": "object",
- "properties": {
- "authorityId": {
- "type": "integer"
- },
- "authorityIds": {
- "type": "array",
- "items": {
- "type": "integer"
- }
- },
- "enable": {
- "type": "integer"
- },
- "headerImg": {
- "type": "string"
- },
- "nickName": {
- "type": "string"
- },
- "passWord": {
- "type": "string"
- },
- "userName": {
- "type": "string"
- }
- }
- },
- "request.RollBack": {
- "type": "object",
- "properties": {
- "deleteTable": {
- "description": "是否删除表",
- "type": "boolean"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- }
- }
- },
- "request.SearchApiParams": {
- "type": "object",
- "properties": {
- "apiGroup": {
- "description": "api组",
- "type": "string"
- },
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "desc": {
- "description": "排序方式:升序false(默认)|降序true",
- "type": "boolean"
- },
- "description": {
- "description": "api中文描述",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "keyword": {
- "description": "关键字",
- "type": "string"
- },
- "method": {
- "description": "方法:创建POST(默认)|查看GET|更新PUT|删除DELETE",
- "type": "string"
- },
- "orderKey": {
- "description": "排序",
- "type": "string"
- },
- "page": {
- "description": "页码",
- "type": "integer"
- },
- "pageSize": {
- "description": "每页大小",
- "type": "integer"
- },
- "path": {
- "description": "api路径",
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "request.SetUserAuth": {
- "type": "object",
- "properties": {
- "authorityId": {
- "description": "角色ID",
- "type": "integer"
- }
- }
- },
- "request.SetUserAuthorities": {
- "type": "object",
- "properties": {
- "authorityIds": {
- "description": "角色ID",
- "type": "array",
- "items": {
- "type": "integer"
- }
- },
- "id": {
- "type": "integer"
- }
- }
- },
- "request.SysAuthorityBtnReq": {
- "type": "object",
- "properties": {
- "authorityId": {
- "type": "integer"
- },
- "menuID": {
- "type": "integer"
- },
- "selected": {
- "type": "array",
- "items": {
- "type": "integer"
- }
- }
- }
- },
- "request.SysAutoHistory": {
- "type": "object",
- "properties": {
- "keyword": {
- "description": "关键字",
- "type": "string"
- },
- "page": {
- "description": "页码",
- "type": "integer"
- },
- "pageSize": {
- "description": "每页大小",
- "type": "integer"
- }
- }
- },
- "response.Email": {
- "type": "object",
- "properties": {
- "body": {
- "description": "邮件内容",
- "type": "string"
- },
- "subject": {
- "description": "邮件标题",
- "type": "string"
- },
- "to": {
- "description": "邮件发送给谁",
- "type": "string"
- }
- }
- },
- "response.ExaCustomerResponse": {
- "type": "object",
- "properties": {
- "customer": {
- "$ref": "#/definitions/example.ExaCustomer"
- }
- }
- },
- "response.ExaFileResponse": {
- "type": "object",
- "properties": {
- "file": {
- "$ref": "#/definitions/example.ExaFileUploadAndDownload"
- }
- }
- },
- "response.FilePathResponse": {
- "type": "object",
- "properties": {
- "filePath": {
- "type": "string"
- }
- }
- },
- "response.FileResponse": {
- "type": "object",
- "properties": {
- "file": {
- "$ref": "#/definitions/example.ExaFile"
- }
- }
- },
- "response.LoginResponse": {
- "type": "object",
- "properties": {
- "expiresAt": {
- "type": "integer"
- },
- "token": {
- "type": "string"
- },
- "user": {
- "$ref": "#/definitions/system.SysUser"
- }
- }
- },
- "response.PageResult": {
- "type": "object",
- "properties": {
- "list": {
- "type": "object"
- },
- "page": {
- "type": "integer"
- },
- "pageSize": {
- "type": "integer"
- },
- "total": {
- "type": "integer"
- }
- }
- },
- "response.PolicyPathResponse": {
- "type": "object",
- "properties": {
- "paths": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/request.CasbinInfo"
- }
- }
- }
- },
- "response.Response": {
- "type": "object",
- "properties": {
- "code": {
- "type": "integer"
- },
- "data": {
- "type": "object"
- },
- "msg": {
- "type": "string"
- }
- }
- },
- "response.SysAPIListResponse": {
- "type": "object",
- "properties": {
- "apis": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysApi"
- }
- }
- }
- },
- "response.SysAPIResponse": {
- "type": "object",
- "properties": {
- "api": {
- "$ref": "#/definitions/system.SysApi"
- }
- }
- },
- "response.SysAuthorityBtnRes": {
- "type": "object",
- "properties": {
- "selected": {
- "type": "array",
- "items": {
- "type": "integer"
- }
- }
- }
- },
- "response.SysAuthorityCopyResponse": {
- "type": "object",
- "properties": {
- "authority": {
- "$ref": "#/definitions/system.SysAuthority"
- },
- "oldAuthorityId": {
- "description": "旧角色ID",
- "type": "integer"
- }
- }
- },
- "response.SysAuthorityResponse": {
- "type": "object",
- "properties": {
- "authority": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- }
- },
- "response.SysBaseMenuResponse": {
- "type": "object",
- "properties": {
- "menu": {
- "$ref": "#/definitions/system.SysBaseMenu"
- }
- }
- },
- "response.SysBaseMenusResponse": {
- "type": "object",
- "properties": {
- "menus": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenu"
- }
- }
- }
- },
- "response.SysCaptchaResponse": {
- "type": "object",
- "properties": {
- "captchaId": {
- "type": "string"
- },
- "captchaLength": {
- "type": "integer"
- },
- "picPath": {
- "type": "string"
- }
- }
- },
- "response.SysConfigResponse": {
- "type": "object",
- "properties": {
- "config": {
- "$ref": "#/definitions/config.Server"
- }
- }
- },
- "response.SysMenusResponse": {
- "type": "object",
- "properties": {
- "menus": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysMenu"
- }
- }
- }
- },
- "response.SysUserResponse": {
- "type": "object",
- "properties": {
- "user": {
- "$ref": "#/definitions/system.SysUser"
- }
- }
- },
- "system.AutoCodeStruct": {
- "type": "object",
- "properties": {
- "abbreviation": {
- "description": "Struct简称",
- "type": "string"
- },
- "autoCreateApiToSql": {
- "description": "是否自动创建api",
- "type": "boolean"
- },
- "autoCreateResource": {
- "description": "是否自动创建资源标识",
- "type": "boolean"
- },
- "autoMoveFile": {
- "description": "是否自动移动文件",
- "type": "boolean"
- },
- "description": {
- "description": "Struct中文名称",
- "type": "string"
- },
- "fields": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.Field"
- }
- },
- "hasTimer": {
- "type": "boolean"
- },
- "humpPackageName": {
- "description": "go文件名称",
- "type": "string"
- },
- "package": {
- "type": "string"
- },
- "packageName": {
- "description": "文件名称",
- "type": "string"
- },
- "structName": {
- "description": "Struct名称",
- "type": "string"
- },
- "tableName": {
- "description": "表名",
- "type": "string"
- }
- }
- },
- "system.Field": {
- "type": "object",
- "properties": {
- "clearable": {
- "description": "是否可清空",
- "type": "boolean"
- },
- "columnName": {
- "description": "数据库字段",
- "type": "string"
- },
- "comment": {
- "description": "数据库字段描述",
- "type": "string"
- },
- "dataTypeLong": {
- "description": "数据库字段长度",
- "type": "string"
- },
- "dictType": {
- "description": "字典",
- "type": "string"
- },
- "errorText": {
- "description": "校验失败文字",
- "type": "string"
- },
- "fieldDesc": {
- "description": "中文名",
- "type": "string"
- },
- "fieldJson": {
- "description": "FieldJson",
- "type": "string"
- },
- "fieldName": {
- "description": "Field名",
- "type": "string"
- },
- "fieldSearchType": {
- "description": "搜索条件",
- "type": "string"
- },
- "fieldType": {
- "description": "Field数据类型",
- "type": "string"
- },
- "require": {
- "description": "是否必填",
- "type": "boolean"
- }
- }
- },
- "system.SysApi": {
- "type": "object",
- "properties": {
- "apiGroup": {
- "description": "api组",
- "type": "string"
- },
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "description": {
- "description": "api中文描述",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "method": {
- "description": "方法:创建POST(默认)|查看GET|更新PUT|删除DELETE",
- "type": "string"
- },
- "path": {
- "description": "api路径",
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "system.SysAuthority": {
- "type": "object",
- "properties": {
- "authorityId": {
- "description": "角色ID",
- "type": "integer"
- },
- "authorityName": {
- "description": "角色名",
- "type": "string"
- },
- "children": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- },
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "dataAuthorityId": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- },
- "defaultRouter": {
- "description": "默认菜单(默认dashboard)",
- "type": "string"
- },
- "deletedAt": {
- "type": "string"
- },
- "menus": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenu"
- }
- },
- "parentId": {
- "description": "父角色ID",
- "type": "integer"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "system.SysAutoCode": {
- "type": "object",
- "properties": {
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "desc": {
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "label": {
- "type": "string"
- },
- "packageName": {
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "system.SysBaseMenu": {
- "type": "object",
- "properties": {
- "authoritys": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- },
- "children": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenu"
- }
- },
- "closeTab": {
- "description": "自动关闭tab",
- "type": "boolean"
- },
- "component": {
- "description": "对应前端文件路径",
- "type": "string"
- },
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "defaultMenu": {
- "description": "是否是基础路由(开发中)",
- "type": "boolean"
- },
- "hidden": {
- "description": "是否在列表隐藏",
- "type": "boolean"
- },
- "icon": {
- "description": "菜单图标",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "keepAlive": {
- "description": "是否缓存",
- "type": "boolean"
- },
- "menuBtn": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenuBtn"
- }
- },
- "name": {
- "description": "路由name",
- "type": "string"
- },
- "parameters": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenuParameter"
- }
- },
- "parentId": {
- "description": "父菜单ID",
- "type": "string"
- },
- "path": {
- "description": "路由path",
- "type": "string"
- },
- "sort": {
- "description": "排序标记",
- "type": "integer"
- },
- "title": {
- "description": "菜单名",
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "system.SysBaseMenuBtn": {
- "type": "object",
- "properties": {
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "desc": {
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "name": {
- "type": "string"
- },
- "sysBaseMenuID": {
- "type": "integer"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "system.SysBaseMenuParameter": {
- "type": "object",
- "properties": {
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "key": {
- "description": "地址栏携带参数的key",
- "type": "string"
- },
- "sysBaseMenuID": {
- "type": "integer"
- },
- "type": {
- "description": "地址栏携带参数为params还是query",
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- },
- "value": {
- "description": "地址栏携带参数的值",
- "type": "string"
- }
- }
- },
- "system.SysDictionary": {
- "type": "object",
- "properties": {
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "desc": {
- "description": "描述",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "name": {
- "description": "字典名(中)",
- "type": "string"
- },
- "status": {
- "description": "状态",
- "type": "boolean"
- },
- "sysDictionaryDetails": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysDictionaryDetail"
- }
- },
- "type": {
- "description": "字典名(英)",
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "system.SysDictionaryDetail": {
- "type": "object",
- "properties": {
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "label": {
- "description": "展示值",
- "type": "string"
- },
- "sort": {
- "description": "排序标记",
- "type": "integer"
- },
- "status": {
- "description": "启用状态",
- "type": "boolean"
- },
- "sysDictionaryID": {
- "description": "关联标记",
- "type": "integer"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- },
- "value": {
- "description": "字典值",
- "type": "integer"
- }
- }
- },
- "system.SysMenu": {
- "type": "object",
- "properties": {
- "authoritys": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- },
- "btns": {
- "type": "object",
- "additionalProperties": {
- "type": "integer"
- }
- },
- "children": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysMenu"
- }
- },
- "closeTab": {
- "description": "自动关闭tab",
- "type": "boolean"
- },
- "component": {
- "description": "对应前端文件路径",
- "type": "string"
- },
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "defaultMenu": {
- "description": "是否是基础路由(开发中)",
- "type": "boolean"
- },
- "hidden": {
- "description": "是否在列表隐藏",
- "type": "boolean"
- },
- "icon": {
- "description": "菜单图标",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "keepAlive": {
- "description": "是否缓存",
- "type": "boolean"
- },
- "menuBtn": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenuBtn"
- }
- },
- "menuId": {
- "type": "string"
- },
- "name": {
- "description": "路由name",
- "type": "string"
- },
- "parameters": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysBaseMenuParameter"
- }
- },
- "parentId": {
- "description": "父菜单ID",
- "type": "string"
- },
- "path": {
- "description": "路由path",
- "type": "string"
- },
- "sort": {
- "description": "排序标记",
- "type": "integer"
- },
- "title": {
- "description": "菜单名",
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- }
- }
- },
- "system.SysOperationRecord": {
- "type": "object",
- "properties": {
- "agent": {
- "description": "代理",
- "type": "string"
- },
- "body": {
- "description": "请求Body",
- "type": "string"
- },
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "error_message": {
- "description": "错误信息",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "ip": {
- "description": "请求ip",
- "type": "string"
- },
- "latency": {
- "description": "延迟",
- "type": "string"
- },
- "method": {
- "description": "请求方法",
- "type": "string"
- },
- "path": {
- "description": "请求路径",
- "type": "string"
- },
- "resp": {
- "description": "响应Body",
- "type": "string"
- },
- "status": {
- "description": "请求状态",
- "type": "integer"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- },
- "user": {
- "$ref": "#/definitions/system.SysUser"
- },
- "user_id": {
- "description": "用户id",
- "type": "integer"
- }
- }
- },
- "system.SysUser": {
- "type": "object",
- "properties": {
- "activeColor": {
- "description": "活跃颜色",
- "type": "string"
- },
- "authorities": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/system.SysAuthority"
- }
- },
- "authority": {
- "$ref": "#/definitions/system.SysAuthority"
- },
- "authorityId": {
- "description": "用户角色ID",
- "type": "integer"
- },
- "baseColor": {
- "description": "基础颜色",
- "type": "string"
- },
- "createdAt": {
- "description": "创建时间",
- "type": "string"
- },
- "email": {
- "description": "用户邮箱",
- "type": "string"
- },
- "enable": {
- "description": "用户是否被冻结 1正常 2冻结",
- "type": "integer"
- },
- "headerImg": {
- "description": "用户头像",
- "type": "string"
- },
- "id": {
- "description": "主键ID",
- "type": "integer"
- },
- "nickName": {
- "description": "用户昵称",
- "type": "string"
- },
- "phone": {
- "description": "用户手机号",
- "type": "string"
- },
- "sideMode": {
- "description": "用户侧边主题",
- "type": "string"
- },
- "updatedAt": {
- "description": "更新时间",
- "type": "string"
- },
- "userName": {
- "description": "用户登录名",
- "type": "string"
- },
- "uuid": {
- "description": "用户UUID",
- "type": "string"
- }
- }
- },
- "system.System": {
- "type": "object",
- "properties": {
- "config": {
- "$ref": "#/definitions/config.Server"
- }
- }
- }
- },
- "securityDefinitions": {
- "ApiKeyAuth": {
- "type": "apiKey",
- "name": "x-token",
- "in": "header"
- }
- }
-}
\ No newline at end of file
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
deleted file mode 100644
index 08a0a83..0000000
--- a/docs/swagger.yaml
+++ /dev/null
@@ -1,4120 +0,0 @@
-basePath: /
-definitions:
- config.AliyunOSS:
- properties:
- access-key-id:
- type: string
- access-key-secret:
- type: string
- base-path:
- type: string
- bucket-name:
- type: string
- bucket-url:
- type: string
- endpoint:
- type: string
- type: object
- config.Autocode:
- properties:
- root:
- type: string
- server:
- type: string
- server-api:
- type: string
- server-initialize:
- type: string
- server-model:
- type: string
- server-plug:
- type: string
- server-request:
- type: string
- server-router:
- type: string
- server-service:
- type: string
- transfer-restart:
- type: boolean
- web:
- type: string
- web-api:
- type: string
- web-form:
- type: string
- web-table:
- type: string
- type: object
- config.AwsS3:
- properties:
- base-url:
- type: string
- bucket:
- type: string
- disable-ssl:
- type: boolean
- endpoint:
- type: string
- path-prefix:
- type: string
- region:
- type: string
- s3-force-path-style:
- type: boolean
- secret-id:
- type: string
- secret-key:
- type: string
- type: object
- config.CORS:
- properties:
- mode:
- type: string
- whitelist:
- items:
- $ref: '#/definitions/config.CORSWhitelist'
- type: array
- type: object
- config.CORSWhitelist:
- properties:
- allow-credentials:
- type: boolean
- allow-headers:
- type: string
- allow-methods:
- type: string
- allow-origin:
- type: string
- expose-headers:
- type: string
- type: object
- config.Captcha:
- properties:
- img-height:
- description: 验证码高度
- type: integer
- img-width:
- description: 验证码宽度
- type: integer
- key-long:
- description: 验证码长度
- type: integer
- type: object
- config.Detail:
- properties:
- compareField:
- description: 需要比较时间的字段
- type: string
- interval:
- description: 时间间隔
- type: string
- tableName:
- description: 需要清理的表名
- type: string
- type: object
- config.Email:
- properties:
- from:
- description: 收件人
- type: string
- host:
- description: 服务器地址
- type: string
- is-ssl:
- description: 是否SSL
- type: boolean
- nickname:
- description: 昵称
- type: string
- port:
- description: 端口
- type: integer
- secret:
- description: 密钥
- type: string
- to:
- description: 收件人:多个以英文逗号分隔
- type: string
- type: object
- config.Excel:
- properties:
- dir:
- type: string
- type: object
- config.HuaWeiObs:
- properties:
- access-key:
- type: string
- bucket:
- type: string
- endpoint:
- type: string
- path:
- type: string
- secret-key:
- type: string
- type: object
- config.JWT:
- properties:
- buffer-time:
- description: 缓冲时间
- type: string
- expires-time:
- description: 过期时间
- type: string
- issuer:
- description: 签发者
- type: string
- signing-key:
- description: jwt签名
- type: string
- type: object
- config.Local:
- properties:
- path:
- description: 本地文件访问路径
- type: string
- store-path:
- description: 本地文件存储路径
- type: string
- type: object
- config.Mysql:
- properties:
- config:
- description: 高级配置
- type: string
- db-name:
- description: 数据库名
- type: string
- log-mode:
- description: 是否开启Gorm全局日志
- type: string
- log-zap:
- description: 是否通过zap写入日志文件
- type: boolean
- max-idle-conns:
- description: 空闲中的最大连接数
- type: integer
- max-open-conns:
- description: 打开到数据库的最大连接数
- type: integer
- password:
- description: 数据库密码
- type: string
- path:
- description: 服务器地址:端口
- type: string
- port:
- description: :端口
- type: string
- username:
- description: 数据库用户名
- type: string
- type: object
- config.Pgsql:
- properties:
- config:
- description: 高级配置
- type: string
- db-name:
- description: 数据库名
- type: string
- log-mode:
- description: 是否开启Gorm全局日志
- type: string
- log-zap:
- description: 是否通过zap写入日志文件
- type: boolean
- max-idle-conns:
- description: 空闲中的最大连接数
- type: integer
- max-open-conns:
- description: 打开到数据库的最大连接数
- type: integer
- password:
- description: 数据库密码
- type: string
- path:
- description: 服务器地址:端口
- type: string
- port:
- description: :端口
- type: string
- username:
- description: 数据库用户名
- type: string
- type: object
- config.Qiniu:
- properties:
- access-key:
- description: 秘钥AK
- type: string
- bucket:
- description: 空间名称
- type: string
- img-path:
- description: CDN加速域名
- type: string
- secret-key:
- description: 秘钥SK
- type: string
- use-cdn-domains:
- description: 上传是否使用CDN上传加速
- type: boolean
- use-https:
- description: 是否使用https
- type: boolean
- zone:
- description: 存储区域
- type: string
- type: object
- config.Redis:
- properties:
- addr:
- description: 服务器地址:端口
- type: string
- db:
- description: redis的哪个数据库
- type: integer
- password:
- description: 密码
- type: string
- type: object
- config.Server:
- properties:
- aliyun-oss:
- $ref: '#/definitions/config.AliyunOSS'
- autocode:
- $ref: '#/definitions/config.Autocode'
- description: auto
- aws-s3:
- $ref: '#/definitions/config.AwsS3'
- captcha:
- $ref: '#/definitions/config.Captcha'
- cors:
- $ref: '#/definitions/config.CORS'
- description: 跨域配置
- db-list:
- items:
- $ref: '#/definitions/config.SpecializedDB'
- type: array
- email:
- $ref: '#/definitions/config.Email'
- excel:
- $ref: '#/definitions/config.Excel'
- hua-wei-obs:
- $ref: '#/definitions/config.HuaWeiObs'
- jwt:
- $ref: '#/definitions/config.JWT'
- local:
- $ref: '#/definitions/config.Local'
- description: oss
- mysql:
- $ref: '#/definitions/config.Mysql'
- description: gorm
- system:
- $ref: '#/definitions/config.System'
- tencent-cos:
- $ref: '#/definitions/config.TencentCOS'
- timer:
- $ref: '#/definitions/config.Timer'
- zap:
- $ref: '#/definitions/config.Zap'
- type: object
- config.SpecializedDB:
- properties:
- alias-name:
- type: string
- config:
- description: 高级配置
- type: string
- db-name:
- description: 数据库名
- type: string
- disable:
- type: boolean
- log-mode:
- description: 是否开启Gorm全局日志
- type: string
- log-zap:
- description: 是否通过zap写入日志文件
- type: boolean
- max-idle-conns:
- description: 空闲中的最大连接数
- type: integer
- max-open-conns:
- description: 打开到数据库的最大连接数
- type: integer
- password:
- description: 数据库密码
- type: string
- path:
- description: 服务器地址:端口
- type: string
- port:
- description: :端口
- type: string
- type:
- type: string
- username:
- description: 数据库用户名
- type: string
- type: object
- config.System:
- properties:
- addr:
- description: 端口值
- type: integer
- db-type:
- description: 数据库类型:mysql(默认)|sqlite|sqlserver|postgresql
- type: string
- env:
- description: 环境值
- type: string
- iplimit-count:
- type: integer
- iplimit-time:
- type: integer
- oss-type:
- description: Oss类型
- type: string
- use-multipoint:
- description: 多点登录拦截
- type: boolean
- type: object
- config.TencentCOS:
- properties:
- base-url:
- type: string
- bucket:
- type: string
- path-prefix:
- type: string
- region:
- type: string
- secret-id:
- type: string
- secret-key:
- type: string
- type: object
- config.Timer:
- properties:
- detail:
- items:
- $ref: '#/definitions/config.Detail'
- type: array
- spec:
- description: CRON表达式
- type: string
- start:
- description: 是否启用
- type: boolean
- with_seconds:
- description: 是否精确到秒
- type: boolean
- type: object
- config.Zap:
- properties:
- director:
- description: 日志文件夹
- type: string
- encode-level:
- description: 编码级
- type: string
- format:
- description: 输出
- type: string
- level:
- description: 级别
- type: string
- log-in-console:
- description: 输出控制台
- type: boolean
- max-age:
- description: 日志留存时间
- type: integer
- prefix:
- description: 日志前缀
- type: string
- show-line:
- description: 显示行
- type: boolean
- stacktrace-key:
- description: 栈名
- type: string
- type: object
- example.ExaCustomer:
- properties:
- createdAt:
- description: 创建时间
- type: string
- customerName:
- description: 客户名
- type: string
- customerPhoneData:
- description: 客户手机号
- type: string
- id:
- description: 主键ID
- type: integer
- sysUser:
- $ref: '#/definitions/system.SysUser'
- description: 管理详情
- sysUserAuthorityID:
- description: 管理角色ID
- type: integer
- sysUserId:
- description: 管理ID
- type: integer
- updatedAt:
- description: 更新时间
- type: string
- type: object
- example.ExaFile:
- properties:
- chunkTotal:
- type: integer
- createdAt:
- description: 创建时间
- type: string
- exaFileChunk:
- items:
- $ref: '#/definitions/example.ExaFileChunk'
- type: array
- fileMd5:
- type: string
- fileName:
- type: string
- filePath:
- type: string
- id:
- description: 主键ID
- type: integer
- isFinish:
- type: boolean
- updatedAt:
- description: 更新时间
- type: string
- type: object
- example.ExaFileChunk:
- properties:
- createdAt:
- description: 创建时间
- type: string
- exaFileID:
- type: integer
- fileChunkNumber:
- type: integer
- fileChunkPath:
- type: string
- id:
- description: 主键ID
- type: integer
- updatedAt:
- description: 更新时间
- type: string
- type: object
- example.ExaFileUploadAndDownload:
- properties:
- createdAt:
- description: 创建时间
- type: string
- id:
- description: 主键ID
- type: integer
- key:
- description: 编号
- type: string
- name:
- description: 文件名
- type: string
- tag:
- description: 文件标签
- type: string
- updatedAt:
- description: 更新时间
- type: string
- url:
- description: 文件地址
- type: string
- type: object
- example.ExcelInfo:
- properties:
- fileName:
- description: 文件名
- type: string
- infoList:
- items:
- $ref: '#/definitions/system.SysBaseMenu'
- type: array
- type: object
- request.AddMenuAuthorityInfo:
- properties:
- authorityId:
- description: 角色ID
- type: integer
- menus:
- items:
- $ref: '#/definitions/system.SysBaseMenu'
- type: array
- type: object
- request.CasbinInReceive:
- properties:
- authorityId:
- description: 权限id
- type: integer
- casbinInfos:
- items:
- $ref: '#/definitions/request.CasbinInfo'
- type: array
- type: object
- request.CasbinInfo:
- properties:
- method:
- description: 方法
- type: string
- path:
- description: 路径
- type: string
- type: object
- request.ChangePasswordReq:
- properties:
- newPassword:
- description: 新密码
- type: string
- password:
- description: 密码
- type: string
- type: object
- request.Empty:
- type: object
- request.GetAuthorityId:
- properties:
- authorityId:
- description: 角色ID
- type: integer
- type: object
- request.GetById:
- properties:
- id:
- description: 主键ID
- type: integer
- type: object
- request.IdsReq:
- properties:
- ids:
- items:
- type: integer
- type: array
- type: object
- request.InitDB:
- properties:
- dbName:
- description: 数据库名
- type: string
- dbType:
- description: 数据库类型
- type: string
- host:
- description: 服务器地址
- type: string
- password:
- description: 数据库密码
- type: string
- port:
- description: 数据库连接端口
- type: string
- userName:
- description: 数据库用户名
- type: string
- required:
- - dbName
- - userName
- type: object
- request.Login:
- properties:
- captcha:
- description: 验证码
- type: string
- captchaId:
- description: 验证码ID
- type: string
- password:
- description: 密码
- type: string
- username:
- description: 用户名
- type: string
- type: object
- request.PageInfo:
- properties:
- keyword:
- description: 关键字
- type: string
- page:
- description: 页码
- type: integer
- pageSize:
- description: 每页大小
- type: integer
- type: object
- request.Register:
- properties:
- authorityId:
- type: integer
- authorityIds:
- items:
- type: integer
- type: array
- enable:
- type: integer
- headerImg:
- type: string
- nickName:
- type: string
- passWord:
- type: string
- userName:
- type: string
- type: object
- request.RollBack:
- properties:
- deleteTable:
- description: 是否删除表
- type: boolean
- id:
- description: 主键ID
- type: integer
- type: object
- request.SearchApiParams:
- properties:
- apiGroup:
- description: api组
- type: string
- createdAt:
- description: 创建时间
- type: string
- desc:
- description: 排序方式:升序false(默认)|降序true
- type: boolean
- description:
- description: api中文描述
- type: string
- id:
- description: 主键ID
- type: integer
- keyword:
- description: 关键字
- type: string
- method:
- description: 方法:创建POST(默认)|查看GET|更新PUT|删除DELETE
- type: string
- orderKey:
- description: 排序
- type: string
- page:
- description: 页码
- type: integer
- pageSize:
- description: 每页大小
- type: integer
- path:
- description: api路径
- type: string
- updatedAt:
- description: 更新时间
- type: string
- type: object
- request.SetUserAuth:
- properties:
- authorityId:
- description: 角色ID
- type: integer
- type: object
- request.SetUserAuthorities:
- properties:
- authorityIds:
- description: 角色ID
- items:
- type: integer
- type: array
- id:
- type: integer
- type: object
- request.SysAuthorityBtnReq:
- properties:
- authorityId:
- type: integer
- menuID:
- type: integer
- selected:
- items:
- type: integer
- type: array
- type: object
- request.SysAutoHistory:
- properties:
- keyword:
- description: 关键字
- type: string
- page:
- description: 页码
- type: integer
- pageSize:
- description: 每页大小
- type: integer
- type: object
- response.Email:
- properties:
- body:
- description: 邮件内容
- type: string
- subject:
- description: 邮件标题
- type: string
- to:
- description: 邮件发送给谁
- type: string
- type: object
- response.ExaCustomerResponse:
- properties:
- customer:
- $ref: '#/definitions/example.ExaCustomer'
- type: object
- response.ExaFileResponse:
- properties:
- file:
- $ref: '#/definitions/example.ExaFileUploadAndDownload'
- type: object
- response.FilePathResponse:
- properties:
- filePath:
- type: string
- type: object
- response.FileResponse:
- properties:
- file:
- $ref: '#/definitions/example.ExaFile'
- type: object
- response.LoginResponse:
- properties:
- expiresAt:
- type: integer
- token:
- type: string
- user:
- $ref: '#/definitions/system.SysUser'
- type: object
- response.PageResult:
- properties:
- list:
- type: object
- page:
- type: integer
- pageSize:
- type: integer
- total:
- type: integer
- type: object
- response.PolicyPathResponse:
- properties:
- paths:
- items:
- $ref: '#/definitions/request.CasbinInfo'
- type: array
- type: object
- response.Response:
- properties:
- code:
- type: integer
- data:
- type: object
- msg:
- type: string
- type: object
- response.SysAPIListResponse:
- properties:
- apis:
- items:
- $ref: '#/definitions/system.SysApi'
- type: array
- type: object
- response.SysAPIResponse:
- properties:
- api:
- $ref: '#/definitions/system.SysApi'
- type: object
- response.SysAuthorityBtnRes:
- properties:
- selected:
- items:
- type: integer
- type: array
- type: object
- response.SysAuthorityCopyResponse:
- properties:
- authority:
- $ref: '#/definitions/system.SysAuthority'
- oldAuthorityId:
- description: 旧角色ID
- type: integer
- type: object
- response.SysAuthorityResponse:
- properties:
- authority:
- $ref: '#/definitions/system.SysAuthority'
- type: object
- response.SysBaseMenuResponse:
- properties:
- menu:
- $ref: '#/definitions/system.SysBaseMenu'
- type: object
- response.SysBaseMenusResponse:
- properties:
- menus:
- items:
- $ref: '#/definitions/system.SysBaseMenu'
- type: array
- type: object
- response.SysCaptchaResponse:
- properties:
- captchaId:
- type: string
- captchaLength:
- type: integer
- picPath:
- type: string
- type: object
- response.SysConfigResponse:
- properties:
- config:
- $ref: '#/definitions/config.Server'
- type: object
- response.SysMenusResponse:
- properties:
- menus:
- items:
- $ref: '#/definitions/system.SysMenu'
- type: array
- type: object
- response.SysUserResponse:
- properties:
- user:
- $ref: '#/definitions/system.SysUser'
- type: object
- system.AutoCodeStruct:
- properties:
- abbreviation:
- description: Struct简称
- type: string
- autoCreateApiToSql:
- description: 是否自动创建api
- type: boolean
- autoCreateResource:
- description: 是否自动创建资源标识
- type: boolean
- autoMoveFile:
- description: 是否自动移动文件
- type: boolean
- description:
- description: Struct中文名称
- type: string
- fields:
- items:
- $ref: '#/definitions/system.Field'
- type: array
- hasTimer:
- type: boolean
- humpPackageName:
- description: go文件名称
- type: string
- package:
- type: string
- packageName:
- description: 文件名称
- type: string
- structName:
- description: Struct名称
- type: string
- tableName:
- description: 表名
- type: string
- type: object
- system.Field:
- properties:
- clearable:
- description: 是否可清空
- type: boolean
- columnName:
- description: 数据库字段
- type: string
- comment:
- description: 数据库字段描述
- type: string
- dataTypeLong:
- description: 数据库字段长度
- type: string
- dictType:
- description: 字典
- type: string
- errorText:
- description: 校验失败文字
- type: string
- fieldDesc:
- description: 中文名
- type: string
- fieldJson:
- description: FieldJson
- type: string
- fieldName:
- description: Field名
- type: string
- fieldSearchType:
- description: 搜索条件
- type: string
- fieldType:
- description: Field数据类型
- type: string
- require:
- description: 是否必填
- type: boolean
- type: object
- system.SysApi:
- properties:
- apiGroup:
- description: api组
- type: string
- createdAt:
- description: 创建时间
- type: string
- description:
- description: api中文描述
- type: string
- id:
- description: 主键ID
- type: integer
- method:
- description: 方法:创建POST(默认)|查看GET|更新PUT|删除DELETE
- type: string
- path:
- description: api路径
- type: string
- updatedAt:
- description: 更新时间
- type: string
- type: object
- system.SysAuthority:
- properties:
- authorityId:
- description: 角色ID
- type: integer
- authorityName:
- description: 角色名
- type: string
- children:
- items:
- $ref: '#/definitions/system.SysAuthority'
- type: array
- createdAt:
- description: 创建时间
- type: string
- dataAuthorityId:
- items:
- $ref: '#/definitions/system.SysAuthority'
- type: array
- defaultRouter:
- description: 默认菜单(默认dashboard)
- type: string
- deletedAt:
- type: string
- menus:
- items:
- $ref: '#/definitions/system.SysBaseMenu'
- type: array
- parentId:
- description: 父角色ID
- type: integer
- updatedAt:
- description: 更新时间
- type: string
- type: object
- system.SysAutoCode:
- properties:
- createdAt:
- description: 创建时间
- type: string
- desc:
- type: string
- id:
- description: 主键ID
- type: integer
- label:
- type: string
- packageName:
- type: string
- updatedAt:
- description: 更新时间
- type: string
- type: object
- system.SysBaseMenu:
- properties:
- authoritys:
- items:
- $ref: '#/definitions/system.SysAuthority'
- type: array
- children:
- items:
- $ref: '#/definitions/system.SysBaseMenu'
- type: array
- closeTab:
- description: 自动关闭tab
- type: boolean
- component:
- description: 对应前端文件路径
- type: string
- createdAt:
- description: 创建时间
- type: string
- defaultMenu:
- description: 是否是基础路由(开发中)
- type: boolean
- hidden:
- description: 是否在列表隐藏
- type: boolean
- icon:
- description: 菜单图标
- type: string
- id:
- description: 主键ID
- type: integer
- keepAlive:
- description: 是否缓存
- type: boolean
- menuBtn:
- items:
- $ref: '#/definitions/system.SysBaseMenuBtn'
- type: array
- name:
- description: 路由name
- type: string
- parameters:
- items:
- $ref: '#/definitions/system.SysBaseMenuParameter'
- type: array
- parentId:
- description: 父菜单ID
- type: string
- path:
- description: 路由path
- type: string
- sort:
- description: 排序标记
- type: integer
- title:
- description: 菜单名
- type: string
- updatedAt:
- description: 更新时间
- type: string
- type: object
- system.SysBaseMenuBtn:
- properties:
- createdAt:
- description: 创建时间
- type: string
- desc:
- type: string
- id:
- description: 主键ID
- type: integer
- name:
- type: string
- sysBaseMenuID:
- type: integer
- updatedAt:
- description: 更新时间
- type: string
- type: object
- system.SysBaseMenuParameter:
- properties:
- createdAt:
- description: 创建时间
- type: string
- id:
- description: 主键ID
- type: integer
- key:
- description: 地址栏携带参数的key
- type: string
- sysBaseMenuID:
- type: integer
- type:
- description: 地址栏携带参数为params还是query
- type: string
- updatedAt:
- description: 更新时间
- type: string
- value:
- description: 地址栏携带参数的值
- type: string
- type: object
- system.SysDictionary:
- properties:
- createdAt:
- description: 创建时间
- type: string
- desc:
- description: 描述
- type: string
- id:
- description: 主键ID
- type: integer
- name:
- description: 字典名(中)
- type: string
- status:
- description: 状态
- type: boolean
- sysDictionaryDetails:
- items:
- $ref: '#/definitions/system.SysDictionaryDetail'
- type: array
- type:
- description: 字典名(英)
- type: string
- updatedAt:
- description: 更新时间
- type: string
- type: object
- system.SysDictionaryDetail:
- properties:
- createdAt:
- description: 创建时间
- type: string
- id:
- description: 主键ID
- type: integer
- label:
- description: 展示值
- type: string
- sort:
- description: 排序标记
- type: integer
- status:
- description: 启用状态
- type: boolean
- sysDictionaryID:
- description: 关联标记
- type: integer
- updatedAt:
- description: 更新时间
- type: string
- value:
- description: 字典值
- type: integer
- type: object
- system.SysMenu:
- properties:
- authoritys:
- items:
- $ref: '#/definitions/system.SysAuthority'
- type: array
- btns:
- additionalProperties:
- type: integer
- type: object
- children:
- items:
- $ref: '#/definitions/system.SysMenu'
- type: array
- closeTab:
- description: 自动关闭tab
- type: boolean
- component:
- description: 对应前端文件路径
- type: string
- createdAt:
- description: 创建时间
- type: string
- defaultMenu:
- description: 是否是基础路由(开发中)
- type: boolean
- hidden:
- description: 是否在列表隐藏
- type: boolean
- icon:
- description: 菜单图标
- type: string
- id:
- description: 主键ID
- type: integer
- keepAlive:
- description: 是否缓存
- type: boolean
- menuBtn:
- items:
- $ref: '#/definitions/system.SysBaseMenuBtn'
- type: array
- menuId:
- type: string
- name:
- description: 路由name
- type: string
- parameters:
- items:
- $ref: '#/definitions/system.SysBaseMenuParameter'
- type: array
- parentId:
- description: 父菜单ID
- type: string
- path:
- description: 路由path
- type: string
- sort:
- description: 排序标记
- type: integer
- title:
- description: 菜单名
- type: string
- updatedAt:
- description: 更新时间
- type: string
- type: object
- system.SysOperationRecord:
- properties:
- agent:
- description: 代理
- type: string
- body:
- description: 请求Body
- type: string
- createdAt:
- description: 创建时间
- type: string
- error_message:
- description: 错误信息
- type: string
- id:
- description: 主键ID
- type: integer
- ip:
- description: 请求ip
- type: string
- latency:
- description: 延迟
- type: string
- method:
- description: 请求方法
- type: string
- path:
- description: 请求路径
- type: string
- resp:
- description: 响应Body
- type: string
- status:
- description: 请求状态
- type: integer
- updatedAt:
- description: 更新时间
- type: string
- user:
- $ref: '#/definitions/system.SysUser'
- user_id:
- description: 用户id
- type: integer
- type: object
- system.SysUser:
- properties:
- activeColor:
- description: 活跃颜色
- type: string
- authorities:
- items:
- $ref: '#/definitions/system.SysAuthority'
- type: array
- authority:
- $ref: '#/definitions/system.SysAuthority'
- authorityId:
- description: 用户角色ID
- type: integer
- baseColor:
- description: 基础颜色
- type: string
- createdAt:
- description: 创建时间
- type: string
- email:
- description: 用户邮箱
- type: string
- enable:
- description: 用户是否被冻结 1正常 2冻结
- type: integer
- headerImg:
- description: 用户头像
- type: string
- id:
- description: 主键ID
- type: integer
- nickName:
- description: 用户昵称
- type: string
- phone:
- description: 用户手机号
- type: string
- sideMode:
- description: 用户侧边主题
- type: string
- updatedAt:
- description: 更新时间
- type: string
- userName:
- description: 用户登录名
- type: string
- uuid:
- description: 用户UUID
- type: string
- type: object
- system.System:
- properties:
- config:
- $ref: '#/definitions/config.Server'
- type: object
-info:
- contact: {}
- description: This is a sample Server pets
- title: Swagger Example API
- version: 0.0.1
-paths:
- /api/createApi:
- post:
- consumes:
- - application/json
- parameters:
- - description: api路径, api中文描述, api组, 方法
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysApi'
- produces:
- - application/json
- responses:
- "200":
- description: 创建基础api
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 创建基础api
- tags:
- - SysApi
- /api/deleteApi:
- post:
- consumes:
- - application/json
- parameters:
- - description: ID
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysApi'
- produces:
- - application/json
- responses:
- "200":
- description: 删除api
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 删除api
- tags:
- - SysApi
- /api/deleteApisByIds:
- delete:
- consumes:
- - application/json
- parameters:
- - description: ID
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.IdsReq'
- produces:
- - application/json
- responses:
- "200":
- description: 删除选中Api
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 删除选中Api
- tags:
- - SysApi
- /api/getAllApis:
- post:
- consumes:
- - application/json
- produces:
- - application/json
- responses:
- "200":
- description: 获取所有的Api 不分页,返回包括api列表
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.SysAPIListResponse'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 获取所有的Api 不分页
- tags:
- - SysApi
- /api/getApiById:
- post:
- consumes:
- - application/json
- parameters:
- - description: 根据id获取api
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.GetById'
- produces:
- - application/json
- responses:
- "200":
- description: 根据id获取api,返回包括api详情
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.SysAPIResponse'
- type: object
- security:
- - ApiKeyAuth: []
- summary: 根据id获取api
- tags:
- - SysApi
- /api/getApiList:
- post:
- consumes:
- - application/json
- parameters:
- - description: 分页获取API列表
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.SearchApiParams'
- produces:
- - application/json
- responses:
- "200":
- description: 分页获取API列表,返回包括列表,总数,页码,每页数量
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.PageResult'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 分页获取API列表
- tags:
- - SysApi
- /api/updateApi:
- post:
- consumes:
- - application/json
- parameters:
- - description: api路径, api中文描述, api组, 方法
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysApi'
- produces:
- - application/json
- responses:
- "200":
- description: 修改基础api
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 修改基础api
- tags:
- - SysApi
- /authority/copyAuthority:
- post:
- consumes:
- - application/json
- parameters:
- - description: 旧角色id, 新权限id, 新权限名, 新父角色id
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/response.SysAuthorityCopyResponse'
- produces:
- - application/json
- responses:
- "200":
- description: 拷贝角色,返回包括系统角色详情
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.SysAuthorityResponse'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 拷贝角色
- tags:
- - Authority
- /authority/createAuthority:
- post:
- consumes:
- - application/json
- parameters:
- - description: 权限id, 权限名, 父角色id
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysAuthority'
- produces:
- - application/json
- responses:
- "200":
- description: 创建角色,返回包括系统角色详情
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.SysAuthorityResponse'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 创建角色
- tags:
- - Authority
- /authority/deleteAuthority:
- post:
- consumes:
- - application/json
- parameters:
- - description: 删除角色
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysAuthority'
- produces:
- - application/json
- responses:
- "200":
- description: 删除角色
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 删除角色
- tags:
- - Authority
- /authority/getAuthorityList:
- post:
- consumes:
- - application/json
- parameters:
- - description: 页码, 每页大小
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.PageInfo'
- produces:
- - application/json
- responses:
- "200":
- description: 分页获取角色列表,返回包括列表,总数,页码,每页数量
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.PageResult'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 分页获取角色列表
- tags:
- - Authority
- /authority/setDataAuthority:
- post:
- consumes:
- - application/json
- parameters:
- - description: 设置角色资源权限
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysAuthority'
- produces:
- - application/json
- responses:
- "200":
- description: 设置角色资源权限
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 设置角色资源权限
- tags:
- - Authority
- /authority/updateAuthority:
- post:
- consumes:
- - application/json
- parameters:
- - description: 权限id, 权限名, 父角色id
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysAuthority'
- produces:
- - application/json
- responses:
- "200":
- description: 更新角色信息,返回包括系统角色详情
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.SysAuthorityResponse'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 更新角色信息
- tags:
- - Authority
- /authorityBtn/canRemoveAuthorityBtn:
- post:
- consumes:
- - application/json
- produces:
- - application/json
- responses:
- "200":
- description: 删除成功
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 设置权限按钮
- tags:
- - AuthorityBtn
- /authorityBtn/getAuthorityBtn:
- post:
- consumes:
- - application/json
- parameters:
- - description: 菜单id, 角色id, 选中的按钮id
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.SysAuthorityBtnReq'
- produces:
- - application/json
- responses:
- "200":
- description: 返回列表成功
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.SysAuthorityBtnRes'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 获取权限按钮
- tags:
- - AuthorityBtn
- /authorityBtn/setAuthorityBtn:
- post:
- consumes:
- - application/json
- parameters:
- - description: 菜单id, 角色id, 选中的按钮id
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.SysAuthorityBtnReq'
- produces:
- - application/json
- responses:
- "200":
- description: 返回列表成功
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 设置权限按钮
- tags:
- - AuthorityBtn
- /autoCode/createPackage:
- post:
- consumes:
- - application/json
- parameters:
- - description: 创建package
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysAutoCode'
- produces:
- - application/json
- responses:
- "200":
- description: 创建package成功
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- additionalProperties: true
- type: object
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 创建package
- tags:
- - AutoCode
- /autoCode/createPlug:
- post:
- consumes:
- - multipart/form-data
- parameters:
- - description: this is a test file
- in: formData
- name: plug
- required: true
- type: file
- produces:
- - application/json
- responses:
- "200":
- description: 安装插件成功
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- items:
- type: object
- type: array
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 安装插件
- tags:
- - AutoCode
- /autoCode/createTemp:
- post:
- consumes:
- - application/json
- parameters:
- - description: 创建自动代码
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.AutoCodeStruct'
- produces:
- - application/json
- responses:
- "200":
- description: '{"success":true,"data":{},"msg":"创建成功"}'
- schema:
- type: string
- security:
- - ApiKeyAuth: []
- summary: 自动代码模板
- tags:
- - AutoCode
- /autoCode/delPackage:
- post:
- consumes:
- - application/json
- parameters:
- - description: 创建package
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysAutoCode'
- produces:
- - application/json
- responses:
- "200":
- description: 删除package成功
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- additionalProperties: true
- type: object
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 删除package
- tags:
- - AutoCode
- /autoCode/delSysHistory:
- post:
- consumes:
- - application/json
- parameters:
- - description: 请求参数
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.GetById'
- produces:
- - application/json
- responses:
- "200":
- description: 删除回滚记录
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 删除回滚记录
- tags:
- - AutoCode
- /autoCode/getColumn:
- get:
- consumes:
- - application/json
- produces:
- - application/json
- responses:
- "200":
- description: 获取当前表所有字段
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- additionalProperties: true
- type: object
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 获取当前表所有字段
- tags:
- - AutoCode
- /autoCode/getDatabase:
- get:
- consumes:
- - application/json
- produces:
- - application/json
- responses:
- "200":
- description: 获取当前所有数据库
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- additionalProperties: true
- type: object
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 获取当前所有数据库
- tags:
- - AutoCode
- /autoCode/getMeta:
- post:
- consumes:
- - application/json
- parameters:
- - description: 请求参数
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.GetById'
- produces:
- - application/json
- responses:
- "200":
- description: 获取meta信息
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- additionalProperties: true
- type: object
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 获取meta信息
- tags:
- - AutoCode
- /autoCode/getPackage:
- post:
- consumes:
- - application/json
- produces:
- - application/json
- responses:
- "200":
- description: 创建package成功
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- additionalProperties: true
- type: object
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 获取package
- tags:
- - AutoCode
- /autoCode/getSysHistory:
- post:
- consumes:
- - application/json
- parameters:
- - description: 请求参数
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.SysAutoHistory'
- produces:
- - application/json
- responses:
- "200":
- description: 查询回滚记录,返回包括列表,总数,页码,每页数量
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.PageResult'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 查询回滚记录
- tags:
- - AutoCode
- /autoCode/getTables:
- get:
- consumes:
- - application/json
- produces:
- - application/json
- responses:
- "200":
- description: 获取当前数据库所有表
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- additionalProperties: true
- type: object
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 获取当前数据库所有表
- tags:
- - AutoCode
- /autoCode/preview:
- post:
- consumes:
- - application/json
- parameters:
- - description: 预览创建代码
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.AutoCodeStruct'
- produces:
- - application/json
- responses:
- "200":
- description: 预览创建后的代码
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- additionalProperties: true
- type: object
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 预览创建后的代码
- tags:
- - AutoCode
- /autoCode/rollback:
- post:
- consumes:
- - application/json
- parameters:
- - description: 请求参数
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.RollBack'
- produces:
- - application/json
- responses:
- "200":
- description: 回滚自动生成代码
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 回滚自动生成代码
- tags:
- - AutoCode
- /base/captcha:
- post:
- consumes:
- - application/json
- produces:
- - application/json
- responses:
- "200":
- description: 生成验证码,返回包括随机数id,base64,验证码长度
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.SysCaptchaResponse'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 生成验证码
- tags:
- - Base
- /base/login:
- post:
- parameters:
- - description: 用户名, 密码, 验证码
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.Login'
- produces:
- - application/json
- responses:
- "200":
- description: 返回包括用户信息,token,过期时间
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.LoginResponse'
- msg:
- type: string
- type: object
- summary: 用户登录
- tags:
- - Base
- /casbin/UpdateCasbin:
- post:
- consumes:
- - application/json
- parameters:
- - description: 权限id, 权限模型列表
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.CasbinInReceive'
- produces:
- - application/json
- responses:
- "200":
- description: 更新角色api权限
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 更新角色api权限
- tags:
- - Casbin
- /casbin/getPolicyPathByAuthorityId:
- post:
- consumes:
- - application/json
- parameters:
- - description: 权限id, 权限模型列表
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.CasbinInReceive'
- produces:
- - application/json
- responses:
- "200":
- description: 获取权限列表,返回包括casbin详情列表
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.PolicyPathResponse'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 获取权限列表
- tags:
- - Casbin
- /customer/customer:
- delete:
- consumes:
- - application/json
- parameters:
- - description: 客户ID
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/example.ExaCustomer'
- produces:
- - application/json
- responses:
- "200":
- description: 删除客户
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 删除客户
- tags:
- - ExaCustomer
- get:
- consumes:
- - application/json
- parameters:
- - description: 创建时间
- in: query
- name: createdAt
- type: string
- - description: 客户名
- in: query
- name: customerName
- type: string
- - description: 客户手机号
- in: query
- name: customerPhoneData
- type: string
- - description: 主键ID
- in: query
- name: id
- type: integer
- - description: 管理角色ID
- in: query
- name: sysUserAuthorityID
- type: integer
- - description: 管理ID
- in: query
- name: sysUserId
- type: integer
- - description: 更新时间
- in: query
- name: updatedAt
- type: string
- produces:
- - application/json
- responses:
- "200":
- description: 获取单一客户信息,返回包括客户详情
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.ExaCustomerResponse'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 获取单一客户信息
- tags:
- - ExaCustomer
- post:
- consumes:
- - application/json
- parameters:
- - description: 客户用户名, 客户手机号码
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/example.ExaCustomer'
- produces:
- - application/json
- responses:
- "200":
- description: 创建客户
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 创建客户
- tags:
- - ExaCustomer
- put:
- consumes:
- - application/json
- parameters:
- - description: 客户ID, 客户信息
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/example.ExaCustomer'
- produces:
- - application/json
- responses:
- "200":
- description: 更新客户信息
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 更新客户信息
- tags:
- - ExaCustomer
- /customer/customerList:
- get:
- consumes:
- - application/json
- parameters:
- - description: 关键字
- in: query
- name: keyword
- type: string
- - description: 页码
- in: query
- name: page
- type: integer
- - description: 每页大小
- in: query
- name: pageSize
- type: integer
- produces:
- - application/json
- responses:
- "200":
- description: 分页获取权限客户列表,返回包括列表,总数,页码,每页数量
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.PageResult'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 分页获取权限客户列表
- tags:
- - ExaCustomer
- /email/emailTest:
- post:
- produces:
- - application/json
- responses:
- "200":
- description: '{"success":true,"data":{},"msg":"发送成功"}'
- schema:
- type: string
- security:
- - ApiKeyAuth: []
- summary: 发送测试邮件
- tags:
- - System
- /email/sendEmail:
- post:
- parameters:
- - description: 发送邮件必须的参数
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/response.Email'
- produces:
- - application/json
- responses:
- "200":
- description: '{"success":true,"data":{},"msg":"发送成功"}'
- schema:
- type: string
- security:
- - ApiKeyAuth: []
- summary: 发送邮件
- tags:
- - System
- /excel/downloadTemplate:
- get:
- consumes:
- - multipart/form-data
- parameters:
- - description: 模板名称
- in: query
- name: fileName
- required: true
- type: string
- produces:
- - application/json
- responses:
- "200":
- description: ""
- security:
- - ApiKeyAuth: []
- summary: 下载模板
- tags:
- - excel
- /excel/exportExcel:
- post:
- consumes:
- - application/json
- parameters:
- - description: 导出Excel文件信息
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/example.ExcelInfo'
- produces:
- - application/octet-stream
- responses:
- "200":
- description: ""
- security:
- - ApiKeyAuth: []
- summary: 导出Excel
- tags:
- - excel
- /excel/importExcel:
- post:
- consumes:
- - multipart/form-data
- parameters:
- - description: 导入Excel文件
- in: formData
- name: file
- required: true
- type: file
- produces:
- - application/json
- responses:
- "200":
- description: 导入Excel文件
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 导入Excel文件
- tags:
- - excel
- /excel/loadExcel:
- get:
- produces:
- - application/json
- responses:
- "200":
- description: 加载Excel数据,返回包括列表,总数,页码,每页数量
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.PageResult'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 加载Excel数据
- tags:
- - excel
- /fileUploadAndDownload/breakpointContinue:
- post:
- consumes:
- - multipart/form-data
- parameters:
- - description: an example for breakpoint resume, 断点续传示例
- in: formData
- name: file
- required: true
- type: file
- produces:
- - application/json
- responses:
- "200":
- description: 断点续传到服务器
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 断点续传到服务器
- tags:
- - ExaFileUploadAndDownload
- /fileUploadAndDownload/deleteFile:
- post:
- parameters:
- - description: 传入文件里面id即可
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/example.ExaFileUploadAndDownload'
- produces:
- - application/json
- responses:
- "200":
- description: 删除文件
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 删除文件
- tags:
- - ExaFileUploadAndDownload
- /fileUploadAndDownload/findFile:
- post:
- consumes:
- - multipart/form-data
- parameters:
- - description: 上传文件完成
- in: formData
- name: file
- required: true
- type: file
- produces:
- - application/json
- responses:
- "200":
- description: 创建文件,返回包括文件路径
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.FilePathResponse'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 创建文件
- tags:
- - ExaFileUploadAndDownload
- /fileUploadAndDownload/getFileList:
- post:
- consumes:
- - application/json
- parameters:
- - description: 页码, 每页大小
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.PageInfo'
- produces:
- - application/json
- responses:
- "200":
- description: 分页文件列表,返回包括列表,总数,页码,每页数量
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.PageResult'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 分页文件列表
- tags:
- - ExaFileUploadAndDownload
- /fileUploadAndDownload/removeChunk:
- post:
- consumes:
- - multipart/form-data
- parameters:
- - description: 删除缓存切片
- in: formData
- name: file
- required: true
- type: file
- produces:
- - application/json
- responses:
- "200":
- description: 删除切片
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 删除切片
- tags:
- - ExaFileUploadAndDownload
- /fileUploadAndDownload/upload:
- post:
- consumes:
- - multipart/form-data
- parameters:
- - description: 上传文件示例
- in: formData
- name: file
- required: true
- type: file
- produces:
- - application/json
- responses:
- "200":
- description: 上传文件示例,返回包括文件详情
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.ExaFileResponse'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 上传文件示例
- tags:
- - ExaFileUploadAndDownload
- /init/checkdb:
- post:
- produces:
- - application/json
- responses:
- "200":
- description: 初始化用户数据库
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- additionalProperties: true
- type: object
- msg:
- type: string
- type: object
- summary: 初始化用户数据库
- tags:
- - CheckDB
- /init/initdb:
- post:
- parameters:
- - description: 初始化数据库参数
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.InitDB'
- produces:
- - application/json
- responses:
- "200":
- description: 初始化用户数据库
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- type: string
- type: object
- summary: 初始化用户数据库
- tags:
- - InitDB
- /jwt/jsonInBlacklist:
- post:
- consumes:
- - application/json
- produces:
- - application/json
- responses:
- "200":
- description: jwt加入黑名单
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: jwt加入黑名单
- tags:
- - Jwt
- /menu/addBaseMenu:
- post:
- consumes:
- - application/json
- parameters:
- - description: 路由path, 父菜单ID, 路由name, 对应前端文件路径, 排序标记
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysBaseMenu'
- produces:
- - application/json
- responses:
- "200":
- description: 新增菜单
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 新增菜单
- tags:
- - Menu
- /menu/addMenuAuthority:
- post:
- consumes:
- - application/json
- parameters:
- - description: 角色ID
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.AddMenuAuthorityInfo'
- produces:
- - application/json
- responses:
- "200":
- description: 增加menu和角色关联关系
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 增加menu和角色关联关系
- tags:
- - AuthorityMenu
- /menu/deleteBaseMenu:
- post:
- consumes:
- - application/json
- parameters:
- - description: 菜单id
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.GetById'
- produces:
- - application/json
- responses:
- "200":
- description: 删除菜单
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 删除菜单
- tags:
- - Menu
- /menu/getBaseMenuById:
- post:
- consumes:
- - application/json
- parameters:
- - description: 菜单id
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.GetById'
- produces:
- - application/json
- responses:
- "200":
- description: 根据id获取菜单,返回包括系统菜单列表
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.SysBaseMenuResponse'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 根据id获取菜单
- tags:
- - Menu
- /menu/getBaseMenuTree:
- post:
- parameters:
- - description: 空
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.Empty'
- produces:
- - application/json
- responses:
- "200":
- description: 获取用户动态路由,返回包括系统菜单列表
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.SysBaseMenusResponse'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 获取用户动态路由
- tags:
- - AuthorityMenu
- /menu/getMenu:
- post:
- parameters:
- - description: 空
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.Empty'
- produces:
- - application/json
- responses:
- "200":
- description: 获取用户动态路由,返回包括系统菜单详情列表
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.SysMenusResponse'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 获取用户动态路由
- tags:
- - AuthorityMenu
- /menu/getMenuAuthority:
- post:
- consumes:
- - application/json
- parameters:
- - description: 角色ID
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.GetAuthorityId'
- produces:
- - application/json
- responses:
- "200":
- description: 获取指定角色menu
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- additionalProperties: true
- type: object
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 获取指定角色menu
- tags:
- - AuthorityMenu
- /menu/getMenuList:
- post:
- consumes:
- - application/json
- parameters:
- - description: 页码, 每页大小
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.PageInfo'
- produces:
- - application/json
- responses:
- "200":
- description: 分页获取基础menu列表,返回包括列表,总数,页码,每页数量
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.PageResult'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 分页获取基础menu列表
- tags:
- - Menu
- /menu/updateBaseMenu:
- post:
- consumes:
- - application/json
- parameters:
- - description: 路由path, 父菜单ID, 路由name, 对应前端文件路径, 排序标记
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysBaseMenu'
- produces:
- - application/json
- responses:
- "200":
- description: 更新菜单
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 更新菜单
- tags:
- - Menu
- /sysDictionary/createSysDictionary:
- post:
- consumes:
- - application/json
- parameters:
- - description: SysDictionary模型
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysDictionary'
- produces:
- - application/json
- responses:
- "200":
- description: 创建SysDictionary
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 创建SysDictionary
- tags:
- - SysDictionary
- /sysDictionary/deleteSysDictionary:
- delete:
- consumes:
- - application/json
- parameters:
- - description: SysDictionary模型
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysDictionary'
- produces:
- - application/json
- responses:
- "200":
- description: 删除SysDictionary
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 删除SysDictionary
- tags:
- - SysDictionary
- /sysDictionary/findSysDictionary:
- get:
- consumes:
- - application/json
- parameters:
- - description: 创建时间
- in: query
- name: createdAt
- type: string
- - description: 描述
- in: query
- name: desc
- type: string
- - description: 主键ID
- in: query
- name: id
- type: integer
- - description: 字典名(中)
- in: query
- name: name
- type: string
- - description: 状态
- in: query
- name: status
- type: boolean
- - description: 字典名(英)
- in: query
- name: type
- type: string
- - description: 更新时间
- in: query
- name: updatedAt
- type: string
- produces:
- - application/json
- responses:
- "200":
- description: 用id查询SysDictionary
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- additionalProperties: true
- type: object
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 用id查询SysDictionary
- tags:
- - SysDictionary
- /sysDictionary/getSysDictionaryList:
- get:
- consumes:
- - application/json
- parameters:
- - description: 创建时间
- in: query
- name: createdAt
- type: string
- - description: 描述
- in: query
- name: desc
- type: string
- - description: 主键ID
- in: query
- name: id
- type: integer
- - description: 关键字
- in: query
- name: keyword
- type: string
- - description: 字典名(中)
- in: query
- name: name
- type: string
- - description: 页码
- in: query
- name: page
- type: integer
- - description: 每页大小
- in: query
- name: pageSize
- type: integer
- - description: 状态
- in: query
- name: status
- type: boolean
- - description: 字典名(英)
- in: query
- name: type
- type: string
- - description: 更新时间
- in: query
- name: updatedAt
- type: string
- produces:
- - application/json
- responses:
- "200":
- description: 分页获取SysDictionary列表,返回包括列表,总数,页码,每页数量
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.PageResult'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 分页获取SysDictionary列表
- tags:
- - SysDictionary
- /sysDictionary/updateSysDictionary:
- put:
- consumes:
- - application/json
- parameters:
- - description: SysDictionary模型
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysDictionary'
- produces:
- - application/json
- responses:
- "200":
- description: 更新SysDictionary
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 更新SysDictionary
- tags:
- - SysDictionary
- /sysDictionaryDetail/createSysDictionaryDetail:
- post:
- consumes:
- - application/json
- parameters:
- - description: SysDictionaryDetail模型
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysDictionaryDetail'
- produces:
- - application/json
- responses:
- "200":
- description: 创建SysDictionaryDetail
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 创建SysDictionaryDetail
- tags:
- - SysDictionaryDetail
- /sysDictionaryDetail/deleteSysDictionaryDetail:
- delete:
- consumes:
- - application/json
- parameters:
- - description: SysDictionaryDetail模型
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysDictionaryDetail'
- produces:
- - application/json
- responses:
- "200":
- description: 删除SysDictionaryDetail
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 删除SysDictionaryDetail
- tags:
- - SysDictionaryDetail
- /sysDictionaryDetail/findSysDictionaryDetail:
- get:
- consumes:
- - application/json
- parameters:
- - description: 创建时间
- in: query
- name: createdAt
- type: string
- - description: 主键ID
- in: query
- name: id
- type: integer
- - description: 展示值
- in: query
- name: label
- type: string
- - description: 排序标记
- in: query
- name: sort
- type: integer
- - description: 启用状态
- in: query
- name: status
- type: boolean
- - description: 关联标记
- in: query
- name: sysDictionaryID
- type: integer
- - description: 更新时间
- in: query
- name: updatedAt
- type: string
- - description: 字典值
- in: query
- name: value
- type: integer
- produces:
- - application/json
- responses:
- "200":
- description: 用id查询SysDictionaryDetail
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- additionalProperties: true
- type: object
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 用id查询SysDictionaryDetail
- tags:
- - SysDictionaryDetail
- /sysDictionaryDetail/getSysDictionaryDetailList:
- get:
- consumes:
- - application/json
- parameters:
- - description: 创建时间
- in: query
- name: createdAt
- type: string
- - description: 主键ID
- in: query
- name: id
- type: integer
- - description: 关键字
- in: query
- name: keyword
- type: string
- - description: 展示值
- in: query
- name: label
- type: string
- - description: 页码
- in: query
- name: page
- type: integer
- - description: 每页大小
- in: query
- name: pageSize
- type: integer
- - description: 排序标记
- in: query
- name: sort
- type: integer
- - description: 启用状态
- in: query
- name: status
- type: boolean
- - description: 关联标记
- in: query
- name: sysDictionaryID
- type: integer
- - description: 更新时间
- in: query
- name: updatedAt
- type: string
- - description: 字典值
- in: query
- name: value
- type: integer
- produces:
- - application/json
- responses:
- "200":
- description: 分页获取SysDictionaryDetail列表,返回包括列表,总数,页码,每页数量
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.PageResult'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 分页获取SysDictionaryDetail列表
- tags:
- - SysDictionaryDetail
- /sysDictionaryDetail/updateSysDictionaryDetail:
- put:
- consumes:
- - application/json
- parameters:
- - description: 更新SysDictionaryDetail
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysDictionaryDetail'
- produces:
- - application/json
- responses:
- "200":
- description: 更新SysDictionaryDetail
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 更新SysDictionaryDetail
- tags:
- - SysDictionaryDetail
- /sysOperationRecord/createSysOperationRecord:
- post:
- consumes:
- - application/json
- parameters:
- - description: 创建SysOperationRecord
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysOperationRecord'
- produces:
- - application/json
- responses:
- "200":
- description: 创建SysOperationRecord
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 创建SysOperationRecord
- tags:
- - SysOperationRecord
- /sysOperationRecord/deleteSysOperationRecord:
- delete:
- consumes:
- - application/json
- parameters:
- - description: SysOperationRecord模型
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysOperationRecord'
- produces:
- - application/json
- responses:
- "200":
- description: 删除SysOperationRecord
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 删除SysOperationRecord
- tags:
- - SysOperationRecord
- /sysOperationRecord/deleteSysOperationRecordByIds:
- delete:
- consumes:
- - application/json
- parameters:
- - description: 批量删除SysOperationRecord
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.IdsReq'
- produces:
- - application/json
- responses:
- "200":
- description: 批量删除SysOperationRecord
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 批量删除SysOperationRecord
- tags:
- - SysOperationRecord
- /sysOperationRecord/findSysOperationRecord:
- get:
- consumes:
- - application/json
- parameters:
- - description: 代理
- in: query
- name: agent
- type: string
- - description: 请求Body
- in: query
- name: body
- type: string
- - description: 创建时间
- in: query
- name: createdAt
- type: string
- - description: 错误信息
- in: query
- name: error_message
- type: string
- - description: 主键ID
- in: query
- name: id
- type: integer
- - description: 请求ip
- in: query
- name: ip
- type: string
- - description: 延迟
- in: query
- name: latency
- type: string
- - description: 请求方法
- in: query
- name: method
- type: string
- - description: 请求路径
- in: query
- name: path
- type: string
- - description: 响应Body
- in: query
- name: resp
- type: string
- - description: 请求状态
- in: query
- name: status
- type: integer
- - description: 更新时间
- in: query
- name: updatedAt
- type: string
- - description: 用户id
- in: query
- name: user_id
- type: integer
- produces:
- - application/json
- responses:
- "200":
- description: 用id查询SysOperationRecord
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- additionalProperties: true
- type: object
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 用id查询SysOperationRecord
- tags:
- - SysOperationRecord
- /sysOperationRecord/getSysOperationRecordList:
- get:
- consumes:
- - application/json
- parameters:
- - description: 代理
- in: query
- name: agent
- type: string
- - description: 请求Body
- in: query
- name: body
- type: string
- - description: 创建时间
- in: query
- name: createdAt
- type: string
- - description: 错误信息
- in: query
- name: error_message
- type: string
- - description: 主键ID
- in: query
- name: id
- type: integer
- - description: 请求ip
- in: query
- name: ip
- type: string
- - description: 关键字
- in: query
- name: keyword
- type: string
- - description: 延迟
- in: query
- name: latency
- type: string
- - description: 请求方法
- in: query
- name: method
- type: string
- - description: 页码
- in: query
- name: page
- type: integer
- - description: 每页大小
- in: query
- name: pageSize
- type: integer
- - description: 请求路径
- in: query
- name: path
- type: string
- - description: 响应Body
- in: query
- name: resp
- type: string
- - description: 请求状态
- in: query
- name: status
- type: integer
- - description: 更新时间
- in: query
- name: updatedAt
- type: string
- - description: 用户id
- in: query
- name: user_id
- type: integer
- produces:
- - application/json
- responses:
- "200":
- description: 分页获取SysOperationRecord列表,返回包括列表,总数,页码,每页数量
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.PageResult'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 分页获取SysOperationRecord列表
- tags:
- - SysOperationRecord
- /system/getServerInfo:
- post:
- produces:
- - application/json
- responses:
- "200":
- description: 获取服务器信息
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- additionalProperties: true
- type: object
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 获取服务器信息
- tags:
- - System
- /system/getSystemConfig:
- post:
- produces:
- - application/json
- responses:
- "200":
- description: 获取配置文件内容,返回包括系统配置
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.SysConfigResponse'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 获取配置文件内容
- tags:
- - System
- /system/reloadSystem:
- post:
- produces:
- - application/json
- responses:
- "200":
- description: 重启系统
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 重启系统
- tags:
- - System
- /system/setSystemConfig:
- post:
- parameters:
- - description: 设置配置文件内容
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.System'
- produces:
- - application/json
- responses:
- "200":
- description: 设置配置文件内容
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 设置配置文件内容
- tags:
- - System
- /user/SetSelfInfo:
- put:
- consumes:
- - application/json
- parameters:
- - description: ID, 用户名, 昵称, 头像链接
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysUser'
- produces:
- - application/json
- responses:
- "200":
- description: 设置用户信息
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- additionalProperties: true
- type: object
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 设置用户信息
- tags:
- - SysUser
- /user/admin_register:
- post:
- parameters:
- - description: 用户名, 昵称, 密码, 角色ID
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.Register'
- produces:
- - application/json
- responses:
- "200":
- description: 用户注册账号,返回包括用户信息
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.SysUserResponse'
- msg:
- type: string
- type: object
- summary: 用户注册账号
- tags:
- - SysUser
- /user/changePassword:
- post:
- parameters:
- - description: 用户名, 原密码, 新密码
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.ChangePasswordReq'
- produces:
- - application/json
- responses:
- "200":
- description: 用户修改密码
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 用户修改密码
- tags:
- - SysUser
- /user/deleteUser:
- delete:
- consumes:
- - application/json
- parameters:
- - description: 用户ID
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.GetById'
- produces:
- - application/json
- responses:
- "200":
- description: 删除用户
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 删除用户
- tags:
- - SysUser
- /user/getUserInfo:
- get:
- consumes:
- - application/json
- produces:
- - application/json
- responses:
- "200":
- description: 获取用户信息
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- additionalProperties: true
- type: object
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 获取用户信息
- tags:
- - SysUser
- /user/getUserList:
- post:
- consumes:
- - application/json
- parameters:
- - description: 页码, 每页大小
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.PageInfo'
- produces:
- - application/json
- responses:
- "200":
- description: 分页获取用户列表,返回包括列表,总数,页码,每页数量
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- $ref: '#/definitions/response.PageResult'
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 分页获取用户列表
- tags:
- - SysUser
- /user/resetPassword:
- post:
- parameters:
- - description: ID
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysUser'
- produces:
- - application/json
- responses:
- "200":
- description: 重置用户密码
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 重置用户密码
- tags:
- - SysUser
- /user/setUserAuthorities:
- post:
- consumes:
- - application/json
- parameters:
- - description: 用户UUID, 角色ID
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.SetUserAuthorities'
- produces:
- - application/json
- responses:
- "200":
- description: 设置用户权限
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 设置用户权限
- tags:
- - SysUser
- /user/setUserAuthority:
- post:
- consumes:
- - application/json
- parameters:
- - description: 用户UUID, 角色ID
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/request.SetUserAuth'
- produces:
- - application/json
- responses:
- "200":
- description: 设置用户权限
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 更改用户权限
- tags:
- - SysUser
- /user/setUserInfo:
- put:
- consumes:
- - application/json
- parameters:
- - description: ID, 用户名, 昵称, 头像链接
- in: body
- name: data
- required: true
- schema:
- $ref: '#/definitions/system.SysUser'
- produces:
- - application/json
- responses:
- "200":
- description: 设置用户信息
- schema:
- allOf:
- - $ref: '#/definitions/response.Response'
- - properties:
- data:
- additionalProperties: true
- type: object
- msg:
- type: string
- type: object
- security:
- - ApiKeyAuth: []
- summary: 设置用户信息
- tags:
- - SysUser
-securityDefinitions:
- ApiKeyAuth:
- in: header
- name: x-token
- type: apiKey
-swagger: "2.0"
diff --git a/global/global.go b/global/global.go
index 82c5c3d..8944336 100644
--- a/global/global.go
+++ b/global/global.go
@@ -1,10 +1,6 @@
package global
import (
- "sync"
-
- "oplian/utils/timer"
-
"golang.org/x/sync/singleflight"
"go.uber.org/zap"
@@ -18,40 +14,16 @@ import (
var (
ZC_DB *gorm.DB
- ZC_DBList map[string]*gorm.DB
ZC_CONFIG config.Server
ZC_VP *viper.Viper
// ZC_LOG *oplogging.Logger
ROOM_CONFIG config.ServerRoom
ZC_LOG *zap.Logger
- ZC_Timer timer.Timer = timer.NewTimerTask()
- ZC_Concurrency_Control = &singleflight.Group{}
-
- BlackCache map[string]int64
- BlackLock sync.RWMutex
+ ZC_Concurrency_Control = &singleflight.Group{}
- lock sync.RWMutex
OpUUID uuid.UUID
OpC2UUID uuid.UUID
GateWayID uuid.UUID
LocalIP string
)
-
-// GetGlobalDBByDBName 通过名称获取db list中的db
-func GetGlobalDBByDBName(dbname string) *gorm.DB {
- lock.RLock()
- defer lock.RUnlock()
- return ZC_DBList[dbname]
-}
-
-// MustGetGlobalDBByDBName 通过名称获取db 如果不存在则panic
-func MustGetGlobalDBByDBName(dbname string) *gorm.DB {
- lock.RLock()
- defer lock.RUnlock()
- db, ok := ZC_DBList[dbname]
- if !ok || db == nil {
- panic("db no init")
- }
- return db
-}
diff --git a/go.mod b/go.mod
index 1e06ff6..7694e69 100644
--- a/go.mod
+++ b/go.mod
@@ -13,12 +13,10 @@ require (
github.com/filecoin-project/go-address v1.1.0
github.com/filecoin-project/go-fil-commcid v0.1.0
github.com/filecoin-project/go-fil-commp-hashhash v0.1.0
- github.com/filecoin-project/lotus v1.25.0
github.com/flipped-aurora/ws v1.0.2
github.com/fsnotify/fsnotify v1.6.0
github.com/fvbock/endless v0.0.0-20170109170031-447134032cb6
github.com/gin-gonic/gin v1.9.0
- github.com/go-redis/redis/v8 v8.11.4
github.com/go-sql-driver/mysql v1.6.0
github.com/golang-jwt/jwt/v4 v4.3.0
github.com/golang/protobuf v1.5.3
@@ -52,7 +50,6 @@ require (
github.com/shirou/gopsutil/v3 v3.22.5
github.com/shopspring/decimal v1.2.0
github.com/spf13/viper v1.7.0
- github.com/stretchr/testify v1.8.4
github.com/swaggo/files v1.0.1
github.com/swaggo/gin-swagger v1.6.0
github.com/swaggo/swag v1.8.12
@@ -63,7 +60,6 @@ require (
go.uber.org/zap v1.25.0
golang.org/x/crypto v0.12.0
golang.org/x/sync v0.3.0
- golang.org/x/text v0.12.0
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2
google.golang.org/grpc v1.55.0
google.golang.org/protobuf v1.31.0
@@ -73,49 +69,17 @@ require (
)
require (
- github.com/DataDog/zstd v1.4.5 // indirect
- github.com/GeertJohan/go.incremental v1.0.0 // indirect
- github.com/GeertJohan/go.rice v1.0.3 // indirect
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible // indirect
github.com/KyleBanks/depth v1.2.1 // indirect
github.com/PuerkitoBio/purell v1.1.1 // indirect
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
- github.com/StackExchange/wmi v1.2.1 // indirect
- github.com/akavel/rsrc v0.8.0 // indirect
github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect
+ github.com/benbjohnson/clock v1.3.5 // indirect
github.com/bytedance/sonic v1.8.0 // indirect
- github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
github.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3 // indirect
- github.com/daaku/go.zipexe v1.0.2 // indirect
- github.com/davecgh/go-spew v1.1.1 // indirect
- github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
github.com/denisenkom/go-mssqldb v0.12.0 // indirect
- github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
- github.com/filecoin-project/go-amt-ipld/v2 v2.1.0 // indirect
- github.com/filecoin-project/go-amt-ipld/v3 v3.1.0 // indirect
- github.com/filecoin-project/go-amt-ipld/v4 v4.2.0 // indirect
- github.com/filecoin-project/go-bitfield v0.2.4 // indirect
- github.com/filecoin-project/go-cbor-util v0.0.1 // indirect
- github.com/filecoin-project/go-data-transfer/v2 v2.0.0-rc7 // indirect
- github.com/filecoin-project/go-fil-markets v1.28.3 // indirect
- github.com/filecoin-project/go-hamt-ipld v0.1.5 // indirect
- github.com/filecoin-project/go-hamt-ipld/v2 v2.0.0 // indirect
- github.com/filecoin-project/go-hamt-ipld/v3 v3.1.0 // indirect
- github.com/filecoin-project/go-padreader v0.0.1 // indirect
- github.com/filecoin-project/go-state-types v0.12.8 // indirect
- github.com/filecoin-project/go-statemachine v1.0.3 // indirect
- github.com/filecoin-project/go-statestore v0.2.0 // indirect
- github.com/filecoin-project/kubo-api-client v0.0.1 // indirect
- github.com/filecoin-project/specs-actors v0.9.15 // indirect
- github.com/filecoin-project/specs-actors/v2 v2.3.6 // indirect
- github.com/filecoin-project/specs-actors/v3 v3.1.2 // indirect
- github.com/filecoin-project/specs-actors/v4 v4.0.2 // indirect
- github.com/filecoin-project/specs-actors/v5 v5.0.6 // indirect
- github.com/filecoin-project/specs-actors/v6 v6.0.2 // indirect
- github.com/filecoin-project/specs-actors/v7 v7.0.1 // indirect
- github.com/gbrlsnchs/jwt/v3 v3.0.1 // indirect
github.com/gin-contrib/sse v0.1.0 // indirect
github.com/glebarez/go-sqlite v1.16.0 // indirect
github.com/glebarez/sqlite v1.4.3 // indirect
@@ -134,20 +98,14 @@ require (
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect
github.com/golang-sql/sqlexp v0.0.0-20170517235910-f1bb20e5a188 // indirect
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
- github.com/golang/mock v1.6.0 // indirect
- github.com/hannahhoward/cbor-gen-for v0.0.0-20230214144701-5d17c9d5243c // indirect
- github.com/hannahhoward/go-pubsub v0.0.0-20200423002714-8d62886cc36e // indirect
+ github.com/gopherjs/gopherjs v0.0.0-20190812055157-5d271430af9f // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/golang-lru v0.6.0 // indirect
- github.com/hashicorp/golang-lru/v2 v2.0.5 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
- github.com/icza/backscanner v0.0.0-20210726202459-ac2ffc679f94 // indirect
github.com/ipfs/bbloom v0.0.4 // indirect
github.com/ipfs/go-bitfield v1.1.0 // indirect
github.com/ipfs/go-block-format v0.1.2 // indirect
- github.com/ipfs/go-graphsync v0.14.6 // indirect
- github.com/ipfs/go-ipfs-cmds v0.9.0 // indirect
github.com/ipfs/go-ipfs-ds-help v1.1.0 // indirect
github.com/ipfs/go-ipfs-exchange-interface v0.2.0 // indirect
github.com/ipfs/go-ipfs-posinfo v0.0.1 // indirect
@@ -167,12 +125,10 @@ require (
github.com/jackc/pgtype v1.10.0 // indirect
github.com/jackc/pgx/v4 v4.15.0 // indirect
github.com/jbenet/goprocess v0.1.4 // indirect
- github.com/jessevdk/go-flags v1.4.0 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
github.com/jinzhu/now v1.1.5 // indirect
github.com/jonboulle/clockwork v0.2.2 // indirect
github.com/josharian/intern v1.0.0 // indirect
- github.com/jpillora/backoff v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/compress v1.16.7 // indirect
github.com/klauspost/cpuid/v2 v2.2.5 // indirect
@@ -180,40 +136,30 @@ require (
github.com/lestrrat-go/strftime v1.0.6 // indirect
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
github.com/libp2p/go-libp2p v0.30.0 // indirect
- github.com/libp2p/go-libp2p-pubsub v0.9.3 // indirect
- github.com/libp2p/go-msgio v0.3.0 // indirect
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
- github.com/magefile/mage v1.9.0 // indirect
github.com/magiconair/properties v1.8.1 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-isatty v0.0.19 // indirect
- github.com/miekg/dns v1.1.55 // indirect
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect
github.com/minio/sha256-simd v1.0.1 // indirect
- github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/mr-tron/base58 v1.2.0 // indirect
github.com/multiformats/go-base36 v0.2.0 // indirect
github.com/multiformats/go-multiaddr v0.11.0 // indirect
- github.com/multiformats/go-multiaddr-dns v0.3.1 // indirect
github.com/multiformats/go-multibase v0.2.0 // indirect
github.com/multiformats/go-multicodec v0.9.0 // indirect
github.com/multiformats/go-multihash v0.2.3 // indirect
- github.com/multiformats/go-multistream v0.4.1 // indirect
github.com/multiformats/go-varint v0.0.7 // indirect
- github.com/nkovacs/streamquote v1.0.0 // indirect
github.com/opentracing/opentracing-go v1.2.0 // indirect
github.com/pelletier/go-toml v1.6.0 // indirect
github.com/pelletier/go-toml/v2 v2.0.6 // indirect
- github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/polydawn/refmt v0.89.0 // indirect
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
- github.com/raulk/clock v1.1.0 // indirect
+ github.com/prometheus/common v0.42.0 // indirect
+ github.com/prometheus/procfs v0.9.0 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect
- github.com/rs/cors v1.7.0 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
- github.com/shirou/gopsutil v2.18.12+incompatible // indirect
github.com/spaolacci/murmur3 v1.1.0 // indirect
github.com/spf13/afero v1.2.2 // indirect
github.com/spf13/cast v1.3.1 // indirect
@@ -224,26 +170,22 @@ require (
github.com/tklauser/numcpus v0.4.0 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.2.9 // indirect
- github.com/valyala/bytebufferpool v1.0.0 // indirect
- github.com/valyala/fasttemplate v1.0.1 // indirect
- github.com/whyrusleeping/bencher v0.0.0-20190829221104-bb6607aa8bba // indirect
github.com/whyrusleeping/cbor-gen v0.0.0-20230923211252-36a87e1ba72f // indirect
github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f // indirect
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
github.com/yinheli/mahonia v0.0.0-20131226213531-0eef680515cc // indirect
github.com/yusufpapurcu/wmi v1.2.2 // indirect
- go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/otel v1.16.0 // indirect
go.opentelemetry.io/otel/metric v1.16.0 // indirect
go.opentelemetry.io/otel/trace v1.16.0 // indirect
go.uber.org/atomic v1.11.0 // indirect
+ go.uber.org/goleak v1.2.1 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect
- golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 // indirect
golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb // indirect
- golang.org/x/mod v0.12.0 // indirect
golang.org/x/net v0.14.0 // indirect
golang.org/x/sys v0.15.0 // indirect
+ golang.org/x/text v0.12.0 // indirect
golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846 // indirect
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect
gopkg.in/ini.v1 v1.55.0 // indirect
diff --git a/go.sum b/go.sum
index c4c06db..9e77133 100644
--- a/go.sum
+++ b/go.sum
@@ -1,7 +1,5 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-cloud.google.com/go v0.31.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-cloud.google.com/go v0.37.0/go.mod h1:TS1dMSSfndXH133OKGwekG838Om/cQT0BUHV3HcBgoo=
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
@@ -12,14 +10,7 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7
cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
-dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
-dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU=
-dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4=
-dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU=
-git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg=
-github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8=
-github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8=
github.com/Azure/azure-sdk-for-go/sdk/azcore v0.19.0/go.mod h1:h6H6c8enJmmocHUbLiiGY6sx7f9i+X3m1CHdd5c6Rdw=
github.com/Azure/azure-sdk-for-go/sdk/azidentity v0.11.0/go.mod h1:HcM1YX14R7CJcghJGOYCgdezslRSVzqwLf/q+4Y2r/0=
github.com/Azure/azure-sdk-for-go/sdk/internal v0.7.0/go.mod h1:yqy467j36fJxcRV2TzfVZ1pCb5vxm4BtZPUdYWe/Xo8=
@@ -27,15 +18,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=
github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
-github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ=
-github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=
-github.com/GeertJohan/go.incremental v1.0.0 h1:7AH+pY1XUgQE4Y1HcXYaMqAI0m9yrFqo/jt0CW30vsg=
-github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0=
-github.com/GeertJohan/go.rice v1.0.3 h1:k5viR+xGtIhF61125vCE1cmJ5957RQGXG6dmbaWZSmI=
-github.com/GeertJohan/go.rice v1.0.3/go.mod h1:XVdrU4pW00M4ikZed5q56tPf1v2KwnIKeIdc9CBYNt4=
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw=
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
-github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y=
github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc=
github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE=
github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc=
@@ -45,107 +29,47 @@ github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tN
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
-github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
-github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
-github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA=
-github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8=
-github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
-github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII=
-github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=
-github.com/akavel/rsrc v0.8.0 h1:zjWn7ukO9Kc5Q62DOJCcxGpXC18RawVtYAGdz2aLlfw=
-github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM=
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-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
-github.com/alecthomas/units v0.0.0-20210927113745-59d0afb8317a/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE=
github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 h1:s6gZFSlWYmbqAuRjVTiNNhvNRfY2Wxp9nhfyel4rklc=
github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE=
-github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c=
-github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
-github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
-github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
-github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A=
-github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU=
-github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
-github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o=
+github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
-github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
-github.com/bep/debounce v1.2.1 h1:v67fRdBA9UQu2NhLFXrSg0Brw7CexQekrBwDMM8bzeY=
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
-github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g=
-github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8=
-github.com/btcsuite/btcd v0.0.0-20190523000118-16327141da8c/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI=
-github.com/btcsuite/btcd v0.0.0-20190824003749-130ea5bddde3/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI=
-github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ=
-github.com/btcsuite/btcd v0.21.0-beta/go.mod h1:ZSWyehm27aAuS9bvkATT+Xte3hjHZ+MRgMY/8NJ7K94=
-github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA=
-github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=
-github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=
-github.com/btcsuite/btcutil v1.0.2/go.mod h1:j9HUFwoQRsZL3V4n+qG+CUnEGHOarIxfC3Le2Yhbcts=
-github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg=
-github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY=
-github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I=
-github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=
-github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=
-github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY=
-github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs=
-github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s=
github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
github.com/bytedance/sonic v1.8.0 h1:ea0Xadu+sHlu7x5O3gKhRpQ1IKiMrSiHttPF0ybECuA=
github.com/bytedance/sonic v1.8.0/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U=
-github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
github.com/casbin/casbin/v2 v2.37.4/go.mod h1:vByNa/Fchek0KZUgG5wEsl7iFsiviAYKRtgrQfcJqHg=
github.com/casbin/casbin/v2 v2.51.0 h1:BC41imD9Z2coIJpELapy2h5kMT+lB4vFDTYpMhTsU4A=
github.com/casbin/casbin/v2 v2.51.0/go.mod h1:vByNa/Fchek0KZUgG5wEsl7iFsiviAYKRtgrQfcJqHg=
github.com/casbin/gorm-adapter/v3 v3.7.3 h1:tp3EL3vS31dF+GX0n3QwUytQlrFOPXtOKKZ7SZtLOA8=
github.com/casbin/gorm-adapter/v3 v3.7.3/go.mod h1:7mwHmC2phiw6N4gDWlzi+c4DUX7zaVmQC/hINsRgBDg=
-github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
-github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
-github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ=
github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY=
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams=
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk=
-github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I=
github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ=
-github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
-github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
github.com/codegangsta/negroni v1.0.0 h1:+aYywywx4bnKXWvoWtRfJ91vC59NbEhEY03sZjQhbVY=
github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0=
-github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM=
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
-github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
-github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=
-github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
-github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f h1:JOrtw2xFKzlg+cbHpyrpLDmnN1HqhBfnX7WDiW7eG2c=
github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
-github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
-github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
@@ -154,152 +78,37 @@ github.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3/go.mod h1:p
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/cskr/pubsub v1.0.2 h1:vlOzMhl6PFn60gRlTQQsIfVwaPB/B/8MziK8FhEPt/0=
-github.com/cskr/pubsub v1.0.2/go.mod h1:/8MzYXk/NJAz782G8RPkFzXTZVu63VotefPnR9TIRis=
-github.com/daaku/go.zipexe v1.0.2 h1:Zg55YLYTr7M9wjKn8SY/WcpuuEi+kR2u4E8RhvpyXmk=
-github.com/daaku/go.zipexe v1.0.2/go.mod h1:5xWogtqlYnfBXkSB1o9xysukNP9GTvaNkqzUZbt3Bw8=
-github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018/go.mod h1:rQYf4tfk5sSwFsnDg3qYaBxSjsD9S8+59vW0dKUgme4=
github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR6AkioZ1ySsx5yxlDQZ8stG2b88gTPxgJU=
-github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c/go.mod h1:6UhI8N9EjYm1c2odKpFpAYeR8dsBeM7PtzQhRgxRr9U=
-github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y=
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs=
-github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0=
-github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218=
github.com/denisenkom/go-mssqldb v0.12.0 h1:VtrkII767ttSPNRfFekePK3sctr+joXgO58stqQbtUA=
github.com/denisenkom/go-mssqldb v0.12.0/go.mod h1:iiK0YP1ZeepvmBQk/QpLEhhTNJgfzrpArPY/aFvc9yU=
-github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ=
-github.com/dgraph-io/badger v1.6.0-rc1/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4=
-github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4=
-github.com/dgraph-io/badger v1.6.1/go.mod h1:FRmFw3uxvcpa8zG3Rxs0th+hCLIuaQg8HlNV5bjgnuU=
-github.com/dgraph-io/ristretto v0.0.2/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
-github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
-github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
-github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
-github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ=
github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
-github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
-github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
-github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
-github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
-github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
-github.com/elastic/gosigar v0.14.2 h1:Dg80n8cr90OZ7x+bAax/QjoW/XqTI11RmA79ZwIm9/4=
-github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g=
-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
-github.com/filecoin-project/dagstore v0.5.2 h1:Nd6oXdnolbbVhpMpkYT5PJHOjQp4OBSntHpMV5pxj3c=
-github.com/filecoin-project/filecoin-ffi v0.30.4-0.20200910194244-f640612a1a1f/go.mod h1:+If3s2VxyjZn+KGGZIoRXBDSFQ9xL404JBJGf4WhEj0=
-github.com/filecoin-project/filecoin-ffi v0.30.4-0.20220519234331-bfd1f5f9fe38 h1:z33TKlxrdCmZHHu9QTy26AmmrcqYbpIZq+9VaQIyFQo=
-github.com/filecoin-project/go-address v0.0.3/go.mod h1:jr8JxKsYx+lQlQZmF5i2U0Z+cGQ59wMIps/8YW/lDj8=
-github.com/filecoin-project/go-address v0.0.5/go.mod h1:jr8JxKsYx+lQlQZmF5i2U0Z+cGQ59wMIps/8YW/lDj8=
github.com/filecoin-project/go-address v1.1.0 h1:ofdtUtEsNxkIxkDw67ecSmvtzaVSdcea4boAmLbnHfE=
github.com/filecoin-project/go-address v1.1.0/go.mod h1:5t3z6qPmIADZBtuE9EIzi0EwzcRy2nVhpo0I/c1r0OA=
-github.com/filecoin-project/go-amt-ipld/v2 v2.1.0 h1:t6qDiuGYYngDqaLc2ZUvdtAg4UNxPeOYaXhBWSNsVaM=
-github.com/filecoin-project/go-amt-ipld/v2 v2.1.0/go.mod h1:nfFPoGyX0CU9SkXX8EoCcSuHN1XcbN0c6KBh7yvP5fs=
-github.com/filecoin-project/go-amt-ipld/v3 v3.0.0/go.mod h1:Qa95YNAbtoVCTSVtX38aAC1ptBnJfPma1R/zZsKmx4o=
-github.com/filecoin-project/go-amt-ipld/v3 v3.1.0 h1:ZNJ9tEG5bE72vBWYiuh5bkxJVM3ViHNOmQ7qew9n6RE=
-github.com/filecoin-project/go-amt-ipld/v3 v3.1.0/go.mod h1:UjM2QhDFrrjD5s1CdnkJkat4ga+LqZBZgTMniypABRo=
-github.com/filecoin-project/go-amt-ipld/v4 v4.0.0/go.mod h1:gF053YQ4BIpzTNDoEwHZas7U3oAwncDVGvOHyY8oDpE=
-github.com/filecoin-project/go-amt-ipld/v4 v4.2.0 h1:DQTXQwMXxaetd+lhZGODjt5qC1WYT7tMAlYrWqI/fwI=
-github.com/filecoin-project/go-amt-ipld/v4 v4.2.0/go.mod h1:0eDVF7pROvxrsxvLJx+SJZXqRaXXcEPUcgb/rG0zGU4=
-github.com/filecoin-project/go-bitfield v0.2.0/go.mod h1:CNl9WG8hgR5mttCnUErjcQjGvuiZjRqK9rHVBsQF4oM=
-github.com/filecoin-project/go-bitfield v0.2.3/go.mod h1:CNl9WG8hgR5mttCnUErjcQjGvuiZjRqK9rHVBsQF4oM=
-github.com/filecoin-project/go-bitfield v0.2.4 h1:uZ7MeE+XfM5lqrHJZ93OnhQKc/rveW8p9au0C68JPgk=
-github.com/filecoin-project/go-bitfield v0.2.4/go.mod h1:CNl9WG8hgR5mttCnUErjcQjGvuiZjRqK9rHVBsQF4oM=
-github.com/filecoin-project/go-cbor-util v0.0.0-20191219014500-08c40a1e63a2/go.mod h1:pqTiPHobNkOVM5thSRsHYjyQfq7O5QSCMhvuu9JoDlg=
-github.com/filecoin-project/go-cbor-util v0.0.1 h1:E1LYZYTtjfAQwCReho0VXvbu8t3CYAVPiMx8EiV/VAs=
-github.com/filecoin-project/go-cbor-util v0.0.1/go.mod h1:pqTiPHobNkOVM5thSRsHYjyQfq7O5QSCMhvuu9JoDlg=
-github.com/filecoin-project/go-commp-utils v0.1.3 h1:rTxbkNXZU7FLgdkBk8RsQIEOuPONHykEoX3xGk41Fkw=
-github.com/filecoin-project/go-commp-utils v0.1.3/go.mod h1:3ENlD1pZySaUout0p9ANQrY3fDFoXdqyX04J+dWpK30=
-github.com/filecoin-project/go-commp-utils/nonffi v0.0.0-20220905160352-62059082a837/go.mod h1:e2YBjSblNVoBckkbv3PPqsq71q98oFkFqL7s1etViGo=
-github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03/go.mod h1:+viYnvGtUTgJRdy6oaeF4MTFKAfatX071MPDPBL11EQ=
-github.com/filecoin-project/go-crypto v0.0.1 h1:AcvpSGGCgjaY8y1az6AMfKQWreF/pWO2JJGLl6gCq6o=
-github.com/filecoin-project/go-data-transfer/v2 v2.0.0-rc7 h1:v+zJS5B6pA3ptWZS4t8tbt1Hz9qENnN4nVr1w99aSWc=
-github.com/filecoin-project/go-data-transfer/v2 v2.0.0-rc7/go.mod h1:V3Y4KbttaCwyg1gwkP7iai8CbQx4mZUGjd3h9GZWLKE=
-github.com/filecoin-project/go-ds-versioning v0.1.2 h1:to4pTadv3IeV1wvgbCbN6Vqd+fu+7tveXgv/rCEZy6w=
-github.com/filecoin-project/go-fil-commcid v0.0.0-20200716160307-8f644712406f/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ=
-github.com/filecoin-project/go-fil-commcid v0.0.0-20201016201715-d41df56b4f6a/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ=
+github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03 h1:2pMXdBnCiXjfCYx/hLqFxccPoqsSveQFxVLvNxy9bus=
github.com/filecoin-project/go-fil-commcid v0.1.0 h1:3R4ds1A9r6cr8mvZBfMYxTS88OqLYEo6roi+GiIeOh8=
github.com/filecoin-project/go-fil-commcid v0.1.0/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ=
github.com/filecoin-project/go-fil-commp-hashhash v0.1.0 h1:imrrpZWEHRnNqqv0tN7LXep5bFEVOVmQWHJvl2mgsGo=
github.com/filecoin-project/go-fil-commp-hashhash v0.1.0/go.mod h1:73S8WSEWh9vr0fDJVnKADhfIv/d6dCbAGaAGWbdJEI8=
-github.com/filecoin-project/go-fil-markets v1.28.3 h1:2cFu7tLZYrfNz4LnxjgERaVD7k5+Wwp0H76mnnTGPBk=
-github.com/filecoin-project/go-fil-markets v1.28.3/go.mod h1:eryxo/oVgIxaR5g5CNr9PlvZOi+u/bak0IsPL/PT1hk=
-github.com/filecoin-project/go-hamt-ipld v0.1.5 h1:uoXrKbCQZ49OHpsTCkrThPNelC4W3LPEk0OrS/ytIBM=
-github.com/filecoin-project/go-hamt-ipld v0.1.5/go.mod h1:6Is+ONR5Cd5R6XZoCse1CWaXZc0Hdb/JeX+EQCQzX24=
-github.com/filecoin-project/go-hamt-ipld/v2 v2.0.0 h1:b3UDemBYN2HNfk3KOXNuxgTTxlWi3xVvbQP0IT38fvM=
-github.com/filecoin-project/go-hamt-ipld/v2 v2.0.0/go.mod h1:7aWZdaQ1b16BVoQUYR+eEvrDCGJoPLxFpDynFjYfBjI=
-github.com/filecoin-project/go-hamt-ipld/v3 v3.0.1/go.mod h1:gXpNmr3oQx8l3o7qkGyDjJjYSRX7hp/FGOStdqrWyDI=
-github.com/filecoin-project/go-hamt-ipld/v3 v3.1.0 h1:rVVNq0x6RGQIzCo1iiJlGFm9AGIZzeifggxtKMU7zmI=
-github.com/filecoin-project/go-hamt-ipld/v3 v3.1.0/go.mod h1:bxmzgT8tmeVQA1/gvBwFmYdT8SOFUwB3ovSUfG1Ux0g=
-github.com/filecoin-project/go-padreader v0.0.0-20200903213702-ed5fae088b20/go.mod h1:mPn+LRRd5gEKNAtc+r3ScpW2JRU/pj4NBKdADYWHiak=
-github.com/filecoin-project/go-padreader v0.0.1 h1:8h2tVy5HpoNbr2gBRr+WD6zV6VD6XHig+ynSGJg8ZOs=
-github.com/filecoin-project/go-padreader v0.0.1/go.mod h1:VYVPJqwpsfmtoHnAmPx6MUwmrK6HIcDqZJiuZhtmfLQ=
-github.com/filecoin-project/go-state-types v0.0.0-20200903145444-247639ffa6ad/go.mod h1:IQ0MBPnonv35CJHtWSN3YY1Hz2gkPru1Q9qoaYLxx9I=
-github.com/filecoin-project/go-state-types v0.0.0-20200904021452-1883f36ca2f4/go.mod h1:IQ0MBPnonv35CJHtWSN3YY1Hz2gkPru1Q9qoaYLxx9I=
-github.com/filecoin-project/go-state-types v0.0.0-20200928172055-2df22083d8ab/go.mod h1:ezYnPf0bNkTsDibL/psSz5dy4B5awOJ/E7P2Saeep8g=
-github.com/filecoin-project/go-state-types v0.0.0-20201102161440-c8033295a1fc/go.mod h1:ezYnPf0bNkTsDibL/psSz5dy4B5awOJ/E7P2Saeep8g=
-github.com/filecoin-project/go-state-types v0.1.0/go.mod h1:ezYnPf0bNkTsDibL/psSz5dy4B5awOJ/E7P2Saeep8g=
-github.com/filecoin-project/go-state-types v0.1.6/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
-github.com/filecoin-project/go-state-types v0.1.10/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
-github.com/filecoin-project/go-state-types v0.12.8 h1:W/UObdAsv+LbB9EfyLg92DSYoatzUWmlfV8FGyh30VA=
-github.com/filecoin-project/go-state-types v0.12.8/go.mod h1:gR2NV0CSGSQwopxF+3In9nDh1sqvoYukLcs5vK0AHCA=
-github.com/filecoin-project/go-statemachine v1.0.3 h1:N07o6alys+V1tNoSTi4WuuoeNC4erS/6jE74+NsgQuk=
-github.com/filecoin-project/go-statemachine v1.0.3/go.mod h1:jZdXXiHa61n4NmgWFG4w8tnqgvZVHYbJ3yW7+y8bF54=
-github.com/filecoin-project/go-statestore v0.1.0/go.mod h1:LFc9hD+fRxPqiHiaqUEZOinUJB4WARkRfNl10O7kTnI=
-github.com/filecoin-project/go-statestore v0.2.0 h1:cRRO0aPLrxKQCZ2UOQbzFGn4WDNdofHZoGPjfNaAo5Q=
-github.com/filecoin-project/go-statestore v0.2.0/go.mod h1:8sjBYbS35HwPzct7iT4lIXjLlYyPor80aU7t7a/Kspo=
-github.com/filecoin-project/kubo-api-client v0.0.1 h1:IR1b+sm+VYxSRvbgECVv9SbhIgygcXcSoN1Q7xsHDXg=
-github.com/filecoin-project/kubo-api-client v0.0.1/go.mod h1:c36PPMIVOkKfHDwDG5U05gUlPRY9wNuh/BePwo0e+6Y=
-github.com/filecoin-project/lotus v1.25.0 h1:okHySAq5Z2ZCRtooIBmqi5jujFBoXzuay+KkdHGxp1c=
-github.com/filecoin-project/lotus v1.25.0/go.mod h1:7How7BIQEbV/2gHJBjsNQ7ynHb7zXUmtO7QYImo4L3w=
-github.com/filecoin-project/specs-actors v0.9.4/go.mod h1:BStZQzx5x7TmCkLv0Bpa07U6cPKol6fd3w9KjMPZ6Z4=
-github.com/filecoin-project/specs-actors v0.9.13/go.mod h1:TS1AW/7LbG+615j4NsjMK1qlpAwaFsG9w0V2tg2gSao=
-github.com/filecoin-project/specs-actors v0.9.15-0.20220514164640-94e0d5e123bd/go.mod h1:pjGEe3QlWtK20ju/aFRsiArbMX6Cn8rqEhhsiCM9xYE=
-github.com/filecoin-project/specs-actors v0.9.15 h1:3VpKP5/KaDUHQKAMOg4s35g/syDaEBueKLws0vbsjMc=
-github.com/filecoin-project/specs-actors v0.9.15/go.mod h1:pjGEe3QlWtK20ju/aFRsiArbMX6Cn8rqEhhsiCM9xYE=
-github.com/filecoin-project/specs-actors/v2 v2.3.6 h1:UxnWTfQd7JsOae39/aHCK0m1IBjdcyymCJfqxuSkn+g=
-github.com/filecoin-project/specs-actors/v2 v2.3.6/go.mod h1:DJMpxVRXvev9t8P0XWA26RmTzN+MHiL9IlItVLT0zUc=
-github.com/filecoin-project/specs-actors/v3 v3.1.2 h1:Gq3gAbvdGLA/D0GKz1IJfewt9Fh7gA32TPt46Xv+1Cw=
-github.com/filecoin-project/specs-actors/v3 v3.1.2/go.mod h1:uOJn+m6W8OW/1mdWMEvxeM1cjQPxmps7s1Z4bJ9V4kY=
-github.com/filecoin-project/specs-actors/v4 v4.0.2 h1:VTsv30kIf1Keo8Jlu6Omco+2Ud0pG4EN5UAzyYCibh8=
-github.com/filecoin-project/specs-actors/v4 v4.0.2/go.mod h1:zT0GVFxwFS93prGK0b/rMd1sePjRQKfAuodQ9DFAd6Y=
-github.com/filecoin-project/specs-actors/v5 v5.0.6 h1:TLtA9hT3pHQF5vB83GmB+m6anw9u6MjdT+VVn/lyC+c=
-github.com/filecoin-project/specs-actors/v5 v5.0.6/go.mod h1:myb/UGwESp0V1f1BACXSUrFgTWLvGUoG0ZZH7eqriFM=
-github.com/filecoin-project/specs-actors/v6 v6.0.2 h1:K1xPRJoW5PBvb08QF9+4w1AjcnqwR6BjTmeltQFCvWo=
-github.com/filecoin-project/specs-actors/v6 v6.0.2/go.mod h1:wnfVvPnYmzPZilNvSqCSSA/ZQX3rdV/U/Vf9EIoQhrI=
-github.com/filecoin-project/specs-actors/v7 v7.0.1 h1:w72xCxijK7xs1qzmJiw+WYJaVt2EPHN8oiwpA1Ay3/4=
-github.com/filecoin-project/specs-actors/v7 v7.0.1/go.mod h1:tPLEYXoXhcpyLh69Ccq91SOuLXsPWjHiY27CzawjUEk=
github.com/flipped-aurora/ws v1.0.2 h1:oEUz7sgrbPENvgli7Q4QpC0NIEbJucgR4yjcDMg/AjY=
github.com/flipped-aurora/ws v1.0.2/go.mod h1:RdyM2Fnvxx7f7A6WSmU1aAhDrQIAVW7LS/0LsAUE5mE=
-github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
github.com/flynn/noise v1.0.0 h1:DlTHqmzmvcEiKj+4RYo/imoswx/4r6iBlCMfVtrMXpQ=
-github.com/flynn/noise v1.0.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag=
github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk=
-github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiDsoyrBGkyDY=
-github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4=
-github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20=
-github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k=
-github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps=
github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
-github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
github.com/fvbock/endless v0.0.0-20170109170031-447134032cb6 h1:6VSn3hB5U5GeA6kQw4TwWIWbOhtvR2hmbBJnTOtqTWc=
github.com/fvbock/endless v0.0.0-20170109170031-447134032cb6/go.mod h1:YxOVT5+yHzKvwhsiSIWmbAYM3Dr9AEEbER2dVayfBkg=
-github.com/gbrlsnchs/jwt/v3 v3.0.1 h1:lbUmgAKpxnClrKloyIwpxm4OuWeDl5wLk52G91ODPw4=
-github.com/gbrlsnchs/jwt/v3 v3.0.1/go.mod h1:AncDcjXz18xetI3A6STfXq2w+LuTx8pQ8bGEwRN8zVM=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4=
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
@@ -311,13 +120,8 @@ github.com/glebarez/go-sqlite v1.16.0 h1:h28rHued+hGof3fNLksBcLwz/a71fiGZ/eIJHK0
github.com/glebarez/go-sqlite v1.16.0/go.mod h1:i8/JtqoqzBAFkrUTxbQFkQ05odCOds3j7NlDaXjqiPY=
github.com/glebarez/sqlite v1.4.3 h1:ZABNo+2YIau8F8sZ7Qh/1h/ZnlSUMHFGD4zJKPval7A=
github.com/glebarez/sqlite v1.4.3/go.mod h1:FcJlwP9scnxlQ5zxyl0+bn/qFjYcqG4eRvKYhs39QAQ=
-github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=
-github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98=
-github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o=
github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
@@ -327,7 +131,6 @@ github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
-github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
@@ -351,14 +154,10 @@ github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91
github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI=
github.com/go-playground/validator/v10 v10.11.2 h1:q3SHpufmypg+erIExEKUmsgmhDTyhcJ38oeKGACXohU=
github.com/go-playground/validator/v10 v10.11.2/go.mod h1:NieE624vt4SCTJtD87arVLvdmjPAeV8BQlHtMnw9D7s=
-github.com/go-redis/redis/v8 v8.11.4 h1:kHoYkfZP6+pe04aFTnhDH6GDROa5yJdHJVNxV3F46Tg=
-github.com/go-redis/redis/v8 v8.11.4/go.mod h1:2Z2wHZXdQpCDXEGzqMockDpNyYvi2l4Pxt6RJr792+w=
-github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
-github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
github.com/go-yaml/yaml v2.1.0+incompatible/go.mod h1:w2MrLa16VYP0jy6N7M5kHaCkaLENm+P+Tv+MfurjSw0=
github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0=
@@ -369,15 +168,10 @@ github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo=
github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM=
github.com/goccy/go-json v0.10.0 h1:mXKd9Qw4NuzShiRlOXKews24ufknHO7gx30lsDyokKA=
github.com/goccy/go-json v0.10.0/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
-github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw=
github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
-github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
-github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
-github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang-jwt/jwt/v4 v4.3.0 h1:kHL1vqdqWNfATmA0FNMdmZNMyZI1U6O31X4rlIPoBog=
@@ -390,73 +184,40 @@ github.com/golang-sql/sqlexp v0.0.0-20170517235910-f1bb20e5a188/go.mod h1:vXjM/+
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
-github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
-github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
-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.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
-github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
-github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
-github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
-github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
-github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
-github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
-github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.3/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.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/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
-github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
-github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
-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/gopacket v1.1.17/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM=
github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8=
-github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
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-20230817174616-7a8ec2ada47b h1:h9U78+dx9a4BKdQkBBos92HalKpaGKHrp+3Uo6yTodo=
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.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.1.2/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/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=
-github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg=
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/gookit/color v1.3.1 h1:PPD/C7sf8u2L8XQPdPgsWRoAiLQGZEZOzU3cf5IYYUk=
@@ -464,32 +225,17 @@ github.com/gookit/color v1.3.1/go.mod h1:R3ogXq2B9rTbXoSHJ1HyUVAZ3poOJHpd9nQmyGZ
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gopherjs/gopherjs v0.0.0-20190812055157-5d271430af9f h1:KMlcu9X58lhTA/KrfX8Bi1LQSO4pzoVjTiL3h4Jk+Zk=
github.com/gopherjs/gopherjs v0.0.0-20190812055157-5d271430af9f/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
-github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
-github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
-github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
-github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
-github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
-github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
-github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
-github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw=
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
-github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU=
github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48=
-github.com/hannahhoward/cbor-gen-for v0.0.0-20230214144701-5d17c9d5243c h1:iiD+p+U0M6n/FsO6XIZuOgobnNa48FxtyYFfWwLttUQ=
-github.com/hannahhoward/cbor-gen-for v0.0.0-20230214144701-5d17c9d5243c/go.mod h1:jvfsLIxk0fY/2BKSQ1xf2406AKA5dwMmKKv0ADcOfN8=
-github.com/hannahhoward/go-pubsub v0.0.0-20200423002714-8d62886cc36e h1:3YKHER4nmd7b5qy5t0GWDTwSn4OyRgfAXSmo6VnryBY=
-github.com/hannahhoward/go-pubsub v0.0.0-20200423002714-8d62886cc36e/go.mod h1:I8h3MITA53gN9OnWGCgaMa0JWVRdXthWw4M3CPM54OY=
github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
-github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=
github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
-github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@@ -504,197 +250,92 @@ github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerX
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4=
github.com/hashicorp/golang-lru v0.6.0/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
-github.com/hashicorp/golang-lru/v2 v2.0.5 h1:wW7h1TG88eUIJ2i69gaE3uNVtEPIagzhGvHgwfx2Vm4=
-github.com/hashicorp/golang-lru/v2 v2.0.5/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
-github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
-github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
-github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc=
github.com/huin/goupnp v1.2.0 h1:uOKW26NG1hsSSbXIZ1IR7XP9Gjd1U8pnLaCMgntmkmY=
-github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o=
-github.com/icza/backscanner v0.0.0-20210726202459-ac2ffc679f94 h1:9tcYMdi+7Rb1y0E9Del1DRHui7Ne3za5lLw6CjMJv/M=
-github.com/icza/backscanner v0.0.0-20210726202459-ac2ffc679f94/go.mod h1:GYeBD1CF7AqnKZK+UCytLcY3G+UKo0ByXX/3xfdNyqQ=
-github.com/icza/mighty v0.0.0-20180919140131-cfd07d671de6 h1:8UsGZ2rr2ksmEru6lToqnXgA8Mz1DP11X4zSJ159C3k=
-github.com/icza/mighty v0.0.0-20180919140131-cfd07d671de6/go.mod h1:xQig96I1VNBDIWGCdTt54nHt6EeI639SmHycLYL7FkA=
-github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
-github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
-github.com/ipfs/bbloom v0.0.1/go.mod h1:oqo8CVWsJFMOZqTglBG4wydCE4IQA/G2/SEofB0rjUI=
github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs=
github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0=
github.com/ipfs/boxo v0.10.1 h1:q0ZhbyN6iNZLipd6txt1xotCiP/icfvdAQ4YpUi+cL4=
github.com/ipfs/boxo v0.10.1/go.mod h1:1qgKq45mPRCxf4ZPoJV2lnXxyxucigILMJOrQrVivv8=
-github.com/ipfs/go-bitfield v1.0.0/go.mod h1:N/UiujQy+K+ceU1EF5EkVd1TNqevLrCQMIcAEPrdtus=
github.com/ipfs/go-bitfield v1.1.0 h1:fh7FIo8bSwaJEh6DdTWbCeZ1eqOaOkKFI74SCnsWbGA=
github.com/ipfs/go-bitfield v1.1.0/go.mod h1:paqf1wjq/D2BBmzfTVFlJQ9IlFOZpg422HL0HqsGWHU=
-github.com/ipfs/go-bitswap v0.1.0/go.mod h1:FFJEf18E9izuCqUtHxbWEvq+reg7o4CW5wSAE1wsxj0=
-github.com/ipfs/go-bitswap v0.5.1/go.mod h1:P+ckC87ri1xFLvk74NlXdP0Kj9RmWAh4+H78sC6Qopo=
github.com/ipfs/go-bitswap v0.11.0 h1:j1WVvhDX1yhG32NTC9xfxnqycqYIlhzEzLXG/cU1HyQ=
-github.com/ipfs/go-block-format v0.0.1/go.mod h1:DK/YYcsSUIVAFNwo/KZCdIIbpN0ROH/baNLgayt4pFc=
github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY=
-github.com/ipfs/go-block-format v0.0.3/go.mod h1:4LmD4ZUw0mhO+JSKdpWwrzATiEfM7WWgQ8H5l6P8MVk=
github.com/ipfs/go-block-format v0.1.2 h1:GAjkfhVx1f4YTODS6Esrj1wt2HhrtwTnhEr+DyPUaJo=
github.com/ipfs/go-block-format v0.1.2/go.mod h1:mACVcrxarQKstUU3Yf/RdwbC4DzPV6++rO2a3d+a/KE=
-github.com/ipfs/go-blockservice v0.1.0/go.mod h1:hzmMScl1kXHg3M2BjTymbVPjv627N7sYcvYaKbop39M=
-github.com/ipfs/go-blockservice v0.2.1/go.mod h1:k6SiwmgyYgs4M/qt+ww6amPeUH9EISLRBnvUurKJhi8=
github.com/ipfs/go-blockservice v0.5.1 h1:9pAtkyKAz/skdHTh0kH8VulzWp+qmSDD0aI17TYP/s0=
github.com/ipfs/go-blockservice v0.5.1/go.mod h1:VpMblFEqG67A/H2sHKAemeH9vlURVavlysbdUI632yk=
github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM=
-github.com/ipfs/go-cid v0.0.2/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM=
github.com/ipfs/go-cid v0.0.3/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM=
-github.com/ipfs/go-cid v0.0.4-0.20191112011718-79e75dffeb10/go.mod h1:/BYOuUoxkE+0f6tGzlzMvycuN+5l35VOR4Bpg2sCmds=
-github.com/ipfs/go-cid v0.0.4/go.mod h1:4LLaPOQwmk5z9LBgQnpkivrx8BJjUyGwTXCd5Xfj6+M=
github.com/ipfs/go-cid v0.0.5/go.mod h1:plgt+Y5MnOey4vO4UlUazGqdbEXuFYitED67FexhXog=
-github.com/ipfs/go-cid v0.0.6-0.20200501230655-7c82f3b81c00/go.mod h1:plgt+Y5MnOey4vO4UlUazGqdbEXuFYitED67FexhXog=
github.com/ipfs/go-cid v0.0.6/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I=
-github.com/ipfs/go-cid v0.0.7/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I=
-github.com/ipfs/go-cid v0.2.0/go.mod h1:P+HXFDF4CVhaVayiEb4wkAy7zBHxBwsJyt0Y5U6MLro=
-github.com/ipfs/go-cid v0.3.2/go.mod h1:gQ8pKqT/sUxGY+tIwy1RPpAojYu7jAyCp5Tz1svoupw=
github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s=
github.com/ipfs/go-cid v0.4.1/go.mod h1:uQHwDeX4c6CtyrFwdqyhpNcxVewur1M7l7fNU7LKwZk=
-github.com/ipfs/go-cidutil v0.1.0 h1:RW5hO7Vcf16dplUU60Hs0AKDkQAVPVplr7lk97CFL+Q=
-github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE=
-github.com/ipfs/go-datastore v0.0.5/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE=
-github.com/ipfs/go-datastore v0.1.1/go.mod h1:w38XXW9kVFNp57Zj5knbKWM2T+KOZCGDRVNdgPHtbHw=
-github.com/ipfs/go-datastore v0.4.0/go.mod h1:SX/xMIKoCszPqp+z9JhPYCmoOoXTvaa13XEbGtsFUhA=
-github.com/ipfs/go-datastore v0.4.1/go.mod h1:SX/xMIKoCszPqp+z9JhPYCmoOoXTvaa13XEbGtsFUhA=
-github.com/ipfs/go-datastore v0.4.4/go.mod h1:SX/xMIKoCszPqp+z9JhPYCmoOoXTvaa13XEbGtsFUhA=
-github.com/ipfs/go-datastore v0.4.5/go.mod h1:eXTcaaiN6uOlVCLS9GjJUJtlvJfM3xk23w3fyfrmmJs=
github.com/ipfs/go-datastore v0.5.0/go.mod h1:9zhEApYMTl17C8YDp7JmU7sQZi2/wqiYh73hakZ90Bk=
github.com/ipfs/go-datastore v0.6.0 h1:JKyz+Gvz1QEZw0LsX1IBn+JFCJQH4SJVFtM4uWU0Myk=
github.com/ipfs/go-datastore v0.6.0/go.mod h1:rt5M3nNbSO/8q1t4LNkLyUwRs8HupMeN/8O4Vn9YAT8=
github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk=
github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps=
-github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8=
-github.com/ipfs/go-ds-badger v0.0.5/go.mod h1:g5AuuCGmr7efyzQhLL8MzwqcauPojGPUaHzfGTzuE3s=
-github.com/ipfs/go-ds-badger v0.2.1/go.mod h1:Tx7l3aTph3FMFrRS838dcSJh+jjA7cX9DrGVwx/NOwE=
-github.com/ipfs/go-ds-badger v0.2.3/go.mod h1:pEYw0rgg3FIrywKKnL+Snr+w/LjJZVMTBRn4FS6UHUk=
-github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc=
-github.com/ipfs/go-ds-leveldb v0.4.1/go.mod h1:jpbku/YqBSsBc1qgME8BkWS4AxzF2cEu1Ii2r79Hh9s=
-github.com/ipfs/go-ds-leveldb v0.4.2/go.mod h1:jpbku/YqBSsBc1qgME8BkWS4AxzF2cEu1Ii2r79Hh9s=
-github.com/ipfs/go-graphsync v0.14.6 h1:NPxvuUy4Z08Mg8dwpBzwgbv/PGLIufSJ1sle6iAX8yo=
-github.com/ipfs/go-graphsync v0.14.6/go.mod h1:yT0AfjFgicOoWdAlUJ96tQ5AkuGI4r1taIQX/aHbBQo=
-github.com/ipfs/go-hamt-ipld v0.1.1/go.mod h1:1EZCr2v0jlCnhpa+aZ0JZYp8Tt2w16+JJOAVz17YcDk=
-github.com/ipfs/go-ipfs-blockstore v0.0.1/go.mod h1:d3WClOmRQKFnJ0Jz/jj/zmksX0ma1gROTlovZKBmN08=
-github.com/ipfs/go-ipfs-blockstore v0.2.1/go.mod h1:jGesd8EtCM3/zPgx+qr0/feTXGUeRai6adgwC+Q+JvE=
github.com/ipfs/go-ipfs-blockstore v1.3.0 h1:m2EXaWgwTzAfsmt5UdJ7Is6l4gJcaM/A12XwJyvYvMM=
github.com/ipfs/go-ipfs-blockstore v1.3.0/go.mod h1:KgtZyc9fq+P2xJUiCAzbRdhhqJHvsw8u2Dlqy2MyRTE=
github.com/ipfs/go-ipfs-blocksutil v0.0.1 h1:Eh/H4pc1hsvhzsQoMEP3Bke/aW5P5rVM1IWFJMcGIPQ=
-github.com/ipfs/go-ipfs-blocksutil v0.0.1/go.mod h1:Yq4M86uIOmxmGPUHv/uI7uKqZNtLb449gwKqXjIsnRk=
-github.com/ipfs/go-ipfs-chunker v0.0.1/go.mod h1:tWewYK0we3+rMbOh7pPFGDyypCtvGcBFymgY4rSDLAw=
github.com/ipfs/go-ipfs-chunker v0.0.5 h1:ojCf7HV/m+uS2vhUGWcogIIxiO5ubl5O57Q7NapWLY8=
github.com/ipfs/go-ipfs-chunker v0.0.5/go.mod h1:jhgdF8vxRHycr00k13FM8Y0E+6BoalYeobXmUyTreP8=
-github.com/ipfs/go-ipfs-cmds v0.9.0 h1:K0VcXg1l1k6aY6sHnoxYcyimyJQbcV1ueXuWgThmK9Q=
-github.com/ipfs/go-ipfs-cmds v0.9.0/go.mod h1:SBFHK8WNwC416QWH9Vz1Ql42SSMAOqKpaHUMBu3jpLo=
github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw=
github.com/ipfs/go-ipfs-delay v0.0.1 h1:r/UXYyRcddO6thwOnhiznIAiSvxMECGgtv35Xs1IeRQ=
-github.com/ipfs/go-ipfs-delay v0.0.1/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw=
-github.com/ipfs/go-ipfs-ds-help v0.0.1/go.mod h1:gtP9xRaZXqIQRh1HRpp595KbBEdgqWFxefeVKOV8sxo=
-github.com/ipfs/go-ipfs-ds-help v0.1.1/go.mod h1:SbBafGJuGsPI/QL3j9Fc5YPLeAu+SzOkI0gFwAg+mOs=
github.com/ipfs/go-ipfs-ds-help v1.1.0 h1:yLE2w9RAsl31LtfMt91tRZcrx+e61O5mDxFRR994w4Q=
github.com/ipfs/go-ipfs-ds-help v1.1.0/go.mod h1:YR5+6EaebOhfcqVCyqemItCLthrpVNot+rsOU/5IatU=
-github.com/ipfs/go-ipfs-exchange-interface v0.0.1/go.mod h1:c8MwfHjtQjPoDyiy9cFquVtVHkO9b9Ob3FG91qJnWCM=
-github.com/ipfs/go-ipfs-exchange-interface v0.1.0/go.mod h1:ych7WPlyHqFvCi/uQI48zLZuAWVP5iTQPXEfVaw5WEI=
github.com/ipfs/go-ipfs-exchange-interface v0.2.0 h1:8lMSJmKogZYNo2jjhUs0izT+dck05pqUw4mWNW9Pw6Y=
github.com/ipfs/go-ipfs-exchange-interface v0.2.0/go.mod h1:z6+RhJuDQbqKguVyslSOuVDhqF9JtTrO3eptSAiW2/Y=
-github.com/ipfs/go-ipfs-exchange-offline v0.0.1/go.mod h1:WhHSFCVYX36H/anEKQboAzpUws3x7UeEGkzQc3iNkM0=
-github.com/ipfs/go-ipfs-exchange-offline v0.1.1/go.mod h1:vTiBRIbzSwDD0OWm+i3xeT0mO7jG2cbJYatp3HPk5XY=
github.com/ipfs/go-ipfs-exchange-offline v0.3.0 h1:c/Dg8GDPzixGd0MC8Jh6mjOwU57uYokgWRFidfvEkuA=
github.com/ipfs/go-ipfs-exchange-offline v0.3.0/go.mod h1:MOdJ9DChbb5u37M1IcbrRB02e++Z7521fMxqCNRrz9s=
-github.com/ipfs/go-ipfs-files v0.0.3/go.mod h1:INEFm0LL2LWXBhNJ2PMIIb2w45hpXgPjNoE7yA8Y1d4=
-github.com/ipfs/go-ipfs-files v0.0.4/go.mod h1:INEFm0LL2LWXBhNJ2PMIIb2w45hpXgPjNoE7yA8Y1d4=
github.com/ipfs/go-ipfs-files v0.3.0 h1:fallckyc5PYjuMEitPNrjRfpwl7YFt69heCOUhsbGxQ=
github.com/ipfs/go-ipfs-files v0.3.0/go.mod h1:xAUtYMwB+iu/dtf6+muHNSFQCJG2dSiStR2P6sn9tIM=
github.com/ipfs/go-ipfs-posinfo v0.0.1 h1:Esoxj+1JgSjX0+ylc0hUmJCOv6V2vFoZiETLR6OtpRs=
github.com/ipfs/go-ipfs-posinfo v0.0.1/go.mod h1:SwyeVP+jCwiDu0C313l/8jg6ZxM0qqtlt2a0vILTc1A=
-github.com/ipfs/go-ipfs-pq v0.0.1/go.mod h1:LWIqQpqfRG3fNc5XsnIhz/wQ2XXGyugQwls7BgUmUfY=
-github.com/ipfs/go-ipfs-pq v0.0.2/go.mod h1:LWIqQpqfRG3fNc5XsnIhz/wQ2XXGyugQwls7BgUmUfY=
github.com/ipfs/go-ipfs-pq v0.0.3 h1:YpoHVJB+jzK15mr/xsWC574tyDLkezVrDNeaalQBsTE=
-github.com/ipfs/go-ipfs-routing v0.1.0/go.mod h1:hYoUkJLyAUKhF58tysKpids8RNDPO42BVMgK5dNsoqY=
-github.com/ipfs/go-ipfs-routing v0.2.1/go.mod h1:xiNNiwgjmLqPS1cimvAw6EyB9rkVDbiocA4yY+wRNLM=
github.com/ipfs/go-ipfs-routing v0.3.0 h1:9W/W3N+g+y4ZDeffSgqhgo7BsBSJwPMcyssET9OWevc=
github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc=
-github.com/ipfs/go-ipfs-util v0.0.2/go.mod h1:CbPtkWJzjLdEcezDns2XYaehFVNXG9zrdrtMecczcsQ=
github.com/ipfs/go-ipfs-util v0.0.3 h1:2RFdGez6bu2ZlZdI+rWfIdbQb1KudQp3VGwPtdNCmE0=
github.com/ipfs/go-ipfs-util v0.0.3/go.mod h1:LHzG1a0Ig4G+iZ26UUOMjHd+lfM84LZCrn17xAKWBvs=
-github.com/ipfs/go-ipld-cbor v0.0.2/go.mod h1:wTBtrQZA3SoFKMVkp6cn6HMRteIB1VsmHA0AQFOn7Nc=
-github.com/ipfs/go-ipld-cbor v0.0.3/go.mod h1:wTBtrQZA3SoFKMVkp6cn6HMRteIB1VsmHA0AQFOn7Nc=
-github.com/ipfs/go-ipld-cbor v0.0.4/go.mod h1:BkCduEx3XBCO6t2Sfo5BaHzuok7hbhdMm9Oh8B2Ftq4=
-github.com/ipfs/go-ipld-cbor v0.0.5/go.mod h1:BkCduEx3XBCO6t2Sfo5BaHzuok7hbhdMm9Oh8B2Ftq4=
-github.com/ipfs/go-ipld-cbor v0.0.6-0.20211211231443-5d9b9e1f6fa8/go.mod h1:ssdxxaLJPXH7OjF5V4NSjBbcfh+evoR4ukuru0oPXMA=
github.com/ipfs/go-ipld-cbor v0.0.6 h1:pYuWHyvSpIsOOLw4Jy7NbBkCyzLDcl64Bf/LZW7eBQ0=
github.com/ipfs/go-ipld-cbor v0.0.6/go.mod h1:ssdxxaLJPXH7OjF5V4NSjBbcfh+evoR4ukuru0oPXMA=
github.com/ipfs/go-ipld-format v0.0.1/go.mod h1:kyJtbkDALmFHv3QR6et67i35QzO3S0dCDnkOJhcZkms=
-github.com/ipfs/go-ipld-format v0.0.2/go.mod h1:4B6+FM2u9OJ9zCV+kSbgFAZlOrv1Hqbf0INGQgiKf9k=
-github.com/ipfs/go-ipld-format v0.2.0/go.mod h1:3l3C1uKoadTPbeNfrDi+xMInYKlx2Cvg1BuydPSdzQs=
github.com/ipfs/go-ipld-format v0.5.0 h1:WyEle9K96MSrvr47zZHKKcDxJ/vlpET6PSiQsAFO+Ds=
github.com/ipfs/go-ipld-format v0.5.0/go.mod h1:ImdZqJQaEouMjCvqCe0ORUS+uoBmf7Hf+EO/jh+nk3M=
-github.com/ipfs/go-ipld-legacy v0.1.0/go.mod h1:86f5P/srAmh9GcIcWQR9lfFLZPrIyyXQeVlOWeeWEuI=
github.com/ipfs/go-ipld-legacy v0.2.1 h1:mDFtrBpmU7b//LzLSypVrXsD8QxkEWxu5qVxN99/+tk=
github.com/ipfs/go-ipld-legacy v0.2.1/go.mod h1:782MOUghNzMO2DER0FlBR94mllfdCJCkTtDtPM51otM=
github.com/ipfs/go-libipfs v0.7.0 h1:Mi54WJTODaOL2/ZSm5loi3SwI3jI2OuFWUrQIkJ5cpM=
github.com/ipfs/go-libipfs v0.7.0/go.mod h1:KsIf/03CqhICzyRGyGo68tooiBE2iFbI/rXW7FhAYr0=
github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM=
-github.com/ipfs/go-log v1.0.0/go.mod h1:JO7RzlMK6rA+CIxFMLOuB6Wf5b81GDiKElL7UPSIKjA=
-github.com/ipfs/go-log v1.0.2/go.mod h1:1MNjMxe0u6xvJZgeqbJ8vdo2TKaGwZ1a0Bpza+sr2Sk=
-github.com/ipfs/go-log v1.0.3/go.mod h1:OsLySYkwIbiSUR/yBTdv1qPtcE4FW3WPWk/ewz9Ru+A=
-github.com/ipfs/go-log v1.0.4/go.mod h1:oDCg2FkjogeFOhqqb+N39l2RpTNPL6F/StPkB3kPgcs=
github.com/ipfs/go-log v1.0.5 h1:2dOuUCB1Z7uoczMWgAyDck5JLb72zHzrMnGnCNNbvY8=
github.com/ipfs/go-log v1.0.5/go.mod h1:j0b8ZoR+7+R99LD9jZ6+AJsrzkPbSXbZfGakb5JPtIo=
-github.com/ipfs/go-log/v2 v2.0.1/go.mod h1:O7P1lJt27vWHhOwQmcFEvlmo49ry2VY2+JfBWFaa9+0=
-github.com/ipfs/go-log/v2 v2.0.2/go.mod h1:O7P1lJt27vWHhOwQmcFEvlmo49ry2VY2+JfBWFaa9+0=
-github.com/ipfs/go-log/v2 v2.0.3/go.mod h1:O7P1lJt27vWHhOwQmcFEvlmo49ry2VY2+JfBWFaa9+0=
-github.com/ipfs/go-log/v2 v2.0.5/go.mod h1:eZs4Xt4ZUJQFM3DlanGhy7TkwwawCZcSByscwkWG+dw=
-github.com/ipfs/go-log/v2 v2.1.1/go.mod h1:2v2nsGfZsvvAJz13SyFzf9ObaqwHiHxsPLEHntrv9KM=
-github.com/ipfs/go-log/v2 v2.1.2-0.20200626104915-0016c0b4b3e4/go.mod h1:2v2nsGfZsvvAJz13SyFzf9ObaqwHiHxsPLEHntrv9KM=
github.com/ipfs/go-log/v2 v2.1.3/go.mod h1:/8d0SH3Su5Ooc31QlL1WysJhvyOTDCjcCZ9Axpmri6g=
-github.com/ipfs/go-log/v2 v2.3.0/go.mod h1:QqGoj30OTpnKaG/LKTGTxoP2mmQtjVMEnK72gynbe/g=
github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY=
github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI=
-github.com/ipfs/go-merkledag v0.2.3/go.mod h1:SQiXrtSts3KGNmgOzMICy5c0POOpUNQLvB3ClKnBAlk=
-github.com/ipfs/go-merkledag v0.2.4/go.mod h1:SQiXrtSts3KGNmgOzMICy5c0POOpUNQLvB3ClKnBAlk=
-github.com/ipfs/go-merkledag v0.5.1/go.mod h1:cLMZXx8J08idkp5+id62iVftUQV+HlYJ3PIhDfZsjA4=
github.com/ipfs/go-merkledag v0.11.0 h1:DgzwK5hprESOzS4O1t/wi6JDpyVQdvm9Bs59N/jqfBY=
github.com/ipfs/go-merkledag v0.11.0/go.mod h1:Q4f/1ezvBiJV0YCIXvt51W/9/kqJGH4I1LsA7+djsM4=
github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg=
github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY=
-github.com/ipfs/go-peertaskqueue v0.1.0/go.mod h1:Jmk3IyCcfl1W3jTW3YpghSwSEC6IJ3Vzz/jUmWw8Z0U=
-github.com/ipfs/go-peertaskqueue v0.7.0/go.mod h1:M/akTIE/z1jGNXMU7kFB4TeSEFvj68ow0Rrb04donIU=
github.com/ipfs/go-peertaskqueue v0.8.1 h1:YhxAs1+wxb5jk7RvS0LHdyiILpNmRIRnZVztekOF0pg=
-github.com/ipfs/go-unixfsnode v1.7.1 h1:RRxO2b6CSr5UQ/kxnGzaChTjp5LWTdf3Y4n8ANZgB/s=
-github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZc0g37pY0=
github.com/ipfs/go-verifcid v0.0.2 h1:XPnUv0XmdH+ZIhLGKg6U2vaPaRDXb9urMyNVCE7uvTs=
github.com/ipfs/go-verifcid v0.0.2/go.mod h1:40cD9x1y4OWnFXbLNJYRe7MpNvWlMn3LZAG5Wb4xnPU=
-github.com/ipld/go-car v0.1.0/go.mod h1:RCWzaUh2i4mOEkB3W45Vc+9jnS/M6Qay5ooytiBHl3g=
github.com/ipld/go-car v0.6.1 h1:blWbEHf1j62JMWFIqWE//YR0m7k5ZMw0AuUOU5hjrH8=
github.com/ipld/go-car v0.6.1/go.mod h1:oEGXdwp6bmxJCZ+rARSkDliTeYnVzv3++eXajZ+Bmr8=
-github.com/ipld/go-car/v2 v2.10.1 h1:MRDqkONNW9WRhB79u+Z3U5b+NoN7lYA5B8n8qI3+BoI=
-github.com/ipld/go-codec-dagpb v1.3.0/go.mod h1:ga4JTU3abYApDC3pZ00BC2RSvC3qfBb9MSJkMLSwnhA=
github.com/ipld/go-codec-dagpb v1.6.0 h1:9nYazfyu9B1p3NAgfVdpRco3Fs2nFC72DqVsMj6rOcc=
github.com/ipld/go-codec-dagpb v1.6.0/go.mod h1:ANzFhfP2uMJxRBr8CE+WQWs5UsNa0pYtmKZ+agnUw9s=
-github.com/ipld/go-ipld-adl-hamt v0.0.0-20220616142416-9004dbd839e0 h1:QAI/Ridj0+foHD6epbxmB4ugxz9B4vmNdYSmQLGa05E=
-github.com/ipld/go-ipld-prime v0.0.2-0.20191108012745-28a82f04c785/go.mod h1:bDDSvVz7vaK12FNvMeRYnpRFkSUPNQOiCYQezMD/P3w=
-github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8=
-github.com/ipld/go-ipld-prime v0.11.0/go.mod h1:+WIAkokurHmZ/KwzDOMUuoeJgaRQktHtEaLglS3ZeV8=
-github.com/ipld/go-ipld-prime v0.19.0/go.mod h1:Q9j3BaVXwaA3o5JUDNvptDDr/x8+F7FG6XJ8WI3ILg4=
github.com/ipld/go-ipld-prime v0.20.0 h1:Ud3VwE9ClxpO2LkCYP7vWPc0Fo+dYdYzgxUJZ3uRG4g=
github.com/ipld/go-ipld-prime v0.20.0/go.mod h1:PzqZ/ZR981eKbgdr3y2DJYeD/8bgMawdGVlJDE8kK+M=
-github.com/ipld/go-ipld-prime-proto v0.0.0-20191113031812-e32bd156a1e5/go.mod h1:gcvzoEDBjwycpXt3LBE061wT9f46szXGHAmj9uoP6fU=
-github.com/ipni/go-libipni v0.0.8 h1:0wLfZRSBG84swmZwmaLKul/iB/FlBkkl9ZcR1ub+Z+w=
-github.com/ipni/index-provider v0.12.0 h1:R3F6dxxKNv4XkE4GJZNLOG0bDEbBQ/S5iztXwSD8jhQ=
github.com/ipsn/go-secp256k1 v0.0.0-20180726113642-9d62b9f0bc52 h1:QG4CGBqCeuBo6aZlGAamSkxWdgWfZGeE49eUOWJPA4c=
-github.com/ipsn/go-secp256k1 v0.0.0-20180726113642-9d62b9f0bc52/go.mod h1:fdg+/X9Gg4AsAIzWpEHwnqd+QY3b7lajxyjE1m4hkq4=
github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo=
github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk=
github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8=
@@ -742,25 +383,11 @@ github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0f
github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
github.com/jackc/puddle v1.2.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
-github.com/jackpal/gateway v1.0.5/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA=
-github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc=
github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus=
-github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc=
-github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs=
github.com/jbenet/go-cienv v0.1.0/go.mod h1:TqNnHUmJgXau0nCzC7kXWeotg3J9W34CUv5Djy1+FlA=
-github.com/jbenet/go-random v0.0.0-20190219211222-123a90aedc0c h1:uUx61FiAa1GI6ZmVd2wf2vULeQZIKG66eybjNXKYCz4=
-github.com/jbenet/go-random v0.0.0-20190219211222-123a90aedc0c/go.mod h1:sdx1xVM9UuLw1tXnhJWN3piypTUO3vCIHYmG15KE/dU=
-github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs=
github.com/jbenet/go-temp-err-catcher v0.1.0 h1:zpb3ZH6wIE8Shj2sKS+khgRvf7T7RABoLk/+KKHggpk=
-github.com/jbenet/go-temp-err-catcher v0.1.0/go.mod h1:0kJRvmDZXNMIiJirNPEYfhpPwbGVtZVWC34vc5WLsDk=
-github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY=
-github.com/jbenet/goprocess v0.1.3/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4=
github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0o=
github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4=
-github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU=
-github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
-github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA=
-github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
@@ -769,7 +396,6 @@ github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
github.com/jlaffaye/ftp v0.1.0 h1:DLGExl5nBoSFoNshAUHwXAezXwXBvFdx7/qwhucWNSE=
github.com/jlaffaye/ftp v0.1.0/go.mod h1:hhq4G4crv+nW2qXtNYcuzLeOudG92Ps37HEKeg2e3lE=
-github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ=
github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
@@ -777,14 +403,8 @@ github.com/jordan-wright/email v0.0.0-20200824153738-3f5bafa1cd84 h1:pS0A6cr4aHY
github.com/jordan-wright/email v0.0.0-20200824153738-3f5bafa1cd84/go.mod h1:1c7szIrayyPPB/987hsnvNzLushdWf4o/79s3P08L8A=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
-github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA=
-github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
-github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
-github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
@@ -792,36 +412,25 @@ github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVY
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
-github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
-github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d/go.mod h1:P2viExyCEfeWGU259JnaQ34Inuec4R38JCyBx2edgD0=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
-github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4=
github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=
github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
-github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg=
github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk=
-github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk=
github.com/koron/go-ssdp v0.0.4 h1:1IDwrghSKYM7yLf7XCzbByg2sJ/JcNOZRXS2jczTwz0=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
-github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
-github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
@@ -840,255 +449,51 @@ github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lib/pq v1.10.2 h1:AqzbZs4ZoCBp+GtejcpCpcxM3zlSMx29dXbUSeVtJb8=
github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
-github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ=
-github.com/libp2p/go-addr-util v0.0.2/go.mod h1:Ecd6Fb3yIuLzq4bD7VcywcVSBtefcAwnUISBM3WG15E=
-github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ=
github.com/libp2p/go-buffer-pool v0.0.2/go.mod h1:MvaB6xw5vOrDl8rYZGLFdKAuk/hRoRZd1Vi32+RXyFM=
github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8=
github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg=
github.com/libp2p/go-cidranger v1.1.0 h1:ewPN8EZ0dd1LSnrtuwd4709PXVcITVeuwbag38yPW7c=
-github.com/libp2p/go-conn-security-multistream v0.1.0/go.mod h1:aw6eD7LOsHEX7+2hJkDxw1MteijaVcI+/eP2/x3J1xc=
-github.com/libp2p/go-conn-security-multistream v0.2.0/go.mod h1:hZN4MjlNetKD3Rq5Jb/P5ohUnFLNzEAR4DLSzpn2QLU=
-github.com/libp2p/go-conn-security-multistream v0.2.1/go.mod h1:cR1d8gA0Hr59Fj6NhaTpFhJZrjSYuNmhpT2r25zYR70=
-github.com/libp2p/go-eventbus v0.1.0/go.mod h1:vROgu5cs5T7cv7POWlWxBaVLxfSegC5UGQf8A2eEmx4=
-github.com/libp2p/go-eventbus v0.2.1/go.mod h1:jc2S4SoEVPP48H9Wpzm5aiGwUCBMfGhVhhBjyhhCJs8=
-github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8=
-github.com/libp2p/go-flow-metrics v0.0.3/go.mod h1:HeoSNUrOJVK1jEpDqVEiUOIXqhbnS27omG0uWU5slZs=
-github.com/libp2p/go-flow-metrics v0.1.0 h1:0iPhMI8PskQwzh57jB9WxIuIOQ0r+15PChFGkx3Q3WM=
-github.com/libp2p/go-libp2p v0.1.0/go.mod h1:6D/2OBauqLUoqcADOJpn9WbKqvaM07tDw68qHM0BxUM=
-github.com/libp2p/go-libp2p v0.6.1/go.mod h1:CTFnWXogryAHjXAKEbOf1OWY+VeAP3lDMZkfEI5sT54=
-github.com/libp2p/go-libp2p v0.7.0/go.mod h1:hZJf8txWeCduQRDC/WSqBGMxaTHCOYHt2xSU1ivxn0k=
-github.com/libp2p/go-libp2p v0.7.4/go.mod h1:oXsBlTLF1q7pxr+9w6lqzS1ILpyHsaBPniVO7zIHGMw=
-github.com/libp2p/go-libp2p v0.8.1/go.mod h1:QRNH9pwdbEBpx5DTJYg+qxcVaDMAz3Ee/qDKwXujH5o=
-github.com/libp2p/go-libp2p v0.14.3/go.mod h1:d12V4PdKbpL0T1/gsUNN8DfgMuRPDX8bS2QxCZlwRH0=
github.com/libp2p/go-libp2p v0.30.0 h1:9EZwFtJPFBcs/yJTnP90TpN1hgrT/EsFfM+OZuwV87U=
github.com/libp2p/go-libp2p v0.30.0/go.mod h1:nr2g5V7lfftwgiJ78/HrID+pwvayLyqKCEirT2Y3Byg=
github.com/libp2p/go-libp2p-asn-util v0.3.0 h1:gMDcMyYiZKkocGXDQ5nsUQyquC9+H+iLEQHwOCZ7s8s=
-github.com/libp2p/go-libp2p-autonat v0.1.0/go.mod h1:1tLf2yXxiE/oKGtDwPYWTSYG3PtvYlJmg7NeVtPRqH8=
-github.com/libp2p/go-libp2p-autonat v0.1.1/go.mod h1:OXqkeGOY2xJVWKAGV2inNF5aKN/djNA3fdpCWloIudE=
-github.com/libp2p/go-libp2p-autonat v0.2.0/go.mod h1:DX+9teU4pEEoZUqR1PiMlqliONQdNbfzE1C718tcViI=
-github.com/libp2p/go-libp2p-autonat v0.2.1/go.mod h1:MWtAhV5Ko1l6QBsHQNSuM6b1sRkXrpk0/LqCr+vCVxI=
-github.com/libp2p/go-libp2p-autonat v0.2.2/go.mod h1:HsM62HkqZmHR2k1xgX34WuWDzk/nBwNHoeyyT4IWV6A=
-github.com/libp2p/go-libp2p-autonat v0.4.2/go.mod h1:YxaJlpr81FhdOv3W3BTconZPfhaYivRdf53g+S2wobk=
-github.com/libp2p/go-libp2p-blankhost v0.1.1/go.mod h1:pf2fvdLJPsC1FsVrNP3DUUvMzUts2dsLLBEpo1vW1ro=
-github.com/libp2p/go-libp2p-blankhost v0.1.4/go.mod h1:oJF0saYsAXQCSfDq254GMNmLNz6ZTHTOvtF4ZydUvwU=
-github.com/libp2p/go-libp2p-blankhost v0.2.0/go.mod h1:eduNKXGTioTuQAUcZ5epXi9vMl+t4d8ugUBRQ4SqaNQ=
-github.com/libp2p/go-libp2p-circuit v0.1.0/go.mod h1:Ahq4cY3V9VJcHcn1SBXjr78AbFkZeIRmfunbA7pmFh8=
-github.com/libp2p/go-libp2p-circuit v0.1.4/go.mod h1:CY67BrEjKNDhdTk8UgBX1Y/H5c3xkAcs3gnksxY7osU=
-github.com/libp2p/go-libp2p-circuit v0.2.1/go.mod h1:BXPwYDN5A8z4OEY9sOfr2DUQMLQvKt/6oku45YUmjIo=
-github.com/libp2p/go-libp2p-circuit v0.4.0/go.mod h1:t/ktoFIUzM6uLQ+o1G6NuBl2ANhBKN9Bc8jRIk31MoA=
-github.com/libp2p/go-libp2p-core v0.0.1/go.mod h1:g/VxnTZ/1ygHxH3dKok7Vno1VfpvGcGip57wjTU4fco=
-github.com/libp2p/go-libp2p-core v0.0.2/go.mod h1:9dAcntw/n46XycV4RnlBq3BpgrmyUi9LuoTNdPrbUco=
-github.com/libp2p/go-libp2p-core v0.0.4/go.mod h1:jyuCQP356gzfCFtRKyvAbNkyeuxb7OlyhWZ3nls5d2I=
-github.com/libp2p/go-libp2p-core v0.2.0/go.mod h1:X0eyB0Gy93v0DZtSYbEM7RnMChm9Uv3j7yRXjO77xSI=
-github.com/libp2p/go-libp2p-core v0.2.2/go.mod h1:8fcwTbsG2B+lTgRJ1ICZtiM5GWCWZVoVrLaDRvIRng0=
-github.com/libp2p/go-libp2p-core v0.2.4/go.mod h1:STh4fdfa5vDYr0/SzYYeqnt+E6KfEV5VxfIrm0bcI0g=
-github.com/libp2p/go-libp2p-core v0.3.0/go.mod h1:ACp3DmS3/N64c2jDzcV429ukDpicbL6+TrrxANBjPGw=
-github.com/libp2p/go-libp2p-core v0.3.1/go.mod h1:thvWy0hvaSBhnVBaW37BvzgVV68OUhgJJLAa6almrII=
-github.com/libp2p/go-libp2p-core v0.4.0/go.mod h1:49XGI+kc38oGVwqSBhDEwytaAxgZasHhFfQKibzTls0=
-github.com/libp2p/go-libp2p-core v0.5.0/go.mod h1:49XGI+kc38oGVwqSBhDEwytaAxgZasHhFfQKibzTls0=
-github.com/libp2p/go-libp2p-core v0.5.1/go.mod h1:uN7L2D4EvPCvzSH5SrhR72UWbnSGpt5/a35Sm4upn4Y=
-github.com/libp2p/go-libp2p-core v0.5.4/go.mod h1:uN7L2D4EvPCvzSH5SrhR72UWbnSGpt5/a35Sm4upn4Y=
-github.com/libp2p/go-libp2p-core v0.5.5/go.mod h1:vj3awlOr9+GMZJFH9s4mpt9RHHgGqeHCopzbYKZdRjM=
-github.com/libp2p/go-libp2p-core v0.5.6/go.mod h1:txwbVEhHEXikXn9gfC7/UDDw7rkxuX0bJvM49Ykaswo=
-github.com/libp2p/go-libp2p-core v0.5.7/go.mod h1:txwbVEhHEXikXn9gfC7/UDDw7rkxuX0bJvM49Ykaswo=
-github.com/libp2p/go-libp2p-core v0.6.0/go.mod h1:txwbVEhHEXikXn9gfC7/UDDw7rkxuX0bJvM49Ykaswo=
-github.com/libp2p/go-libp2p-core v0.7.0/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8=
-github.com/libp2p/go-libp2p-core v0.8.0/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8=
-github.com/libp2p/go-libp2p-core v0.8.1/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8=
-github.com/libp2p/go-libp2p-core v0.8.2/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8=
-github.com/libp2p/go-libp2p-core v0.8.5/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8=
-github.com/libp2p/go-libp2p-crypto v0.1.0/go.mod h1:sPUokVISZiy+nNuTTH/TY+leRSxnFj/2GLjtOTW90hI=
-github.com/libp2p/go-libp2p-discovery v0.1.0/go.mod h1:4F/x+aldVHjHDHuX85x1zWoFTGElt8HnoDzwkFZm29g=
-github.com/libp2p/go-libp2p-discovery v0.2.0/go.mod h1:s4VGaxYMbw4+4+tsoQTqh7wfxg97AEdo4GYBt6BadWg=
-github.com/libp2p/go-libp2p-discovery v0.3.0/go.mod h1:o03drFnz9BVAZdzC/QUQ+NeQOu38Fu7LJGEOK2gQltw=
-github.com/libp2p/go-libp2p-discovery v0.5.0/go.mod h1:+srtPIU9gDaBNu//UHvcdliKBIcr4SfDcm0/PfPJLug=
-github.com/libp2p/go-libp2p-loggables v0.1.0/go.mod h1:EyumB2Y6PrYjr55Q3/tiJ/o3xoDasoRYM7nOzEpoa90=
-github.com/libp2p/go-libp2p-mplex v0.2.0/go.mod h1:Ejl9IyjvXJ0T9iqUTE1jpYATQ9NM3g+OtR+EMMODbKo=
-github.com/libp2p/go-libp2p-mplex v0.2.1/go.mod h1:SC99Rxs8Vuzrf/6WhmH41kNn13TiYdAWNYHrwImKLnE=
-github.com/libp2p/go-libp2p-mplex v0.2.2/go.mod h1:74S9eum0tVQdAfFiKxAyKzNdSuLqw5oadDq7+L/FELo=
-github.com/libp2p/go-libp2p-mplex v0.2.3/go.mod h1:CK3p2+9qH9x+7ER/gWWDYJ3QW5ZxWDkm+dVvjfuG3ek=
-github.com/libp2p/go-libp2p-mplex v0.4.0/go.mod h1:yCyWJE2sc6TBTnFpjvLuEJgTSw/u+MamvzILKdX7asw=
-github.com/libp2p/go-libp2p-mplex v0.4.1/go.mod h1:cmy+3GfqfM1PceHTLL7zQzAAYaryDu6iPSC+CIb094g=
-github.com/libp2p/go-libp2p-nat v0.0.4/go.mod h1:N9Js/zVtAXqaeT99cXgTV9e75KpnWCvVOiGzlcHmBbY=
-github.com/libp2p/go-libp2p-nat v0.0.5/go.mod h1:1qubaE5bTZMJE+E/uu2URroMbzdubFz1ChgiN79yKPE=
-github.com/libp2p/go-libp2p-nat v0.0.6/go.mod h1:iV59LVhB3IkFvS6S6sauVTSOrNEANnINbI/fkaLimiw=
-github.com/libp2p/go-libp2p-netutil v0.1.0/go.mod h1:3Qv/aDqtMLTUyQeundkKsA+YCThNdbQD54k3TqjpbFU=
-github.com/libp2p/go-libp2p-noise v0.2.0/go.mod h1:IEbYhBBzGyvdLBoxxULL/SGbJARhUeqlO8lVSREYu2Q=
-github.com/libp2p/go-libp2p-peer v0.2.0/go.mod h1:RCffaCvUyW2CJmG2gAWVqwePwW7JMgxjsHm7+J5kjWY=
-github.com/libp2p/go-libp2p-peerstore v0.1.0/go.mod h1:2CeHkQsr8svp4fZ+Oi9ykN1HBb6u0MOvdJ7YIsmcwtY=
-github.com/libp2p/go-libp2p-peerstore v0.1.3/go.mod h1:BJ9sHlm59/80oSkpWgr1MyY1ciXAXV397W6h1GH/uKI=
-github.com/libp2p/go-libp2p-peerstore v0.2.0/go.mod h1:N2l3eVIeAitSg3Pi2ipSrJYnqhVnMNQZo9nkSCuAbnQ=
-github.com/libp2p/go-libp2p-peerstore v0.2.1/go.mod h1:NQxhNjWxf1d4w6PihR8btWIRjwRLBr4TYKfNgrUkOPA=
-github.com/libp2p/go-libp2p-peerstore v0.2.2/go.mod h1:NQxhNjWxf1d4w6PihR8btWIRjwRLBr4TYKfNgrUkOPA=
-github.com/libp2p/go-libp2p-peerstore v0.2.6/go.mod h1:ss/TWTgHZTMpsU/oKVVPQCGuDHItOpf2W8RxAi50P2s=
-github.com/libp2p/go-libp2p-peerstore v0.2.7/go.mod h1:ss/TWTgHZTMpsU/oKVVPQCGuDHItOpf2W8RxAi50P2s=
-github.com/libp2p/go-libp2p-pnet v0.2.0/go.mod h1:Qqvq6JH/oMZGwqs3N1Fqhv8NVhrdYcO0BW4wssv21LA=
-github.com/libp2p/go-libp2p-pubsub v0.9.3 h1:ihcz9oIBMaCK9kcx+yHWm3mLAFBMAUsM4ux42aikDxo=
-github.com/libp2p/go-libp2p-pubsub v0.9.3/go.mod h1:RYA7aM9jIic5VV47WXu4GkcRxRhrdElWf8xtyli+Dzc=
-github.com/libp2p/go-libp2p-quic-transport v0.10.0/go.mod h1:RfJbZ8IqXIhxBRm5hqUEJqjiiY8xmEuq3HUDS993MkA=
-github.com/libp2p/go-libp2p-record v0.1.0/go.mod h1:ujNc8iuE5dlKWVy6wuL6dd58t0n7xI4hAIl8pE6wu5Q=
github.com/libp2p/go-libp2p-record v0.2.0 h1:oiNUOCWno2BFuxt3my4i1frNrt7PerzB3queqa1NkQ0=
-github.com/libp2p/go-libp2p-secio v0.1.0/go.mod h1:tMJo2w7h3+wN4pgU2LSYeiKPrfqBgkOsdiKK77hE7c8=
-github.com/libp2p/go-libp2p-secio v0.2.0/go.mod h1:2JdZepB8J5V9mBp79BmwsaPQhRPNN2NrnB2lKQcdy6g=
-github.com/libp2p/go-libp2p-secio v0.2.1/go.mod h1:cWtZpILJqkqrSkiYcDBh5lA3wbT2Q+hz3rJQq3iftD8=
-github.com/libp2p/go-libp2p-secio v0.2.2/go.mod h1:wP3bS+m5AUnFA+OFO7Er03uO1mncHG0uVwGrwvjYlNY=
-github.com/libp2p/go-libp2p-swarm v0.1.0/go.mod h1:wQVsCdjsuZoc730CgOvh5ox6K8evllckjebkdiY5ta4=
-github.com/libp2p/go-libp2p-swarm v0.2.2/go.mod h1:fvmtQ0T1nErXym1/aa1uJEyN7JzaTNyBcHImCxRpPKU=
-github.com/libp2p/go-libp2p-swarm v0.2.3/go.mod h1:P2VO/EpxRyDxtChXz/VPVXyTnszHvokHKRhfkEgFKNM=
-github.com/libp2p/go-libp2p-swarm v0.2.8/go.mod h1:JQKMGSth4SMqonruY0a8yjlPVIkb0mdNSwckW7OYziM=
-github.com/libp2p/go-libp2p-swarm v0.3.0/go.mod h1:hdv95GWCTmzkgeJpP+GK/9D9puJegb7H57B5hWQR5Kk=
-github.com/libp2p/go-libp2p-swarm v0.5.0/go.mod h1:sU9i6BoHE0Ve5SKz3y9WfKrh8dUat6JknzUehFx8xW4=
-github.com/libp2p/go-libp2p-testing v0.0.2/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E=
-github.com/libp2p/go-libp2p-testing v0.0.3/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E=
-github.com/libp2p/go-libp2p-testing v0.0.4/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E=
-github.com/libp2p/go-libp2p-testing v0.1.0/go.mod h1:xaZWMJrPUM5GlDBxCeGUi7kI4eqnjVyavGroI2nxEM0=
-github.com/libp2p/go-libp2p-testing v0.1.1/go.mod h1:xaZWMJrPUM5GlDBxCeGUi7kI4eqnjVyavGroI2nxEM0=
-github.com/libp2p/go-libp2p-testing v0.1.2-0.20200422005655-8775583591d8/go.mod h1:Qy8sAncLKpwXtS2dSnDOP8ktexIAHKu+J+pnZOFZLTc=
-github.com/libp2p/go-libp2p-testing v0.3.0/go.mod h1:efZkql4UZ7OVsEfaxNHZPzIehtsBXMrXnCfJIgDti5g=
-github.com/libp2p/go-libp2p-testing v0.4.0/go.mod h1:Q+PFXYoiYFN5CAEG2w3gLPEzotlKsNSbKQ/lImlOWF0=
github.com/libp2p/go-libp2p-testing v0.12.0 h1:EPvBb4kKMWO29qP4mZGyhVzUyR25dvfUIK5WDu6iPUA=
-github.com/libp2p/go-libp2p-tls v0.1.3/go.mod h1:wZfuewxOndz5RTnCAxFliGjvYSDA40sKitV4c50uI1M=
-github.com/libp2p/go-libp2p-transport-upgrader v0.1.1/go.mod h1:IEtA6or8JUbsV07qPW4r01GnTenLW4oi3lOPbUMGJJA=
-github.com/libp2p/go-libp2p-transport-upgrader v0.2.0/go.mod h1:mQcrHj4asu6ArfSoMuyojOdjx73Q47cYD7s5+gZOlns=
-github.com/libp2p/go-libp2p-transport-upgrader v0.3.0/go.mod h1:i+SKzbRnvXdVbU3D1dwydnTmKRPXiAR/fyvi1dXuL4o=
-github.com/libp2p/go-libp2p-transport-upgrader v0.4.2/go.mod h1:NR8ne1VwfreD5VIWIU62Agt/J18ekORFU/j1i2y8zvk=
-github.com/libp2p/go-libp2p-yamux v0.2.0/go.mod h1:Db2gU+XfLpm6E4rG5uGCFX6uXA8MEXOxFcRoXUODaK8=
-github.com/libp2p/go-libp2p-yamux v0.2.2/go.mod h1:lIohaR0pT6mOt0AZ0L2dFze9hds9Req3OfS+B+dv4qw=
-github.com/libp2p/go-libp2p-yamux v0.2.5/go.mod h1:Zpgj6arbyQrmZ3wxSZxfBmbdnWtbZ48OpsfmQVTErwA=
-github.com/libp2p/go-libp2p-yamux v0.2.7/go.mod h1:X28ENrBMU/nm4I3Nx4sZ4dgjZ6VhLEn0XhIoZ5viCwU=
-github.com/libp2p/go-libp2p-yamux v0.2.8/go.mod h1:/t6tDqeuZf0INZMTgd0WxIRbtK2EzI2h7HbFm9eAKI4=
-github.com/libp2p/go-libp2p-yamux v0.4.0/go.mod h1:+DWDjtFMzoAwYLVkNZftoucn7PelNoy5nm3tZ3/Zw30=
-github.com/libp2p/go-libp2p-yamux v0.5.0/go.mod h1:AyR8k5EzyM2QN9Bbdg6X1SkVVuqLwTGf0L4DFq9g6po=
-github.com/libp2p/go-libp2p-yamux v0.5.4/go.mod h1:tfrXbyaTqqSU654GTvK3ocnSZL3BuHoeTSqhcel1wsE=
-github.com/libp2p/go-maddr-filter v0.0.4/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q=
-github.com/libp2p/go-maddr-filter v0.0.5/go.mod h1:Jk+36PMfIqCJhAnaASRH83bdAvfDRp/w6ENFaC9bG+M=
-github.com/libp2p/go-maddr-filter v0.1.0/go.mod h1:VzZhTXkMucEGGEOSKddrwGiOv0tUhgnKqNEmIAz/bPU=
-github.com/libp2p/go-mplex v0.0.3/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0=
-github.com/libp2p/go-mplex v0.1.0/go.mod h1:SXgmdki2kwCUlCCbfGLEgHjC4pFqhTp0ZoV6aiKgxDU=
-github.com/libp2p/go-mplex v0.1.1/go.mod h1:Xgz2RDCi3co0LeZfgjm4OgUF15+sVR8SRcu3SFXI1lk=
-github.com/libp2p/go-mplex v0.1.2/go.mod h1:Xgz2RDCi3co0LeZfgjm4OgUF15+sVR8SRcu3SFXI1lk=
-github.com/libp2p/go-mplex v0.2.0/go.mod h1:0Oy/A9PQlwBytDRp4wSkFnzHYDKcpLot35JQ6msjvYQ=
-github.com/libp2p/go-mplex v0.3.0/go.mod h1:0Oy/A9PQlwBytDRp4wSkFnzHYDKcpLot35JQ6msjvYQ=
-github.com/libp2p/go-msgio v0.0.2/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ=
-github.com/libp2p/go-msgio v0.0.4/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ=
-github.com/libp2p/go-msgio v0.0.6/go.mod h1:4ecVB6d9f4BDSL5fqvPiC4A3KivjWn+Venn/1ALLMWA=
github.com/libp2p/go-msgio v0.3.0 h1:mf3Z8B1xcFN314sWX+2vOTShIE0Mmn2TXn3YCUQGNj0=
-github.com/libp2p/go-msgio v0.3.0/go.mod h1:nyRM819GmVaF9LX3l03RMh10QdOroF++NBbxAb0mmDM=
-github.com/libp2p/go-nat v0.0.3/go.mod h1:88nUEt0k0JD45Bk93NIwDqjlhiOwOoV36GchpcVc1yI=
-github.com/libp2p/go-nat v0.0.4/go.mod h1:Nmw50VAvKuk38jUBcmNh6p9lUJLoODbJRvYAa/+KSDo=
-github.com/libp2p/go-nat v0.0.5/go.mod h1:B7NxsVNPZmRLvMOwiEO1scOSyjA56zxYAGv1yQgRkEU=
github.com/libp2p/go-nat v0.2.0 h1:Tyz+bUFAYqGyJ/ppPPymMGbIgNRH+WqC5QrT5fKrrGk=
-github.com/libp2p/go-netroute v0.1.2/go.mod h1:jZLDV+1PE8y5XxBySEBgbuVAXbhtuHSdmLPL2n9MKbk=
-github.com/libp2p/go-netroute v0.1.3/go.mod h1:jZLDV+1PE8y5XxBySEBgbuVAXbhtuHSdmLPL2n9MKbk=
-github.com/libp2p/go-netroute v0.1.5/go.mod h1:V1SR3AaECRkEQCoFFzYwVYWvYIEtlxx89+O3qcpCl4A=
-github.com/libp2p/go-netroute v0.1.6/go.mod h1:AqhkMh0VuWmfgtxKPp3Oc1LdU5QSWS7wl0QLhSZqXxQ=
github.com/libp2p/go-netroute v0.2.1 h1:V8kVrpD8GK0Riv15/7VN6RbUQ3URNZVosw7H2v9tksU=
-github.com/libp2p/go-openssl v0.0.2/go.mod h1:v8Zw2ijCSWBQi8Pq5GAixw6DbFfa9u6VIYDXnvOXkc0=
-github.com/libp2p/go-openssl v0.0.3/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc=
-github.com/libp2p/go-openssl v0.0.4/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc=
-github.com/libp2p/go-openssl v0.0.5/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc=
-github.com/libp2p/go-openssl v0.0.7/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc=
-github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA=
-github.com/libp2p/go-reuseport v0.0.2/go.mod h1:SPD+5RwGC7rcnzngoYC86GjPzjSywuQyMVAheVBD9nQ=
-github.com/libp2p/go-reuseport v0.4.0 h1:nR5KU7hD0WxXCJbmw7r2rhRYruNRl2koHw8fQscQm2s=
-github.com/libp2p/go-reuseport-transport v0.0.2/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs=
-github.com/libp2p/go-reuseport-transport v0.0.3/go.mod h1:Spv+MPft1exxARzP2Sruj2Wb5JSyHNncjf1Oi2dEbzM=
-github.com/libp2p/go-reuseport-transport v0.0.4/go.mod h1:trPa7r/7TJK/d+0hdBLOCGvpQQVOU74OXbNCIMkufGw=
-github.com/libp2p/go-sockaddr v0.0.2/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k=
-github.com/libp2p/go-sockaddr v0.1.0/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k=
-github.com/libp2p/go-sockaddr v0.1.1/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k=
-github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14=
-github.com/libp2p/go-stream-muxer-multistream v0.2.0/go.mod h1:j9eyPol/LLRqT+GPLSxvimPhNph4sfYfMoDPd7HkzIc=
-github.com/libp2p/go-stream-muxer-multistream v0.3.0/go.mod h1:yDh8abSIzmZtqtOt64gFJUXEryejzNb0lisTt+fAMJA=
-github.com/libp2p/go-tcp-transport v0.1.0/go.mod h1:oJ8I5VXryj493DEJ7OsBieu8fcg2nHGctwtInJVpipc=
-github.com/libp2p/go-tcp-transport v0.1.1/go.mod h1:3HzGvLbx6etZjnFlERyakbaYPdfjg2pWP97dFZworkY=
-github.com/libp2p/go-tcp-transport v0.2.0/go.mod h1:vX2U0CnWimU4h0SGSEsg++AzvBcroCGYw28kh94oLe0=
-github.com/libp2p/go-tcp-transport v0.2.3/go.mod h1:9dvr03yqrPyYGIEN6Dy5UvdJZjyPFvl1S/igQ5QD1SU=
-github.com/libp2p/go-testutil v0.1.0/go.mod h1:81b2n5HypcVyrCg/MJx4Wgfp/VHojytjVe/gLzZ2Ehc=
-github.com/libp2p/go-ws-transport v0.1.0/go.mod h1:rjw1MG1LU9YDC6gzmwObkPd/Sqwhw7yT74kj3raBFuo=
-github.com/libp2p/go-ws-transport v0.2.0/go.mod h1:9BHJz/4Q5A9ludYWKoGCFC5gUElzlHoKzu0yY9p/klM=
-github.com/libp2p/go-ws-transport v0.3.0/go.mod h1:bpgTJmRZAvVHrgHybCVyqoBmyLQ1fiZuEaBYusP5zsk=
-github.com/libp2p/go-ws-transport v0.4.0/go.mod h1:EcIEKqf/7GDjth6ksuS/6p7R49V4CBY6/E7R/iyhYUA=
-github.com/libp2p/go-yamux v1.2.2/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow=
-github.com/libp2p/go-yamux v1.3.0/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow=
-github.com/libp2p/go-yamux v1.3.3/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow=
-github.com/libp2p/go-yamux v1.3.5/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow=
-github.com/libp2p/go-yamux v1.3.7/go.mod h1:fr7aVgmdNGJK+N1g+b6DW6VxzbRCjCOejR/hkmpooHE=
-github.com/libp2p/go-yamux v1.4.0/go.mod h1:fr7aVgmdNGJK+N1g+b6DW6VxzbRCjCOejR/hkmpooHE=
-github.com/libp2p/go-yamux v1.4.1 h1:P1Fe9vF4th5JOxxgQvfbOHkrGqIZniTLf+ddhZp8YTI=
-github.com/libp2p/go-yamux v1.4.1/go.mod h1:fr7aVgmdNGJK+N1g+b6DW6VxzbRCjCOejR/hkmpooHE=
-github.com/libp2p/go-yamux/v2 v2.2.0/go.mod h1:3So6P6TV6r75R9jiBpiIKgU/66lOarCZjqROGxzPpPQ=
-github.com/libp2p/go-yamux/v4 v4.0.1 h1:FfDR4S1wj6Bw2Pqbc8Uz7pCxeRBPbwsBbEdfwiCypkQ=
-github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
-github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
-github.com/lucas-clemente/quic-go v0.19.3/go.mod h1:ADXpNbTQjq1hIzCpB+y/k5iz4n4z4IwqoLb94Kh5Hu8=
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4=
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I=
-github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI=
-github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
-github.com/magefile/mage v1.9.0 h1:t3AU2wNwehMCW97vuqQLtw6puppWXHO+O2MHo5a50XE=
-github.com/magefile/mage v1.9.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
-github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
-github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
-github.com/marten-seemann/qpack v0.2.1/go.mod h1:F7Gl5L1jIgN1D11ucXefiuJS9UMVP2opoCp2jDKb7wc=
-github.com/marten-seemann/qtls v0.10.0/go.mod h1:UvMd1oaYDACI99/oZUYLzMCkBXQVT0aGm99sJhbT8hs=
-github.com/marten-seemann/qtls-go1-15 v0.1.1/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I=
-github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8u83wA0rVZ8ttrq5CpaPZdvrK0LP2lOk=
-github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd/go.mod h1:QuCEs1Nt24+FYQEqAAncTDPJIuGs+LxK1MCiFL25pMU=
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
-github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
-github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
-github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
-github.com/mattn/go-isatty v0.0.13/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
-github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-sqlite3 v1.14.12/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
-github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
-github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4=
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
-github.com/miekg/dns v1.1.12/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
-github.com/miekg/dns v1.1.28/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
-github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI=
github.com/miekg/dns v1.1.55 h1:GoQ4hpsj0nFLYe+bWiCToyrBEJXkQfOOIvFGFy0lEgo=
-github.com/miekg/dns v1.1.55/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY=
-github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c/go.mod h1:0SQS9kMwD2VsyFEB++InYyBJroV/FRmBgcydeSUcJms=
-github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b h1:z78hV3sbSMAUoyUMM0I83AUIT6Hu17AWfgjzIbtrYFc=
-github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b/go.mod h1:lxPUiZwKoFL8DUUmalo2yJJUCxbPKtm8OKfqr2/FTNU=
-github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc h1:PTfri+PuQmWDqERdnNMiD9ZejrlswWrCpBEZgWOiTrc=
-github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc/go.mod h1:cGKTAVKx4SxOuR/czcZ/E2RSJ3sfHs8FpHhQ5CWMf9s=
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g=
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ=
github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U=
-github.com/minio/sha256-simd v0.0.0-20190328051042-05b4dd3047e5/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U=
-github.com/minio/sha256-simd v0.1.0/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U=
github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM=
-github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM=
github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM=
github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM=
github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8=
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
-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-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=
@@ -1107,7 +512,6 @@ github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3P
github.com/mojocn/base64Captcha v1.3.1 h1:2Wbkt8Oc8qjmNJ5GyOfSo4tgVQPsbKMftqASnq8GlT0=
github.com/mojocn/base64Captcha v1.3.1/go.mod h1:wAQCKEc5bDujxKRmbT6/vTnTt5CjStQ8bRfPWUuz/iY=
github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8=
-github.com/mr-tron/base58 v1.1.1/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8=
github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
github.com/mr-tron/base58 v1.1.3/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
@@ -1118,262 +522,106 @@ github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYg
github.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoRdUUOENyW/Vv6sM=
github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0=
github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4=
-github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44=
-github.com/multiformats/go-multiaddr v0.0.2/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44=
-github.com/multiformats/go-multiaddr v0.0.4/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44=
-github.com/multiformats/go-multiaddr v0.1.0/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44=
-github.com/multiformats/go-multiaddr v0.1.1/go.mod h1:aMKBKNEYmzmDmxfX88/vz+J5IU55txyt0p4aiWVohjo=
-github.com/multiformats/go-multiaddr v0.2.0/go.mod h1:0nO36NvPpyV4QzvTLi/lafl2y95ncPj0vFwVF6k6wJ4=
-github.com/multiformats/go-multiaddr v0.2.1/go.mod h1:s/Apk6IyxfvMjDafnhJgJ3/46z7tZ04iMk5wP4QMGGE=
-github.com/multiformats/go-multiaddr v0.2.2/go.mod h1:NtfXiOtHvghW9KojvtySjH5y0u0xW5UouOmQQrn6a3Y=
-github.com/multiformats/go-multiaddr v0.3.0/go.mod h1:dF9kph9wfJ+3VLAaeBqo9Of8x4fJxp6ggJGteB8HQTI=
-github.com/multiformats/go-multiaddr v0.3.1/go.mod h1:uPbspcUPd5AfaP6ql3ujFY+QWzmBD8uLLL4bXW0XfGc=
-github.com/multiformats/go-multiaddr v0.3.3/go.mod h1:lCKNGP1EQ1eZ35Za2wlqnabm9xQkib3fyB+nZXHLag0=
github.com/multiformats/go-multiaddr v0.11.0 h1:XqGyJ8ufbCE0HmTDwx2kPdsrQ36AGPZNZX6s6xfJH10=
github.com/multiformats/go-multiaddr v0.11.0/go.mod h1:gWUm0QLR4thQ6+ZF6SXUw8YjtwQSPapICM+NmCkxHSM=
-github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q=
-github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q=
-github.com/multiformats/go-multiaddr-dns v0.2.0/go.mod h1:TJ5pr5bBO7Y1B18djPuRsVkduhQH2YqYSbxWJzYGdK0=
github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2y0Mkk+QRVJbW3A=
-github.com/multiformats/go-multiaddr-dns v0.3.1/go.mod h1:G/245BRQ6FJGmryJCrOuTdB37AMA5AMOVuO6NY3JwTk=
-github.com/multiformats/go-multiaddr-fmt v0.0.1/go.mod h1:aBYjqL4T/7j4Qx+R73XSv/8JsgnRFlf0w2KGLCmXl3Q=
github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E=
-github.com/multiformats/go-multiaddr-fmt v0.1.0/go.mod h1:hGtDIW4PU4BqJ50gW2quDuPVjyWNZxToGUh/HwTZYJo=
-github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU=
-github.com/multiformats/go-multiaddr-net v0.1.0/go.mod h1:5JNbcfBOP4dnhoZOv10JJVkJO0pCCEf8mTnipAo2UZQ=
-github.com/multiformats/go-multiaddr-net v0.1.1/go.mod h1:5JNbcfBOP4dnhoZOv10JJVkJO0pCCEf8mTnipAo2UZQ=
-github.com/multiformats/go-multiaddr-net v0.1.2/go.mod h1:QsWt3XK/3hwvNxZJp92iMQKME1qHfpYmyIjFVsSOY6Y=
-github.com/multiformats/go-multiaddr-net v0.1.3/go.mod h1:ilNnaM9HbmVFqsb/qcNysjCu4PVONlrBZpHIrw/qQuA=
-github.com/multiformats/go-multiaddr-net v0.1.4/go.mod h1:ilNnaM9HbmVFqsb/qcNysjCu4PVONlrBZpHIrw/qQuA=
-github.com/multiformats/go-multiaddr-net v0.1.5/go.mod h1:ilNnaM9HbmVFqsb/qcNysjCu4PVONlrBZpHIrw/qQuA=
-github.com/multiformats/go-multiaddr-net v0.2.0/go.mod h1:gGdH3UXny6U3cKKYCvpXI5rnK7YaOIEOPVDI9tsJbEA=
github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs=
github.com/multiformats/go-multibase v0.0.3/go.mod h1:5+1R4eQrT3PkYZ24C3W2Ue2tPwIdYQD509ZjSb5y9Oc=
github.com/multiformats/go-multibase v0.2.0 h1:isdYCVLvksgWlMW9OZRYJEa9pZETFivncJHmHnnd87g=
github.com/multiformats/go-multibase v0.2.0/go.mod h1:bFBZX4lKCA/2lyOFSAoKH5SS6oPyjtnzK/XTFDPkNuk=
-github.com/multiformats/go-multicodec v0.6.0/go.mod h1:GUC8upxSBE4oG+q3kWZRw/+6yC1BqO550bjhWsJbZlw=
github.com/multiformats/go-multicodec v0.9.0 h1:pb/dlPnzee/Sxv/j4PmkDRxCOi3hXTz3IbPKOXWJkmg=
github.com/multiformats/go-multicodec v0.9.0/go.mod h1:L3QTQvMIaVBkXOXXtVmYE+LI16i14xuaojr/H7Ai54k=
github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U=
-github.com/multiformats/go-multihash v0.0.5/go.mod h1:lt/HCbqlQwlPBz7lv0sQCdtfcMtlJvakRUn/0Ual8po=
-github.com/multiformats/go-multihash v0.0.8/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew=
-github.com/multiformats/go-multihash v0.0.9/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew=
github.com/multiformats/go-multihash v0.0.10/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew=
github.com/multiformats/go-multihash v0.0.13/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc=
github.com/multiformats/go-multihash v0.0.14/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc=
-github.com/multiformats/go-multihash v0.0.15/go.mod h1:D6aZrWNLFTV/ynMpKsNtB40mJzmCl4jb1alC0OvHiHg=
-github.com/multiformats/go-multihash v0.2.1/go.mod h1:WxoMcYG85AZVQUyRyo9s4wULvW5qrI9vb2Lt6evduFc=
github.com/multiformats/go-multihash v0.2.3 h1:7Lyc8XfX/IY2jWb/gI7JP+o7JEq9hOa7BFvVU9RSh+U=
github.com/multiformats/go-multihash v0.2.3/go.mod h1:dXgKXCXjBzdscBLk9JkjINiEsCKRVch90MdaGiKsvSM=
-github.com/multiformats/go-multistream v0.1.0/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg=
-github.com/multiformats/go-multistream v0.1.1/go.mod h1:KmHZ40hzVxiaiwlj3MEbYgK9JFk2/9UktWZAF54Du38=
-github.com/multiformats/go-multistream v0.2.1/go.mod h1:5GZPQZbkWOLOn3J2y4Y99vVW7vOfsAflxARk3x14o6k=
-github.com/multiformats/go-multistream v0.2.2/go.mod h1:UIcnm7Zuo8HKG+HkWgfQsGL+/MIEhyTqbODbIUwSXKs=
github.com/multiformats/go-multistream v0.4.1 h1:rFy0Iiyn3YT0asivDUIR05leAdwZq3de4741sbiSdfo=
-github.com/multiformats/go-multistream v0.4.1/go.mod h1:Mz5eykRVAjJWckE2U78c6xqdtyNUEhKSM0Lwar2p77Q=
-github.com/multiformats/go-varint v0.0.1/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE=
-github.com/multiformats/go-varint v0.0.2/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE=
github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE=
-github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE=
github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8=
github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg=
-github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU=
-github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k=
-github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w=
-github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
-github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
-github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
-github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo=
-github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
-github.com/nkovacs/streamquote v1.0.0 h1:PmVIV08Zlx2lZK5fFZlMZ04eHcDTIFJCv/5/0twVUow=
-github.com/nkovacs/streamquote v1.0.0/go.mod h1:BN+NaZ2CmdKqUuTUXUEm9j95B2TRbpOWpxbJYzzgUsc=
-github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
-github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
-github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
-github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs=
-github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
-github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
-github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg=
-github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
-github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
-github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU=
-github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
-github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
-github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
-github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
-github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA=
-github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
-github.com/onsi/gomega v1.16.0 h1:6gjqkI8iiRHMvdccRJM8rVKjCWk6ZIm6FTm3ddIe4/c=
-github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
-github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
-github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg=
-github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis=
-github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74=
github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
-github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
-github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA=
-github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8=
-github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
-github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
-github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
-github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM=
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
-github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
github.com/pelletier/go-toml v1.6.0 h1:aetoXYr0Tv7xRU/V4B4IZJ2QcbtMUFoNb3ORp7TzIK4=
github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys=
github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU=
github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek=
-github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
-github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9 h1:1/WtZae0yGtPq+TI6+Tv1WTxkukpXeMlviSxvL7SRgk=
-github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc=
-github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o=
-github.com/polydawn/refmt v0.0.0-20190408063855-01bf1e26dd14/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o=
-github.com/polydawn/refmt v0.0.0-20190807091052-3d65705ee9f1/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o=
-github.com/polydawn/refmt v0.0.0-20190809202753-05966cbd336a/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o=
-github.com/polydawn/refmt v0.0.0-20201211092308-30ac6d18308e/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o=
github.com/polydawn/refmt v0.89.0 h1:ADJTApkvkeBZsN0tBTx8QjpD9JkmxbKp0cxfr9qszm4=
github.com/polydawn/refmt v0.89.0/go.mod h1:/zvteZs/GwLtCgZ4BL6CBsk9IKIlexP43ObX9AxTqTw=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw=
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
-github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
-github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
-github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
-github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og=
-github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
-github.com/prometheus/client_golang v1.10.0/go.mod h1:WJM3cc3yu7XKBKa/I8WeZm+V3eltZnBwfENSU7mdogU=
github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
-github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=
-github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
-github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA=
-github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
-github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM=
-github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
-github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
-github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
-github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
-github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
-github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI=
+github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY=
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo=
-github.com/quic-go/qtls-go1-20 v0.3.3 h1:17/glZSLI9P9fDAeyCHBFSWSqJcwx1byhLwP5eUIDCM=
+github.com/quic-go/qtls-go1-20 v0.3.2 h1:rRgN3WfnKbyik4dBV8A6girlJVxGand/d+jVKbQq5GI=
github.com/quic-go/quic-go v0.37.6 h1:2IIUmQzT5YNxAiaPGjs++Z4hGOtIR0q79uS5qE9ccfY=
github.com/quic-go/webtransport-go v0.5.3 h1:5XMlzemqB4qmOlgIus5zB45AcZ2kCgCy2EptUrfOPWU=
-github.com/raulk/clock v1.1.0 h1:dpb29+UKMbLqiU/jqIJptgLR1nn23HLgMY0sTCDza5Y=
-github.com/raulk/clock v1.1.0/go.mod h1:3MpVxdZ/ODBQDxbN+kzshf5OSZwPjtMDx6BBXBmOeY0=
-github.com/raulk/go-watchdog v1.3.0 h1:oUmdlHxdkXRJlwfG0O9omj8ukerm8MEQavSiDTEtBsk=
-github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk=
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
-github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
-github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik=
-github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=
github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc=
-github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
-github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
-github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
-github.com/shirou/gopsutil v2.18.12+incompatible h1:1eaJvGomDnH74/5cF4CTmTbLHAriGFsTZppLXDX93OM=
-github.com/shirou/gopsutil v2.18.12+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
github.com/shirou/gopsutil/v3 v3.22.5 h1:atX36I/IXgFiB81687vSiBI5zrMsxcIBkP9cQMJQoJA=
github.com/shirou/gopsutil/v3 v3.22.5/go.mod h1:so9G9VzeHt/hsd0YwqprnjHnfARAUktauykSbr+y2gA=
github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4=
github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ=
github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
-github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY=
-github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM=
-github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0=
-github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=
-github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ=
-github.com/shurcooL/gofontwoff v0.0.0-20180329035133-29b52fc0a18d/go.mod h1:05UtEgK5zq39gLST6uB0cf3NEHjETfB4Fgr3Gx5R9Vw=
-github.com/shurcooL/gopherjslib v0.0.0-20160914041154-feb6d3990c2c/go.mod h1:8d3azKNyqcHP1GaQE/c6dDgjkgSx2BZ4IoEi4F1reUI=
-github.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b/go.mod h1:ZpfEhSmds4ytuByIcDnOLkTHGUI6KNqRNPDLHDk+mUU=
-github.com/shurcooL/highlight_go v0.0.0-20181028180052-98c3abbbae20/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag=
-github.com/shurcooL/home v0.0.0-20181020052607-80b7ffcb30f9/go.mod h1:+rgNQw2P9ARFAs37qieuu7ohDNQ3gds9msbT2yn85sg=
-github.com/shurcooL/htmlg v0.0.0-20170918183704-d01228ac9e50/go.mod h1:zPn1wHpTIePGnXSHpsVPWEktKXHr6+SS6x/IKRb7cpw=
-github.com/shurcooL/httperror v0.0.0-20170206035902-86b7830d14cc/go.mod h1:aYMfkZ6DWSJPJ6c4Wwz3QtW22G7mf/PEgaB9k/ik5+Y=
-github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg=
-github.com/shurcooL/httpgzip v0.0.0-20180522190206-b1c53ac65af9/go.mod h1:919LwcH0M7/W4fcZ0/jy0qGght1GIhqyS/EgWGH2j5Q=
-github.com/shurcooL/issues v0.0.0-20181008053335-6292fdc1e191/go.mod h1:e2qWDig5bLteJ4fwvDAc2NHzqFEthkqn7aOZAOpj+PQ=
-github.com/shurcooL/issuesapp v0.0.0-20180602232740-048589ce2241/go.mod h1:NPpHK2TI7iSaM0buivtFUc9offApnI0Alt/K8hcHy0I=
-github.com/shurcooL/notifications v0.0.0-20181007000457-627ab5aea122/go.mod h1:b5uSkrEVM1jQUspwbixRBhaIjIzL2xazXp6kntxYle0=
-github.com/shurcooL/octicon v0.0.0-20181028054416-fa4f57f9efb2/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ=
-github.com/shurcooL/reactions v0.0.0-20181006231557-f2e0b4ca5b82/go.mod h1:TCR1lToEk4d2s07G3XGfz2QrgHXg4RJBvjrOozvoWfk=
-github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
-github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4=
-github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
-github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
-github.com/smartystreets/assertions v1.0.1/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM=
github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N3yZFZkDFs=
github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo=
github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa/go.mod h1:2RVY1rIf+2J2o/IM9+vPq9RzmHDSseB7FoXiSNIUsoU=
-github.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
github.com/smartystreets/goconvey v1.7.2 h1:9RBaZCeXEQ3UselpuwUQHltGVXvdwm6cv1hgR6gDIPg=
github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM=
-github.com/smola/gocompat v0.2.0/go.mod h1:1B0MlxbmoZNo3h8guHp8HztB3BSYR5itql9qtVc0ypY=
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
-github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=
-github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE=
-github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA=
-github.com/spacemonkeygo/openssl v0.0.0-20181017203307-c2dcc5cca94a/go.mod h1:7AyxJNCJ7SBZ1MfVQCWD6Uqo2oubI2Eq2y2eqf+A5r0=
-github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572/go.mod h1:w0SWMsp6j9O/dk4/ZpIhL+3CkG8ofA2vuv7k+ltqUMc=
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
@@ -1383,22 +631,14 @@ github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTd
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng=
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
-github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
-github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
-github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
-github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
github.com/spf13/viper v1.7.0 h1:xVKxvI7ouOI5I+U9s2eeiUfMaWBVoXA3AWskkrqK0VM=
github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
-github.com/src-d/envconfig v1.0.0/go.mod h1:Q9YQZ7BKITldTBnoxsE5gOeB5y66RyPXeue/R4aaNBc=
-github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
-github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
-github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
@@ -1414,7 +654,6 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
-github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
github.com/swaggo/files v1.0.1 h1:J1bVJ4XHZNq0I46UU90611i9/YzdrF7x92oX1ig5IdE=
@@ -1423,83 +662,37 @@ github.com/swaggo/gin-swagger v1.6.0 h1:y8sxvQ3E20/RCyrXeFfg60r6H0Z+SwpTjMYsMm+z
github.com/swaggo/gin-swagger v1.6.0/go.mod h1:BG00cCEy294xtVpyIAHG6+e2Qzj/xKlRdOqDkvq0uzo=
github.com/swaggo/swag v1.8.12 h1:pctzkNPu0AlQP2royqX3apjKCQonAnf7KGoxeO4y64w=
github.com/swaggo/swag v1.8.12/go.mod h1:lNfm6Gg+oAq3zRJQNEMBE66LIJKM44mxFqhEEgy2its=
-github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=
-github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA=
github.com/tealeg/xlsx v1.0.5 h1:+f8oFmvY8Gw1iUXzPk+kz+4GpbDZPK1FhPiQRd+ypgE=
github.com/tealeg/xlsx v1.0.5/go.mod h1:btRS8dz54TDnvKNosuAqxrM1QgN1udgk9O34bDCnORM=
github.com/tech-greedy/go-unixfs v0.3.2-0.20220430222503-e8f92930674d h1:W1jI505rj/6vzEnwEZb534rMi8xSNdMBgD6voDS/66o=
github.com/tech-greedy/go-unixfs v0.3.2-0.20220430222503-e8f92930674d/go.mod h1:I7Nqtm06HgOOd+setAoCU6rf/HgVFHE+peeNuOv/5+g=
-github.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4=
github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw=
github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk=
github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o=
github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ=
-github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
-github.com/twmb/murmur3 v1.1.6 h1:mqrRot1BRxm+Yct+vavLMou2/iJt0tNVTTC0QoIjaZg=
github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
-github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
github.com/ugorji/go/codec v1.2.9 h1:rmenucSohSTiyL09Y+l2OCk+FrMxGMzho2+tjr5ticU=
github.com/ugorji/go/codec v1.2.9/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
github.com/unrolled/secure v1.0.7 h1:BcQHp3iKZyZCKj5gRqwQG+5urnGBF00wGgoPPwtheVQ=
github.com/unrolled/secure v1.0.7/go.mod h1:uGc1OcRF8gCVBA+ANksKmvM85Hka6SZtQIbrKc3sHS4=
-github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
-github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
github.com/urfave/cli v1.22.10/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
-github.com/urfave/cli/v2 v2.0.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ=
github.com/urfave/cli/v2 v2.25.5 h1:d0NIAyhh5shGscroL7ek/Ya9QYQE0KNabJgiUinIQkc=
github.com/urfave/cli/v2 v2.25.5/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc=
-github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
-github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
-github.com/valyala/fasttemplate v1.0.1 h1:tY9CJiPnMXf1ERmG2EyK7gNUd+c6RKGD0IfU8WdUSz8=
-github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8=
-github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU=
-github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM=
-github.com/warpfork/go-testmark v0.10.0/go.mod h1:jhEf8FVxd+F17juRubpmut64NEG6I2rgkUhlcqqXwE0=
github.com/warpfork/go-testmark v0.11.0 h1:J6LnV8KpceDvo7spaNU4+DauH2n1x+6RaO2rJrmpQ9U=
github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw=
-github.com/warpfork/go-wish v0.0.0-20190328234359-8b3e70f8e830/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw=
-github.com/warpfork/go-wish v0.0.0-20200122115046-b9ea61034e4a/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw=
github.com/warpfork/go-wish v0.0.0-20220906213052-39a1cc7a02d0 h1:GDDkbFiaK8jsSDJfjId/PEGEShv6ugrt4kYsC5UIDaQ=
github.com/warpfork/go-wish v0.0.0-20220906213052-39a1cc7a02d0/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw=
-github.com/whyrusleeping/bencher v0.0.0-20190829221104-bb6607aa8bba h1:X4n8JG2e2biEZZXdBKt9HX7DN3bYGFUqljqqy0DqgnY=
-github.com/whyrusleeping/bencher v0.0.0-20190829221104-bb6607aa8bba/go.mod h1:CHQnYnQUEPydYCwuy8lmTHfGmdw9TKrhWV0xLx8l0oM=
-github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11 h1:5HZfQkwe0mIfyDmc1Em5GqlNRzcdtlv4HTNmdpt7XH0=
-github.com/whyrusleeping/cbor-gen v0.0.0-20191216205031-b047b6acb3c0/go.mod h1:xdlJQaiqipF0HW+Mzpg7XRM3fWbGvfgFlcppuvlkIvY=
github.com/whyrusleeping/cbor-gen v0.0.0-20200123233031-1cdf64d27158/go.mod h1:Xj/M2wWU+QdTdRbu/L/1dIZY8/Wb2K9pAhtroQuxJJI=
-github.com/whyrusleeping/cbor-gen v0.0.0-20200414195334-429a0b5e922e/go.mod h1:Xj/M2wWU+QdTdRbu/L/1dIZY8/Wb2K9pAhtroQuxJJI=
-github.com/whyrusleeping/cbor-gen v0.0.0-20200504204219-64967432584d/go.mod h1:W5MvapuoHRP8rz4vxjwCK1pDqF1aQcWsV5PZ+AHbqdg=
-github.com/whyrusleeping/cbor-gen v0.0.0-20200710004633-5379fc63235d/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
-github.com/whyrusleeping/cbor-gen v0.0.0-20200715143311-227fab5a2377/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
-github.com/whyrusleeping/cbor-gen v0.0.0-20200723185710-6a3894a6352b/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
-github.com/whyrusleeping/cbor-gen v0.0.0-20200806213330-63aa96ca5488/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
-github.com/whyrusleeping/cbor-gen v0.0.0-20200810223238-211df3b9e24c/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
-github.com/whyrusleeping/cbor-gen v0.0.0-20200812213548-958ddffe352c/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
-github.com/whyrusleeping/cbor-gen v0.0.0-20210118024343-169e9d70c0c2/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
-github.com/whyrusleeping/cbor-gen v0.0.0-20210303213153-67a261a1d291/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
-github.com/whyrusleeping/cbor-gen v0.0.0-20220323183124-98fa8256a799/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
github.com/whyrusleeping/cbor-gen v0.0.0-20230923211252-36a87e1ba72f h1:SBuSxXJL0/ZJMtTxbXZgHZkThl9dNrzyaNhlyaqscRo=
github.com/whyrusleeping/cbor-gen v0.0.0-20230923211252-36a87e1ba72f/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f h1:jQa4QT2UP9WYv2nzyawpKMOCl+Z/jW7djv2/J50lj9E=
github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f/go.mod h1:p9UJB6dDgdPgMJZs7UjUOdulKyRr9fqkS+6JKAInPy8=
-github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc=
github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM=
-github.com/whyrusleeping/go-logging v0.0.1/go.mod h1:lDPYj54zutzG1XYfHAhcc7oNXEburHQBn+Iqd4yS4vE=
-github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f/go.mod h1:cZNvX9cFybI01GriPRMXDtczuvUhgbcYr9iCGaNlRv8=
-github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA=
-github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4=
-github.com/whyrusleeping/mdns v0.0.0-20190826153040-b9b60ed33aa9/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4=
-github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI=
-github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
-github.com/xlab/c-for-go v0.0.0-20200718154222-87b0065af829/go.mod h1:h/1PEBwj7Ym/8kOuMWvO2ujZ6Lt+TMbySEXNhjjR87I=
-github.com/xlab/pkgconfig v0.0.0-20170226114623-cea12a0fd245/go.mod h1:C+diUUz7pxhNY6KAoLgrTYARGWnt82zWTylZlxT92vk=
-github.com/xorcare/golden v0.6.0/go.mod h1:7T39/ZMvaSEZlBPoYfVFmsBLmUl3uz9IuzWj/U6FtvQ=
-github.com/xorcare/golden v0.6.1-0.20191112154924-b87f686d7542 h1:oWgZJmC1DorFZDpfMfWg7xk29yEOZiXmo/wZl+utTI8=
-github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU=
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8=
github.com/yinheli/mahonia v0.0.0-20131226213531-0eef680515cc h1:7VHQaaNwHymWbj8lAcXMYX1qopebSBHwYC3ceXLWONU=
@@ -1507,7 +700,6 @@ github.com/yinheli/mahonia v0.0.0-20131226213531-0eef680515cc/go.mod h1:Pcc297eV
github.com/yinheli/qqwry v0.0.0-20160229183603-f50680010f4a h1:VUPXGL4N1B5xqomxI4vZn0momgleh0hcH0PE/oIOsAI=
github.com/yinheli/qqwry v0.0.0-20160229183603-f50680010f4a/go.mod h1:Zva9ErVtC2arl+9xtHwiXujgejX1S3VpOYExADJ9kio=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
@@ -1515,25 +707,12 @@ github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPR
github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
-go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
-go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
-go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA=
-go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
-go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
-go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA=
-go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
-go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
-go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
-go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
-go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
-go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
go.opentelemetry.io/otel v1.16.0 h1:Z7GVAX/UkAXPKsy94IU+i6thsQS4nb7LviLpnaNeW8s=
go.opentelemetry.io/otel v1.16.0/go.mod h1:vl0h9NUa1D5s1nv3A5vZOYWn8av4K8Ml6JDeHrT/bx4=
go.opentelemetry.io/otel/metric v1.16.0 h1:RbrpwVG1Hfv85LgnZ7+txXioPDoh6EdbZHo26Q3hqOo=
go.opentelemetry.io/otel/metric v1.16.0/go.mod h1:QE47cpOmkwipPiefDwo2wDzwJrlfxxNYodqc4xnGCo4=
-go.opentelemetry.io/otel/sdk v1.16.0 h1:Z1Ok1YsijYL0CSJpHt4cS3wDDh7p572grzNrBMiMWgE=
go.opentelemetry.io/otel/trace v1.16.0 h1:8JRpaObFoW0pxuVPapkgH8UhHQj+bJW8jJsCZEu5MQs=
go.opentelemetry.io/otel/trace v1.16.0/go.mod h1:Yt9vYq1SdNz3xdjZZK7wcXv1qv2pwLkqr2QVwea0ef0=
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
@@ -1543,12 +722,11 @@ go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
-go.uber.org/goleak v1.0.0/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
+go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
-go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
@@ -1557,53 +735,29 @@ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9E
go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
-go.uber.org/zap v1.14.1/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
-go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ=
go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI=
go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c=
go.uber.org/zap v1.25.0/go.mod h1:JIAUzQIH94IC4fOJQm7gMmBJP5k7wQfdcnYdPoEXJYk=
-go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE=
golang.org/x/arch v0.0.0-20210923205945-b76863e36670 h1:18EFjUmQOcUvxNYSkA6jO9VAiXCnxFY6NyDX0bHDmkU=
golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
-golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw=
-golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
-golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190618222545-ea8f1a30c443/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20200602180216-279210d13fed/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
-golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
-golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
-golang.org/x/crypto v0.0.0-20210506145944-38f3c27a63bf/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/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-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk=
golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@@ -1612,13 +766,11 @@ golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxT
golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 h1:m64FZMko/V45gv0bNmrNYoDEq8U5YUhetc9cBWKS1TQ=
-golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63/go.mod h1:0v4NqG35kSWCMzLaMeX+IQrlSnVE/bqGSyC2cz/9Le8=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190501045829-6d32002ffd75/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb h1:fqpd0EBDzlHRCjiphRR5Zo/RSWWQlWv34418dnEixWk=
golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
-golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -1626,7 +778,6 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl
golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20200302205851-738671d3881b/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-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
@@ -1637,69 +788,43 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
-golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
-golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181029044818-c44066c5c816/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190313220215-9f648a60d977/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
-golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
-golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-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-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-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
-golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
-golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
-golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14=
golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/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-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
@@ -1707,64 +832,32 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181029174526-d69651ed3497/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190302025703-b6889370fb10/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190316082340-a2f829d7f35f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190405154228-4b34438f7a67/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190524122548-abf6ff778158/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190526052359-791d8a0f4d09/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201126233918-771906719818/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210317225723-c4fcb01b228e/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-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210426080607-c94f62235c83/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -1774,10 +867,8 @@ golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220405052023-b1e9470b6e64/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-20220520151302-bc2c85ada10a/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-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
@@ -1785,9 +876,7 @@ golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
-golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
@@ -1795,20 +884,14 @@ 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.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc=
golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
-golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20181030000716-a0a13e073c7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20181130052023-1c3d964395ce/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
@@ -1818,30 +901,21 @@ golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200711155855-7342f9734a7d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846 h1:Vve/L0v7CXXuxUmaMGIEK/dEeq7uiqb5qBgQrZzIE7E=
@@ -1854,69 +928,33 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk=
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
-google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
-google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
-google.golang.org/api v0.1.0/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y=
-google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
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.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
-google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/appengine v1.3.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.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20181202183823-bd91e49a0898/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg=
-google.golang.org/genproto v0.0.0-20190306203927-b5d61aea6440/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=
google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA=
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s=
-google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
-google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio=
-google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
-google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
-google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
-google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.28.1/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
-google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
-google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag=
google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8=
-google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
-google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
-google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
-google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
-google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
@@ -1925,29 +963,17 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
-gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
-gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
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/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=
gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s=
-gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.55.0 h1:E8yzL5unfpW3M6fz/eB7Cb5MQAYSZ7GKo4Qth+N2sgQ=
gopkg.in/ini.v1 v1.55.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
-gopkg.in/src-d/go-cli.v0 v0.0.0-20181105080154-d492247bbc0d/go.mod h1:z+K8VcOYVYcSwSjGebuDL6176A1XskgbtNl64NSg+n8=
-gopkg.in/src-d/go-log.v1 v1.0.1/go.mod h1:GN34hKP0g305ysm2/hctJ0Y8nWP3zxXXJ8GFabTyABE=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
-gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
@@ -1969,20 +995,13 @@ gorm.io/gorm v1.23.4 h1:1BKWM67O6CflSLcwGQR7ccfmC4ebOxQrTfOQGRE9wjg=
gorm.io/gorm v1.23.4/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk=
gorm.io/plugin/dbresolver v1.1.0 h1:cegr4DeprR6SkLIQlKhJLYxH8muFbJ4SmnojXvoeb00=
gorm.io/plugin/dbresolver v1.1.0/go.mod h1:tpImigFAEejCALOttyhWqsy4vfa2Uh/vAUVnL5IRF7Y=
-gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
-gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
-grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o=
-honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
-lukechampine.com/blake3 v1.1.6/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA=
lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI=
lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k=
lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
-modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw=
modernc.org/cc/v3 v3.33.6/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
modernc.org/cc/v3 v3.33.9/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
modernc.org/cc/v3 v3.33.11/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g=
@@ -2052,7 +1071,6 @@ modernc.org/ccgo/v3 v3.15.19/go.mod h1:TDJj+DxR26pkDteH2E5WQDj/xlmtsX7JdzkJkaZhO
modernc.org/ccgo/v3 v3.16.2/go.mod h1:w55kPTAqvRMAYS3Lwij6qhqIuBEYS3Z8QtDkjD8cnik=
modernc.org/ccorpus v1.11.1/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ=
modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ=
-modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM=
modernc.org/libc v1.9.8/go.mod h1:U1eq8YWr/Kc1RWCMFUWEdkTg8OTcfLw2kY8EDwl039w=
modernc.org/libc v1.9.11/go.mod h1:NyF3tsA5ArIjJ83XB0JlqhjTabTCHm9aX4XMPHyQn0Q=
@@ -2117,20 +1135,12 @@ modernc.org/memory v1.0.7/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw=
modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
modernc.org/sqlite v1.16.0 h1:DdvOGaWN0y+X7t2L7RUD63gcwbVjYZjcBZnA68g44EI=
modernc.org/sqlite v1.16.0/go.mod h1:Jwe13ItpESZ+78K5WS6+AjXsUg+JvirsjN3iIDO4C8k=
-modernc.org/strutil v1.1.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs=
modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw=
modernc.org/tcl v1.11.2/go.mod h1:BRzgpajcGdS2qTxniOx9c/dcxjlbA7p12eJNmiriQYo=
modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
-modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
modernc.org/z v1.3.2/go.mod h1:PEU2oK2OEA1CfzDTd+8E908qEXhC9s0MfyKp5LZsd+k=
nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0=
nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g=
nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
-rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
-rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
-sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
-sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU=
-sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck=
-sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0=
diff --git a/initialize/create_config.go b/initialize/create_config.go
index 324172b..de16d16 100644
--- a/initialize/create_config.go
+++ b/initialize/create_config.go
@@ -8,7 +8,7 @@ import (
var ConfigList = []ScriptFile{
{
Name: "config.yaml",
- Content: "autocode:\n transfer-restart: true\n root: G:\\project\\zc-admin\n server: /server\n server-api: /api/v1/%s\n server-plug: /plugin/%s\n server-initialize: /initialize\n server-model: /model/%s\n server-request: /model/%s/request/\n server-router: /router/%s\n server-service: /service/%s\n web: /web/src\n web-api: /api\n web-form: /view\n web-table: /view\ncaptcha:\n key-long: 6\n img-width: 240\n img-height: 80\ncors:\n mode: whitelist\n whitelist:\n - allow-origin: example1.com\n allow-methods: GET, POST\n allow-headers: content-type\n expose-headers: Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers,\n Content-Type\n allow-credentials: true\n - allow-origin: example2.com\n allow-methods: GET, POST\n allow-headers: content-type\n expose-headers: Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers,\n Content-Type\n allow-credentials: true\njwt:\n signing-key: 8b356e3d-5e35-47a6-a933-07baa8cc0fcb\n expires-time: 7d\n buffer-time: 1d\n issuer: qmPlus\nlocal:\n path: uploads/file\n store-path: uploads/file\nmysql:\n path: 8.129.83.148\n port: \"3306\"\n config: charset=utf8mb4&parseTime=True&loc=Local\n db-name: zc_test\n username: root\n password: ZCXTong@2023!+\n max-idle-conns: 10\n max-open-conns: 100\n log-mode: error\n log-zap: false\nredis:\n db: 0\n addr: 127.0.0.1:6379\n password: \"\"\nsystem:\n env: public\n addr: 50005\n db-type: mysql\n oss-type: local\n use-multipoint: false\n use-redis: false\n iplimit-count: 15000\n iplimit-time: 3600\ntimer:\n start: true\n spec: '@daily'\n with_seconds: false\n detail:\n - tableName: sys_operation_records\n compareField: created_at\n interval: 2160h\n - tableName: jwt_blacklists\n compareField: created_at\n interval: 168h",
+ Content: "cors:\n mode: whitelist\n whitelist:\n - allow-origin: example1.com\n allow-methods: GET, POST\n allow-headers: content-type\n expose-headers: Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers,\n Content-Type\n allow-credentials: true\n - allow-origin: example2.com\n allow-methods: GET, POST\n allow-headers: content-type\n expose-headers: Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers,\n Content-Type\n allow-credentials: true\njwt:\n signing-key: 8b356e3d-5e35-47a6-a933-07baa8cc0fcb\n expires-time: 7d\n buffer-time: 1d\n issuer: qmPlus\nlocal:\n path: uploads/file\n store-path: uploads/file\nmysql:\n path: 8.129.83.148\n port: \"3306\"\n config: charset=utf8mb4&parseTime=True&loc=Local\n db-name: zc_test\n username: root\n password: ZCXTong@2023!+\n max-idle-conns: 10\n max-open-conns: 100\n log-mode: error\n log-zap: false\nredis:\n db: 0\n addr: 127.0.0.1:6379\n password: \"\"\nsystem:\n env: public\n addr: 50005\n db-type: mysql\n oss-type: local\n use-multipoint: false\n use-redis: false\n iplimit-count: 15000\n iplimit-time: 3600\ntimer:\n start: true\n spec: '@daily'\n with_seconds: false\n detail:\n - tableName: sys_operation_records\n compareField: created_at\n interval: 2160h\n - tableName: jwt_blacklists\n compareField: created_at\n interval: 168h",
},
{
Name: "config_room.yaml",
diff --git a/initialize/db_list.go b/initialize/db_list.go
deleted file mode 100644
index 2f55774..0000000
--- a/initialize/db_list.go
+++ /dev/null
@@ -1,30 +0,0 @@
-package initialize
-
-import (
- "gorm.io/gorm"
- "oplian/config"
- "oplian/global"
-)
-
-const sys = "system"
-
-func DBList() {
- dbMap := make(map[string]*gorm.DB)
- for _, info := range global.ZC_CONFIG.DBList {
- if info.Disable {
- continue
- }
- switch info.Type {
- case "mysql":
- dbMap[info.AliasName] = GormMysqlByConfig(config.Mysql{GeneralDB: info.GeneralDB})
- default:
- continue
- }
- }
- // Make a special judgment, whether there is migration
- // Migrate multiple database versions for earlier versions
- if sysDB, ok := dbMap[sys]; ok {
- global.ZC_DB = sysDB
- }
- global.ZC_DBList = dbMap
-}
diff --git a/initialize/gorm_mysql.go b/initialize/gorm_mysql.go
index c34e0db..c6ed0a3 100644
--- a/initialize/gorm_mysql.go
+++ b/initialize/gorm_mysql.go
@@ -3,7 +3,6 @@ package initialize
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
- "oplian/config"
"oplian/global"
"oplian/initialize/internal"
)
@@ -29,23 +28,3 @@ func GormMysql() *gorm.DB {
return db
}
}
-
-// GormMysqlByConfig Initialize the configuration used to Mysql database
-func GormMysqlByConfig(m config.Mysql) *gorm.DB {
- if m.Dbname == "" {
- return nil
- }
- mysqlConfig := mysql.Config{
- DSN: m.Dsn(),
- DefaultStringSize: 191,
- SkipInitializeWithVersion: false,
- }
- if db, err := gorm.Open(mysql.New(mysqlConfig), internal.Gorm.Config()); err != nil {
- panic(err)
- } else {
- sqlDB, _ := db.DB()
- sqlDB.SetMaxIdleConns(m.MaxIdleConns)
- sqlDB.SetMaxOpenConns(m.MaxOpenConns)
- return db
- }
-}
diff --git a/initialize/plugin.go b/initialize/plugin.go
deleted file mode 100644
index ae546e8..0000000
--- a/initialize/plugin.go
+++ /dev/null
@@ -1,35 +0,0 @@
-package initialize
-
-import (
- "fmt"
- "github.com/gin-gonic/gin"
- "oplian/global"
- "oplian/middleware"
- "oplian/plugin/email"
- "oplian/utils/plugin"
-)
-
-func PluginInit(group *gin.RouterGroup, Plugin ...plugin.Plugin) {
- for i := range Plugin {
- PluginGroup := group.Group(Plugin[i].RouterPath())
- Plugin[i].Register(PluginGroup)
- }
-}
-
-func InstallPlugin(Router *gin.Engine) {
- PublicGroup := Router.Group("")
- fmt.Println("No authentication plug-in is installed==》", PublicGroup)
- PrivateGroup := Router.Group("")
- fmt.Println("Authentication plug-in installation==》", PrivateGroup)
- PrivateGroup.Use(middleware.JWTAuth()).Use(middleware.CasbinHandler())
- //Add plugins with role-linked permissions Example Local example mode in online warehouse mode Note that import above can be switched on its own with the same effect
- PluginInit(PrivateGroup, email.CreateEmailPlug(
- global.ZC_CONFIG.Email.To,
- global.ZC_CONFIG.Email.From,
- global.ZC_CONFIG.Email.Host,
- global.ZC_CONFIG.Email.Secret,
- global.ZC_CONFIG.Email.Nickname,
- global.ZC_CONFIG.Email.Port,
- global.ZC_CONFIG.Email.IsSSL,
- ))
-}
diff --git a/initialize/router.go b/initialize/router.go
index d4605e2..ab92f19 100644
--- a/initialize/router.go
+++ b/initialize/router.go
@@ -2,11 +2,8 @@ package initialize
import (
"github.com/gin-gonic/gin"
- swaggerFiles "github.com/swaggo/files"
- ginSwagger "github.com/swaggo/gin-swagger"
"log"
"net/http"
- _ "oplian/docs"
"oplian/global"
"oplian/middleware"
"oplian/router"
@@ -32,9 +29,6 @@ func routers() *gin.Engine {
//Router.UsePercent(middleware.Cors())
//Router.UsePercent(middleware.CorsByRules())
//log.Println("use middleware cors")
- Router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
- log.Println("register swagger handler")
- // Add routing group prefixes in a unified manner. Multiple servers go online
PublicGroup := Router.Group("")
{
@@ -58,10 +52,8 @@ func routers() *gin.Engine {
systemRouter.InitMenuRouter(PrivateGroup)
systemRouter.InitSystemRouter(PrivateGroup)
systemRouter.InitCasbinRouter(PrivateGroup)
- systemRouter.InitAutoCodeRouter(PrivateGroup)
systemRouter.InitAuthorityRouter(PrivateGroup)
systemRouter.InitSysDictionaryRouter(PrivateGroup)
- systemRouter.InitAutoCodeHistoryRouter(PrivateGroup)
systemRouter.InitSysOperationRecordRouter(PrivateGroup)
systemRouter.InitSysDictionaryDetailRouter(PrivateGroup)
systemRouter.InitAuthorityBtnRouterRouter(PrivateGroup)
diff --git a/initialize/timer.go b/initialize/timer.go
index cd9d4fd..b53f50a 100644
--- a/initialize/timer.go
+++ b/initialize/timer.go
@@ -40,28 +40,6 @@ import (
"oplian/utils"
)
-func Timer() {
- if global.ZC_CONFIG.Timer.Start {
- for i := range global.ZC_CONFIG.Timer.Detail {
- go func(detail config.Detail) {
- var option []cron.Option
- if global.ZC_CONFIG.Timer.WithSeconds {
- option = append(option, cron.WithSeconds())
- }
- _, err := global.ZC_Timer.AddTaskByFunc("ClearDB", global.ZC_CONFIG.Timer.Spec, func() {
- err := utils.ClearTable(global.ZC_DB, detail.TableName, detail.CompareField, detail.Interval)
- if err != nil {
- fmt.Println("timer error:", err)
- }
- }, option...)
- if err != nil {
- fmt.Println("add timer error:", err)
- }
- }(global.ZC_CONFIG.Timer.Detail[i])
- }
- }
-}
-
// ConnectWeb gateway Connection web
func ConnectWeb(ctx context.Context) error {
//gid := uuid.New()
diff --git a/middleware/email.go b/middleware/email.go
deleted file mode 100644
index ecf735f..0000000
--- a/middleware/email.go
+++ /dev/null
@@ -1,60 +0,0 @@
-package middleware
-
-import (
- "bytes"
- "io"
- "strconv"
- "time"
-
- "oplian/plugin/email/utils"
- utils2 "oplian/utils"
-
- "github.com/gin-gonic/gin"
- "go.uber.org/zap"
- "oplian/global"
- "oplian/model/system"
- "oplian/service"
-)
-
-var userService = service.ServiceGroupApp.SystemServiceGroup.UserService
-
-func ErrorToEmail() gin.HandlerFunc {
- return func(c *gin.Context) {
- var username string
- claims, _ := utils2.GetClaims(c)
- if claims.Username != "" {
- username = claims.Username
- } else {
- id, _ := strconv.Atoi(c.Request.Header.Get("x-user-id"))
- user, err := userService.FindUserById(id)
- if err != nil {
- username = "Unknown"
- }
- username = user.Username
- }
- body, _ := io.ReadAll(c.Request.Body)
- // 再重新写回请求体body中,ioutil.ReadAll会清空c.Request.Body中的数据
- c.Request.Body = io.NopCloser(bytes.NewBuffer(body))
- record := system.SysOperationRecord{
- Ip: c.ClientIP(),
- Method: c.Request.Method,
- Path: c.Request.URL.Path,
- Agent: c.Request.UserAgent(),
- Body: string(body),
- }
- now := time.Now()
-
- c.Next()
-
- latency := time.Since(now)
- status := c.Writer.Status()
- record.ErrorMessage = c.Errors.ByType(gin.ErrorTypePrivate).String()
- str := "接收到的请求为" + record.Body + "\n" + "请求方式为" + record.Method + "\n" + "报错信息如下" + record.ErrorMessage + "\n" + "耗时" + latency.String() + "\n"
- if status != 200 {
- subject := username + "" + record.Ip + "调用了" + record.Path + "报错了"
- if err := utils.ErrorToEmail(subject, str); err != nil {
- global.ZC_LOG.Error("ErrorToEmail Failed, err:", zap.Error(err))
- }
- }
- }
-}
diff --git a/packfile/notUsePackFile.go b/packfile/notUsePackFile.go
deleted file mode 100644
index 53871d6..0000000
--- a/packfile/notUsePackFile.go
+++ /dev/null
@@ -1,4 +0,0 @@
-//go:build !packfile
-// +build !packfile
-
-package packfile
diff --git a/packfile/usePackFile.go b/packfile/usePackFile.go
deleted file mode 100644
index d39a84f..0000000
--- a/packfile/usePackFile.go
+++ /dev/null
@@ -1,44 +0,0 @@
-//go:build packfile
-// +build packfile
-
-package packfile
-
-import (
- "fmt"
- "os"
- "path/filepath"
- "strings"
-)
-
-//go:generate go-bindata -o=staticFile.go -pkg=packfile -tags=packfile ../resource/... ../config.yaml
-
-func writeFile(path string, data []byte) {
-
- if lastSeparator := strings.LastIndex(path, "/"); lastSeparator != -1 {
- dirPath := path[:lastSeparator]
- if _, err := os.Stat(dirPath); err != nil && os.IsNotExist(err) {
- os.MkdirAll(dirPath, os.ModePerm)
- }
- }
-
- if _, err := os.Stat(path); os.IsNotExist(err) {
- if err2 := os.WriteFile(path, data, os.ModePerm); err2 != nil {
- fmt.Printf("Write file failed: %s\n", path)
- }
- } else {
- fmt.Printf("File exist, skip: %s\n", path)
- }
-}
-
-func init() {
- for key := range _bindata {
- filePath, _ := filepath.Abs(strings.TrimPrefix(key, "."))
- data, err := Asset(key)
- if err != nil {
- // Asset was not found.
- fmt.Printf("Fail to find: %s\n", filePath)
- } else {
- writeFile(filePath, data)
- }
- }
-}
diff --git a/plugin/email/README.MD b/plugin/email/README.MD
deleted file mode 100644
index 302528f..0000000
--- a/plugin/email/README.MD
+++ /dev/null
@@ -1,75 +0,0 @@
-## ZC 邮件发送功能插件
-#### 开发者:GIN-VUE-ADMIN 官方
-
-### 使用步骤
-
-#### 1. 前往ZC主程序下的initialize/router.go 在Routers 方法最末尾按照你需要的及安全模式添加本插件
- 例:
- 本插件可以采用gva的配置文件 也可以直接写死内容作为配置 建议为gva添加配置文件结构 然后将配置传入
- PluginInit(PrivateGroup, email.CreateEmailPlug(
- global.ZC_CONFIG.Email.To,
- global.ZC_CONFIG.Email.From,
- global.ZC_CONFIG.Email.Host,
- global.ZC_CONFIG.Email.Secret,
- global.ZC_CONFIG.Email.Nickname,
- global.ZC_CONFIG.Email.Port,
- global.ZC_CONFIG.Email.IsSSL,
- ))
-
- 同样也可以再传入时写死
-
- PluginInit(PrivateGroup, email.CreateEmailPlug(
- "a@qq.com",
- "b@qq.com",
- "smtp.qq.com",
- "global.ZC_CONFIG.Email.Secret",
- "登录密钥",
- 465,
- true,
- ))
-
-### 2. 配置说明
-
-#### 2-1 全局配置结构体说明
- //其中 Form 和 Secret 通常来说就是用户名和密码
-
- type Email struct {
- To string // 收件人:多个以英文逗号分隔 例:a@qq.com b@qq.com 正式开发中请把此项目作为参数使用 此处配置主要用于发送错误监控邮件
- From string // 发件人 你自己要发邮件的邮箱
- Host string // 服务器地址 例如 smtp.qq.com 请前往QQ或者你要发邮件的邮箱查看其smtp协议
- Secret string // 密钥 用于登录的密钥 最好不要用邮箱密码 去邮箱smtp申请一个用于登录的密钥
- Nickname string // 昵称 发件人昵称 自定义即可 可以不填
- Port int // 端口 请前往QQ或者你要发邮件的邮箱查看其smtp协议 大多为 465
- IsSSL bool // 是否SSL 是否开启SSL
- }
-#### 2-2 入参结构说明
- //其中 Form 和 Secret 通常来说就是用户名和密码
-
- type Email struct {
- To string `json:"to"` // 邮件发送给谁
- Subject string `json:"subject"` // 邮件标题
- Body string `json:"body"` // 邮件内容
- }
-
-
-### 3. 方法API
-
- utils.EmailTest(邮件标题,邮件主体) 发送测试邮件
- 例:utils.EmailTest("测试邮件","测试邮件")
- utils.ErrorToEmail(邮件标题,邮件主体) 错误监控
- 例:utils.ErrorToEmail("测试邮件","测试邮件")
- utils.Email(目标邮箱多个的话用逗号分隔,邮件标题,邮件主体) 发送测试邮件
- 例:utils.Email(”a.qq.com,b.qq.com“,"测试邮件","测试邮件")
-
-### 4. 可直接调用的接口
-
- 测试接口: /email/emailTest [post] 已配置swagger
-
- 发送邮件接口接口: /email/emailSend [post] 已配置swagger
- 入参:
- type Email struct {
- To string `json:"to"` // 邮件发送给谁
- Subject string `json:"subject"` // 邮件标题
- Body string `json:"body"` // 邮件内容
- }
-
diff --git a/plugin/email/api/enter.go b/plugin/email/api/enter.go
deleted file mode 100644
index 353404d..0000000
--- a/plugin/email/api/enter.go
+++ /dev/null
@@ -1,7 +0,0 @@
-package api
-
-type ApiGroup struct {
- EmailApi
-}
-
-var ApiGroupApp = new(ApiGroup)
diff --git a/plugin/email/api/sys_email.go b/plugin/email/api/sys_email.go
deleted file mode 100644
index 77f44b0..0000000
--- a/plugin/email/api/sys_email.go
+++ /dev/null
@@ -1,53 +0,0 @@
-package api
-
-import (
- "github.com/gin-gonic/gin"
- "go.uber.org/zap"
- "oplian/global"
- "oplian/model/common/response"
- email_response "oplian/plugin/email/model/response"
- "oplian/plugin/email/service"
-)
-
-type EmailApi struct{}
-
-// EmailTest
-// @Tags System
-// @Summary 发送测试邮件
-// @Security ApiKeyAuth
-// @Produce application/json
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"发送成功"}"
-// @Router /email/emailTest [post]
-func (s *EmailApi) EmailTest(c *gin.Context) {
- err := service.ServiceGroupApp.EmailTest()
- if err != nil {
- global.ZC_LOG.Error("发送失败!", zap.Error(err))
- response.FailWithMessage("发送失败", c)
- return
- }
- response.OkWithMessage("发送成功", c)
-}
-
-// SendEmail
-// @Tags System
-// @Summary 发送邮件
-// @Security ApiKeyAuth
-// @Produce application/json
-// @Param data body email_response.Email true "发送邮件必须的参数"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"发送成功"}"
-// @Router /email/sendEmail [post]
-func (s *EmailApi) SendEmail(c *gin.Context) {
- var email email_response.Email
- err := c.ShouldBindJSON(&email)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- err = service.ServiceGroupApp.SendEmail(email.To, email.Subject, email.Body)
- if err != nil {
- global.ZC_LOG.Error("发送失败!", zap.Error(err))
- response.FailWithMessage("发送失败", c)
- return
- }
- response.OkWithMessage("发送成功", c)
-}
diff --git a/plugin/email/config/email.go b/plugin/email/config/email.go
deleted file mode 100644
index c535348..0000000
--- a/plugin/email/config/email.go
+++ /dev/null
@@ -1,11 +0,0 @@
-package config
-
-type Email struct {
- To string `mapstructure:"to" json:"to" yaml:"to"` // 收件人:多个以英文逗号分隔 例:a@qq.com b@qq.com 正式开发中请把此项目作为参数使用
- From string `mapstructure:"from" json:"from" yaml:"from"` // 发件人 你自己要发邮件的邮箱
- Host string `mapstructure:"host" json:"host" yaml:"host"` // 服务器地址 例如 smtp.qq.com 请前往QQ或者你要发邮件的邮箱查看其smtp协议
- Secret string `mapstructure:"secret" json:"secret" yaml:"secret"` // 密钥 用于登录的密钥 最好不要用邮箱密码 去邮箱smtp申请一个用于登录的密钥
- Nickname string `mapstructure:"nickname" json:"nickname" yaml:"nickname"` // 昵称 发件人昵称 通常为自己的邮箱
- Port int `mapstructure:"port" json:"port" yaml:"port"` // 端口 请前往QQ或者你要发邮件的邮箱查看其smtp协议 大多为 465
- IsSSL bool `mapstructure:"is-ssl" json:"isSSL" yaml:"is-ssl"` // 是否SSL 是否开启SSL
-}
diff --git a/plugin/email/global/gloabl.go b/plugin/email/global/gloabl.go
deleted file mode 100644
index 42417e1..0000000
--- a/plugin/email/global/gloabl.go
+++ /dev/null
@@ -1,5 +0,0 @@
-package global
-
-import "oplian/plugin/email/config"
-
-var GlobalConfig = new(config.Email)
diff --git a/plugin/email/main.go b/plugin/email/main.go
deleted file mode 100644
index 04375b9..0000000
--- a/plugin/email/main.go
+++ /dev/null
@@ -1,28 +0,0 @@
-package email
-
-import (
- "github.com/gin-gonic/gin"
- "oplian/plugin/email/global"
- "oplian/plugin/email/router"
-)
-
-type emailPlugin struct{}
-
-func CreateEmailPlug(To, From, Host, Secret, Nickname string, Port int, IsSSL bool) *emailPlugin {
- global.GlobalConfig.To = To
- global.GlobalConfig.From = From
- global.GlobalConfig.Host = Host
- global.GlobalConfig.Secret = Secret
- global.GlobalConfig.Nickname = Nickname
- global.GlobalConfig.Port = Port
- global.GlobalConfig.IsSSL = IsSSL
- return &emailPlugin{}
-}
-
-func (*emailPlugin) Register(group *gin.RouterGroup) {
- router.RouterGroupApp.InitEmailRouter(group)
-}
-
-func (*emailPlugin) RouterPath() string {
- return "email"
-}
diff --git a/plugin/email/model/response/email.go b/plugin/email/model/response/email.go
deleted file mode 100644
index ed25475..0000000
--- a/plugin/email/model/response/email.go
+++ /dev/null
@@ -1,7 +0,0 @@
-package response
-
-type Email struct {
- To string `json:"to"` // 邮件发送给谁
- Subject string `json:"subject"` // 邮件标题
- Body string `json:"body"` // 邮件内容
-}
diff --git a/plugin/email/router/enter.go b/plugin/email/router/enter.go
deleted file mode 100644
index e081a54..0000000
--- a/plugin/email/router/enter.go
+++ /dev/null
@@ -1,7 +0,0 @@
-package router
-
-type RouterGroup struct {
- EmailRouter
-}
-
-var RouterGroupApp = new(RouterGroup)
diff --git a/plugin/email/router/sys_email.go b/plugin/email/router/sys_email.go
deleted file mode 100644
index 908b9e1..0000000
--- a/plugin/email/router/sys_email.go
+++ /dev/null
@@ -1,19 +0,0 @@
-package router
-
-import (
- "github.com/gin-gonic/gin"
- "oplian/middleware"
- "oplian/plugin/email/api"
-)
-
-type EmailRouter struct{}
-
-func (s *EmailRouter) InitEmailRouter(Router *gin.RouterGroup) {
- emailRouter := Router.Use(middleware.OperationRecord())
- EmailApi := api.ApiGroupApp.EmailApi.EmailTest
- SendEmail := api.ApiGroupApp.EmailApi.SendEmail
- {
- emailRouter.POST("emailTest", EmailApi) // 发送测试邮件
- emailRouter.POST("sendEmail", SendEmail) // 发送邮件
- }
-}
diff --git a/plugin/email/service/enter.go b/plugin/email/service/enter.go
deleted file mode 100644
index e96e267..0000000
--- a/plugin/email/service/enter.go
+++ /dev/null
@@ -1,7 +0,0 @@
-package service
-
-type ServiceGroup struct {
- EmailService
-}
-
-var ServiceGroupApp = new(ServiceGroup)
diff --git a/plugin/email/service/sys_email.go b/plugin/email/service/sys_email.go
deleted file mode 100644
index ee98884..0000000
--- a/plugin/email/service/sys_email.go
+++ /dev/null
@@ -1,32 +0,0 @@
-package service
-
-import (
- "oplian/plugin/email/utils"
-)
-
-type EmailService struct{}
-
-//
-//@function: EmailTest
-//@description: 发送邮件测试
-//@return: err error
-
-func (e *EmailService) EmailTest() (err error) {
- subject := "test"
- body := "test"
- err = utils.EmailTest(subject, body)
- return err
-}
-
-//
-//@function: EmailTest
-//@description: 发送邮件测试
-//@return: err error
-//@params to string 收件人
-//@params subject string 标题(主题)
-//@params body string 邮件内容
-
-func (e *EmailService) SendEmail(to, subject, body string) (err error) {
- err = utils.Email(to, subject, body)
- return err
-}
diff --git a/plugin/email/utils/email.go b/plugin/email/utils/email.go
deleted file mode 100644
index c39158d..0000000
--- a/plugin/email/utils/email.go
+++ /dev/null
@@ -1,81 +0,0 @@
-package utils
-
-import (
- "crypto/tls"
- "fmt"
- "net/smtp"
- "strings"
-
- "oplian/plugin/email/global"
-
- "github.com/jordan-wright/email"
-)
-
-//
-//@function: Email
-//@description: Email发送方法
-//@param: subject string, body string
-//@return: error
-
-func Email(To, subject string, body string) error {
- to := strings.Split(To, ",")
- return send(to, subject, body)
-}
-
-//@function: ErrorToEmail
-//@description: 给email中间件错误发送邮件到指定邮箱
-//@param: subject string, body string
-//@return: error
-
-func ErrorToEmail(subject string, body string) error {
- to := strings.Split(global.GlobalConfig.To, ",")
- if to[len(to)-1] == "" { // 判断切片的最后一个元素是否为空,为空则移除
- to = to[:len(to)-1]
- }
- return send(to, subject, body)
-}
-
-//
-//@function: EmailTest
-//@description: Email测试方法
-//@param: subject string, body string
-//@return: error
-
-func EmailTest(subject string, body string) error {
- to := []string{global.GlobalConfig.From}
- return send(to, subject, body)
-}
-
-//
-//@function: send
-//@description: Email发送方法
-//@param: subject string, body string
-//@return: error
-
-func send(to []string, subject string, body string) error {
- from := global.GlobalConfig.From
- nickname := global.GlobalConfig.Nickname
- secret := global.GlobalConfig.Secret
- host := global.GlobalConfig.Host
- port := global.GlobalConfig.Port
- isSSL := global.GlobalConfig.IsSSL
-
- auth := smtp.PlainAuth("", from, secret, host)
- e := email.NewEmail()
- if nickname != "" {
- e.From = fmt.Sprintf("%s <%s>", nickname, from)
- } else {
- e.From = from
- }
- e.To = to
- e.Subject = subject
- e.HTML = []byte(body)
- var err error
- hostAddr := fmt.Sprintf("%s:%d", host, port)
- if isSSL {
- err = e.SendWithTLS(hostAddr, auth, &tls.Config{ServerName: host})
- } else {
- err = e.Send(hostAddr, auth)
- }
- return err
-}
diff --git a/plugin/plugin-tool/utils/check.go b/plugin/plugin-tool/utils/check.go
deleted file mode 100644
index 6af6c35..0000000
--- a/plugin/plugin-tool/utils/check.go
+++ /dev/null
@@ -1,53 +0,0 @@
-package utils
-
-import (
- "fmt"
- "oplian/global"
- "oplian/model/system"
- "strconv"
-)
-
-func RegisterApis(apis ...system.SysApi) {
- var count int64
- var apiPaths []string
- for i := range apis {
- apiPaths = append(apiPaths, apis[i].Path)
- }
- global.ZC_DB.Find(&[]system.SysApi{}, "path in (?)", apiPaths).Count(&count)
- if count > 0 {
- fmt.Println("插件已安装或存在同名路由")
- return
- }
- err := global.ZC_DB.Create(&apis).Error
- if err != nil {
- fmt.Println(err)
- }
-}
-
-func RegisterMenus(menus ...system.SysBaseMenu) {
- var count int64
- var menuNames []string
- parentMenu := menus[0]
- otherMenus := menus[1:]
- for i := range menus {
- menuNames = append(menuNames, menus[i].Name)
- }
- global.ZC_DB.Find(&[]system.SysBaseMenu{}, "name in (?)", menuNames).Count(&count)
- if count > 0 {
- fmt.Println("插件已安装或存在同名菜单")
- return
- }
- parentMenu.ParentId = "0"
- err := global.ZC_DB.Create(&parentMenu).Error
- if err != nil {
- fmt.Println(err)
- }
- for i := range otherMenus {
- pid := strconv.Itoa(int(parentMenu.ID))
- otherMenus[i].ParentId = pid
- }
- err = global.ZC_DB.Create(&otherMenus).Error
- if err != nil {
- fmt.Println(err)
- }
-}
diff --git a/plugin/ws/ws.go b/plugin/ws/ws.go
deleted file mode 100644
index bd6926e..0000000
--- a/plugin/ws/ws.go
+++ /dev/null
@@ -1,84 +0,0 @@
-package ws
-
-import (
- "github.com/flipped-aurora/ws/core/biz"
- "github.com/flipped-aurora/ws/core/data"
- "github.com/gin-gonic/gin"
- "go.uber.org/zap"
- "nhooyr.io/websocket"
-)
-
-type wsPlugin struct {
- logger *zap.Logger // 日志输出对象
- manageBuf int64 // buffer
- registeredMsgHandler map[int32]func(biz.IMessage) bool // 消息处理
- checkMap map[string]biz.CheckFunc // 用户校验
-
- admin biz.IManage
- adminCase *biz.AdminCase
-}
-
-func DefaultRegisteredMsgHandler(admin biz.IManage, logger *zap.Logger) map[int32]func(biz.IMessage) bool {
- return map[int32]func(msg biz.IMessage) bool{
- 1: func(msg biz.IMessage) bool {
- // w.admin 里面找到注册客户端的方法
- client, ok := admin.FindClient(msg.GetTo())
- if !ok {
- logger.Info("没有找到该用户")
- return false
- }
- return client.SendMes(msg)
- },
- }
-}
-
-func DefaultCheckMap() map[string]biz.CheckFunc {
- return map[string]biz.CheckFunc{
- "gva_ws": func(c interface{}) (string, bool) {
- // 先断言是gin.content
- cc, ok := c.(*gin.Context)
- if !ok {
- return "", false
- }
- token := cc.Query("jwt")
- // 可以携带jwt
- if len(token) == 0 {
- return "", false
- }
- // 解析 jwt...
-
- return token, true
- },
- }
-}
-
-func (w *wsPlugin) Register(g *gin.RouterGroup) {
- // gva_ws 为身份校验函数
- g.GET("/ws", w.adminCase.HandlerWS("gva_ws", &websocket.AcceptOptions{
- InsecureSkipVerify: true,
- }))
- g.POST("/sendMsg", w.adminCase.SendMsg("gva_ws"))
-}
-
-func (w *wsPlugin) RouterPath() string {
- return "gva_ws"
-}
-
-func GenerateWs(logger *zap.Logger, manageBuf int64, checkMap map[string]biz.CheckFunc) *wsPlugin {
- m := data.NewManage(manageBuf)
- t := data.NewTopic()
- h := data.NewHandle()
- admin := data.NewAdmin(m, t, h, logger)
- for s, checkFunc := range checkMap {
- admin.AddCheckFunc(s, checkFunc)
- }
- registeredMsgHandler := DefaultRegisteredMsgHandler(admin, logger)
-
- for key, handler := range registeredMsgHandler {
- admin.RegisteredMsgHandler(key, handler)
- }
- return &wsPlugin{
- logger: logger, manageBuf: manageBuf,
- registeredMsgHandler: registeredMsgHandler, checkMap: checkMap, admin: admin, adminCase: biz.NewAdmin(admin),
- }
-}
diff --git a/resource/autocode_template/readme.txt.tpl b/resource/autocode_template/readme.txt.tpl
deleted file mode 100644
index 238e419..0000000
--- a/resource/autocode_template/readme.txt.tpl
+++ /dev/null
@@ -1,7 +0,0 @@
-代码解压后把fe的api文件内容粘贴进前端api文件夹下并修改为自己想要的名字即可
-
-后端代码解压后同理,放到自己想要的 mvc对应路径 并且到 initRouter中注册自动生成的路由 到registerTable中注册自动生成的model
-
-项目github:"https://github.com/piexlmax/zc-admin/server"
-
-希望大家给个star多多鼓励
diff --git a/resource/autocode_template/server/api.go.tpl b/resource/autocode_template/server/api.go.tpl
deleted file mode 100644
index 266358c..0000000
--- a/resource/autocode_template/server/api.go.tpl
+++ /dev/null
@@ -1,210 +0,0 @@
-package {{.Package}}
-
-import (
- "zc-admin/server/global"
- "zc-admin/server/model/{{.Package}}"
- "zc-admin/server/model/common/request"
- {{.Package}}Req "zc-admin/server/model/{{.Package}}/request"
- "zc-admin/server/model/common/response"
- "zc-admin/server/service"
- "github.com/gin-gonic/gin"
- "go.uber.org/zap"
- {{- if .NeedValid }}
- "zc-admin/server/utils"
- {{- else if .AutoCreateResource}}
- "zc-admin/server/utils"
- {{- end }}
-)
-
-type {{.StructName}}Api struct {
-}
-
-var {{.Abbreviation}}Service = service.ServiceGroupApp.{{.PackageT}}ServiceGroup.{{.StructName}}Service
-
-
-// Create{{.StructName}} 创建{{.StructName}}
-// @Tags {{.StructName}}
-// @Summary 创建{{.StructName}}
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body {{.Package}}.{{.StructName}} true "创建{{.StructName}}"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
-// @Router /{{.Abbreviation}}/create{{.StructName}} [post]
-func ({{.Abbreviation}}Api *{{.StructName}}Api) Create{{.StructName}}(c *gin.Context) {
- var {{.Abbreviation}} {{.Package}}.{{.StructName}}
- err := c.ShouldBindJSON(&{{.Abbreviation}})
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- {{- if .AutoCreateResource }}
- {{.Abbreviation}}.CreatedBy = utils.GetUserID(c)
- {{- end }}
- {{- if .NeedValid }}
- verify := utils.Rules{
- {{- range $index,$element := .Fields }}
- {{- if $element.Require }}
- "{{$element.FieldName}}":{utils.NotEmpty()},
- {{- end }}
- {{- end }}
- }
- if err := utils.Verify({{.Abbreviation}}, verify); err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- {{- end }}
- if err := {{.Abbreviation}}Service.Create{{.StructName}}({{.Abbreviation}}); err != nil {
- global.ZC_LOG.Error("创建失败!", zap.Error(err))
- response.FailWithMessage("创建失败", c)
- } else {
- response.OkWithMessage("创建成功", c)
- }
-}
-
-// Delete{{.StructName}} 删除{{.StructName}}
-// @Tags {{.StructName}}
-// @Summary 删除{{.StructName}}
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body {{.Package}}.{{.StructName}} true "删除{{.StructName}}"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}"
-// @Router /{{.Abbreviation}}/delete{{.StructName}} [delete]
-func ({{.Abbreviation}}Api *{{.StructName}}Api) Delete{{.StructName}}(c *gin.Context) {
- var {{.Abbreviation}} {{.Package}}.{{.StructName}}
- err := c.ShouldBindJSON(&{{.Abbreviation}})
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- {{- if .AutoCreateResource }}
- {{.Abbreviation}}.DeletedBy = utils.GetUserID(c)
- {{- end }}
- if err := {{.Abbreviation}}Service.Delete{{.StructName}}({{.Abbreviation}}); err != nil {
- global.ZC_LOG.Error("删除失败!", zap.Error(err))
- response.FailWithMessage("删除失败", c)
- } else {
- response.OkWithMessage("删除成功", c)
- }
-}
-
-// Delete{{.StructName}}ByIds 批量删除{{.StructName}}
-// @Tags {{.StructName}}
-// @Summary 批量删除{{.StructName}}
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body request.IdsReq true "批量删除{{.StructName}}"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"批量删除成功"}"
-// @Router /{{.Abbreviation}}/delete{{.StructName}}ByIds [delete]
-func ({{.Abbreviation}}Api *{{.StructName}}Api) Delete{{.StructName}}ByIds(c *gin.Context) {
- var IDS request.IdsReq
- err := c.ShouldBindJSON(&IDS)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- {{- if .AutoCreateResource }}
- deletedBy := utils.GetUserID(c)
- {{- end }}
- if err := {{.Abbreviation}}Service.Delete{{.StructName}}ByIds(IDS{{- if .AutoCreateResource }},deletedBy{{- end }}); err != nil {
- global.ZC_LOG.Error("批量删除失败!", zap.Error(err))
- response.FailWithMessage("批量删除失败", c)
- } else {
- response.OkWithMessage("批量删除成功", c)
- }
-}
-
-// Update{{.StructName}} 更新{{.StructName}}
-// @Tags {{.StructName}}
-// @Summary 更新{{.StructName}}
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body {{.Package}}.{{.StructName}} true "更新{{.StructName}}"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"更新成功"}"
-// @Router /{{.Abbreviation}}/update{{.StructName}} [put]
-func ({{.Abbreviation}}Api *{{.StructName}}Api) Update{{.StructName}}(c *gin.Context) {
- var {{.Abbreviation}} {{.Package}}.{{.StructName}}
- err := c.ShouldBindJSON(&{{.Abbreviation}})
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- {{- if .AutoCreateResource }}
- {{.Abbreviation}}.UpdatedBy = utils.GetUserID(c)
- {{- end }}
- {{- if .NeedValid }}
- verify := utils.Rules{
- {{- range $index,$element := .Fields }}
- {{- if $element.Require }}
- "{{$element.FieldName}}":{utils.NotEmpty()},
- {{- end }}
- {{- end }}
- }
- if err := utils.Verify({{.Abbreviation}}, verify); err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- {{- end }}
- if err := {{.Abbreviation}}Service.Update{{.StructName}}({{.Abbreviation}}); err != nil {
- global.ZC_LOG.Error("更新失败!", zap.Error(err))
- response.FailWithMessage("更新失败", c)
- } else {
- response.OkWithMessage("更新成功", c)
- }
-}
-
-// Find{{.StructName}} 用id查询{{.StructName}}
-// @Tags {{.StructName}}
-// @Summary 用id查询{{.StructName}}
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data query {{.Package}}.{{.StructName}} true "用id查询{{.StructName}}"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}"
-// @Router /{{.Abbreviation}}/find{{.StructName}} [get]
-func ({{.Abbreviation}}Api *{{.StructName}}Api) Find{{.StructName}}(c *gin.Context) {
- var {{.Abbreviation}} {{.Package}}.{{.StructName}}
- err := c.ShouldBindQuery(&{{.Abbreviation}})
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- if re{{.Abbreviation}}, err := {{.Abbreviation}}Service.Get{{.StructName}}({{.Abbreviation}}.ID); err != nil {
- global.ZC_LOG.Error("查询失败!", zap.Error(err))
- response.FailWithMessage("查询失败", c)
- } else {
- response.OkWithData(gin.H{"re{{.Abbreviation}}": re{{.Abbreviation}}}, c)
- }
-}
-
-// Get{{.StructName}}List 分页获取{{.StructName}}列表
-// @Tags {{.StructName}}
-// @Summary 分页获取{{.StructName}}列表
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data query {{.Package}}Req.{{.StructName}}Search true "分页获取{{.StructName}}列表"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
-// @Router /{{.Abbreviation}}/get{{.StructName}}List [get]
-func ({{.Abbreviation}}Api *{{.StructName}}Api) Get{{.StructName}}List(c *gin.Context) {
- var pageInfo {{.Package}}Req.{{.StructName}}Search
- err := c.ShouldBindQuery(&pageInfo)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- if list, total, err := {{.Abbreviation}}Service.Get{{.StructName}}InfoList(pageInfo); err != nil {
- global.ZC_LOG.Error("获取失败!", zap.Error(err))
- response.FailWithMessage("获取失败", c)
- } else {
- response.OkWithDetailed(response.PageResult{
- List: list,
- Total: total,
- Page: pageInfo.Page,
- PageSize: pageInfo.PageSize,
- }, "获取成功", c)
- }
-}
diff --git a/resource/autocode_template/server/model.go.tpl b/resource/autocode_template/server/model.go.tpl
deleted file mode 100644
index df0d57c..0000000
--- a/resource/autocode_template/server/model.go.tpl
+++ /dev/null
@@ -1,31 +0,0 @@
-// 自动生成模板{{.StructName}}
-package {{.Package}}
-
-import (
- "zc-admin/server/global"
- {{ if .HasTimer }}"time"{{ end }}
-)
-
-// {{.StructName}} 结构体
-type {{.StructName}} struct {
- global.ZC_MODEL {{- range .Fields}}
- {{- if eq .FieldType "enum" }}
- {{.FieldName}} string `json:"{{.FieldJson}}" form:"{{.FieldJson}}" gorm:"column:{{.ColumnName}};type:enum({{.DataTypeLong}});comment:{{.Comment}};"`
- {{- else if ne .FieldType "string" }}
- {{.FieldName}} *{{.FieldType}} `json:"{{.FieldJson}}" form:"{{.FieldJson}}" gorm:"column:{{.ColumnName}};comment:{{.Comment}};{{- if .DataTypeLong -}}size:{{.DataTypeLong}};{{- end -}}"`
- {{- else }}
- {{.FieldName}} {{.FieldType}} `json:"{{.FieldJson}}" form:"{{.FieldJson}}" gorm:"column:{{.ColumnName}};comment:{{.Comment}};{{- if .DataTypeLong -}}size:{{.DataTypeLong}};{{- end -}}"`
- {{- end }} {{- end }}
- {{- if .AutoCreateResource }}
- CreatedBy uint `gorm:"column:created_by;comment:创建者"`
- UpdatedBy uint `gorm:"column:updated_by;comment:更新者"`
- DeletedBy uint `gorm:"column:deleted_by;comment:删除者"`
- {{- end}}
-}
-
-{{ if .TableName }}
-// TableName {{.StructName}} 表名
-func ({{.StructName}}) TableName() string {
- return "{{.TableName}}"
-}
-{{ end }}
diff --git a/resource/autocode_template/server/request.go.tpl b/resource/autocode_template/server/request.go.tpl
deleted file mode 100644
index abb6b17..0000000
--- a/resource/autocode_template/server/request.go.tpl
+++ /dev/null
@@ -1,20 +0,0 @@
-package request
-
-import (
- "zc-admin/server/model/{{.Package}}"
- "zc-admin/server/model/common/request"
- "time"
-)
-
-type {{.StructName}}Search struct{
- {{.Package}}.{{.StructName}}
- StartCreatedAt *time.Time `json:"startCreatedAt" form:"startCreatedAt"`
- EndCreatedAt *time.Time `json:"endCreatedAt" form:"endCreatedAt"`
- {{- range .Fields}}
- {{- if eq .FieldSearchType "BETWEEN" "NOT BETWEEN"}}
- Start{{.FieldName}} *{{.FieldType}} `json:"start{{.FieldName}}" form:"start{{.FieldName}}"`
- End{{.FieldName}} *{{.FieldType}} `json:"end{{.FieldName}}" form:"end{{.FieldName}}"`
- {{- end }}
- {{- end }}
- request.PageInfo
-}
diff --git a/resource/autocode_template/server/router.go.tpl b/resource/autocode_template/server/router.go.tpl
deleted file mode 100644
index 552d697..0000000
--- a/resource/autocode_template/server/router.go.tpl
+++ /dev/null
@@ -1,27 +0,0 @@
-package {{.Package}}
-
-import (
- "zc-admin/server/api/v1"
- "zc-admin/server/middleware"
- "github.com/gin-gonic/gin"
-)
-
-type {{.StructName}}Router struct {
-}
-
-// Init{{.StructName}}Router 初始化 {{.StructName}} 路由信息
-func (s *{{.StructName}}Router) Init{{.StructName}}Router(Router *gin.RouterGroup) {
- {{.Abbreviation}}Router := Router.Group("{{.Abbreviation}}").Use(middleware.OperationRecord())
- {{.Abbreviation}}RouterWithoutRecord := Router.Group("{{.Abbreviation}}")
- var {{.Abbreviation}}Api = v1.ApiGroupApp.{{.PackageT}}ApiGroup.{{.StructName}}Api
- {
- {{.Abbreviation}}Router.POST("create{{.StructName}}", {{.Abbreviation}}Api.Create{{.StructName}}) // 新建{{.StructName}}
- {{.Abbreviation}}Router.DELETE("delete{{.StructName}}", {{.Abbreviation}}Api.Delete{{.StructName}}) // 删除{{.StructName}}
- {{.Abbreviation}}Router.DELETE("delete{{.StructName}}ByIds", {{.Abbreviation}}Api.Delete{{.StructName}}ByIds) // 批量删除{{.StructName}}
- {{.Abbreviation}}Router.PUT("update{{.StructName}}", {{.Abbreviation}}Api.Update{{.StructName}}) // 更新{{.StructName}}
- }
- {
- {{.Abbreviation}}RouterWithoutRecord.GET("find{{.StructName}}", {{.Abbreviation}}Api.Find{{.StructName}}) // 根据ID获取{{.StructName}}
- {{.Abbreviation}}RouterWithoutRecord.GET("get{{.StructName}}List", {{.Abbreviation}}Api.Get{{.StructName}}List) // 获取{{.StructName}}列表
- }
-}
diff --git a/resource/autocode_template/server/service.go.tpl b/resource/autocode_template/server/service.go.tpl
deleted file mode 100644
index e77d67a..0000000
--- a/resource/autocode_template/server/service.go.tpl
+++ /dev/null
@@ -1,117 +0,0 @@
-package {{.Package}}
-
-import (
- "zc-admin/server/global"
- "zc-admin/server/model/{{.Package}}"
- "zc-admin/server/model/common/request"
- {{.Package}}Req "zc-admin/server/model/{{.Package}}/request"
- {{- if .AutoCreateResource }}
- "gorm.io/gorm"
- {{- end}}
-)
-
-type {{.StructName}}Service struct {
-}
-
-{{- $db := "" }}
-{{- if eq .BusinessDB "" }}
- {{- $db = "global.ZC_DB" }}
-{{- else}}
- {{- $db = printf "global.MustGetGlobalDBByDBName(\"%s\")" .BusinessDB }}
-{{- end}}
-
-// Create{{.StructName}} 创建{{.StructName}}记录
-
-func ({{.Abbreviation}}Service *{{.StructName}}Service) Create{{.StructName}}({{.Abbreviation}} {{.Package}}.{{.StructName}}) (err error) {
- err = {{$db}}.Create(&{{.Abbreviation}}).Error
- return err
-}
-
-// Delete{{.StructName}} 删除{{.StructName}}记录
-
-func ({{.Abbreviation}}Service *{{.StructName}}Service)Delete{{.StructName}}({{.Abbreviation}} {{.Package}}.{{.StructName}}) (err error) {
- {{- if .AutoCreateResource }}
- err = {{$db}}.Transaction(func(tx *gorm.DB) error {
- if err := tx.Model(&{{.Package}}.{{.StructName}}{}).Where("id = ?", {{.Abbreviation}}.ID).Update("deleted_by", {{.Abbreviation}}.DeletedBy).Error; err != nil {
- return err
- }
- if err = tx.Delete(&{{.Abbreviation}}).Error; err != nil {
- return err
- }
- return nil
- })
- {{- else }}
- err = {{$db}}.Delete(&{{.Abbreviation}}).Error
- {{- end }}
- return err
-}
-
-// Delete{{.StructName}}ByIds 批量删除{{.StructName}}记录
-
-func ({{.Abbreviation}}Service *{{.StructName}}Service)Delete{{.StructName}}ByIds(ids request.IdsReq{{- if .AutoCreateResource }},deleted_by uint{{- end}}) (err error) {
- {{- if .AutoCreateResource }}
- err = {{$db}}.Transaction(func(tx *gorm.DB) error {
- if err := tx.Model(&{{.Package}}.{{.StructName}}{}).Where("id in ?", ids.Ids).Update("deleted_by", deleted_by).Error; err != nil {
- return err
- }
- if err := tx.Where("id in ?", ids.Ids).Delete(&{{.Package}}.{{.StructName}}{}).Error; err != nil {
- return err
- }
- return nil
- })
- {{- else}}
- err = {{$db}}.Delete(&[]{{.Package}}.{{.StructName}}{},"id in ?",ids.Ids).Error
- {{- end}}
- return err
-}
-
-// Update{{.StructName}} 更新{{.StructName}}记录
-
-func ({{.Abbreviation}}Service *{{.StructName}}Service)Update{{.StructName}}({{.Abbreviation}} {{.Package}}.{{.StructName}}) (err error) {
- err = {{$db}}.Save(&{{.Abbreviation}}).Error
- return err
-}
-
-// Get{{.StructName}} 根据id获取{{.StructName}}记录
-
-func ({{.Abbreviation}}Service *{{.StructName}}Service)Get{{.StructName}}(id uint) ({{.Abbreviation}} {{.Package}}.{{.StructName}}, err error) {
- err = {{$db}}.Where("id = ?", id).First(&{{.Abbreviation}}).Error
- return
-}
-
-// Get{{.StructName}}InfoList 分页获取{{.StructName}}记录
-
-func ({{.Abbreviation}}Service *{{.StructName}}Service)Get{{.StructName}}InfoList(info {{.Package}}Req.{{.StructName}}Search) (list []{{.Package}}.{{.StructName}}, total int64, err error) {
- limit := info.PageSize
- offset := info.PageSize * (info.Page - 1)
- // 创建db
- db := {{$db}}.Model(&{{.Package}}.{{.StructName}}{})
- var {{.Abbreviation}}s []{{.Package}}.{{.StructName}}
- // 如果有条件搜索 下方会自动创建搜索语句
- if info.StartCreatedAt !=nil && info.EndCreatedAt !=nil {
- db = db.Where("created_at BETWEEN ? AND ?", info.StartCreatedAt, info.EndCreatedAt)
- }
- {{- range .Fields}}
- {{- if .FieldSearchType}}
- {{- if eq .FieldType "string" }}
- if info.{{.FieldName}} != "" {
- db = db.Where("{{.ColumnName}} {{.FieldSearchType}} ?",{{if eq .FieldSearchType "LIKE"}}"%"+ {{ end }}info.{{.FieldName}}{{if eq .FieldSearchType "LIKE"}}+"%"{{ end }})
- }
- {{- else if eq .FieldSearchType "BETWEEN" "NOT BETWEEN"}}
- if info.Start{{.FieldName}} != nil && info.End{{.FieldName}} != nil {
- db = db.Where("{{.ColumnName}} {{.FieldSearchType}} ? AND ? ",info.Start{{.FieldName}},info.End{{.FieldName}})
- }
- {{- else}}
- if info.{{.FieldName}} != nil {
- db = db.Where("{{.ColumnName}} {{.FieldSearchType}} ?",{{if eq .FieldSearchType "LIKE"}}"%"+{{ end }}info.{{.FieldName}}{{if eq .FieldSearchType "LIKE"}}+"%"{{ end }})
- }
- {{- end }}
- {{- end }}
- {{- end }}
- err = db.Count(&total).Error
- if err!=nil {
- return
- }
- err = db.Limit(limit).Offset(offset).Find(&{{.Abbreviation}}s).Error
- return {{.Abbreviation}}s, total, err
-}
diff --git a/resource/autocode_template/subcontract/api_enter.go.tpl b/resource/autocode_template/subcontract/api_enter.go.tpl
deleted file mode 100644
index b979432..0000000
--- a/resource/autocode_template/subcontract/api_enter.go.tpl
+++ /dev/null
@@ -1,7 +0,0 @@
-package {{ .PackageName }}
-
-type ApiGroup struct {
- // Code generated by zc-admin/server Begin; DO NOT EDIT.
-
- // Code generated by zc-admin/server End; DO NOT EDIT.
-}
diff --git a/resource/autocode_template/subcontract/data.go b/resource/autocode_template/subcontract/data.go
deleted file mode 100644
index cb445a5..0000000
--- a/resource/autocode_template/subcontract/data.go
+++ /dev/null
@@ -1,14 +0,0 @@
-package subcontract
-
-import (
- _ "embed"
-)
-
-//go:embed api_enter.go.tpl
-var API []byte
-
-//go:embed router_enter.go.tpl
-var Router []byte
-
-//go:embed service_enter.go.tpl
-var Server []byte
diff --git a/resource/autocode_template/subcontract/router_enter.go.tpl b/resource/autocode_template/subcontract/router_enter.go.tpl
deleted file mode 100644
index 0a4b609..0000000
--- a/resource/autocode_template/subcontract/router_enter.go.tpl
+++ /dev/null
@@ -1,7 +0,0 @@
-package {{ .PackageName }}
-
-type RouterGroup struct {
- // Code generated by zc-admin/server Begin; DO NOT EDIT.
-
- // Code generated by zc-admin/server End; DO NOT EDIT.
-}
diff --git a/resource/autocode_template/subcontract/service_enter.go.tpl b/resource/autocode_template/subcontract/service_enter.go.tpl
deleted file mode 100644
index 6febb87..0000000
--- a/resource/autocode_template/subcontract/service_enter.go.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-package {{ .PackageName }}
-
-
-type ServiceGroup struct {
- // Code generated by zc-admin/server Begin; DO NOT EDIT.
-
- // Code generated by zc-admin/server End; DO NOT EDIT.
-}
-
diff --git a/resource/autocode_template/web/api.js.tpl b/resource/autocode_template/web/api.js.tpl
deleted file mode 100644
index a8b77cf..0000000
--- a/resource/autocode_template/web/api.js.tpl
+++ /dev/null
@@ -1,97 +0,0 @@
-import service from '@/utils/request'
-
-// @Tags {{.StructName}}
-// @Summary 创建{{.StructName}}
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body model.{{.StructName}} true "创建{{.StructName}}"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
-// @Router /{{.Abbreviation}}/create{{.StructName}} [post]
-export const create{{.StructName}} = (data) => {
- return service({
- url: '/{{.Abbreviation}}/create{{.StructName}}',
- method: 'post',
- data
- })
-}
-
-// @Tags {{.StructName}}
-// @Summary 删除{{.StructName}}
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body model.{{.StructName}} true "删除{{.StructName}}"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}"
-// @Router /{{.Abbreviation}}/delete{{.StructName}} [delete]
-export const delete{{.StructName}} = (data) => {
- return service({
- url: '/{{.Abbreviation}}/delete{{.StructName}}',
- method: 'delete',
- data
- })
-}
-
-// @Tags {{.StructName}}
-// @Summary 删除{{.StructName}}
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body request.IdsReq true "批量删除{{.StructName}}"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}"
-// @Router /{{.Abbreviation}}/delete{{.StructName}} [delete]
-export const delete{{.StructName}}ByIds = (data) => {
- return service({
- url: '/{{.Abbreviation}}/delete{{.StructName}}ByIds',
- method: 'delete',
- data
- })
-}
-
-// @Tags {{.StructName}}
-// @Summary 更新{{.StructName}}
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body model.{{.StructName}} true "更新{{.StructName}}"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"更新成功"}"
-// @Router /{{.Abbreviation}}/update{{.StructName}} [put]
-export const update{{.StructName}} = (data) => {
- return service({
- url: '/{{.Abbreviation}}/update{{.StructName}}',
- method: 'put',
- data
- })
-}
-
-// @Tags {{.StructName}}
-// @Summary 用id查询{{.StructName}}
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data query model.{{.StructName}} true "用id查询{{.StructName}}"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}"
-// @Router /{{.Abbreviation}}/find{{.StructName}} [get]
-export const find{{.StructName}} = (params) => {
- return service({
- url: '/{{.Abbreviation}}/find{{.StructName}}',
- method: 'get',
- params
- })
-}
-
-// @Tags {{.StructName}}
-// @Summary 分页获取{{.StructName}}列表
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data query request.PageInfo true "分页获取{{.StructName}}列表"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
-// @Router /{{.Abbreviation}}/get{{.StructName}}List [get]
-export const get{{.StructName}}List = (params) => {
- return service({
- url: '/{{.Abbreviation}}/get{{.StructName}}List',
- method: 'get',
- params
- })
-}
diff --git a/resource/autocode_template/web/form.vue.tpl b/resource/autocode_template/web/form.vue.tpl
deleted file mode 100644
index cf9e151..0000000
--- a/resource/autocode_template/web/form.vue.tpl
+++ /dev/null
@@ -1,154 +0,0 @@
-
- 确定要删除吗?