mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-05-26 07:08:01 +00:00
Add a generic BindAndValidate helper in web/middleware that wraps gin's
content-aware binder with an explicit validator.Struct call and emits a
structured `entity.Msg{Obj: ValidationPayload{Issues...}}` on failure so
the frontend can map each issue to an i18n key.
Tag the user-facing fields on model.Inbound, model.Node, and
entity.AllSetting with the range/enum constraints they were previously
relying on hand-rolled CheckValid logic (or nothing) to enforce, and
wire the helper into the inbound/node/settings controllers that bind
those structs directly. Promotes validator/v10 from indirect to direct
require, plus six unit tests covering valid payloads, range violations,
enum violations, malformed JSON, in-place binding, and JSON-only strict
mode.
This is PR1 of a planned end-to-end Zod rollout — controllers using
local form structs (custom_geo, setEnable, fallbacks, client) keep
their existing handling and will be migrated as their schemas firm up.
109 lines
4.8 KiB
Modula-2
109 lines
4.8 KiB
Modula-2
module github.com/mhsanaei/3x-ui/v3
|
|
|
|
go 1.26.3
|
|
|
|
require (
|
|
github.com/gin-contrib/gzip v1.2.6
|
|
github.com/gin-contrib/sessions v1.1.0
|
|
github.com/gin-gonic/gin v1.12.0
|
|
github.com/go-ldap/ldap/v3 v3.4.13
|
|
github.com/go-playground/validator/v10 v10.30.2
|
|
github.com/goccy/go-json v0.10.6
|
|
github.com/goccy/go-yaml v1.19.2
|
|
github.com/google/uuid v1.6.0
|
|
github.com/gorilla/websocket v1.5.3
|
|
github.com/joho/godotenv v1.5.1
|
|
github.com/mymmrac/telego v1.9.0
|
|
github.com/nicksnyder/go-i18n/v2 v2.6.1
|
|
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7
|
|
github.com/robfig/cron/v3 v3.0.1
|
|
github.com/shirou/gopsutil/v4 v4.26.4
|
|
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
|
|
github.com/valyala/fasthttp v1.71.0
|
|
github.com/xlzd/gotp v0.1.0
|
|
github.com/xtls/xray-core v1.260327.0
|
|
go.uber.org/atomic v1.11.0
|
|
golang.org/x/crypto v0.52.0
|
|
golang.org/x/sys v0.45.0
|
|
golang.org/x/text v0.37.0
|
|
google.golang.org/grpc v1.81.1
|
|
gopkg.in/natefinch/lumberjack.v2 v2.2.1
|
|
gorm.io/driver/postgres v1.6.0
|
|
gorm.io/driver/sqlite v1.6.0
|
|
gorm.io/gorm v1.31.1
|
|
)
|
|
|
|
require (
|
|
github.com/Azure/go-ntlmssp v0.1.1 // indirect
|
|
github.com/andybalholm/brotli v1.2.1 // indirect
|
|
github.com/apernet/quic-go v0.59.1-0.20260217092621-db4786c77a22 // indirect
|
|
github.com/bytedance/gopkg v0.1.4 // indirect
|
|
github.com/bytedance/sonic v1.15.1 // indirect
|
|
github.com/bytedance/sonic/loader v0.5.1 // indirect
|
|
github.com/cloudflare/circl v1.6.3 // indirect
|
|
github.com/cloudwego/base64x v0.1.7 // indirect
|
|
github.com/ebitengine/purego v0.10.0 // indirect
|
|
github.com/gabriel-vasile/mimetype v1.4.13 // indirect
|
|
github.com/gin-contrib/sse v1.1.1 // indirect
|
|
github.com/go-asn1-ber/asn1-ber v1.5.8-0.20250403174932-29230038a667 // indirect
|
|
github.com/go-ole/go-ole v1.3.0 // indirect
|
|
github.com/go-playground/locales v0.14.1 // indirect
|
|
github.com/go-playground/universal-translator v0.18.1 // indirect
|
|
github.com/google/btree v1.1.3 // indirect
|
|
github.com/gorilla/context v1.1.2 // indirect
|
|
github.com/gorilla/securecookie v1.1.2 // indirect
|
|
github.com/gorilla/sessions v1.4.0 // indirect
|
|
github.com/grbit/go-json v0.11.0 // indirect
|
|
github.com/jackc/pgpassfile v1.0.0 // indirect
|
|
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
|
|
github.com/jackc/pgx/v5 v5.9.2 // indirect
|
|
github.com/jackc/puddle/v2 v2.2.2 // indirect
|
|
github.com/jinzhu/inflection v1.0.0 // indirect
|
|
github.com/jinzhu/now v1.1.5 // indirect
|
|
github.com/json-iterator/go v1.1.12 // indirect
|
|
github.com/juju/ratelimit v1.0.2 // indirect
|
|
github.com/klauspost/compress v1.18.6 // indirect
|
|
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
|
|
github.com/leodido/go-urn v1.4.0 // indirect
|
|
github.com/lufia/plan9stats v0.0.0-20260330125221-c963978e514e // indirect
|
|
github.com/mattn/go-isatty v0.0.22 // indirect
|
|
github.com/mattn/go-sqlite3 v1.14.44 // indirect
|
|
github.com/miekg/dns v1.1.72 // indirect
|
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
|
github.com/modern-go/reflect2 v1.0.2 // indirect
|
|
github.com/pelletier/go-toml/v2 v2.3.1 // indirect
|
|
github.com/pires/go-proxyproto v0.12.0 // indirect
|
|
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
|
|
github.com/quic-go/qpack v0.6.0 // indirect
|
|
github.com/quic-go/quic-go v0.59.1 // indirect
|
|
github.com/refraction-networking/utls v1.8.3-0.20260301010127-aa6edf4b11af // indirect
|
|
github.com/rogpeppe/go-internal v1.14.1 // indirect
|
|
github.com/sagernet/sing v0.8.10 // indirect
|
|
github.com/sagernet/sing-shadowsocks v0.2.9 // indirect
|
|
github.com/tklauser/go-sysconf v0.4.0 // indirect
|
|
github.com/tklauser/numcpus v0.12.0 // indirect
|
|
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
|
github.com/ugorji/go/codec v1.3.1 // indirect
|
|
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
|
github.com/valyala/fastjson v1.6.10 // indirect
|
|
github.com/vishvananda/netlink v1.3.1 // indirect
|
|
github.com/vishvananda/netns v0.0.5 // indirect
|
|
github.com/xtls/reality v0.0.0-20260322125925-9234c772ba8f // indirect
|
|
github.com/yusufpapurcu/wmi v1.2.4 // indirect
|
|
go.mongodb.org/mongo-driver/v2 v2.6.0 // indirect
|
|
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect
|
|
golang.org/x/arch v0.27.0 // indirect
|
|
golang.org/x/exp v0.0.0-20260508232706-74f9aab9d74a // indirect
|
|
golang.org/x/mod v0.36.0 // indirect
|
|
golang.org/x/net v0.55.0 // indirect
|
|
golang.org/x/sync v0.20.0 // indirect
|
|
golang.org/x/time v0.15.0 // indirect
|
|
golang.org/x/tools v0.45.0 // indirect
|
|
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect
|
|
golang.zx2c4.com/wireguard v0.0.0-20260522210424-ecfc5a8d5446 // indirect
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68 // indirect
|
|
google.golang.org/protobuf v1.36.11 // indirect
|
|
gvisor.dev/gvisor v0.0.0-20260122175437-89a5d21be8f0 // indirect
|
|
lukechampine.com/blake3 v1.4.1 // indirect
|
|
)
|