SYMBOL INDEX (2091 symbols across 86 files) FILE: config/config.go type LogLevel (line 22) | type LogLevel constant Debug (line 26) | Debug LogLevel = "debug" constant Info (line 27) | Info LogLevel = "info" constant Notice (line 28) | Notice LogLevel = "notice" constant Warning (line 29) | Warning LogLevel = "warning" constant Error (line 30) | Error LogLevel = "error" function GetVersion (line 34) | func GetVersion() string { function GetName (line 39) | func GetName() string { function GetLogLevel (line 44) | func GetLogLevel() LogLevel { function IsDebug (line 56) | func IsDebug() bool { function GetBinFolderPath (line 61) | func GetBinFolderPath() string { function getBaseDir (line 69) | func getBaseDir() string { function GetDBFolderPath (line 87) | func GetDBFolderPath() string { function GetDBPath (line 99) | func GetDBPath() string { function GetLogFolder (line 104) | func GetLogFolder() string { function copyFile (line 115) | func copyFile(src, dst string) error { function init (line 136) | func init() { FILE: database/db.go constant defaultUsername (line 28) | defaultUsername = "admin" constant defaultPassword (line 29) | defaultPassword = "admin" function initModels (line 32) | func initModels() error { function initUser (line 52) | func initUser() error { function runSeeders (line 76) | func runSeeders(isUsersEmpty bool) error { function isTableEmpty (line 116) | func isTableEmpty(tableName string) (bool, error) { function InitDB (line 123) | func InitDB(dbPath string) error { function CloseDB (line 162) | func CloseDB() error { function GetDB (line 174) | func GetDB() *gorm.DB { function IsNotFound (line 179) | func IsNotFound(err error) bool { function IsSQLiteDB (line 184) | func IsSQLiteDB(file io.ReaderAt) (bool, error) { function Checkpoint (line 195) | func Checkpoint() error { function ValidateSQLiteDB (line 207) | func ValidateSQLiteDB(dbPath string) error { FILE: database/model/model.go type Protocol (line 12) | type Protocol constant VMESS (line 16) | VMESS Protocol = "vmess" constant VLESS (line 17) | VLESS Protocol = "vless" constant Tunnel (line 18) | Tunnel Protocol = "tunnel" constant HTTP (line 19) | HTTP Protocol = "http" constant Trojan (line 20) | Trojan Protocol = "trojan" constant Shadowsocks (line 21) | Shadowsocks Protocol = "shadowsocks" constant Mixed (line 22) | Mixed Protocol = "mixed" constant WireGuard (line 23) | WireGuard Protocol = "wireguard" type User (line 27) | type User struct type Inbound (line 34) | type Inbound struct method GenXrayInboundConfig (line 81) | func (i *Inbound) GenXrayInboundConfig() *xray.InboundConfig { type OutboundTraffics (line 59) | type OutboundTraffics struct type InboundClientIps (line 68) | type InboundClientIps struct type HistoryOfSeeders (line 75) | type HistoryOfSeeders struct type Setting (line 101) | type Setting struct type Client (line 108) | type Client struct FILE: logger/logger.go constant maxLogBufferSize (line 17) | maxLogBufferSize = 10240 constant logFileName (line 18) | logFileName = "3xui.log" constant timeFormat (line 19) | timeFormat = "2006/01/02 15:04:05" function InitLogger (line 36) | func InitLogger(level logging.Level) { function initDefaultBackend (line 62) | func initDefaultBackend() logging.Backend { function initFileBackend (line 86) | func initFileBackend() logging.Backend { function newFormatter (line 111) | func newFormatter(withTime bool) logging.Formatter { function CloseLogger (line 121) | func CloseLogger() { function Debug (line 129) | func Debug(args ...any) { function Debugf (line 135) | func Debugf(format string, args ...any) { function Info (line 141) | func Info(args ...any) { function Infof (line 147) | func Infof(format string, args ...any) { function Notice (line 153) | func Notice(args ...any) { function Noticef (line 159) | func Noticef(format string, args ...any) { function Warning (line 165) | func Warning(args ...any) { function Warningf (line 171) | func Warningf(format string, args ...any) { function Error (line 177) | func Error(args ...any) { function Errorf (line 183) | func Errorf(format string, args ...any) { function addToBuffer (line 189) | func addToBuffer(level string, newLog string) { function GetLogs (line 208) | func GetLogs(c int, level string) []string { FILE: main.go function runWebServer (line 29) | func runWebServer() { function resetSetting (line 133) | func resetSetting() { function showSetting (line 150) | func showSetting(show bool) { function updateTgbotEnableSts (line 200) | func updateTgbotEnableSts(status bool) { function updateTgbotSetting (line 220) | func updateTgbotSetting(tgBotToken string, tgBotChatid string, tgBotRunt... function updateSetting (line 258) | func updateSetting(port int, username string, password string, webBasePa... function updateCert (line 317) | func updateCert(publicKey string, privateKey string) { function GetCertificate (line 359) | func GetCertificate(getCert bool) { function GetListenIP (line 377) | func GetListenIP(getListen bool) { function migrateDb (line 392) | func migrateDb() { function main (line 406) | func main() { FILE: sub/sub.go function setEmbeddedTemplates (line 30) | func setEmbeddedTemplates(engine *gin.Engine) error { type Server (line 45) | type Server struct method initRouter (line 67) | func (s *Server) initRouter() (*gin.Engine, error) { method getHtmlFiles (line 266) | func (s *Server) getHtmlFiles() ([]string, error) { method Start (line 290) | func (s *Server) Start() (err error) { method Stop (line 364) | func (s *Server) Stop() error { method GetCtx (line 379) | func (s *Server) GetCtx() context.Context { function NewServer (line 57) | func NewServer() *Server { FILE: sub/subController.go type SUBController (line 15) | type SUBController struct method initRouter (line 76) | func (a *SUBController) initRouter(g *gin.RouterGroup) { method subs (line 86) | func (a *SUBController) subs(c *gin.Context) { method subJsons (line 161) | func (a *SUBController) subJsons(c *gin.Context) { method ApplyCommonHeaders (line 180) | func (a *SUBController) ApplyCommonHeaders( function NewSUBController (line 33) | func NewSUBController( FILE: sub/subJsonService.go type SubJsonService (line 22) | type SubJsonService struct method GetJson (line 74) | func (s *SubJsonService) GetJson(subId string, host string) (string, s... method getConfig (line 151) | func (s *SubJsonService) getConfig(inbound *model.Inbound, client mode... method streamData (line 213) | func (s *SubJsonService) streamData(stream string) map[string]any { method removeAcceptProxy (line 242) | func (s *SubJsonService) removeAcceptProxy(setting any) map[string]any { method tlsData (line 250) | func (s *SubJsonService) tlsData(tData map[string]any) map[string]any { method realityData (line 262) | func (s *SubJsonService) realityData(rData map[string]any) map[string]... method genVnext (line 289) | func (s *SubJsonService) genVnext(inbound *model.Inbound, streamSettin... method genVless (line 317) | func (s *SubJsonService) genVless(inbound *model.Inbound, streamSettin... method genServer (line 345) | func (s *SubJsonService) genServer(inbound *model.Inbound, streamSetti... function NewSubJsonService (line 34) | func NewSubJsonService(fragment string, noises string, mux string, rules... type Outbound (line 384) | type Outbound struct type VnextSetting (line 392) | type VnextSetting struct type UserVnext (line 398) | type UserVnext struct type ServerSetting (line 404) | type ServerSetting struct FILE: sub/subService.go type SubService (line 24) | type SubService struct method GetSubs (line 42) | func (s *SubService) GetSubs(subId string, host string) ([]string, int... method getInboundsBySubId (line 115) | func (s *SubService) getInboundsBySubId(subId string) ([]*model.Inboun... method getClientTraffics (line 132) | func (s *SubService) getClientTraffics(traffics []xray.ClientTraffic, ... method getFallbackMaster (line 141) | func (s *SubService) getFallbackMaster(dest string, streamSettings str... method getLink (line 164) | func (s *SubService) getLink(inbound *model.Inbound, email string) str... method genVmessLink (line 178) | func (s *SubService) genVmessLink(inbound *model.Inbound, email string... method genVlessLink (line 322) | func (s *SubService) genVlessLink(inbound *model.Inbound, email string... method genTrojanLink (line 526) | func (s *SubService) genTrojanLink(inbound *model.Inbound, email strin... method genShadowsocksLink (line 722) | func (s *SubService) genShadowsocksLink(inbound *model.Inbound, email ... method genRemark (line 888) | func (s *SubService) genRemark(inbound *model.Inbound, email string, e... method ResolveRequest (line 1039) | func (s *SubService) ResolveRequest(c *gin.Context) (scheme string, ho... method BuildURLs (line 1083) | func (s *SubService) BuildURLs(scheme, hostWithPort, subPath, subJsonP... method getBaseSchemeAndHost (line 1109) | func (s *SubService) getBaseSchemeAndHost(requestScheme, requestHostWi... method buildSingleURL (line 1133) | func (s *SubService) buildSingleURL(configuredURI, baseScheme, baseHos... method joinPathWithID (line 1143) | func (s *SubService) joinPathWithID(basePath, subId string) string { method BuildPageData (line 1152) | func (s *SubService) BuildPageData(subId string, hostHeader string, tr... function NewSubService (line 34) | func NewSubService(showInfo bool, remarkModel string) *SubService { function searchKey (line 973) | func searchKey(data any, key string) (any, bool) { function searchHost (line 994) | func searchHost(headers any) string { type PageData (line 1017) | type PageData struct function getHostFromXFH (line 1190) | func getHostFromXFH(s string) (string, error) { FILE: util/common/err.go function NewErrorf (line 12) | func NewErrorf(format string, a ...any) error { function NewError (line 18) | func NewError(a ...any) error { function Recover (line 24) | func Recover(msg string) any { FILE: util/common/format.go function FormatTraffic (line 8) | func FormatTraffic(trafficBytes int64) string { FILE: util/common/multi_error.go type multiError (line 8) | type multiError method Error (line 11) | func (e multiError) Error() string { function Combine (line 22) | func Combine(maybeError ...error) error { FILE: util/crypto/crypto.go function HashPasswordAsBcrypt (line 9) | func HashPasswordAsBcrypt(password string) (string, error) { function CheckPasswordHash (line 15) | func CheckPasswordHash(hash, password string) bool { FILE: util/json_util/json.go type RawMessage (line 9) | type RawMessage method MarshalJSON (line 13) | func (m RawMessage) MarshalJSON() ([]byte, error) { method UnmarshalJSON (line 21) | func (m *RawMessage) UnmarshalJSON(data []byte) error { FILE: util/ldap/ldap.go type Config (line 10) | type Config struct function FetchVlessFlags (line 25) | func FetchVlessFlags(cfg Config) (map[string]bool, error) { function AuthenticateUser (line 101) | func AuthenticateUser(cfg Config, username, password string) (bool, erro... FILE: util/random/random.go function init (line 20) | func init() { function Seq (line 41) | func Seq(n int) string { function Num (line 54) | func Num(n int) int { FILE: util/reflect_util/reflect.go function GetFields (line 7) | func GetFields(t reflect.Type) []reflect.StructField { function GetFieldValues (line 17) | func GetFieldValues(v reflect.Value) []reflect.Value { FILE: util/sys/psutil.go function HostProc (line 10) | func HostProc(combineWith ...string) string FILE: util/sys/sys_darwin.go function GetTCPCount (line 18) | func GetTCPCount() (int, error) { function GetUDPCount (line 26) | func GetUDPCount() (int, error) { function CPUPercentRaw (line 44) | func CPUPercentRaw() (float64, error) { FILE: util/sys/sys_linux.go function getLinesNum (line 20) | func getLinesNum(filename string) (int, error) { function GetTCPCount (line 53) | func GetTCPCount() (int, error) { function GetUDPCount (line 68) | func GetUDPCount() (int, error) { function safeGetLinesNum (line 85) | func safeGetLinesNum(path string) (int, error) { function CPUPercentRaw (line 105) | func CPUPercentRaw() (float64, error) { FILE: util/sys/sys_windows.go function GetConnectionCount (line 18) | func GetConnectionCount(proto string) (int, error) { function GetTCPCount (line 31) | func GetTCPCount() (int, error) { function GetUDPCount (line 36) | func GetUDPCount() (int, error) { type filetime (line 53) | type filetime struct function ftToUint64 (line 60) | func ftToUint64(ft filetime) uint64 { function CPUPercentRaw (line 67) | func CPUPercentRaw() (float64, error) { FILE: web/assets/codemirror/fold/brace-fold.js function bracketFolding (line 14) | function bracketFolding(pairs) { function hasImport (line 77) | function hasImport(line) { function hasInclude (line 101) | function hasInclude(line) { FILE: web/assets/codemirror/fold/foldcode.js function doFold (line 14) | function doFold(cm, pos, options, force) { function makeWidget (line 63) | function makeWidget(cm, options, range) { function getOption (line 147) | function getOption(cm, options, name) { FILE: web/assets/codemirror/fold/foldgutter.js function State (line 41) | function State(options) { function parseOptions (line 46) | function parseOptions(opts) { function isFolded (line 54) | function isFolded(cm, line) { function marker (line 65) | function marker(spec) { function updateFoldInfo (line 75) | function updateFoldInfo(cm, from, to) { function classTest (line 104) | function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)... function updateInViewport (line 106) | function updateInViewport(cm) { function onGutterClick (line 115) | function onGutterClick(cm, line, gutter) { function optionChange (line 125) | function optionChange(cm, option) { function onChange (line 129) | function onChange(cm) { function onViewportChange (line 138) | function onViewportChange(cm) { function onFold (line 162) | function onFold(cm, from) { FILE: web/assets/codemirror/hint/javascript-hint.js function forEach (line 14) | function forEach(arr, f) { function arrayContains (line 18) | function arrayContains(arr, item) { function scriptHint (line 31) | function scriptHint(editor, keywords, getToken, options) { function javascriptHint (line 62) | function javascriptHint(editor, options) { function getCoffeeScriptToken (line 69) | function getCoffeeScriptToken(editor, cur) { function coffeescriptHint (line 87) | function coffeescriptHint(editor, options) { function forAllProps (line 102) | function forAllProps(obj, callback) { function getCompletions (line 111) | function getCompletions(token, context, keywords, options) { FILE: web/assets/codemirror/javascript.js function kw (line 26) | function kw(type) {return {type: type, style: "keyword"};} function readRegexp (line 47) | function readRegexp(stream) { function ret (line 62) | function ret(tp, style, cont) { function tokenBase (line 66) | function tokenBase(stream, state) { function tokenString (line 137) | function tokenString(quote) { function tokenComment (line 153) | function tokenComment(stream, state) { function tokenQuasi (line 165) | function tokenQuasi(stream, state) { function findFatArrow (line 185) | function findFatArrow(stream, state) { function JSLexical (line 225) | function JSLexical(indented, column, type, align, prev, info) { function inScope (line 234) | function inScope(state, varname) { function parseJS (line 244) | function parseJS(state, style, type, content, stream) { function pass (line 268) | function pass() { function cont (line 271) | function cont() { function inList (line 275) | function inList(name, list) { function register (line 279) | function register(varname) { function registerVarScoped (line 300) | function registerVarScoped(varname, context) { function isModifier (line 315) | function isModifier(name) { function Context (line 321) | function Context(prev, vars, block) { this.prev = prev; this.vars = vars... function Var (line 322) | function Var(name, next) { this.name = name; this.next = next } function pushcontext (line 325) | function pushcontext() { function pushblockcontext (line 329) | function pushblockcontext() { function popcontext (line 334) | function popcontext() { function pushlex (line 339) | function pushlex(type, info) { function poplex (line 350) | function poplex() { function expect (line 360) | function expect(wanted) { function statement (line 369) | function statement(type, value) { function maybeCatchBinding (line 418) | function maybeCatchBinding(type) { function expression (line 421) | function expression(type, value) { function expressionNoComma (line 424) | function expressionNoComma(type, value) { function parenExpr (line 427) | function parenExpr(type) { function expressionInner (line 431) | function expressionInner(type, value, noComma) { function maybeexpression (line 451) | function maybeexpression(type) { function maybeoperatorComma (line 456) | function maybeoperatorComma(type, value) { function maybeoperatorNoComma (line 460) | function maybeoperatorNoComma(type, value, noComma) { function quasi (line 483) | function quasi(type, value) { function continueQuasi (line 488) | function continueQuasi(type) { function arrowBody (line 495) | function arrowBody(type) { function arrowBodyNoComma (line 499) | function arrowBodyNoComma(type) { function maybeTarget (line 503) | function maybeTarget(noComma) { function target (line 510) | function target(_, value) { function targetNoComma (line 513) | function targetNoComma(_, value) { function maybelabel (line 516) | function maybelabel(type) { function property (line 520) | function property(type) { function objprop (line 523) | function objprop(type, value) { function getterSetter (line 553) | function getterSetter(type) { function afterprop (line 558) | function afterprop(type) { function commasep (line 562) | function commasep(what, end, sep) { function contCommasep (line 581) | function contCommasep(what, end, info) { function block (line 586) | function block(type) { function maybetype (line 590) | function maybetype(type, value) { function maybetypeOrIn (line 596) | function maybetypeOrIn(type, value) { function mayberettype (line 599) | function mayberettype(type) { function isKW (line 605) | function isKW(_, value) { function typeexpr (line 611) | function typeexpr(type, value) { function maybeReturnType (line 628) | function maybeReturnType(type) { function typeprops (line 631) | function typeprops(type) { function typeprop (line 636) | function typeprop(type, value) { function quasiType (line 652) | function quasiType(type, value) { function continueQuasiType (line 657) | function continueQuasiType(type) { function typearg (line 664) | function typearg(type, value) { function afterType (line 670) | function afterType(type, value) { function maybeTypeArgs (line 677) | function maybeTypeArgs(_, value) { function typeparam (line 680) | function typeparam() { function maybeTypeDefault (line 683) | function maybeTypeDefault(_, value) { function vardef (line 686) | function vardef(_, value) { function pattern (line 690) | function pattern(type, value) { function proppattern (line 697) | function proppattern(type, value) { function eltpattern (line 708) | function eltpattern() { function maybeAssign (line 711) | function maybeAssign(_type, value) { function vardefCont (line 714) | function vardefCont(type) { function maybeelse (line 717) | function maybeelse(type, value) { function forspec (line 720) | function forspec(type, value) { function forspec1 (line 724) | function forspec1(type) { function forspec2 (line 729) | function forspec2(type, value) { function functiondef (line 735) | function functiondef(type, value) { function functiondecl (line 741) | function functiondecl(type, value) { function typename (line 747) | function typename(type, value) { function funarg (line 755) | function funarg(type, value) { function classExpression (line 762) | function classExpression(type, value) { function className (line 767) | function className(type, value) { function classNameAfter (line 770) | function classNameAfter(type, value) { function classBody (line 778) | function classBody(type, value) { function classfield (line 802) | function classfield(type, value) { function afterExport (line 810) | function afterExport(type, value) { function exportField (line 816) | function exportField(type, value) { function afterImport (line 820) | function afterImport(type) { function importSpec (line 826) | function importSpec(type, value) { function maybeMoreImports (line 832) | function maybeMoreImports(type) { function maybeAs (line 835) | function maybeAs(_type, value) { function maybeFrom (line 838) | function maybeFrom(_type, value) { function arrayLiteral (line 841) | function arrayLiteral(type) { function enumdef (line 845) | function enumdef() { function enummember (line 848) | function enummember() { function isContinuedStatement (line 852) | function isContinuedStatement(state, textAfter) { function expressionAllowed (line 858) | function expressionAllowed(stream, state, backUp) { FILE: web/assets/codemirror/jshint.js function s (line 6) | function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&re... function replacer (line 129) | function replacer(key, value) { function truncate (line 142) | function truncate(s, n) { function getMessage (line 150) | function getMessage(self) { function fail (line 167) | function fail(actual, expected, message, operator, stackStartFunction) { function ok (line 187) | function ok(value, message) { function _deepEqual (line 218) | function _deepEqual(actual, expected) { function isArguments (line 263) | function isArguments(object) { function objEquiv (line 267) | function objEquiv(a, b) { function expectedException (line 336) | function expectedException(actual, expected) { function _throws (line 352) | function _throws(shouldThrow, block, expected, message) { function deprecated (line 516) | function deprecated() { function inspect (line 563) | function inspect(obj, opts) { function stylizeWithColor (line 621) | function stylizeWithColor(str, styleType) { function stylizeNoColor (line 633) | function stylizeNoColor(str, styleType) { function arrayToHash (line 638) | function arrayToHash(array) { function formatValue (line 649) | function formatValue(ctx, value, recurseTimes) { function formatPrimitive (line 762) | function formatPrimitive(ctx, value) { function formatError (line 781) | function formatError(value) { function formatArray (line 786) | function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { function formatProperty (line 806) | function formatProperty(ctx, value, recurseTimes, visibleKeys, key, arra... function reduceToSingleString (line 865) | function reduceToSingleString(output, base, braces) { function isArray (line 888) | function isArray(ar) { function isBoolean (line 893) | function isBoolean(arg) { function isNull (line 898) | function isNull(arg) { function isNullOrUndefined (line 903) | function isNullOrUndefined(arg) { function isNumber (line 908) | function isNumber(arg) { function isString (line 913) | function isString(arg) { function isSymbol (line 918) | function isSymbol(arg) { function isUndefined (line 923) | function isUndefined(arg) { function isRegExp (line 928) | function isRegExp(re) { function isObject (line 933) | function isObject(arg) { function isDate (line 938) | function isDate(d) { function isError (line 943) | function isError(e) { function isFunction (line 949) | function isFunction(arg) { function isPrimitive (line 954) | function isPrimitive(arg) { function objectToString (line 966) | function objectToString(o) { function pad (line 971) | function pad(n) { function timestamp (line 980) | function timestamp() { function hasOwnProperty (line 1022) | function hasOwnProperty(obj, prop) { function log (line 1070) | function log() {} function info (line 1072) | function info() { function warn (line 1076) | function warn() { function error (line 1080) | function error() { function time (line 1084) | function time(label) { function timeEnd (line 1088) | function timeEnd(label) { function trace (line 1098) | function trace() { function dir (line 1105) | function dir(object) { function consoleAssert (line 1109) | function consoleAssert(expression) { function now (line 1120) | function now() { function EventEmitter (line 1146) | function EventEmitter() { function g (line 1288) | function g() { function isFunction (line 1411) | function isFunction(arg) { function isNumber (line 1415) | function isNumber(arg) { function isObject (line 1419) | function isObject(arg) { function isUndefined (line 1423) | function isUndefined(arg) { function apply (line 1899) | function apply(func, thisArg, args) { function arrayAggregator (line 1919) | function arrayAggregator(array, setter, iteratee, accumulator) { function arrayEach (line 1939) | function arrayEach(array, iteratee) { function arrayEachRight (line 1960) | function arrayEachRight(array, iteratee) { function arrayEvery (line 1981) | function arrayEvery(array, predicate) { function arrayFilter (line 2002) | function arrayFilter(array, predicate) { function arrayIncludes (line 2026) | function arrayIncludes(array, value) { function arrayIncludesWith (line 2040) | function arrayIncludesWith(array, value, comparator) { function arrayMap (line 2061) | function arrayMap(array, iteratee) { function arrayPush (line 2080) | function arrayPush(array, values) { function arrayReduce (line 2103) | function arrayReduce(array, iteratee, accumulator, initAccum) { function arrayReduceRight (line 2128) | function arrayReduceRight(array, iteratee, accumulator, initAccum) { function arraySome (line 2149) | function arraySome(array, predicate) { function asciiToArray (line 2177) | function asciiToArray(string) { function asciiWords (line 2188) | function asciiWords(string) { function baseFindKey (line 2203) | function baseFindKey(collection, predicate, eachFunc) { function baseFindIndex (line 2225) | function baseFindIndex(array, predicate, fromIndex, fromRight) { function baseIndexOf (line 2246) | function baseIndexOf(array, value, fromIndex) { function baseIndexOfWith (line 2262) | function baseIndexOfWith(array, value, fromIndex, comparator) { function baseIsNaN (line 2281) | function baseIsNaN(value) { function baseMean (line 2294) | function baseMean(array, iteratee) { function baseProperty (line 2306) | function baseProperty(key) { function basePropertyOf (line 2319) | function basePropertyOf(object) { function baseReduce (line 2338) | function baseReduce(collection, iteratee, accumulator, initAccum, eachFu... function baseSortBy (line 2357) | function baseSortBy(array, comparer) { function baseSum (line 2376) | function baseSum(array, iteratee) { function baseTimes (line 2399) | function baseTimes(n, iteratee) { function baseToPairs (line 2418) | function baseToPairs(object, props) { function baseUnary (line 2431) | function baseUnary(func) { function baseValues (line 2447) | function baseValues(object, props) { function cacheHas (line 2461) | function cacheHas(cache, key) { function charsStartIndex (line 2474) | function charsStartIndex(strSymbols, chrSymbols) { function charsEndIndex (line 2491) | function charsEndIndex(strSymbols, chrSymbols) { function countHolders (line 2506) | function countHolders(array, placeholder) { function escapeStringChar (line 2544) | function escapeStringChar(chr) { function getValue (line 2556) | function getValue(object, key) { function hasUnicode (line 2567) | function hasUnicode(string) { function hasUnicodeWord (line 2578) | function hasUnicodeWord(string) { function iteratorToArray (line 2589) | function iteratorToArray(iterator) { function mapToArray (line 2606) | function mapToArray(map) { function overArg (line 2624) | function overArg(func, transform) { function replaceHolders (line 2639) | function replaceHolders(array, placeholder) { function setToArray (line 2662) | function setToArray(set) { function setToPairs (line 2679) | function setToPairs(set) { function strictIndexOf (line 2699) | function strictIndexOf(array, value, fromIndex) { function strictLastIndexOf (line 2721) | function strictLastIndexOf(array, value, fromIndex) { function stringSize (line 2738) | function stringSize(string) { function stringToArray (line 2751) | function stringToArray(string) { function unicodeSize (line 2773) | function unicodeSize(string) { function unicodeToArray (line 2788) | function unicodeToArray(string) { function unicodeWords (line 2799) | function unicodeWords(string) { function lodash (line 3076) | function lodash(value) { function object (line 3097) | function object() {} function baseLodash (line 3117) | function baseLodash() { function LodashWrapper (line 3128) | function LodashWrapper(value, chainAll) { function LazyWrapper (line 3213) | function LazyWrapper(value) { function lazyClone (line 3231) | function lazyClone() { function lazyReverse (line 3250) | function lazyReverse() { function lazyValue (line 3270) | function lazyValue() { function Hash (line 3332) | function Hash(entries) { function hashClear (line 3350) | function hashClear() { function hashDelete (line 3365) | function hashDelete(key) { function hashGet (line 3380) | function hashGet(key) { function hashHas (line 3398) | function hashHas(key) { function hashSet (line 3413) | function hashSet(key, value) { function ListCache (line 3436) | function ListCache(entries) { function listCacheClear (line 3454) | function listCacheClear() { function listCacheDelete (line 3468) | function listCacheDelete(key) { function listCacheGet (line 3494) | function listCacheGet(key) { function listCacheHas (line 3510) | function listCacheHas(key) { function listCacheSet (line 3524) | function listCacheSet(key, value) { function MapCache (line 3553) | function MapCache(entries) { function mapCacheClear (line 3571) | function mapCacheClear() { function mapCacheDelete (line 3589) | function mapCacheDelete(key) { function mapCacheGet (line 3604) | function mapCacheGet(key) { function mapCacheHas (line 3617) | function mapCacheHas(key) { function mapCacheSet (line 3631) | function mapCacheSet(key, value) { function SetCache (line 3657) | function SetCache(values) { function setCacheAdd (line 3677) | function setCacheAdd(value) { function setCacheHas (line 3691) | function setCacheHas(value) { function Stack (line 3708) | function Stack(entries) { function stackClear (line 3720) | function stackClear() { function stackDelete (line 3734) | function stackDelete(key) { function stackGet (line 3751) | function stackGet(key) { function stackHas (line 3764) | function stackHas(key) { function stackSet (line 3778) | function stackSet(key, value) { function arrayLikeKeys (line 3811) | function arrayLikeKeys(value, inherited) { function arraySample (line 3845) | function arraySample(array) { function arraySampleSize (line 3858) | function arraySampleSize(array, n) { function arrayShuffle (line 3869) | function arrayShuffle(array) { function assignMergeValue (line 3882) | function assignMergeValue(object, key, value) { function assignValue (line 3899) | function assignValue(object, key, value) { function assocIndexOf (line 3915) | function assocIndexOf(array, key) { function baseAggregator (line 3936) | function baseAggregator(collection, setter, iteratee, accumulator) { function baseAssign (line 3952) | function baseAssign(object, source) { function baseAssignIn (line 3965) | function baseAssignIn(object, source) { function baseAssignValue (line 3978) | function baseAssignValue(object, key, value) { function baseAt (line 3999) | function baseAt(object, paths) { function baseClamp (line 4020) | function baseClamp(number, lower, upper) { function baseClone (line 4048) | function baseClone(value, bitmask, customizer, key, object, stack) { function baseConforms (line 4131) | function baseConforms(source) { function baseConformsTo (line 4146) | function baseConformsTo(object, source, props) { function baseDelay (line 4174) | function baseDelay(func, wait, args) { function baseDifference (line 4192) | function baseDifference(array, values, iteratee, comparator) { function baseEvery (line 4266) | function baseEvery(collection, predicate) { function baseExtremum (line 4285) | function baseExtremum(array, iteratee, comparator) { function baseFill (line 4314) | function baseFill(array, value, start, end) { function baseFilter (line 4340) | function baseFilter(collection, predicate) { function baseFlatten (line 4361) | function baseFlatten(array, depth, predicate, isStrict, result) { function baseForOwn (line 4417) | function baseForOwn(object, iteratee) { function baseForOwnRight (line 4429) | function baseForOwnRight(object, iteratee) { function baseFunctions (line 4442) | function baseFunctions(object, props) { function baseGet (line 4456) | function baseGet(object, path) { function baseGetAllKeys (line 4479) | function baseGetAllKeys(object, keysFunc, symbolsFunc) { function baseGetTag (line 4491) | function baseGetTag(value) { function baseGt (line 4509) | function baseGt(value, other) { function baseHas (line 4521) | function baseHas(object, key) { function baseHasIn (line 4533) | function baseHasIn(object, key) { function baseInRange (line 4546) | function baseInRange(number, start, end) { function baseIntersection (line 4560) | function baseIntersection(arrays, iteratee, comparator) { function baseInverter (line 4624) | function baseInverter(object, setter, iteratee, accumulator) { function baseInvoke (line 4641) | function baseInvoke(object, path, args) { function baseIsArguments (line 4655) | function baseIsArguments(value) { function baseIsArrayBuffer (line 4666) | function baseIsArrayBuffer(value) { function baseIsDate (line 4677) | function baseIsDate(value) { function baseIsEqual (line 4695) | function baseIsEqual(value, other, bitmask, customizer, stack) { function baseIsEqualDeep (line 4719) | function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, ... function baseIsMap (line 4771) | function baseIsMap(value) { function baseIsMatch (line 4785) | function baseIsMatch(object, source, matchData, customizer) { function baseIsNative (line 4837) | function baseIsNative(value) { function baseIsRegExp (line 4852) | function baseIsRegExp(value) { function baseIsSet (line 4863) | function baseIsSet(value) { function baseIsTypedArray (line 4874) | function baseIsTypedArray(value) { function baseIteratee (line 4886) | function baseIteratee(value) { function baseKeys (line 4910) | function baseKeys(object) { function baseKeysIn (line 4930) | function baseKeysIn(object) { function baseLt (line 4954) | function baseLt(value, other) { function baseMap (line 4966) | function baseMap(collection, iteratee) { function baseMatches (line 4983) | function baseMatches(source) { function baseMatchesProperty (line 5001) | function baseMatchesProperty(path, srcValue) { function baseMerge (line 5024) | function baseMerge(object, source, srcIndex, customizer, stack) { function baseMergeDeep (line 5061) | function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customi... function baseNth (line 5131) | function baseNth(array, n) { function baseOrderBy (line 5149) | function baseOrderBy(collection, iteratees, orders) { function basePick (line 5187) | function basePick(object, paths) { function basePickBy (line 5202) | function basePickBy(object, paths, predicate) { function basePropertyDeep (line 5225) | function basePropertyDeep(path) { function basePullAll (line 5242) | function basePullAll(array, values, iteratee, comparator) { function basePullAt (line 5278) | function basePullAt(array, indexes) { function baseRandom (line 5305) | function baseRandom(lower, upper) { function baseRange (line 5320) | function baseRange(start, end, step, fromRight) { function baseRepeat (line 5340) | function baseRepeat(string, n) { function baseRest (line 5368) | function baseRest(func, start) { function baseSample (line 5379) | function baseSample(collection) { function baseSampleSize (line 5391) | function baseSampleSize(collection, n) { function baseSet (line 5406) | function baseSet(object, path, value, customizer) { function baseShuffle (line 5477) | function baseShuffle(collection) { function baseSlice (line 5490) | function baseSlice(array, start, end) { function baseSome (line 5520) | function baseSome(collection, predicate) { function baseSortedIndex (line 5542) | function baseSortedIndex(array, value, retHighest) { function baseSortedIndexBy (line 5576) | function baseSortedIndexBy(array, value, iteratee, retHighest) { function baseSortedUniq (line 5628) | function baseSortedUniq(array, iteratee) { function baseToNumber (line 5654) | function baseToNumber(value) { function baseToString (line 5672) | function baseToString(value) { function baseUniq (line 5697) | function baseUniq(array, iteratee, comparator) { function baseUnset (line 5757) | function baseUnset(object, path) { function baseUpdate (line 5773) | function baseUpdate(object, path, updater, customizer) { function baseWhile (line 5788) | function baseWhile(array, predicate, isDrop, fromRight) { function baseWrapperValue (line 5810) | function baseWrapperValue(value, actions) { function baseXor (line 5830) | function baseXor(arrays, iteratee, comparator) { function baseZipObject (line 5860) | function baseZipObject(props, values, assignFunc) { function castArrayLikeObject (line 5880) | function castArrayLikeObject(value) { function castFunction (line 5891) | function castFunction(value) { function castPath (line 5903) | function castPath(value, object) { function castSlice (line 5930) | function castSlice(array, start, end) { function cloneBuffer (line 5954) | function cloneBuffer(buffer, isDeep) { function cloneArrayBuffer (line 5972) | function cloneArrayBuffer(arrayBuffer) { function cloneDataView (line 5986) | function cloneDataView(dataView, isDeep) { function cloneRegExp (line 5998) | function cloneRegExp(regexp) { function cloneSymbol (line 6011) | function cloneSymbol(symbol) { function cloneTypedArray (line 6023) | function cloneTypedArray(typedArray, isDeep) { function compareAscending (line 6036) | function compareAscending(value, other) { function compareMultiple (line 6080) | function compareMultiple(object, other, orders) { function composeArgs (line 6118) | function composeArgs(args, partials, holders, isCurried) { function composeArgsRight (line 6153) | function composeArgsRight(args, partials, holders, isCurried) { function copyArray (line 6187) | function copyArray(source, array) { function copyObject (line 6208) | function copyObject(source, props, object, customizer) { function copySymbols (line 6242) | function copySymbols(source, object) { function copySymbolsIn (line 6254) | function copySymbolsIn(source, object) { function createAggregator (line 6266) | function createAggregator(setter, initializer) { function createAssigner (line 6282) | function createAssigner(assigner) { function createBaseEach (line 6316) | function createBaseEach(eachFunc, fromRight) { function createBaseFor (line 6344) | function createBaseFor(fromRight) { function createBind (line 6371) | function createBind(func, bitmask, thisArg) { function createCaseFirst (line 6389) | function createCaseFirst(methodName) { function createCompounder (line 6416) | function createCompounder(callback) { function createCtor (line 6430) | function createCtor(Ctor) { function createCurry (line 6464) | function createCurry(func, bitmask, arity) { function createFind (line 6499) | function createFind(findIndexFunc) { function createFlow (line 6519) | function createFlow(fromRight) { function createHybrid (line 6592) | function createHybrid(func, bitmask, thisArg, partials, holders, partial... function createInverter (line 6654) | function createInverter(setter, toIteratee) { function createMathOperation (line 6668) | function createMathOperation(operator, defaultValue) { function createOver (line 6701) | function createOver(arrayFunc) { function createPadding (line 6722) | function createPadding(length, chars) { function createPartial (line 6747) | function createPartial(func, bitmask, thisArg, partials) { function createRange (line 6777) | function createRange(fromRight) { function createRelationalOperation (line 6802) | function createRelationalOperation(operator) { function createRecurry (line 6829) | function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, pa... function createRound (line 6862) | function createRound(methodName) { function createToPairs (line 6898) | function createToPairs(keysFunc) { function createWrap (line 6936) | function createWrap(func, bitmask, thisArg, partials, holders, argPos, a... function customDefaultsAssignIn (line 7003) | function customDefaultsAssignIn(objValue, srcValue, key, object) { function customDefaultsMerge (line 7025) | function customDefaultsMerge(objValue, srcValue, key, object, source, st... function customOmitClone (line 7044) | function customOmitClone(value) { function equalArrays (line 7061) | function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { function equalByTag (line 7140) | function equalByTag(object, other, tag, bitmask, customizer, equalFunc, ... function equalObjects (line 7218) | function equalObjects(object, other, bitmask, customizer, equalFunc, sta... function flatRest (line 7290) | function flatRest(func) { function getAllKeys (line 7301) | function getAllKeys(object) { function getAllKeysIn (line 7313) | function getAllKeysIn(object) { function getFuncName (line 7335) | function getFuncName(func) { function getHolder (line 7357) | function getHolder(func) { function getIteratee (line 7373) | function getIteratee() { function getMapData (line 7387) | function getMapData(map, key) { function getMatchData (line 7401) | function getMatchData(object) { function getNative (line 7422) | function getNative(object, key) { function getRawTag (line 7434) | function getRawTag(value) { function getView (line 7530) | function getView(start, end, transforms) { function getWrapDetails (line 7555) | function getWrapDetails(source) { function hasPath (line 7569) | function hasPath(object, path, hasFunc) { function initCloneArray (line 7598) | function initCloneArray(array) { function initCloneObject (line 7617) | function initCloneObject(object) { function initCloneByTag (line 7635) | function initCloneByTag(object, tag, isDeep) { function insertWrapDetails (line 7679) | function insertWrapDetails(source, details) { function isFlattenable (line 7697) | function isFlattenable(value) { function isIndex (line 7710) | function isIndex(value, length) { function isIterateeCall (line 7730) | function isIterateeCall(value, index, object) { function isKey (line 7752) | function isKey(value, object) { function isKeyable (line 7772) | function isKeyable(value) { function isLaziable (line 7787) | function isLaziable(func) { function isMasked (line 7808) | function isMasked(func) { function isPrototype (line 7828) | function isPrototype(value) { function isStrictComparable (line 7843) | function isStrictComparable(value) { function matchesStrictComparable (line 7856) | function matchesStrictComparable(key, srcValue) { function memoizeCapped (line 7874) | function memoizeCapped(func) { function mergeData (line 7902) | function mergeData(data, source) { function nativeKeysIn (line 7966) | function nativeKeysIn(object) { function objectToString (line 7983) | function objectToString(value) { function overRest (line 7996) | function overRest(func, start, transform) { function parent (line 8025) | function parent(object, path) { function reorder (line 8039) | function reorder(array, indexes) { function safeGet (line 8059) | function safeGet(object, key) { function setWrapToString (line 8119) | function setWrapToString(wrapper, reference, bitmask) { function shortOut (line 8133) | function shortOut(func) { function shuffleSelf (line 8161) | function shuffleSelf(array, size) { function toKey (line 8203) | function toKey(value) { function toSource (line 8218) | function toSource(func) { function updateWrapDetails (line 8238) | function updateWrapDetails(details, bitmask) { function wrapperClone (line 8255) | function wrapperClone(wrapper) { function chunk (line 8289) | function chunk(array, size, guard) { function compact (line 8324) | function compact(array) { function concat (line 8361) | function concat() { function drop (line 8497) | function drop(array, n, guard) { function dropRight (line 8531) | function dropRight(array, n, guard) { function dropRightWhile (line 8576) | function dropRightWhile(array, predicate) { function dropWhile (line 8617) | function dropWhile(array, predicate) { function fill (line 8652) | function fill(array, value, start, end) { function findIndex (line 8699) | function findIndex(array, predicate, fromIndex) { function findLastIndex (line 8746) | function findLastIndex(array, predicate, fromIndex) { function flatten (line 8775) | function flatten(array) { function flattenDeep (line 8794) | function flattenDeep(array) { function flattenDepth (line 8819) | function flattenDepth(array, depth) { function fromPairs (line 8843) | function fromPairs(pairs) { function head (line 8873) | function head(array) { function indexOf (line 8900) | function indexOf(array, value, fromIndex) { function initial (line 8926) | function initial(array) { function join (line 9041) | function join(array, separator) { function last (line 9059) | function last(array) { function lastIndexOf (line 9085) | function lastIndexOf(array, value, fromIndex) { function nth (line 9121) | function nth(array, n) { function pullAll (line 9170) | function pullAll(array, values) { function pullAllBy (line 9199) | function pullAllBy(array, values, iteratee) { function pullAllWith (line 9228) | function pullAllWith(array, values, comparator) { function remove (line 9297) | function remove(array, predicate) { function reverse (line 9341) | function reverse(array) { function slice (line 9361) | function slice(array, start, end) { function sortedIndex (line 9394) | function sortedIndex(array, value) { function sortedIndexBy (line 9423) | function sortedIndexBy(array, value, iteratee) { function sortedIndexOf (line 9443) | function sortedIndexOf(array, value) { function sortedLastIndex (line 9472) | function sortedLastIndex(array, value) { function sortedLastIndexBy (line 9501) | function sortedLastIndexBy(array, value, iteratee) { function sortedLastIndexOf (line 9521) | function sortedLastIndexOf(array, value) { function sortedUniq (line 9547) | function sortedUniq(array) { function sortedUniqBy (line 9569) | function sortedUniqBy(array, iteratee) { function tail (line 9589) | function tail(array) { function take (line 9619) | function take(array, n, guard) { function takeRight (line 9652) | function takeRight(array, n, guard) { function takeRightWhile (line 9697) | function takeRightWhile(array, predicate) { function takeWhile (line 9738) | function takeWhile(array, predicate) { function uniq (line 9840) | function uniq(array) { function uniqBy (line 9867) | function uniqBy(array, iteratee) { function uniqWith (line 9891) | function uniqWith(array, comparator) { function unzip (line 9915) | function unzip(array) { function unzipWith (line 9952) | function unzipWith(array, iteratee) { function zipObject (line 10105) | function zipObject(props, values) { function zipObjectDeep (line 10124) | function zipObjectDeep(props, values) { function chain (line 10187) | function chain(value) { function tap (line 10216) | function tap(value, interceptor) { function thru (line 10244) | function thru(value, interceptor) { function wrapperChain (line 10315) | function wrapperChain() { function wrapperCommit (line 10345) | function wrapperCommit() { function wrapperNext (line 10371) | function wrapperNext() { function wrapperToIterator (line 10399) | function wrapperToIterator() { function wrapperPlant (line 10427) | function wrapperPlant(value) { function wrapperReverse (line 10467) | function wrapperReverse() { function wrapperValue (line 10499) | function wrapperValue() { function every (line 10576) | function every(collection, predicate, guard) { function filter (line 10625) | function filter(collection, predicate) { function flatMap (line 10710) | function flatMap(collection, iteratee) { function flatMapDeep (line 10734) | function flatMapDeep(collection, iteratee) { function flatMapDepth (line 10759) | function flatMapDepth(collection, iteratee, depth) { function forEach (line 10794) | function forEach(collection, iteratee) { function forEachRight (line 10819) | function forEachRight(collection, iteratee) { function includes (line 10885) | function includes(collection, value, fromIndex, guard) { function map (line 11006) | function map(collection, iteratee) { function orderBy (line 11040) | function orderBy(collection, iteratees, orders, guard) { function reduce (line 11131) | function reduce(collection, iteratee, accumulator) { function reduceRight (line 11160) | function reduceRight(collection, iteratee, accumulator) { function reject (line 11201) | function reject(collection, predicate) { function sample (line 11220) | function sample(collection) { function sampleSize (line 11245) | function sampleSize(collection, n, guard) { function shuffle (line 11270) | function shuffle(collection) { function size (line 11296) | function size(collection) { function some (line 11346) | function some(collection, predicate, guard) { function after (line 11444) | function after(n, func) { function ary (line 11473) | function ary(func, n, guard) { function before (line 11496) | function before(n, func) { function curry (line 11652) | function curry(func, arity, guard) { function curryRight (line 11697) | function curryRight(func, arity, guard) { function debounce (line 11758) | function debounce(func, wait, options) { function flip (line 11946) | function flip(func) { function memoize (line 11994) | function memoize(func, resolver) { function negate (line 12037) | function negate(predicate) { function once (line 12071) | function once(func) { function rest (line 12249) | function rest(func, start) { function spread (line 12291) | function spread(func, start) { function throttle (line 12351) | function throttle(func, wait, options) { function unary (line 12384) | function unary(func) { function wrap (line 12410) | function wrap(value, wrapper) { function castArray (line 12449) | function castArray() { function clone (line 12483) | function clone(value) { function cloneWith (line 12518) | function cloneWith(value, customizer) { function cloneDeep (line 12541) | function cloneDeep(value) { function cloneDeepWith (line 12573) | function cloneDeepWith(value, customizer) { function conformsTo (line 12602) | function conformsTo(object, source) { function eq (line 12638) | function eq(value, other) { function isArrayLike (line 12786) | function isArrayLike(value) { function isArrayLikeObject (line 12815) | function isArrayLikeObject(value) { function isBoolean (line 12836) | function isBoolean(value) { function isElement (line 12896) | function isElement(value) { function isEmpty (line 12933) | function isEmpty(value) { function isEqual (line 12985) | function isEqual(value, other) { function isEqualWith (line 13021) | function isEqualWith(value, other, customizer) { function isError (line 13045) | function isError(value) { function isFinite (line 13080) | function isFinite(value) { function isFunction (line 13101) | function isFunction(value) { function isInteger (line 13137) | function isInteger(value) { function isLength (line 13167) | function isLength(value) { function isObject (line 13197) | function isObject(value) { function isObjectLike (line 13226) | function isObjectLike(value) { function isMatch (line 13277) | function isMatch(object, source) { function isMatchWith (line 13313) | function isMatchWith(object, source, customizer) { function isNaN (line 13346) | function isNaN(value) { function isNative (line 13379) | function isNative(value) { function isNull (line 13403) | function isNull(value) { function isNil (line 13427) | function isNil(value) { function isNumber (line 13457) | function isNumber(value) { function isPlainObject (line 13490) | function isPlainObject(value) { function isSafeInteger (line 13549) | function isSafeInteger(value) { function isString (line 13589) | function isString(value) { function isSymbol (line 13611) | function isSymbol(value) { function isUndefined (line 13652) | function isUndefined(value) { function isWeakMap (line 13673) | function isWeakMap(value) { function isWeakSet (line 13694) | function isWeakSet(value) { function toArray (line 13773) | function toArray(value) { function toFinite (line 13812) | function toFinite(value) { function toInteger (line 13850) | function toInteger(value) { function toLength (line 13884) | function toLength(value) { function toNumber (line 13911) | function toNumber(value) { function toPlainObject (line 13956) | function toPlainObject(value) { function toSafeInteger (line 13984) | function toSafeInteger(value) { function toString (line 14011) | function toString(value) { function create (line 14214) | function create(prototype, properties) { function findKey (line 14330) | function findKey(object, predicate) { function findLastKey (line 14369) | function findLastKey(object, predicate) { function forIn (line 14401) | function forIn(object, iteratee) { function forInRight (line 14433) | function forInRight(object, iteratee) { function forOwn (line 14467) | function forOwn(object, iteratee) { function forOwnRight (line 14497) | function forOwnRight(object, iteratee) { function functions (line 14524) | function functions(object) { function functionsIn (line 14551) | function functionsIn(object) { function get (line 14580) | function get(object, path, defaultValue) { function has (line 14612) | function has(object, path) { function hasIn (line 14642) | function hasIn(object, path) { function keys (line 14760) | function keys(object) { function keysIn (line 14787) | function keysIn(object) { function mapKeys (line 14812) | function mapKeys(object, iteratee) { function mapValues (line 14850) | function mapValues(object, iteratee) { function omitBy (line 14992) | function omitBy(object, predicate) { function pickBy (line 15035) | function pickBy(object, predicate) { function result (line 15077) | function result(object, path, defaultValue) { function set (line 15127) | function set(object, path, value) { function setWith (line 15155) | function setWith(object, path, value, customizer) { function transform (line 15242) | function transform(object, iteratee, accumulator) { function unset (line 15292) | function unset(object, path) { function update (line 15323) | function update(object, path, updater) { function updateWith (line 15351) | function updateWith(object, path, updater, customizer) { function values (line 15382) | function values(object) { function valuesIn (line 15410) | function valuesIn(object) { function clamp (line 15435) | function clamp(number, lower, upper) { function inRange (line 15489) | function inRange(number, start, end) { function random (line 15532) | function random(lower, upper, floating) { function capitalize (line 15613) | function capitalize(string) { function deburr (line 15635) | function deburr(string) { function endsWith (line 15663) | function endsWith(string, target, position) { function escape (line 15705) | function escape(string) { function escapeRegExp (line 15727) | function escapeRegExp(string) { function pad (line 15825) | function pad(string, length, chars) { function padEnd (line 15864) | function padEnd(string, length, chars) { function padStart (line 15897) | function padStart(string, length, chars) { function parseInt (line 15931) | function parseInt(string, radix, guard) { function repeat (line 15962) | function repeat(string, n, guard) { function replace (line 15990) | function replace() { function split (line 16041) | function split(string, separator, limit) { function startsWith (line 16110) | function startsWith(string, target, position) { function template (line 16224) | function template(string, options, guard) { function toLower (line 16356) | function toLower(value) { function toUpper (line 16381) | function toUpper(value) { function trim (line 16407) | function trim(string, chars, guard) { function trimEnd (line 16442) | function trimEnd(string, chars, guard) { function trimStart (line 16475) | function trimStart(string, chars, guard) { function truncate (line 16526) | function truncate(string, options) { function unescape (line 16601) | function unescape(string) { function words (line 16670) | function words(string, pattern, guard) { function cond (line 16775) | function cond(pairs) { function conforms (line 16821) | function conforms(source) { function constant (line 16844) | function constant(value) { function defaultTo (line 16870) | function defaultTo(value, defaultValue) { function identity (line 16937) | function identity(value) { function iteratee (line 16983) | function iteratee(func) { function matches (line 17022) | function matches(source) { function matchesProperty (line 17059) | function matchesProperty(path, srcValue) { function mixin (line 17158) | function mixin(object, source, options) { function noConflict (line 17207) | function noConflict() { function noop (line 17226) | function noop() { function nthArg (line 17250) | function nthArg(n) { function property (line 17362) | function property(path) { function propertyOf (line 17387) | function propertyOf(object) { function stubArray (line 17492) | function stubArray() { function stubFalse (line 17509) | function stubFalse() { function stubObject (line 17531) | function stubObject() { function stubString (line 17548) | function stubString() { function stubTrue (line 17565) | function stubTrue() { function times (line 17588) | function times(n, iteratee) { function toPath (line 17623) | function toPath(value) { function uniqueId (line 17647) | function uniqueId(prefix) { function max (line 17756) | function max(array) { function maxBy (line 17785) | function maxBy(array, iteratee) { function mean (line 17805) | function mean(array) { function meanBy (line 17832) | function meanBy(array, iteratee) { function min (line 17854) | function min(array) { function minBy (line 17883) | function minBy(array, iteratee) { function sum (line 17964) | function sum(array) { function sumBy (line 17993) | function sumBy(array, iteratee) { function drainQueue (line 18599) | function drainQueue() { function noop (line 18631) | function noop() {} function isHex (line 18701) | function isHex(str) { function isHexDigit (line 18705) | function isHexDigit(str) { function asyncTrigger (line 18712) | function asyncTrigger() { function Lexer (line 18756) | function Lexer(source) { function commentToken (line 19076) | function commentToken(label, body, opt) { function isNonAsciiIdentifierStart (line 19275) | function isNonAsciiIdentifierStart(code) { function isNonAsciiIdentifierPart (line 19279) | function isNonAsciiIdentifierPart(code) { function removeEscapeSequences (line 19361) | function removeEscapeSequences(id) { function isDecimalDigit (line 19430) | function isDecimalDigit(str) { function isOctalDigit (line 19434) | function isOctalDigit(str) { function isNonOctalDigit (line 19438) | function isNonOctalDigit(str) { function isBinaryDigit (line 19442) | function isBinaryDigit(str) { function isIdentifierStart (line 19446) | function isIdentifierStart(ch) { function NameStack (line 21260) | function NameStack() { function _newScope (line 22609) | function _newScope(type) { function warning (line 22632) | function warning(code, token) { function error (line 22640) | function error(code, token) { function _setupUsages (line 22648) | function _setupUsages(bindingName) { function _checkForUnused (line 22702) | function _checkForUnused() { function _getBinding (line 22754) | function _getBinding(bindingName) { function usedSoFarInCurrentFunction (line 22771) | function usedSoFarInCurrentFunction(bindingName) { function _checkOuterShadow (line 22784) | function _checkOuterShadow(bindingName, token) { function _latedefWarning (line 22810) | function _latedefWarning(type, bindingName, token) { function checkOption (line 25409) | function checkOption(name, isStable, t) { function isString (line 25436) | function isString(obj) { function isIdentifier (line 25440) | function isIdentifier(tkn, value) { function isReserved (line 25467) | function isReserved(context, token) { function supplant (line 25506) | function supplant(str, data) { function combine (line 25513) | function combine(dest, src) { function processenforceall (line 25520) | function processenforceall() { function applyOptions (line 25539) | function applyOptions() { function quit (line 25675) | function quit(code, token, a, b) { function removeIgnoredMessages (line 25696) | function removeIgnoredMessages() { function warning (line 25703) | function warning(code, t, a, b, c, d) { function warningAt (line 25751) | function warningAt(m, l, ch, a, b, c, d) { function error (line 25758) | function error(m, t, a, b, c, d) { function errorAt (line 25762) | function errorAt(m, l, ch, a, b, c, d) { function addEvalCode (line 25770) | function addEvalCode(elem, token) { function lintingDirective (line 25785) | function lintingDirective(directiveToken, previous) { function peek (line 26104) | function peek(p) { function peekIgnoreEOL (line 26135) | function peekIgnoreEOL() { function advance (line 26157) | function advance(expected, relatedToken) { function isOperator (line 26207) | function isOperator(token) { function isEndOfExpr (line 26211) | function isEndOfExpr(context, curr, next) { function expression (line 26263) | function expression(context, rbp) { function sameLine (line 26341) | function sameLine(first, second) { function nobreaknonadjacent (line 26345) | function nobreaknonadjacent(left, right) { function nolinebreak (line 26351) | function nolinebreak(t) { function checkComma (line 26372) | function checkComma(opts) { function symbol (line 26452) | function symbol(s, p) { function delim (line 26479) | function delim(s) { function stmt (line 26495) | function stmt(s, f) { function blockstmt (line 26515) | function blockstmt(s, f) { function reserveName (line 26527) | function reserveName(x) { function prefix (line 26546) | function prefix(s, f) { function type (line 26581) | function type(s, f) { function reserve (line 26601) | function reserve(name, func) { function FutureReservedWord (line 26624) | function FutureReservedWord(name, meta) { function infix (line 26652) | function infix(s, f, p, w) { function application (line 26683) | function application(s) { function relation (line 26707) | function relation(s, f) { function beginsUnaryExpression (line 26746) | function beginsUnaryExpression(token) { function isTypoTypeof (line 26782) | function isTypoTypeof(left, right, state) { function isGlobalEval (line 26816) | function isGlobalEval(left, state) { function findNativePrototype (line 26844) | function findNativePrototype(left) { function checkLeftSideAssign (line 26889) | function checkLeftSideAssign(context, left, assignToken, options) { function assignop (line 26964) | function assignop(s, f) { function bitwise (line 26993) | function bitwise(s, f, p) { function bitwiseassignop (line 27017) | function bitwiseassignop(s) { function suffix (line 27041) | function suffix(s) { function optionalidentifier (line 27071) | function optionalidentifier(context, isName, preserve) { function spreadrest (line 27099) | function spreadrest(operation) { function identifier (line 27129) | function identifier(context, isName) { function reachable (line 27153) | function reachable(controlToken) { function parseFinalSemicolon (line 27187) | function parseFinalSemicolon(stmt) { function statement (line 27220) | function statement(context) { function statements (line 27320) | function statements(context) { function directives (line 27343) | function directives() { function block (line 27397) | function block(context, ordinary, stmt, isfunc, isfatarrow, iscase) { function countMember (line 27552) | function countMember(m) { function classBody (line 28187) | function classBody(classToken, context) { function doMethod (line 28316) | function doMethod(classToken, context, name, generator) { function isTypicalCallExpression (line 28419) | function isTypicalCallExpression(token) { function peekThroughParens (line 28525) | function peekThroughParens(parens) { function comprehensiveArrayExpression (line 28720) | function comprehensiveArrayExpression(context) { function isMethod (line 28844) | function isMethod() { function propertyName (line 28857) | function propertyName(context) { function functionparams (line 28888) | function functionparams(context, options) { function functor (line 29007) | function functor(name, token, overwrites) { function hasParsedCode (line 29059) | function hasParsedCode(funct) { function doTemplateLiteral (line 29067) | function doTemplateLiteral(context, leftOrRbp) { function doFunction (line 29126) | function doFunction(context, options) { function createMetrics (line 29253) | function createMetrics(functionStartToken) { function increaseComplexityCount (line 29292) | function increaseComplexityCount() { function checkCondAssignment (line 29299) | function checkCondAssignment(token) { function checkProperties (line 29332) | function checkProperties(props) { function metaProperty (line 29344) | function metaProperty(context, name, c) { function destructuringPattern (line 29533) | function destructuringPattern(context, options) { function destructuringPatternRecursive (line 29546) | function destructuringPatternRecursive(context, options) { function destructuringPatternMatch (line 29711) | function destructuringPatternMatch(tokens, value) { function blockVariableStatement (line 29729) | function blockVariableStatement(type, statement, context) { function isMozillaLet (line 29873) | function isMozillaLet() { function catchParameter (line 30167) | function catchParameter() { function supportsSuper (line 31229) | function supportsSuper(type, funct) { function saveProperty (line 31354) | function saveProperty(props, name, tkn, isClass, isStatic, isComputed) { function saveAccessor (line 31388) | function saveAccessor(accessorType, props, name, tkn, isClass, isStatic) { function computedPropertyName (line 31433) | function computedPropertyName(context) { function checkPunctuators (line 31460) | function checkPunctuators(token, values) { function checkPunctuator (line 31478) | function checkPunctuator(token, value) { function destructuringAssignOrJsonValue (line 31483) | function destructuringAssignOrJsonValue(context) { function declare (line 31521) | function declare(v) { function use (line 31531) | function use(v) { function jsonValue (line 31615) | function jsonValue() { function lintEvalCode (line 31707) | function lintEvalCode(internals, options, globals) { function each (line 31753) | function each(obj, cb) { method isJSON (line 31836) | get isJSON() { FILE: web/assets/codemirror/jsonlint.js function o (line 1) | function o(a){d.length=d.length-2*a,e.length=e.length-a,f.length=f.lengt... function p (line 1) | function p(){var a;return a=c.lexer.lex()||1,typeof a!="number"&&(a=c.sy... FILE: web/assets/codemirror/lint/javascript-lint.js function validator (line 17) | function validator(text, options) { function parseErrors (line 34) | function parseErrors(errors, output) { FILE: web/assets/codemirror/lint/lint.js function showTooltip (line 16) | function showTooltip(cm, e, content) { function rm (line 37) | function rm(elt) { function hideTooltip (line 40) | function hideTooltip(tt) { function showTooltipFor (line 47) | function showTooltipFor(cm, e, content, node) { function LintState (line 64) | function LintState(cm, conf, hasGutter) { function clearMarks (line 96) | function clearMarks(cm) { function clearErrorLines (line 105) | function clearErrorLines(cm) { function makeMarker (line 112) | function makeMarker(cm, labels, severity, multiple, tooltips) { function getMaxSeverity (line 127) | function getMaxSeverity(a, b) { function groupByLine (line 132) | function groupByLine(annotations) { function annotationTooltip (line 141) | function annotationTooltip(ann) { function lintAsync (line 154) | function lintAsync(cm, getAnnotations) { function startLinting (line 170) | function startLinting(cm) { function updateLinting (line 192) | function updateLinting(cm, annotationsNotSorted) { function onChange (line 231) | function onChange(cm) { function popupTooltips (line 238) | function popupTooltips(cm, annotations, e) { function onMouseOver (line 248) | function onMouseOver(cm, e) { FILE: web/assets/js/model/dbinbound.js class DBInbound (line 1) | class DBInbound { method constructor (line 3) | constructor(data) { method totalGB (line 30) | get totalGB() { method totalGB (line 34) | set totalGB(gb) { method isVMess (line 38) | get isVMess() { method isVLess (line 42) | get isVLess() { method isTrojan (line 46) | get isTrojan() { method isSS (line 50) | get isSS() { method isMixed (line 54) | get isMixed() { method isHTTP (line 58) | get isHTTP() { method isWireguard (line 62) | get isWireguard() { method address (line 66) | get address() { method _expiryTime (line 74) | get _expiryTime() { method _expiryTime (line 81) | set _expiryTime(t) { method isExpiry (line 89) | get isExpiry() { method toInbound (line 93) | toInbound() { method isMultiUser (line 122) | isMultiUser() { method hasLink (line 135) | hasLink() { method genInboundLinks (line 147) | genInboundLinks(remarkModel) { FILE: web/assets/js/model/inbound.js constant TLS_FLOW_CONTROL (line 23) | const TLS_FLOW_CONTROL = { constant TLS_VERSION_OPTION (line 28) | const TLS_VERSION_OPTION = { constant TLS_CIPHER_OPTION (line 35) | const TLS_CIPHER_OPTION = { constant UTLS_FINGERPRINT (line 51) | const UTLS_FINGERPRINT = { constant ALPN_OPTION (line 66) | const ALPN_OPTION = { constant SNIFFING_OPTION (line 72) | const SNIFFING_OPTION = { constant USAGE_OPTION (line 79) | const USAGE_OPTION = { constant DOMAIN_STRATEGY_OPTION (line 85) | const DOMAIN_STRATEGY_OPTION = { constant TCP_CONGESTION_OPTION (line 99) | const TCP_CONGESTION_OPTION = { constant USERS_SECURITY (line 105) | const USERS_SECURITY = { constant MODE_OPTION (line 113) | const MODE_OPTION = { class XrayCommonClass (line 134) | class XrayCommonClass { method toJsonArray (line 136) | static toJsonArray(arr) { method fromJson (line 140) | static fromJson() { method toJson (line 144) | toJson() { method toString (line 148) | toString(format = true) { method toHeaders (line 152) | static toHeaders(v2Headers) { method toV2Headers (line 169) | static toV2Headers(headers, arr = true) { class TcpStreamSettings (line 191) | class TcpStreamSettings extends XrayCommonClass { method constructor (line 192) | constructor( method fromJson (line 205) | static fromJson(json = {}) { method toJson (line 217) | toJson() { method constructor (line 230) | constructor( method addPath (line 243) | addPath(path) { method removePath (line 247) | removePath(index) { method addHeader (line 251) | addHeader(name, value) { method removeHeader (line 255) | removeHeader(index) { method fromJson (line 259) | static fromJson(json = {}) { method toJson (line 268) | toJson() { method constructor (line 279) | constructor( method addHeader (line 292) | addHeader(name, value) { method removeHeader (line 296) | removeHeader(index) { method fromJson (line 300) | static fromJson(json = {}) { method toJson (line 309) | toJson() { class KcpStreamSettings (line 319) | class KcpStreamSettings extends XrayCommonClass { method constructor (line 320) | constructor( method fromJson (line 339) | static fromJson(json = {}) { method toJson (line 351) | toJson() { class WsStreamSettings (line 364) | class WsStreamSettings extends XrayCommonClass { method constructor (line 365) | constructor( method addHeader (line 380) | addHeader(name, value) { method removeHeader (line 384) | removeHeader(index) { method fromJson (line 388) | static fromJson(json = {}) { method toJson (line 398) | toJson() { class GrpcStreamSettings (line 409) | class GrpcStreamSettings extends XrayCommonClass { method constructor (line 410) | constructor( method fromJson (line 421) | static fromJson(json = {}) { method toJson (line 429) | toJson() { class HTTPUpgradeStreamSettings (line 438) | class HTTPUpgradeStreamSettings extends XrayCommonClass { method constructor (line 439) | constructor( method addHeader (line 452) | addHeader(name, value) { method removeHeader (line 456) | removeHeader(index) { method fromJson (line 460) | static fromJson(json = {}) { method toJson (line 469) | toJson() { class xHTTPStreamSettings (line 479) | class xHTTPStreamSettings extends XrayCommonClass { method constructor (line 480) | constructor( method addHeader (line 529) | addHeader(name, value) { method removeHeader (line 533) | removeHeader(index) { method fromJson (line 537) | static fromJson(json = {}) { method toJson (line 564) | toJson() { class TlsStreamSettings (line 592) | class TlsStreamSettings extends XrayCommonClass { method constructor (line 593) | constructor( method addCert (line 622) | addCert() { method removeCert (line 626) | removeCert(index) { method fromJson (line 630) | static fromJson(json = {}) { method toJson (line 656) | toJson() { method constructor (line 675) | constructor( method fromJson (line 696) | static fromJson(json = {}) { method toJson (line 718) | toJson() { method constructor (line 740) | constructor( method fromJson (line 748) | static fromJson(json = {}) { method toJson (line 754) | toJson() { class RealityStreamSettings (line 763) | class RealityStreamSettings extends XrayCommonClass { method constructor (line 764) | constructor( method fromJson (line 799) | static fromJson(json = {}) { method toJson (line 825) | toJson() { method constructor (line 843) | constructor( method fromJson (line 857) | static fromJson(json = {}) { method toJson (line 866) | toJson() { class SockoptStreamSettings (line 877) | class SockoptStreamSettings extends XrayCommonClass { method constructor (line 878) | constructor( method fromJson (line 917) | static fromJson(json = {}) { method toJson (line 940) | toJson() { class UdpMask (line 966) | class UdpMask extends XrayCommonClass { method constructor (line 967) | constructor(type = 'salamander', settings = {}) { method _getDefaultSettings (line 973) | _getDefaultSettings(type, settings = {}) { method fromJson (line 995) | static fromJson(json = {}) { method toJson (line 1002) | toJson() { class FinalMaskStreamSettings (line 1010) | class FinalMaskStreamSettings extends XrayCommonClass { method constructor (line 1011) | constructor(udp = []) { method fromJson (line 1016) | static fromJson(json = {}) { method toJson (line 1020) | toJson() { class StreamSettings (line 1028) | class StreamSettings extends XrayCommonClass { method constructor (line 1029) | constructor(network = 'tcp', method addUdpMask (line 1059) | addUdpMask(type = 'salamander') { method delUdpMask (line 1063) | delUdpMask(index) { method hasFinalMask (line 1069) | get hasFinalMask() { method isTls (line 1073) | get isTls() { method isTls (line 1077) | set isTls(isTls) { method isReality (line 1086) | get isReality() { method isReality (line 1090) | set isReality(isReality) { method sockoptSwitch (line 1098) | get sockoptSwitch() { method sockoptSwitch (line 1102) | set sockoptSwitch(value) { method fromJson (line 1106) | static fromJson(json = {}) { method toJson (line 1124) | toJson() { class Sniffing (line 1144) | class Sniffing extends XrayCommonClass { method constructor (line 1145) | constructor( method fromJson (line 1157) | static fromJson(json = {}) { class Inbound (line 1173) | class Inbound extends XrayCommonClass { method constructor (line 1174) | constructor( method getClientStats (line 1194) | getClientStats() { method clients (line 1198) | get clients() { method protocol (line 1208) | get protocol() { method protocol (line 1212) | set protocol(protocol) { method network (line 1220) | get network() { method network (line 1224) | set network(network) { method isTcp (line 1228) | get isTcp() { method isWs (line 1232) | get isWs() { method isKcp (line 1236) | get isKcp() { method isGrpc (line 1240) | get isGrpc() { method isHttpupgrade (line 1244) | get isHttpupgrade() { method isXHTTP (line 1248) | get isXHTTP() { method method (line 1253) | get method() { method isSSMultiUser (line 1261) | get isSSMultiUser() { method isSS2022 (line 1264) | get isSS2022() { method serverName (line 1268) | get serverName() { method getHeader (line 1274) | getHeader(obj, name) { method host (line 1283) | get host() { method path (line 1296) | get path() { method serviceName (line 1309) | get serviceName() { method isExpiry (line 1313) | isExpiry(index) { method canEnableTls (line 1318) | canEnableTls() { method canEnableTlsFlow (line 1324) | canEnableTlsFlow() { method canEnableVisionSeed (line 1332) | canEnableVisionSeed() { method canEnableReality (line 1339) | canEnableReality() { method canEnableStream (line 1344) | canEnableStream() { method reset (line 1348) | reset() { method genVmessLink (line 1358) | genVmessLink(address = '', port = this.port, forceTls, remark = '', cl... method genVLESSLink (line 1421) | genVLESSLink(address = '', port = this.port, forceTls, remark = '', cl... method genSSLink (line 1522) | genSSLink(address = '', port = this.port, forceTls, remark = '', clien... method genTrojanLink (line 1599) | genTrojanLink(address = '', port = this.port, forceTls, remark = '', c... method getWireguardLink (line 1692) | getWireguardLink(address, port, remark, peerId) { method genLink (line 1714) | genLink(address = '', port = this.port, forceTls = 'same', remark = ''... method genAllLinks (line 1728) | genAllLinks(remark = '', remarkModel = '-ieo', client) { method genInboundLinks (line 1759) | genInboundLinks(remark = '', remarkModel = '-ieo') { method fromJson (line 1782) | static fromJson(json = {}) { method toJson (line 1795) | toJson() { method constructor (line 1814) | constructor(protocol) { method getSettings (line 1819) | static getSettings(protocol) { method fromJson (line 1834) | static fromJson(protocol, json) { method toJson (line 1849) | toJson() { method constructor (line 1855) | constructor(protocol, method indexOfVmessById (line 1861) | indexOfVmessById(id) { method addVmess (line 1865) | addVmess(VMESS) { method delVmess (line 1872) | delVmess(VMESS) { method fromJson (line 1879) | static fromJson(json = {}) { method toJson (line 1886) | toJson() { method constructor (line 1894) | constructor( method fromJson (line 1925) | static fromJson(json = {}) { method _expiryTime (line 1942) | get _expiryTime() { method _expiryTime (line 1952) | set _expiryTime(t) { method _totalGB (line 1959) | get _totalGB() { method _totalGB (line 1963) | set _totalGB(gb) { method constructor (line 1970) | constructor( method addFallback (line 1988) | addFallback() { method delFallback (line 1992) | delFallback(index) { method fromJson (line 1996) | static fromJson(json = {}) { method toJson (line 2016) | toJson() { method constructor (line 2049) | constructor( method fromJson (line 2080) | static fromJson(json = {}) { method _expiryTime (line 2098) | get _expiryTime() { method _expiryTime (line 2108) | set _expiryTime(t) { method _totalGB (line 2115) | get _totalGB() { method _totalGB (line 2119) | set _totalGB(gb) { method constructor (line 2124) | constructor(name = "", alpn = '', path = '', dest = '', xver = 0) { method toJson (line 2133) | toJson() { method fromJson (line 2147) | static fromJson(json = []) { method constructor (line 2163) | constructor(protocol, method addFallback (line 2171) | addFallback() { method delFallback (line 2175) | delFallback(index) { method fromJson (line 2179) | static fromJson(json = {}) { method toJson (line 2186) | toJson() { method constructor (line 2195) | constructor( method toJson (line 2224) | toJson() { method fromJson (line 2241) | static fromJson(json = {}) { method _expiryTime (line 2258) | get _expiryTime() { method _expiryTime (line 2268) | set _expiryTime(t) { method _totalGB (line 2275) | get _totalGB() { method _totalGB (line 2279) | set _totalGB(gb) { method constructor (line 2286) | constructor(name = "", alpn = '', path = '', dest = '', xver = 0) { method toJson (line 2295) | toJson() { method fromJson (line 2309) | static fromJson(json = []) { method constructor (line 2325) | constructor(protocol, method fromJson (line 2340) | static fromJson(json = {}) { method toJson (line 2351) | toJson() { method constructor (line 2363) | constructor( method toJson (line 2394) | toJson() { method fromJson (line 2412) | static fromJson(json = {}) { method _expiryTime (line 2430) | get _expiryTime() { method _expiryTime (line 2440) | set _expiryTime(t) { method _totalGB (line 2447) | get _totalGB() { method _totalGB (line 2451) | set _totalGB(gb) { method constructor (line 2458) | constructor( method fromJson (line 2474) | static fromJson(json = {}) { method toJson (line 2485) | toJson() { method constructor (line 2497) | constructor(protocol, auth = 'password', accounts = [new Inbound.MixedSe... method addAccount (line 2505) | addAccount(account) { method delAccount (line 2509) | delAccount(index) { method fromJson (line 2513) | static fromJson(json = {}) { method toJson (line 2529) | toJson() { method constructor (line 2539) | constructor(user = RandomUtil.randomSeq(10), pass = RandomUtil.randomSeq... method fromJson (line 2545) | static fromJson(json = {}) { method constructor (line 2551) | constructor( method addAccount (line 2561) | addAccount(account) { method delAccount (line 2565) | delAccount(index) { method fromJson (line 2569) | static fromJson(json = {}) { method toJson (line 2577) | toJson() { method constructor (line 2586) | constructor(user = RandomUtil.randomSeq(10), pass = RandomUtil.randomSeq... method fromJson (line 2592) | static fromJson(json = {}) { method constructor (line 2598) | constructor( method addPeer (line 2613) | addPeer() { method delPeer (line 2617) | delPeer(index) { method fromJson (line 2621) | static fromJson(json = {}) { method toJson (line 2631) | toJson() { method constructor (line 2642) | constructor(privateKey, publicKey, psk = '', allowedIPs = ['10.0.0.2/32'... method fromJson (line 2657) | static fromJson(json = {}) { method toJson (line 2667) | toJson() { method constructor (line 2682) | constructor( method fromJson (line 2694) | static fromJson(json = {}) { method toJson (line 2703) | toJson() { FILE: web/assets/js/model/outbound.js constant TLS_FLOW_CONTROL (line 27) | const TLS_FLOW_CONTROL = { constant UTLS_FINGERPRINT (line 32) | const UTLS_FINGERPRINT = { constant ALPN_OPTION (line 47) | const ALPN_OPTION = { constant USERS_SECURITY (line 75) | const USERS_SECURITY = { constant MODE_OPTION (line 83) | const MODE_OPTION = { class CommonClass (line 111) | class CommonClass { method toJsonArray (line 113) | static toJsonArray(arr) { method fromJson (line 117) | static fromJson() { method toJson (line 121) | toJson() { method toString (line 125) | toString(format = true) { class TcpStreamSettings (line 130) | class TcpStreamSettings extends CommonClass { method constructor (line 131) | constructor(type = 'none', host, path) { method fromJson (line 138) | static fromJson(json = {}) { method toJson (line 151) | toJson() { class KcpStreamSettings (line 166) | class KcpStreamSettings extends CommonClass { method constructor (line 167) | constructor( method fromJson (line 186) | static fromJson(json = {}) { method toJson (line 198) | toJson() { class WsStreamSettings (line 211) | class WsStreamSettings extends CommonClass { method constructor (line 212) | constructor( method fromJson (line 224) | static fromJson(json = {}) { method toJson (line 232) | toJson() { class GrpcStreamSettings (line 241) | class GrpcStreamSettings extends CommonClass { method constructor (line 242) | constructor( method fromJson (line 253) | static fromJson(json = {}) { method toJson (line 257) | toJson() { class HttpUpgradeStreamSettings (line 266) | class HttpUpgradeStreamSettings extends CommonClass { method constructor (line 267) | constructor(path = '/', host = '') { method fromJson (line 273) | static fromJson(json = {}) { method toJson (line 280) | toJson() { class xHTTPStreamSettings (line 288) | class xHTTPStreamSettings extends CommonClass { method constructor (line 289) | constructor( method fromJson (line 313) | static fromJson(json = {}) { method toJson (line 324) | toJson() { class TlsStreamSettings (line 343) | class TlsStreamSettings extends CommonClass { method constructor (line 344) | constructor( method fromJson (line 361) | static fromJson(json = {}) { method toJson (line 372) | toJson() { class RealityStreamSettings (line 384) | class RealityStreamSettings extends CommonClass { method constructor (line 385) | constructor( method fromJson (line 401) | static fromJson(json = {}) { method toJson (line 411) | toJson() { class HysteriaStreamSettings (line 423) | class HysteriaStreamSettings extends CommonClass { method constructor (line 424) | constructor( method fromJson (line 459) | static fromJson(json = {}) { method toJson (line 493) | toJson() { class SockoptStreamSettings (line 518) | class SockoptStreamSettings extends CommonClass { method constructor (line 519) | constructor( method fromJson (line 538) | static fromJson(json = {}) { method toJson (line 551) | toJson() { class UdpMask (line 567) | class UdpMask extends CommonClass { method constructor (line 568) | constructor(type = 'salamander', settings = {}) { method _getDefaultSettings (line 574) | _getDefaultSettings(type, settings = {}) { method fromJson (line 594) | static fromJson(json = {}) { method toJson (line 601) | toJson() { class FinalMaskStreamSettings (line 609) | class FinalMaskStreamSettings extends CommonClass { method constructor (line 610) | constructor(udp = []) { method fromJson (line 615) | static fromJson(json = {}) { method toJson (line 619) | toJson() { class StreamSettings (line 627) | class StreamSettings extends CommonClass { method constructor (line 628) | constructor( method addUdpMask (line 659) | addUdpMask(type = 'salamander') { method delUdpMask (line 663) | delUdpMask(index) { method hasFinalMask (line 669) | get hasFinalMask() { method isTls (line 673) | get isTls() { method isReality (line 677) | get isReality() { method sockoptSwitch (line 681) | get sockoptSwitch() { method sockoptSwitch (line 685) | set sockoptSwitch(value) { method fromJson (line 689) | static fromJson(json = {}) { method toJson (line 707) | toJson() { class Mux (line 727) | class Mux extends CommonClass { method constructor (line 728) | constructor(enabled = false, concurrency = 8, xudpConcurrency = 16, xu... method fromJson (line 736) | static fromJson(json = {}) { method toJson (line 746) | toJson() { class Outbound (line 756) | class Outbound extends CommonClass { method constructor (line 757) | constructor( method protocol (line 774) | get protocol() { method protocol (line 778) | set protocol(protocol) { method canEnableTls (line 784) | canEnableTls() { method canEnableTlsFlow (line 791) | canEnableTlsFlow() { method canEnableVisionSeed (line 799) | canEnableVisionSeed() { method canEnableReality (line 805) | canEnableReality() { method canEnableStream (line 810) | canEnableStream() { method canEnableMux (line 814) | canEnableMux() { method hasServers (line 838) | hasServers() { method hasAddressPort (line 842) | hasAddressPort() { method hasUsername (line 855) | hasUsername() { method fromJson (line 859) | static fromJson(json = {}) { method toJson (line 870) | toJson() { method fromLink (line 890) | static fromLink(link) { method fromVmessLink (line 908) | static fromVmessLink(json = {}) { method fromParamLink (line 943) | static fromParamLink(link) { method fromHysteriaLink (line 1022) | static fromHysteriaLink(link) { method constructor (line 1088) | constructor(protocol) { method getSettings (line 1093) | static getSettings(protocol) { method fromJson (line 1110) | static fromJson(protocol, json) { method toJson (line 1127) | toJson() { method constructor (line 1132) | constructor( method addNoise (line 1145) | addNoise() { method delNoise (line 1149) | delNoise(index) { method fromJson (line 1153) | static fromJson(json = {}) { method toJson (line 1162) | toJson() { method constructor (line 1173) | constructor( method fromJson (line 1186) | static fromJson(json = {}) { method constructor (line 1197) | constructor( method fromJson (line 1210) | static fromJson(json = {}) { method toJson (line 1219) | toJson() { method constructor (line 1230) | constructor(type) { method fromJson (line 1235) | static fromJson(json = {}) { method toJson (line 1241) | toJson() { method constructor (line 1248) | constructor( method fromJson (line 1263) | static fromJson(json = {}) { method constructor (line 1274) | constructor(address, port, id, security) { method fromJson (line 1282) | static fromJson(json = {}) { method toJson (line 1295) | toJson() { method constructor (line 1309) | constructor(address, port, id, flow, encryption, testpre = 0, testseed =... method fromJson (line 1320) | static fromJson(json = {}) { method toJson (line 1333) | toJson() { method constructor (line 1354) | constructor(address, port, password) { method fromJson (line 1361) | static fromJson(json = {}) { method toJson (line 1370) | toJson() { method constructor (line 1381) | constructor(address, port, password, method, uot, UoTVersion) { method fromJson (line 1391) | static fromJson(json = {}) { method toJson (line 1404) | toJson() { method constructor (line 1419) | constructor(address, port, user, pass) { method fromJson (line 1427) | static fromJson(json = {}) { method toJson (line 1438) | toJson() { method constructor (line 1449) | constructor(address, port, user, pass) { method fromJson (line 1457) | static fromJson(json = {}) { method toJson (line 1468) | toJson() { method constructor (line 1480) | constructor( method addPeer (line 1502) | addPeer() { method delPeer (line 1506) | delPeer(index) { method fromJson (line 1510) | static fromJson(json = {}) { method toJson (line 1523) | toJson() { method constructor (line 1538) | constructor( method fromJson (line 1553) | static fromJson(json = {}) { method toJson (line 1563) | toJson() { method constructor (line 1575) | constructor(address = '', port = 443, version = 2) { method fromJson (line 1582) | static fromJson(json = {}) { method toJson (line 1591) | toJson() { FILE: web/assets/js/model/reality_targets.js constant REALITY_TARGETS (line 2) | const REALITY_TARGETS = [ function getRandomRealityTarget (line 19) | function getRandomRealityTarget() { FILE: web/assets/js/model/setting.js class AllSetting (line 1) | class AllSetting { method constructor (line 3) | constructor(data) { method equals (line 86) | equals(other) { FILE: web/assets/js/subscription.js function renderLink (line 30) | function renderLink(item) { function copy (line 41) | function copy(text) { function open (line 48) | function open(url) { function drawQR (line 52) | function drawQR(value) { function linkName (line 61) | function linkName(link, idx) { method mounted (line 97) | async mounted() { method beforeDestroy (line 112) | beforeDestroy() { method isMobile (line 116) | isMobile() { method isUnlimited (line 119) | isUnlimited() { method isActive (line 122) | isActive() { method shadowrocketUrl (line 128) | shadowrocketUrl() { method v2boxUrl (line 134) | v2boxUrl() { method streisandUrl (line 137) | streisandUrl() { method v2raytunUrl (line 140) | v2raytunUrl() { method npvtunUrl (line 143) | npvtunUrl() { method happUrl (line 146) | happUrl() { method i18nLabel (line 155) | i18nLabel(key) { FILE: web/assets/js/util/index.js class Msg (line 1) | class Msg { method constructor (line 2) | constructor(success = false, msg = "", obj = null) { class HttpUtil (line 9) | class HttpUtil { method _handleMsg (line 10) | static _handleMsg(msg) { method _respToMsg (line 18) | static _respToMsg(resp) { method get (line 32) | static async get(url, params, options = {}) { method post (line 46) | static async post(url, data, options = {}) { method postWithModal (line 60) | static async postWithModal(url, data, modal) { class PromiseUtil (line 75) | class PromiseUtil { method sleep (line 76) | static async sleep(timeout) { class RandomUtil (line 83) | class RandomUtil { method getSeq (line 84) | static getSeq({ type = "default", hasNumbers = true, hasLowercase = tr... method randomInteger (line 101) | static randomInteger(min, max) { method randomSeq (line 108) | static randomSeq(count, options = {}) { method randomShortIds (line 116) | static randomShortIds() { method randomLowerAndNum (line 122) | static randomLowerAndNum(len) { method randomUUID (line 126) | static randomUUID() { method randomShadowsocksPassword (line 141) | static randomShadowsocksPassword(method = SSMethods.BLAKE3_AES_256_GCM) { method randomBase32String (line 155) | static randomBase32String(length = 16) { class ObjectUtil (line 183) | class ObjectUtil { method getPropIgnoreCase (line 184) | static getPropIgnoreCase(obj, prop) { method deepSearch (line 196) | static deepSearch(obj, key) { method isEmpty (line 218) | static isEmpty(obj) { method isArrEmpty (line 222) | static isArrEmpty(arr) { method copyArr (line 226) | static copyArr(dest, src) { method clone (line 233) | static clone(obj) { method deepClone (line 249) | static deepClone(obj) { method cloneProps (line 267) | static cloneProps(dest, src, ...ignoreProps) { method delProps (line 297) | static delProps(obj, ...props) { method execute (line 305) | static execute(func, ...args) { method orDefault (line 311) | static orDefault(obj, defaultValue) { method equals (line 318) | static equals(a, b) { class Wireguard (line 331) | class Wireguard { method gf (line 332) | static gf(init) { method pack (line 341) | static pack(o, n) { method carry (line 365) | static carry(o) { method cswap (line 373) | static cswap(p, q, b) { method add (line 382) | static add(o, a, b) { method subtract (line 387) | static subtract(o, a, b) { method multmod (line 392) | static multmod(o, a, b) { method invert (line 406) | static invert(o, i) { method clamp (line 419) | static clamp(z) { method generatePublicKey (line 424) | static generatePublicKey(privateKey) { method generatePresharedKey (line 468) | static generatePresharedKey() { method generatePrivateKey (line 474) | static generatePrivateKey() { method encodeBase64 (line 480) | static encodeBase64(dest, src) { method keyToBase64 (line 490) | static keyToBase64(key) { method keyFromBase64 (line 499) | static keyFromBase64(encoded) { method generateKeypair (line 508) | static generateKeypair(secretKey = '') { class ClipboardManager (line 518) | class ClipboardManager { method copyText (line 519) | static copyText(content = "") { class Base64 (line 550) | class Base64 { method encode (line 551) | static encode(content = "", safe = false) { method alternativeEncode (line 564) | static alternativeEncode(content) { method decode (line 570) | static decode(content = "") { class SizeFormatter (line 578) | class SizeFormatter { method sizeFormat (line 585) | static sizeFormat(size) { class CPUFormatter (line 596) | class CPUFormatter { method cpuSpeedFormat (line 597) | static cpuSpeedFormat(speed) { method cpuCoreFormat (line 601) | static cpuCoreFormat(cores) { class TimeFormatter (line 606) | class TimeFormatter { method formatSecond (line 607) | static formatSecond(second) { class NumberFormatter (line 617) | class NumberFormatter { method addZero (line 618) | static addZero(num) { method toFixed (line 622) | static toFixed(num, n) { class Utils (line 628) | class Utils { method debounce (line 629) | static debounce(fn, delay) { class CookieManager (line 640) | class CookieManager { method getCookie (line 641) | static getCookie(cname) { method setCookie (line 653) | static setCookie(cname, cvalue, exdays) { class ColorUtils (line 661) | class ColorUtils { method usageColor (line 662) | static usageColor(data, threshold, total) { method clientUsageColor (line 673) | static clientUsageColor(clientStats, trafficDiff) { method userExpiryColor (line 682) | static userExpiryColor(threshold, client, isDark = false) { class ArrayUtils (line 696) | class ArrayUtils { method doAllItemsExist (line 697) | static doAllItemsExist(array1, array2) { class URLBuilder (line 702) | class URLBuilder { method buildURL (line 703) | static buildURL({ host, port, isTLS, base, path }) { class LanguageManager (line 720) | class LanguageManager { method getLanguage (line 789) | static getLanguage() { method setLanguage (line 830) | static setLanguage(language) { method isSupportLanguage (line 839) | static isSupportLanguage(language) { method data (line 849) | data() { method updateDeviceType (line 855) | updateDeviceType() { method mounted (line 859) | mounted() { method beforeDestroy (line 862) | beforeDestroy() { class FileManager (line 867) | class FileManager { method downloadTextFile (line 868) | static downloadTextFile(content, filename = 'file.txt', options = { ty... class IntlUtil (line 887) | class IntlUtil { method formatDate (line 888) | static formatDate(date) { method formatRelativeTime (line 907) | static formatRelativeTime(date) { FILE: web/assets/js/websocket.js class WebSocketClient (line 4) | class WebSocketClient { method constructor (line 5) | constructor(basePath = '') { method connect (line 16) | connect() { method handleMessage (line 88) | handleMessage(message) { method on (line 98) | on(event, callback) { method off (line 108) | off(event, callback) { method emit (line 119) | emit(event, ...args) { method disconnect (line 131) | disconnect() { method send (line 139) | send(data) { FILE: web/controller/api.go type APIController (line 13) | type APIController struct method checkAPIAuth (line 29) | func (a *APIController) checkAPIAuth(c *gin.Context) { method initRouter (line 38) | func (a *APIController) initRouter(g *gin.RouterGroup) { method BackuptoTgbot (line 56) | func (a *APIController) BackuptoTgbot(c *gin.Context) { function NewAPIController (line 21) | func NewAPIController(g *gin.RouterGroup) *APIController { FILE: web/controller/base.go type BaseController (line 16) | type BaseController struct method checkLogin (line 19) | func (a *BaseController) checkLogin(c *gin.Context) { function I18nWeb (line 33) | func I18nWeb(c *gin.Context, name string, params ...string) string { FILE: web/controller/inbound.go type InboundController (line 18) | type InboundController struct method initRouter (line 31) | func (a *InboundController) initRouter(g *gin.RouterGroup) { method getInbounds (line 58) | func (a *InboundController) getInbounds(c *gin.Context) { method getInbound (line 69) | func (a *InboundController) getInbound(c *gin.Context) { method getClientTraffics (line 84) | func (a *InboundController) getClientTraffics(c *gin.Context) { method getClientTrafficsById (line 95) | func (a *InboundController) getClientTrafficsById(c *gin.Context) { method addInbound (line 106) | func (a *InboundController) addInbound(c *gin.Context) { method delInbound (line 136) | func (a *InboundController) delInbound(c *gin.Context) { method updateInbound (line 158) | func (a *InboundController) updateInbound(c *gin.Context) { method getClientIps (line 188) | func (a *InboundController) getClientIps(c *gin.Context) { method clearClientIps (line 232) | func (a *InboundController) clearClientIps(c *gin.Context) { method addInboundClient (line 244) | func (a *InboundController) addInboundClient(c *gin.Context) { method delInboundClient (line 264) | func (a *InboundController) delInboundClient(c *gin.Context) { method updateInboundClient (line 284) | func (a *InboundController) updateInboundClient(c *gin.Context) { method resetClientTraffic (line 306) | func (a *InboundController) resetClientTraffic(c *gin.Context) { method resetAllTraffics (line 326) | func (a *InboundController) resetAllTraffics(c *gin.Context) { method resetAllClientTraffics (line 338) | func (a *InboundController) resetAllClientTraffics(c *gin.Context) { method importInbound (line 356) | func (a *InboundController) importInbound(c *gin.Context) { method delDepletedClients (line 386) | func (a *InboundController) delDepletedClients(c *gin.Context) { method onlines (line 401) | func (a *InboundController) onlines(c *gin.Context) { method lastOnline (line 406) | func (a *InboundController) lastOnline(c *gin.Context) { method updateClientTraffic (line 412) | func (a *InboundController) updateClientTraffic(c *gin.Context) { method delInboundClientByEmail (line 438) | func (a *InboundController) delInboundClientByEmail(c *gin.Context) { function NewInboundController (line 24) | func NewInboundController(g *gin.RouterGroup) *InboundController { FILE: web/controller/index.go type LoginForm (line 18) | type LoginForm struct type IndexController (line 25) | type IndexController struct method initRouter (line 41) | func (a *IndexController) initRouter(g *gin.RouterGroup) { method index (line 50) | func (a *IndexController) index(c *gin.Context) { method login (line 59) | func (a *IndexController) login(c *gin.Context) { method logout (line 115) | func (a *IndexController) logout(c *gin.Context) { method getTwoFactorEnable (line 128) | func (a *IndexController) getTwoFactorEnable(c *gin.Context) { function NewIndexController (line 34) | func NewIndexController(g *gin.RouterGroup) *IndexController { FILE: web/controller/server.go type ServerController (line 20) | type ServerController struct method initRouter (line 41) | func (a *ServerController) initRouter(g *gin.RouterGroup) { method refreshStatus (line 66) | func (a *ServerController) refreshStatus() { method startTask (line 77) | func (a *ServerController) startTask() { method status (line 88) | func (a *ServerController) status(c *gin.Context) { jsonObj(c, a.lastS... method getCpuHistoryBucket (line 91) | func (a *ServerController) getCpuHistoryBucket(c *gin.Context) { method getXrayVersion (line 115) | func (a *ServerController) getXrayVersion(c *gin.Context) { method installXray (line 135) | func (a *ServerController) installXray(c *gin.Context) { method updateGeofile (line 142) | func (a *ServerController) updateGeofile(c *gin.Context) { method stopXrayService (line 157) | func (a *ServerController) stopXrayService(c *gin.Context) { method restartXrayService (line 174) | func (a *ServerController) restartXrayService(c *gin.Context) { method getLogs (line 191) | func (a *ServerController) getLogs(c *gin.Context) { method getXrayLogs (line 200) | func (a *ServerController) getXrayLogs(c *gin.Context) { method getConfigJson (line 245) | func (a *ServerController) getConfigJson(c *gin.Context) { method getDb (line 255) | func (a *ServerController) getDb(c *gin.Context) { method importDB (line 283) | func (a *ServerController) importDB(c *gin.Context) { method getNewX25519Cert (line 304) | func (a *ServerController) getNewX25519Cert(c *gin.Context) { method getNewmldsa65 (line 314) | func (a *ServerController) getNewmldsa65(c *gin.Context) { method getNewEchCert (line 324) | func (a *ServerController) getNewEchCert(c *gin.Context) { method getNewVlessEnc (line 335) | func (a *ServerController) getNewVlessEnc(c *gin.Context) { method getNewUUID (line 345) | func (a *ServerController) getNewUUID(c *gin.Context) { method getNewmlkem768 (line 356) | func (a *ServerController) getNewmlkem768(c *gin.Context) { function NewServerController (line 33) | func NewServerController(g *gin.RouterGroup) *ServerController { function isValidFilename (line 277) | func isValidFilename(filename string) bool { FILE: web/controller/setting.go type updateUserForm (line 16) | type updateUserForm struct type SettingController (line 24) | type SettingController struct method initRouter (line 38) | func (a *SettingController) initRouter(g *gin.RouterGroup) { method getAllSetting (line 50) | func (a *SettingController) getAllSetting(c *gin.Context) { method getDefaultSettings (line 60) | func (a *SettingController) getDefaultSettings(c *gin.Context) { method updateSetting (line 70) | func (a *SettingController) updateSetting(c *gin.Context) { method updateUser (line 82) | func (a *SettingController) updateUser(c *gin.Context) { method restartPanel (line 108) | func (a *SettingController) restartPanel(c *gin.Context) { method getDefaultXrayConfig (line 114) | func (a *SettingController) getDefaultXrayConfig(c *gin.Context) { function NewSettingController (line 31) | func NewSettingController(g *gin.RouterGroup) *SettingController { FILE: web/controller/util.go function getRemoteIp (line 16) | func getRemoteIp(c *gin.Context) string { function jsonMsg (line 32) | func jsonMsg(c *gin.Context, msg string, err error) { function jsonObj (line 37) | func jsonObj(c *gin.Context, obj any, err error) { function jsonMsgObj (line 42) | func jsonMsgObj(c *gin.Context, msg string, obj any, err error) { function pureJsonMsg (line 60) | func pureJsonMsg(c *gin.Context, statusCode int, success bool, msg strin... function html (line 68) | func html(c *gin.Context, name string, title string, data gin.H) { function getContext (line 91) | func getContext(h gin.H) gin.H { function isAjax (line 102) | func isAjax(c *gin.Context) bool { FILE: web/controller/websocket.go constant writeWait (line 20) | writeWait = 10 * time.Second constant pongWait (line 23) | pongWait = 60 * time.Second constant pingPeriod (line 26) | pingPeriod = (pongWait * 9) / 10 constant maxMessageSize (line 29) | maxMessageSize = 512 type WebSocketController (line 69) | type WebSocketController struct method HandleWebSocket (line 82) | func (w *WebSocketController) HandleWebSocket(c *gin.Context) { method readPump (line 116) | func (w *WebSocketController) readPump(client *websocket.Client, conn ... method writePump (line 154) | func (w *WebSocketController) writePump(client *websocket.Client, conn... function NewWebSocketController (line 75) | func NewWebSocketController(hub *websocket.Hub) *WebSocketController { FILE: web/controller/xray_setting.go type XraySettingController (line 13) | type XraySettingController struct method initRouter (line 30) | func (a *XraySettingController) initRouter(g *gin.RouterGroup) { method getXraySetting (line 44) | func (a *XraySettingController) getXraySetting(c *gin.Context) { method updateSetting (line 73) | func (a *XraySettingController) updateSetting(c *gin.Context) { method getDefaultXrayConfig (line 88) | func (a *XraySettingController) getDefaultXrayConfig(c *gin.Context) { method getXrayResult (line 98) | func (a *XraySettingController) getXrayResult(c *gin.Context) { method warp (line 103) | func (a *XraySettingController) warp(c *gin.Context) { method getOutboundsTraffic (line 127) | func (a *XraySettingController) getOutboundsTraffic(c *gin.Context) { method resetOutboundsTraffic (line 137) | func (a *XraySettingController) resetOutboundsTraffic(c *gin.Context) { method testOutbound (line 149) | func (a *XraySettingController) testOutbound(c *gin.Context) { function NewXraySettingController (line 23) | func NewXraySettingController(g *gin.RouterGroup) *XraySettingController { FILE: web/controller/xui.go type XUIController (line 8) | type XUIController struct method initRouter (line 23) | func (a *XUIController) initRouter(g *gin.RouterGroup) { method index (line 37) | func (a *XUIController) index(c *gin.Context) { method inbounds (line 42) | func (a *XUIController) inbounds(c *gin.Context) { method settings (line 47) | func (a *XUIController) settings(c *gin.Context) { method xraySettings (line 52) | func (a *XUIController) xraySettings(c *gin.Context) { function NewXUIController (line 16) | func NewXUIController(g *gin.RouterGroup) *XUIController { FILE: web/entity/entity.go type Msg (line 15) | type Msg struct type AllSetting (line 22) | type AllSetting struct method CheckValid (line 110) | func (s *AllSetting) CheckValid() error { FILE: web/global/global.go type WebServer (line 17) | type WebServer interface type SubServer (line 24) | type SubServer interface function SetWebServer (line 29) | func SetWebServer(s WebServer) { function GetWebServer (line 34) | func GetWebServer() WebServer { function SetSubServer (line 39) | func SetSubServer(s SubServer) { function GetSubServer (line 44) | func GetSubServer() SubServer { FILE: web/global/hashStorage.go type HashEntry (line 12) | type HashEntry struct type HashStorage (line 19) | type HashStorage struct method SaveHash (line 34) | func (h *HashStorage) SaveHash(query string) string { method GetValue (line 53) | func (h *HashStorage) GetValue(hash string) (string, bool) { method IsMD5 (line 63) | func (h *HashStorage) IsMD5(hash string) bool { method RemoveExpiredHashes (line 69) | func (h *HashStorage) RemoveExpiredHashes() { method Reset (line 83) | func (h *HashStorage) Reset() { function NewHashStorage (line 26) | func NewHashStorage(expiration time.Duration) *HashStorage { FILE: web/job/check_client_ip_job.go type IPWithTimestamp (line 22) | type IPWithTimestamp struct type CheckClientIpJob (line 28) | type CheckClientIpJob struct method Run (line 41) | func (j *CheckClientIpJob) Run() { method clearAccessLog (line 74) | func (j *CheckClientIpJob) clearAccessLog() { method hasLimitIp (line 95) | func (j *CheckClientIpJob) hasLimitIp() bool { method processLogFile (line 124) | func (j *CheckClientIpJob) processLogFile() bool { method checkFail2BanInstalled (line 202) | func (j *CheckClientIpJob) checkFail2BanInstalled() bool { method checkAccessLogAvailable (line 209) | func (j *CheckClientIpJob) checkAccessLogAvailable(iplimitActive bool)... method checkError (line 225) | func (j *CheckClientIpJob) checkError(e error) { method getInboundClientIps (line 231) | func (j *CheckClientIpJob) getInboundClientIps(clientEmail string) (*m... method addInboundClientIps (line 241) | func (j *CheckClientIpJob) addInboundClientIps(clientEmail string, ips... method updateInboundClientIps (line 267) | func (j *CheckClientIpJob) updateInboundClientIps(inboundClientIps *mo... method getInboundByEmail (line 381) | func (j *CheckClientIpJob) getInboundByEmail(clientEmail string) (*mod... function NewCheckClientIpJob (line 36) | func NewCheckClientIpJob() *CheckClientIpJob { FILE: web/job/check_cpu_usage.go type CheckCpuJob (line 13) | type CheckCpuJob struct method Run (line 24) | func (j *CheckCpuJob) Run() { function NewCheckCpuJob (line 19) | func NewCheckCpuJob() *CheckCpuJob { FILE: web/job/check_hash_storage.go type CheckHashStorageJob (line 8) | type CheckHashStorageJob struct method Run (line 18) | func (j *CheckHashStorageJob) Run() { function NewCheckHashStorageJob (line 13) | func NewCheckHashStorageJob() *CheckHashStorageJob { FILE: web/job/check_xray_running_job.go type CheckXrayRunningJob (line 11) | type CheckXrayRunningJob struct method Run (line 22) | func (j *CheckXrayRunningJob) Run() { function NewCheckXrayRunningJob (line 17) | func NewCheckXrayRunningJob() *CheckXrayRunningJob { FILE: web/job/clear_logs_job.go type ClearLogsJob (line 13) | type ClearLogsJob struct method Run (line 36) | func (j *ClearLogsJob) Run() { function NewClearLogsJob (line 16) | func NewClearLogsJob() *ClearLogsJob { function ensureFileExists (line 21) | func ensureFileExists(path string) error { FILE: web/job/ldap_sync_job.go type LdapSyncJob (line 20) | type LdapSyncJob struct method Run (line 63) | func (j *LdapSyncJob) Run() { method buildClient (line 190) | func (j *LdapSyncJob) buildClient(ib *model.Inbound, email string, def... method batchSetEnable (line 210) | func (j *LdapSyncJob) batchSetEnable(ib *model.Inbound, emails []strin... method deleteClientsNotInLDAP (line 240) | func (j *LdapSyncJob) deleteClientsNotInLDAP(inboundTag string, ldapEm... method clientsToJSON (line 309) | func (j *LdapSyncJob) clientsToJSON(clients []model.Client) string { method clientToJSON (line 323) | func (j *LdapSyncJob) clientToJSON(c model.Client) string { function mustGetString (line 27) | func mustGetString(fn func() (string, error)) string { function mustGetInt (line 35) | func mustGetInt(fn func() (int, error)) int { function mustGetBool (line 43) | func mustGetBool(fn func() (bool, error)) bool { function mustGetStringOr (line 51) | func mustGetStringOr(fn func() (string, error), fallback string) string { function NewLdapSyncJob (line 59) | func NewLdapSyncJob() *LdapSyncJob { function splitCsv (line 174) | func splitCsv(s string) []string { FILE: web/job/periodic_traffic_reset_job.go type Period (line 9) | type Period type PeriodicTrafficResetJob (line 12) | type PeriodicTrafficResetJob struct method Run (line 25) | func (j *PeriodicTrafficResetJob) Run() { function NewPeriodicTrafficResetJob (line 18) | func NewPeriodicTrafficResetJob(period Period) *PeriodicTrafficResetJob { FILE: web/job/stats_notify_job.go type LoginStatus (line 8) | type LoginStatus constant LoginSuccess (line 11) | LoginSuccess LoginStatus = 1 constant LoginFail (line 12) | LoginFail LoginStatus = 0 type StatsNotifyJob (line 16) | type StatsNotifyJob struct method Run (line 27) | func (j *StatsNotifyJob) Run() { function NewStatsNotifyJob (line 22) | func NewStatsNotifyJob() *StatsNotifyJob { FILE: web/job/xray_traffic_job.go type XrayTrafficJob (line 15) | type XrayTrafficJob struct method Run (line 28) | func (j *XrayTrafficJob) Run() { method informTrafficToExternalAPI (line 93) | func (j *XrayTrafficJob) informTrafficToExternalAPI(inboundTraffics []... function NewXrayTrafficJob (line 23) | func NewXrayTrafficJob() *XrayTrafficJob { FILE: web/locale/locale.go type I18nType (line 26) | type I18nType constant Bot (line 29) | Bot I18nType = "bot" constant Web (line 30) | Web I18nType = "web" type SettingService (line 34) | type SettingService interface function InitLocalizer (line 39) | func InitLocalizer(i18nFS embed.FS, settingService SettingService) error { function createTemplateData (line 58) | func createTemplateData(params []string, separator ...string) map[string... function I18n (line 76) | func I18n(i18nType I18nType, key string, params ...string) string { function initTGBotLocalizer (line 109) | func initTGBotLocalizer(settingService SettingService) error { function LocalizerMiddleware (line 123) | func LocalizerMiddleware() gin.HandlerFunc { function loadTranslationsFromDisk (line 151) | func loadTranslationsFromDisk(bundle *i18n.Bundle) error { function parseTranslationFiles (line 170) | func parseTranslationFiles(i18nFS embed.FS, i18nBundle *i18n.Bundle) err... FILE: web/middleware/domainValidator.go function DomainValidatorMiddleware (line 17) | func DomainValidatorMiddleware(domain string) gin.HandlerFunc { FILE: web/middleware/redirect.go function RedirectMiddleware (line 13) | func RedirectMiddleware(basePath string) gin.HandlerFunc { FILE: web/network/auto_https_conn.go type AutoHttpsConn (line 17) | type AutoHttpsConn struct method readRequest (line 34) | func (c *AutoHttpsConn) readRequest() bool { method Read (line 62) | func (c *AutoHttpsConn) Read(buf []byte) (int, error) { function NewAutoHttpsConn (line 28) | func NewAutoHttpsConn(conn net.Conn) net.Conn { FILE: web/network/auto_https_listener.go type AutoHttpsListener (line 7) | type AutoHttpsListener struct method Accept (line 21) | func (l *AutoHttpsListener) Accept() (net.Conn, error) { function NewAutoHttpsListener (line 13) | func NewAutoHttpsListener(listener net.Listener) net.Listener { FILE: web/service/inbound.go type InboundService (line 25) | type InboundService struct method GetInbounds (line 31) | func (s *InboundService) GetInbounds(userId int) ([]*model.Inbound, er... method GetAllInbounds (line 62) | func (s *InboundService) GetAllInbounds() ([]*model.Inbound, error) { method GetInboundsByTrafficReset (line 90) | func (s *InboundService) GetInboundsByTrafficReset(period string) ([]*... method checkPortExist (line 100) | func (s *InboundService) checkPortExist(listen string, port int, ignor... method GetClients (line 130) | func (s *InboundService) GetClients(inbound *model.Inbound) ([]model.C... method getAllEmails (line 144) | func (s *InboundService) getAllEmails() ([]string, error) { method contains (line 158) | func (s *InboundService) contains(slice []string, str string) bool { method checkEmailsExistForClients (line 168) | func (s *InboundService) checkEmailsExistForClients(clients []model.Cl... method checkEmailExistForInbound (line 188) | func (s *InboundService) checkEmailExistForInbound(inbound *model.Inbo... method AddInbound (line 216) | func (s *InboundService) AddInbound(inbound *model.Inbound) (*model.In... method DelInbound (line 325) | func (s *InboundService) DelInbound(id int) (bool, error) { method GetInbound (line 368) | func (s *InboundService) GetInbound(id int) (*model.Inbound, error) { method UpdateInbound (line 381) | func (s *InboundService) UpdateInbound(inbound *model.Inbound) (*model... method updateClientTraffics (line 516) | func (s *InboundService) updateClientTraffics(tx *gorm.DB, oldInbound ... method AddInboundClient (line 561) | func (s *InboundService) AddInboundClient(data *model.Inbound) (bool, ... method DelInboundClient (line 679) | func (s *InboundService) DelInboundClient(inboundId int, clientId stri... method UpdateInboundClient (line 767) | func (s *InboundService) UpdateInboundClient(data *model.Inbound, clie... method AddTraffic (line 942) | func (s *InboundService) AddTraffic(inboundTraffics []*xray.Traffic, c... method addInboundTraffic (line 986) | func (s *InboundService) addInboundTraffic(tx *gorm.DB, traffics []*xr... method addClientTraffic (line 1009) | func (s *InboundService) addClientTraffic(tx *gorm.DB, traffics []*xra... method adjustTraffics (line 1068) | func (s *InboundService) adjustTraffics(tx *gorm.DB, dbClientTraffics ... method autoRenewClients (line 1126) | func (s *InboundService) autoRenewClients(tx *gorm.DB) (bool, int64, e... method disableInvalidInbounds (line 1222) | func (s *InboundService) disableInvalidInbounds(tx *gorm.DB) (bool, in... method disableInvalidClients (line 1256) | func (s *InboundService) disableInvalidClients(tx *gorm.DB) (bool, int... method GetInboundTags (line 1302) | func (s *InboundService) GetInboundTags() (string, error) { method MigrationRemoveOrphanedTraffics (line 1313) | func (s *InboundService) MigrationRemoveOrphanedTraffics() { method AddClientStat (line 1325) | func (s *InboundService) AddClientStat(tx *gorm.DB, inboundId int, cli... method UpdateClientStat (line 1340) | func (s *InboundService) UpdateClientStat(tx *gorm.DB, email string, c... method UpdateClientIPs (line 1354) | func (s *InboundService) UpdateClientIPs(tx *gorm.DB, oldEmail string,... method DelClientStat (line 1358) | func (s *InboundService) DelClientStat(tx *gorm.DB, email string) error { method DelClientIPs (line 1362) | func (s *InboundService) DelClientIPs(tx *gorm.DB, email string) error { method GetClientInboundByTrafficID (line 1366) | func (s *InboundService) GetClientInboundByTrafficID(trafficId int) (t... method GetClientInboundByEmail (line 1381) | func (s *InboundService) GetClientInboundByEmail(email string) (traffi... method GetClientByEmail (line 1396) | func (s *InboundService) GetClientByEmail(clientEmail string) (*xray.C... method SetClientTelegramUserID (line 1419) | func (s *InboundService) SetClientTelegramUserID(trafficId int, tgId i... method checkIsEnabledByEmail (line 1480) | func (s *InboundService) checkIsEnabledByEmail(clientEmail string) (bo... method ToggleClientEnableByEmail (line 1506) | func (s *InboundService) ToggleClientEnableByEmail(clientEmail string)... method SetClientEnableByEmail (line 1573) | func (s *InboundService) SetClientEnableByEmail(clientEmail string, en... method ResetClientIpLimitByEmail (line 1588) | func (s *InboundService) ResetClientIpLimitByEmail(clientEmail string,... method ResetClientExpiryTimeByEmail (line 1647) | func (s *InboundService) ResetClientExpiryTimeByEmail(clientEmail stri... method ResetClientTrafficLimitByEmail (line 1706) | func (s *InboundService) ResetClientTrafficLimitByEmail(clientEmail st... method ResetClientTrafficByEmail (line 1768) | func (s *InboundService) ResetClientTrafficByEmail(clientEmail string)... method ResetClientTraffic (line 1784) | func (s *InboundService) ResetClientTraffic(id int, clientEmail string... method ResetAllClientTraffics (line 1846) | func (s *InboundService) ResetAllClientTraffics(id int) error { method ResetAllTraffics (line 1883) | func (s *InboundService) ResetAllTraffics() error { method DelDepletedClients (line 1894) | func (s *InboundService) DelDepletedClients(id int) (err error) { method GetClientTrafficTgBot (line 1979) | func (s *InboundService) GetClientTrafficTgBot(tgId int64) ([]*xray.Cl... method GetClientTrafficByEmail (line 2027) | func (s *InboundService) GetClientTrafficByEmail(email string) (traffi... method UpdateClientTrafficByEmail (line 2042) | func (s *InboundService) UpdateClientTrafficByEmail(email string, uplo... method GetClientTrafficByID (line 2057) | func (s *InboundService) GetClientTrafficByID(id string) ([]xray.Clien... method SearchClientTraffic (line 2084) | func (s *InboundService) SearchClientTraffic(query string) (traffic *x... method GetInboundClientIps (line 2136) | func (s *InboundService) GetInboundClientIps(clientEmail string) (stri... method ClearClientIps (line 2183) | func (s *InboundService) ClearClientIps(clientEmail string) error { method SearchInbounds (line 2196) | func (s *InboundService) SearchInbounds(query string) ([]*model.Inboun... method MigrationRequirements (line 2206) | func (s *InboundService) MigrationRequirements() { method MigrateDB (line 2362) | func (s *InboundService) MigrateDB() { method GetOnlineClients (line 2367) | func (s *InboundService) GetOnlineClients() []string { method GetClientsLastOnline (line 2371) | func (s *InboundService) GetClientsLastOnline() (map[string]int64, err... method FilterAndSortClientEmails (line 2385) | func (s *InboundService) FilterAndSortClientEmails(emails []string) ([... method DelInboundClientByEmail (line 2418) | func (s *InboundService) DelInboundClientByEmail(inboundId int, email ... FILE: web/service/outbound.go type OutboundService (line 27) | type OutboundService struct method AddTraffic (line 32) | func (s *OutboundService) AddTraffic(traffics []*xray.Traffic, clientT... method addOutboundTraffic (line 53) | func (s *OutboundService) addOutboundTraffic(tx *gorm.DB, traffics []*... method GetOutboundsTraffic (line 85) | func (s *OutboundService) GetOutboundsTraffic() ([]*model.OutboundTraf... method ResetOutboundTraffic (line 98) | func (s *OutboundService) ResetOutboundTraffic(tag string) error { method TestOutbound (line 131) | func (s *OutboundService) TestOutbound(outboundJSON string, testURL st... method createTestConfig (line 261) | func (s *OutboundService) createTestConfig(outboundTag string, allOutb... method testConnection (line 335) | func (s *OutboundService) testConnection(proxyPort int, testURL string... type TestOutboundResult (line 121) | type TestOutboundResult struct function waitForPort (line 384) | func waitForPort(port int, timeout time.Duration) error { function findAvailablePort (line 398) | func findAvailablePort() (int, error) { function createTestConfigPath (line 411) | func createTestConfigPath() (string, error) { FILE: web/service/panel.go type PanelService (line 13) | type PanelService struct method RestartPanel (line 15) | func (s *PanelService) RestartPanel(delay time.Duration) error { FILE: web/service/server.go type ProcessState (line 40) | type ProcessState constant Running (line 44) | Running ProcessState = "running" constant Stop (line 45) | Stop ProcessState = "stop" constant Error (line 46) | Error ProcessState = "error" type Status (line 51) | type Status struct type Release (line 98) | type Release struct type ServerService (line 104) | type ServerService struct method AggregateCpuHistory (line 121) | func (s *ServerService) AggregateCpuHistory(bucketSeconds int, maxPoin... method GetStatus (line 228) | func (s *ServerService) GetStatus(lastStatus *Status) *Status { method AppendCpuSample (line 420) | func (s *ServerService) AppendCpuSample(t time.Time, v float64) { method sampleCPUUtilization (line 435) | func (s *ServerService) sampleCPUUtilization() (float64, error) { method GetXrayVersions (line 520) | func (s *ServerService) GetXrayVersions() ([]string, error) { method StopXrayService (line 577) | func (s *ServerService) StopXrayService() error { method RestartXrayService (line 586) | func (s *ServerService) RestartXrayService() error { method downloadXRay (line 595) | func (s *ServerService) downloadXRay(version string) (string, error) { method UpdateXray (line 646) | func (s *ServerService) UpdateXray(version string) error { method GetLogs (line 712) | func (s *ServerService) GetLogs(count string, level string, syslog str... method GetXrayLogs (line 759) | func (s *ServerService) GetXrayLogs( method GetConfigJson (line 865) | func (s *ServerService) GetConfigJson() (any, error) { method GetDb (line 884) | func (s *ServerService) GetDb() ([]byte, error) { method ImportDB (line 906) | func (s *ServerService) ImportDB(file multipart.File) error { method IsValidGeofileName (line 1031) | func (s *ServerService) IsValidGeofileName(filename string) bool { method UpdateGeofile (line 1058) | func (s *ServerService) UpdateGeofile(fileName string) error { method GetNewX25519Cert (line 1177) | func (s *ServerService) GetNewX25519Cert() (any, error) { method GetNewmldsa65 (line 1203) | func (s *ServerService) GetNewmldsa65() (any, error) { method GetNewEchCert (line 1229) | func (s *ServerService) GetNewEchCert(sni string) (any, error) { method GetNewVlessEnc (line 1253) | func (s *ServerService) GetNewVlessEnc() (any, error) { method GetNewUUID (line 1293) | func (s *ServerService) GetNewUUID() (map[string]string, error) { method GetNewmlkem768 (line 1304) | func (s *ServerService) GetNewmlkem768() (any, error) { type CPUSample (line 181) | type CPUSample struct type LogEntry (line 186) | type LogEntry struct function getPublicIP (line 196) | func getPublicIP(url string) string { function logEntryContains (line 856) | func logEntryContains(line string, suffixes []string) bool { FILE: web/service/setting.go type SettingService (line 109) | type SettingService struct method GetDefaultJSONConfig (line 111) | func (s *SettingService) GetDefaultJSONConfig() (any, error) { method GetAllSetting (line 120) | func (s *SettingService) GetAllSetting() (*entity.AllSetting, error) { method ResetSettings (line 195) | func (s *SettingService) ResetSettings() error { method getSetting (line 205) | func (s *SettingService) getSetting(key string) (*model.Setting, error) { method saveSetting (line 215) | func (s *SettingService) saveSetting(key string, value string) error { method getString (line 231) | func (s *SettingService) getString(key string) (string, error) { method setString (line 245) | func (s *SettingService) setString(key string, value string) error { method getBool (line 249) | func (s *SettingService) getBool(key string) (bool, error) { method setBool (line 257) | func (s *SettingService) setBool(key string, value bool) error { method getInt (line 261) | func (s *SettingService) getInt(key string) (int, error) { method setInt (line 269) | func (s *SettingService) setInt(key string, value int) error { method GetXrayConfigTemplate (line 273) | func (s *SettingService) GetXrayConfigTemplate() (string, error) { method GetXrayOutboundTestUrl (line 277) | func (s *SettingService) GetXrayOutboundTestUrl() (string, error) { method SetXrayOutboundTestUrl (line 281) | func (s *SettingService) SetXrayOutboundTestUrl(url string) error { method GetListen (line 285) | func (s *SettingService) GetListen() (string, error) { method SetListen (line 289) | func (s *SettingService) SetListen(ip string) error { method GetWebDomain (line 293) | func (s *SettingService) GetWebDomain() (string, error) { method GetTgBotToken (line 297) | func (s *SettingService) GetTgBotToken() (string, error) { method SetTgBotToken (line 301) | func (s *SettingService) SetTgBotToken(token string) error { method GetTgBotProxy (line 305) | func (s *SettingService) GetTgBotProxy() (string, error) { method SetTgBotProxy (line 309) | func (s *SettingService) SetTgBotProxy(token string) error { method GetTgBotAPIServer (line 313) | func (s *SettingService) GetTgBotAPIServer() (string, error) { method SetTgBotAPIServer (line 317) | func (s *SettingService) SetTgBotAPIServer(token string) error { method GetTgBotChatId (line 321) | func (s *SettingService) GetTgBotChatId() (string, error) { method SetTgBotChatId (line 325) | func (s *SettingService) SetTgBotChatId(chatIds string) error { method GetTgbotEnabled (line 329) | func (s *SettingService) GetTgbotEnabled() (bool, error) { method SetTgbotEnabled (line 333) | func (s *SettingService) SetTgbotEnabled(value bool) error { method GetTgbotRuntime (line 337) | func (s *SettingService) GetTgbotRuntime() (string, error) { method SetTgbotRuntime (line 341) | func (s *SettingService) SetTgbotRuntime(time string) error { method GetTgBotBackup (line 345) | func (s *SettingService) GetTgBotBackup() (bool, error) { method GetTgBotLoginNotify (line 349) | func (s *SettingService) GetTgBotLoginNotify() (bool, error) { method GetTgCpu (line 353) | func (s *SettingService) GetTgCpu() (int, error) { method GetTgLang (line 357) | func (s *SettingService) GetTgLang() (string, error) { method GetTwoFactorEnable (line 361) | func (s *SettingService) GetTwoFactorEnable() (bool, error) { method SetTwoFactorEnable (line 365) | func (s *SettingService) SetTwoFactorEnable(value bool) error { method GetTwoFactorToken (line 369) | func (s *SettingService) GetTwoFactorToken() (string, error) { method SetTwoFactorToken (line 373) | func (s *SettingService) SetTwoFactorToken(value string) error { method GetPort (line 377) | func (s *SettingService) GetPort() (int, error) { method SetPort (line 381) | func (s *SettingService) SetPort(port int) error { method SetCertFile (line 385) | func (s *SettingService) SetCertFile(webCertFile string) error { method GetCertFile (line 389) | func (s *SettingService) GetCertFile() (string, error) { method SetKeyFile (line 393) | func (s *SettingService) SetKeyFile(webKeyFile string) error { method GetKeyFile (line 397) | func (s *SettingService) GetKeyFile() (string, error) { method GetExpireDiff (line 401) | func (s *SettingService) GetExpireDiff() (int, error) { method GetTrafficDiff (line 405) | func (s *SettingService) GetTrafficDiff() (int, error) { method GetSessionMaxAge (line 409) | func (s *SettingService) GetSessionMaxAge() (int, error) { method GetRemarkModel (line 413) | func (s *SettingService) GetRemarkModel() (string, error) { method GetSecret (line 417) | func (s *SettingService) GetSecret() ([]byte, error) { method SetBasePath (line 428) | func (s *SettingService) SetBasePath(basePath string) error { method GetBasePath (line 438) | func (s *SettingService) GetBasePath() (string, error) { method GetTimeLocation (line 452) | func (s *SettingService) GetTimeLocation() (*time.Location, error) { method GetSubEnable (line 466) | func (s *SettingService) GetSubEnable() (bool, error) { method GetSubJsonEnable (line 470) | func (s *SettingService) GetSubJsonEnable() (bool, error) { method GetSubTitle (line 474) | func (s *SettingService) GetSubTitle() (string, error) { method GetSubSupportUrl (line 478) | func (s *SettingService) GetSubSupportUrl() (string, error) { method GetSubProfileUrl (line 482) | func (s *SettingService) GetSubProfileUrl() (string, error) { method GetSubAnnounce (line 486) | func (s *SettingService) GetSubAnnounce() (string, error) { method GetSubEnableRouting (line 490) | func (s *SettingService) GetSubEnableRouting() (bool, error) { method GetSubRoutingRules (line 494) | func (s *SettingService) GetSubRoutingRules() (string, error) { method GetSubListen (line 498) | func (s *SettingService) GetSubListen() (string, error) { method GetSubPort (line 502) | func (s *SettingService) GetSubPort() (int, error) { method GetSubPath (line 506) | func (s *SettingService) GetSubPath() (string, error) { method GetSubJsonPath (line 510) | func (s *SettingService) GetSubJsonPath() (string, error) { method GetSubDomain (line 514) | func (s *SettingService) GetSubDomain() (string, error) { method SetSubCertFile (line 518) | func (s *SettingService) SetSubCertFile(subCertFile string) error { method GetSubCertFile (line 522) | func (s *SettingService) GetSubCertFile() (string, error) { method SetSubKeyFile (line 526) | func (s *SettingService) SetSubKeyFile(subKeyFile string) error { method GetSubKeyFile (line 530) | func (s *SettingService) GetSubKeyFile() (string, error) { method GetSubUpdates (line 534) | func (s *SettingService) GetSubUpdates() (string, error) { method GetSubEncrypt (line 538) | func (s *SettingService) GetSubEncrypt() (bool, error) { method GetSubShowInfo (line 542) | func (s *SettingService) GetSubShowInfo() (bool, error) { method GetPageSize (line 546) | func (s *SettingService) GetPageSize() (int, error) { method GetSubURI (line 550) | func (s *SettingService) GetSubURI() (string, error) { method GetSubJsonURI (line 554) | func (s *SettingService) GetSubJsonURI() (string, error) { method GetSubJsonFragment (line 558) | func (s *SettingService) GetSubJsonFragment() (string, error) { method GetSubJsonNoises (line 562) | func (s *SettingService) GetSubJsonNoises() (string, error) { method GetSubJsonMux (line 566) | func (s *SettingService) GetSubJsonMux() (string, error) { method GetSubJsonRules (line 570) | func (s *SettingService) GetSubJsonRules() (string, error) { method GetDatepicker (line 574) | func (s *SettingService) GetDatepicker() (string, error) { method GetWarp (line 578) | func (s *SettingService) GetWarp() (string, error) { method SetWarp (line 582) | func (s *SettingService) SetWarp(data string) error { method GetExternalTrafficInformEnable (line 586) | func (s *SettingService) GetExternalTrafficInformEnable() (bool, error) { method SetExternalTrafficInformEnable (line 590) | func (s *SettingService) SetExternalTrafficInformEnable(value bool) er... method GetExternalTrafficInformURI (line 594) | func (s *SettingService) GetExternalTrafficInformURI() (string, error) { method SetExternalTrafficInformURI (line 598) | func (s *SettingService) SetExternalTrafficInformURI(InformURI string)... method GetIpLimitEnable (line 602) | func (s *SettingService) GetIpLimitEnable() (bool, error) { method GetLdapEnable (line 611) | func (s *SettingService) GetLdapEnable() (bool, error) { method GetLdapHost (line 615) | func (s *SettingService) GetLdapHost() (string, error) { method GetLdapPort (line 619) | func (s *SettingService) GetLdapPort() (int, error) { method GetLdapUseTLS (line 623) | func (s *SettingService) GetLdapUseTLS() (bool, error) { method GetLdapBindDN (line 627) | func (s *SettingService) GetLdapBindDN() (string, error) { method GetLdapPassword (line 631) | func (s *SettingService) GetLdapPassword() (string, error) { method GetLdapBaseDN (line 635) | func (s *SettingService) GetLdapBaseDN() (string, error) { method GetLdapUserFilter (line 639) | func (s *SettingService) GetLdapUserFilter() (string, error) { method GetLdapUserAttr (line 643) | func (s *SettingService) GetLdapUserAttr() (string, error) { method GetLdapVlessField (line 647) | func (s *SettingService) GetLdapVlessField() (string, error) { method GetLdapSyncCron (line 651) | func (s *SettingService) GetLdapSyncCron() (string, error) { method GetLdapFlagField (line 655) | func (s *SettingService) GetLdapFlagField() (string, error) { method GetLdapTruthyValues (line 659) | func (s *SettingService) GetLdapTruthyValues() (string, error) { method GetLdapInvertFlag (line 663) | func (s *SettingService) GetLdapInvertFlag() (bool, error) { method GetLdapInboundTags (line 667) | func (s *SettingService) GetLdapInboundTags() (string, error) { method GetLdapAutoCreate (line 671) | func (s *SettingService) GetLdapAutoCreate() (bool, error) { method GetLdapAutoDelete (line 675) | func (s *SettingService) GetLdapAutoDelete() (bool, error) { method GetLdapDefaultTotalGB (line 679) | func (s *SettingService) GetLdapDefaultTotalGB() (int, error) { method GetLdapDefaultExpiryDays (line 683) | func (s *SettingService) GetLdapDefaultExpiryDays() (int, error) { method GetLdapDefaultLimitIP (line 687) | func (s *SettingService) GetLdapDefaultLimitIP() (int, error) { method UpdateAllSetting (line 691) | func (s *SettingService) UpdateAllSetting(allSetting *entity.AllSettin... method GetDefaultXrayConfig (line 712) | func (s *SettingService) GetDefaultXrayConfig() (any, error) { method GetDefaultSettings (line 743) | func (s *SettingService) GetDefaultSettings(host string) (any, error) { function extractHostname (line 721) | func extractHostname(host string) string { FILE: web/service/tgbot.go type LoginStatus (line 98) | type LoginStatus constant LoginSuccess (line 102) | LoginSuccess LoginStatus = 1 constant LoginFail (line 103) | LoginFail LoginStatus = 0 constant EmptyTelegramUserID (line 104) | EmptyTelegramUserID = int64(0) type Tgbot (line 109) | type Tgbot struct method NewTgbot (line 118) | func (t *Tgbot) NewTgbot() *Tgbot { method I18nBot (line 123) | func (t *Tgbot) I18nBot(name string, params ...string) string { method GetHashStorage (line 128) | func (t *Tgbot) GetHashStorage() *global.HashStorage { method getCachedStatus (line 133) | func (t *Tgbot) getCachedStatus() (*Status, bool) { method setCachedStatus (line 144) | func (t *Tgbot) setCachedStatus(status *Status) { method getCachedServerStats (line 153) | func (t *Tgbot) getCachedServerStats() (string, bool) { method setCachedServerStats (line 164) | func (t *Tgbot) setCachedServerStats(stats string) { method Start (line 173) | func (t *Tgbot) Start(i18nFS embed.FS) error { method createRobustFastHTTPClient (line 278) | func (t *Tgbot) createRobustFastHTTPClient(proxyUrl string) *fasthttp.... method NewBot (line 308) | func (t *Tgbot) NewBot(token string, proxyUrl string, apiServerUrl str... method IsRunning (line 352) | func (t *Tgbot) IsRunning() bool { method SetHostname (line 359) | func (t *Tgbot) SetHostname() { method Stop (line 371) | func (t *Tgbot) Stop() { method encodeQuery (line 406) | func (t *Tgbot) encodeQuery(query string) string { method decodeQuery (line 416) | func (t *Tgbot) decodeQuery(query string) (string, error) { method OnReceive (line 430) | func (t *Tgbot) OnReceive() { method answerCommand (line 640) | func (t *Tgbot) answerCommand(message *telego.Message, chatId int64, i... method sendResponse (line 716) | func (t *Tgbot) sendResponse(chatId int64, msg string, onlyMessage, is... method randomLowerAndNum (line 725) | func (t *Tgbot) randomLowerAndNum(length int) string { method randomShadowSocksPassword (line 736) | func (t *Tgbot) randomShadowSocksPassword() string { method answerCallback (line 746) | func (t *Tgbot) answerCallback(callbackQuery *telego.CallbackQuery, is... method BuildInboundClientDataMessage (line 2033) | func (t *Tgbot) BuildInboundClientDataMessage(inbound_remark string, p... method BuildJSONForProtocol (line 2083) | func (t *Tgbot) BuildJSONForProtocol(protocol model.Protocol) (string,... method SubmitAddClient (line 2162) | func (t *Tgbot) SubmitAddClient() (bool, error) { method SendAnswer (line 2195) | func (t *Tgbot) SendAnswer(chatId int64, msg string, isAdmin bool) { method SendMsgToTgbot (line 2251) | func (t *Tgbot) SendMsgToTgbot(chatId int64, msg string, replyMarkup .... method buildSubscriptionURLs (line 2331) | func (t *Tgbot) buildSubscriptionURLs(email string) (string, string, e... method sendClientSubLinks (line 2419) | func (t *Tgbot) sendClientSubLinks(chatId int64, email string) { method sendClientIndividualLinks (line 2441) | func (t *Tgbot) sendClientIndividualLinks(chatId int64, email string) { method sendClientQRLinks (line 2523) | func (t *Tgbot) sendClientQRLinks(chatId int64, email string) { method SendMsgToTgbotAdmins (line 2618) | func (t *Tgbot) SendMsgToTgbotAdmins(msg string, replyMarkup ...telego... method SendReport (line 2631) | func (t *Tgbot) SendReport() { method SendBackupToAdmins (line 2653) | func (t *Tgbot) SendBackupToAdmins() { method sendExhaustedToAdmins (line 2667) | func (t *Tgbot) sendExhaustedToAdmins() { method getServerUsage (line 2677) | func (t *Tgbot) getServerUsage(chatId int64, messageID ...int) string { method sendServerUsage (line 2693) | func (t *Tgbot) sendServerUsage() string { method prepareServerUsageInfo (line 2699) | func (t *Tgbot) prepareServerUsageInfo() string { method UserLoginNotify (line 2763) | func (t *Tgbot) UserLoginNotify(username string, password string, ip s... method getInboundUsages (line 2795) | func (t *Tgbot) getInboundUsages() string { method getInbounds (line 2822) | func (t *Tgbot) getInbounds() (*telego.InlineKeyboardMarkup, error) { method getInboundsFor (line 2854) | func (t *Tgbot) getInboundsFor(nextAction string) (*telego.InlineKeybo... method getInboundClientsFor (line 2886) | func (t *Tgbot) getInboundClientsFor(inboundID int, action string) (*t... method getInboundsAddClient (line 2921) | func (t *Tgbot) getInboundsAddClient() (*telego.InlineKeyboardMarkup, ... method getInboundClients (line 2964) | func (t *Tgbot) getInboundClients(id int) (*telego.InlineKeyboardMarku... method clientInfoMsg (line 2999) | func (t *Tgbot) clientInfoMsg( method getClientUsage (line 3108) | func (t *Tgbot) getClientUsage(chatId int64, tgUserID int64, email ...... method searchClientIps (line 3151) | func (t *Tgbot) searchClientIps(chatId int64, email string, messageID ... method clientTelegramUserInfo (line 3211) | func (t *Tgbot) clientTelegramUserInfo(chatId int64, email string, mes... method searchClient (line 3264) | func (t *Tgbot) searchClient(chatId int64, email string, messageID ...... method getCommonClientButtons (line 3310) | func (t *Tgbot) getCommonClientButtons() [][]telego.InlineKeyboardButt... method addClient (line 3331) | func (t *Tgbot) addClient(chatId int64, msg string, messageID ...int) { method searchInbound (line 3377) | func (t *Tgbot) searchInbound(chatId int64, remark string) { method getExhausted (line 3415) | func (t *Tgbot) getExhausted(chatId int64) { method notifyExhausted (line 3512) | func (t *Tgbot) notifyExhausted() { method onlineClients (line 3594) | func (t *Tgbot) onlineClients(chatId int64, messageID ...int) { method sendBackup (line 3629) | func (t *Tgbot) sendBackup(chatId int64) { method sendBanLogs (line 3680) | func (t *Tgbot) sendBanLogs(chatId int64, dt bool) { method sendCallbackAnswerTgBot (line 3730) | func (t *Tgbot) sendCallbackAnswerTgBot(id string, message string) { method editMessageCallbackTgBot (line 3741) | func (t *Tgbot) editMessageCallbackTgBot(chatId int64, messageID int, ... method editMessageTgBot (line 3753) | func (t *Tgbot) editMessageTgBot(chatId int64, messageID int, text str... method SendMsgToTgbotDeleteAfter (line 3769) | func (t *Tgbot) SendMsgToTgbotDeleteAfter(chatId int64, msg string, de... method deleteMessageTgBot (line 3796) | func (t *Tgbot) deleteMessageTgBot(chatId int64, messageID int) { method isSingleWord (line 3809) | func (t *Tgbot) isSingleWord(text string) bool { function StopBot (line 381) | func StopBot() { function checkAdmin (line 2185) | func checkAdmin(tgId int64) bool { function int64Contains (line 3584) | func int64Contains(slice []int64, item int64) bool { FILE: web/service/user.go type UserService (line 17) | type UserService struct method GetFirstUser (line 23) | func (s *UserService) GetFirstUser() (*model.User, error) { method CheckUser (line 36) | func (s *UserService) CheckUser(username string, password string, twoF... method UpdateUser (line 105) | func (s *UserService) UpdateUser(id int, username string, password str... method UpdateFirstUser (line 129) | func (s *UserService) UpdateFirstUser(username string, password string... FILE: web/service/warp.go type WarpService (line 17) | type WarpService struct method GetWarpData (line 21) | func (s *WarpService) GetWarpData() (string, error) { method DelWarpData (line 29) | func (s *WarpService) DelWarpData() error { method GetWarpConfig (line 37) | func (s *WarpService) GetWarpConfig() (string, error) { method RegWarp (line 71) | func (s *WarpService) RegWarp(secretKey string, publicKey string) (str... method SetWarpLicense (line 122) | func (s *WarpService) SetWarpLicense(license string) (string, error) { FILE: web/service/xray.go type XrayService (line 25) | type XrayService struct method IsXrayRunning (line 32) | func (s *XrayService) IsXrayRunning() bool { method GetXrayErr (line 37) | func (s *XrayService) GetXrayErr() error { method GetXrayResult (line 57) | func (s *XrayService) GetXrayResult() string { method GetXrayVersion (line 80) | func (s *XrayService) GetXrayVersion() string { method GetXrayConfig (line 94) | func (s *XrayService) GetXrayConfig() (*xray.Config, error) { method GetXrayTraffic (line 198) | func (s *XrayService) GetXrayTraffic() ([]*xray.Traffic, []*xray.Clien... method RestartXray (line 217) | func (s *XrayService) RestartXray(isForce bool) error { method StopXray (line 247) | func (s *XrayService) StopXray() error { method SetToNeedRestart (line 259) | func (s *XrayService) SetToNeedRestart() { method IsNeedRestartAndSetFalse (line 264) | func (s *XrayService) IsNeedRestartAndSetFalse() bool { method DidXrayCrash (line 269) | func (s *XrayService) DidXrayCrash() bool { function RemoveIndex (line 89) | func RemoveIndex(s []any, index int) []any { FILE: web/service/xray_setting.go type XraySettingService (line 13) | type XraySettingService struct method SaveXraySetting (line 17) | func (s *XraySettingService) SaveXraySetting(newXraySettings string) e... method CheckXrayConfig (line 24) | func (s *XraySettingService) CheckXrayConfig(XrayTemplateConfig string... FILE: web/session/session.go constant loginUserKey (line 16) | loginUserKey = "LOGIN_USER" constant defaultPath (line 17) | defaultPath = "/" function init (line 20) | func init() { function SetLoginUser (line 26) | func SetLoginUser(c *gin.Context, user *model.User) { function SetMaxAge (line 36) | func SetMaxAge(c *gin.Context, maxAge int) { function GetLoginUser (line 48) | func GetLoginUser(c *gin.Context) *model.User { function IsLogin (line 65) | func IsLogin(c *gin.Context) bool { function ClearSession (line 71) | func ClearSession(c *gin.Context) { FILE: web/web.go type wrapAssetsFS (line 48) | type wrapAssetsFS struct method Open (line 52) | func (f *wrapAssetsFS) Open(name string) (fs.File, error) { type wrapAssetsFile (line 62) | type wrapAssetsFile struct method Stat (line 66) | func (f *wrapAssetsFile) Stat() (fs.FileInfo, error) { type wrapAssetsFileInfo (line 76) | type wrapAssetsFileInfo struct method ModTime (line 80) | func (f *wrapAssetsFileInfo) ModTime() time.Time { function EmbeddedHTML (line 85) | func EmbeddedHTML() embed.FS { function EmbeddedAssets (line 90) | func EmbeddedAssets() embed.FS { type Server (line 95) | type Server struct method getHtmlFiles (line 127) | func (s *Server) getHtmlFiles() ([]string, error) { method getHtmlTemplate (line 149) | func (s *Server) getHtmlTemplate(funcMap template.FuncMap) (*template.... method initRouter (line 174) | func (s *Server) initRouter() (*gin.Engine, error) { method startTask (line 297) | func (s *Server) startTask() { method Start (line 376) | func (s *Server) Start() (err error) { method Stop (line 455) | func (s *Server) Stop() error { method GetCtx (line 480) | func (s *Server) GetCtx() context.Context { method GetCron (line 485) | func (s *Server) GetCron() *cron.Cron { method GetWSHub (line 490) | func (s *Server) GetWSHub() any { method RestartXray (line 494) | func (s *Server) RestartXray() error { function NewServer (line 117) | func NewServer() *Server { FILE: web/websocket/hub.go type MessageType (line 15) | type MessageType constant MessageTypeStatus (line 18) | MessageTypeStatus MessageType = "status" constant MessageTypeTraffic (line 19) | MessageTypeTraffic MessageType = "traffic" constant MessageTypeInbounds (line 20) | MessageTypeInbounds MessageType = "inbounds" constant MessageTypeNotification (line 21) | MessageTypeNotification MessageType = "notification" constant MessageTypeXrayState (line 22) | MessageTypeXrayState MessageType = "xray_state" constant MessageTypeOutbounds (line 23) | MessageTypeOutbounds MessageType = "outbounds" type Message (line 27) | type Message struct type Client (line 34) | type Client struct type Hub (line 42) | type Hub struct method Run (line 92) | func (h *Hub) Run() { method broadcastParallel (line 185) | func (h *Hub) broadcastParallel(clients []*Client, message []byte) { method Broadcast (line 253) | func (h *Hub) Broadcast(messageType MessageType, payload any) { method BroadcastToTopic (line 292) | func (h *Hub) BroadcastToTopic(messageType MessageType, payload any) { method GetClientCount (line 337) | func (h *Hub) GetClientCount() int { method Register (line 344) | func (h *Hub) Register(client *Client) { method Unregister (line 356) | func (h *Hub) Unregister(client *Client) { method Stop (line 368) | func (h *Hub) Stop() { function NewHub (line 68) | func NewHub() *Hub { function getCurrentTimestamp (line 378) | func getCurrentTimestamp() int64 { FILE: web/websocket/notifier.go function GetHub (line 10) | func GetHub() *Hub { function BroadcastStatus (line 28) | func BroadcastStatus(status any) { function BroadcastTraffic (line 36) | func BroadcastTraffic(traffic any) { function BroadcastInbounds (line 44) | func BroadcastInbounds(inbounds any) { function BroadcastOutbounds (line 52) | func BroadcastOutbounds(outbounds any) { function BroadcastNotification (line 60) | func BroadcastNotification(title, message, level string) { function BroadcastXrayState (line 73) | func BroadcastXrayState(state string, errorMsg string) { FILE: xray/api.go type XrayAPI (line 32) | type XrayAPI struct method Init (line 40) | func (x *XrayAPI) Init(apiPort int) error { method Close (line 64) | func (x *XrayAPI) Close() { method AddInbound (line 74) | func (x *XrayAPI) AddInbound(inbound []byte) error { method DelInbound (line 96) | func (x *XrayAPI) DelInbound(tag string) error { method AddUser (line 105) | func (x *XrayAPI) AddUser(Protocol string, inboundTag string, user map... method RemoveUser (line 189) | func (x *XrayAPI) RemoveUser(inboundTag, email string) error { method GetTraffic (line 208) | func (x *XrayAPI) GetTraffic(reset bool) ([]*Traffic, []*ClientTraffic... function processTraffic (line 243) | func processTraffic(matches []string, value int64, trafficMap map[string... function processClientTraffic (line 270) | func processClientTraffic(matches []string, value int64, clientTrafficMa... function mapToSlice (line 288) | func mapToSlice[T any](m map[string]*T) []*T { FILE: xray/client_traffic.go type ClientTraffic (line 5) | type ClientTraffic struct FILE: xray/config.go type Config (line 11) | type Config struct method Equals (line 29) | func (c *Config) Equals(other *Config) bool { FILE: xray/inbound.go type InboundConfig (line 11) | type InboundConfig struct method Equals (line 22) | func (c *InboundConfig) Equals(other *InboundConfig) bool { FILE: xray/log_writer.go function NewLogWriter (line 12) | func NewLogWriter() *LogWriter { type LogWriter (line 17) | type LogWriter struct method Write (line 22) | func (lw *LogWriter) Write(m []byte) (n int, err error) { FILE: xray/process.go function GetBinaryName (line 22) | func GetBinaryName() string { function GetBinaryPath (line 27) | func GetBinaryPath() string { function GetConfigPath (line 32) | func GetConfigPath() string { function GetGeositePath (line 37) | func GetGeositePath() string { function GetGeoipPath (line 42) | func GetGeoipPath() string { function GetIPLimitLogPath (line 47) | func GetIPLimitLogPath() string { function GetIPLimitBannedLogPath (line 52) | func GetIPLimitBannedLogPath() string { function GetIPLimitBannedPrevLogPath (line 57) | func GetIPLimitBannedPrevLogPath() string { function GetAccessPersistentLogPath (line 62) | func GetAccessPersistentLogPath() string { function GetAccessPersistentPrevLogPath (line 67) | func GetAccessPersistentPrevLogPath() string { function GetAccessLogPath (line 72) | func GetAccessLogPath() (string, error) { function stopProcess (line 97) | func stopProcess(p *Process) { type Process (line 102) | type Process struct method GetAPIPort (line 184) | func (p *Process) GetAPIPort() int { method GetConfig (line 189) | func (p *Process) GetConfig() *Config { method GetOnlineClients (line 194) | func (p *Process) GetOnlineClients() []string { method SetOnlineClients (line 199) | func (p *Process) SetOnlineClients(users []string) { method GetUptime (line 204) | func (p *Process) GetUptime() uint64 { function NewProcess (line 107) | func NewProcess(xrayConfig *Config) *Process { function NewTestProcess (line 116) | func NewTestProcess(xrayConfig *Config, configPath string) *Process { type process (line 122) | type process struct method IsRunning (line 155) | func (p *process) IsRunning() bool { method GetErr (line 166) | func (p *process) GetErr() error { method GetResult (line 171) | func (p *process) GetResult() string { method GetVersion (line 179) | func (p *process) GetVersion() string { method refreshAPIPort (line 209) | func (p *process) refreshAPIPort() { method refreshVersion (line 219) | func (p *process) refreshVersion() { method Start (line 235) | func (p *process) Start() (err error) { method Stop (line 296) | func (p *process) Stop() error { function newProcess (line 138) | func newProcess(config *Config) *process { function newTestProcess (line 148) | func newTestProcess(config *Config, configPath string) *process { function writeCrashReport (line 319) | func writeCrashReport(m []byte) error { FILE: xray/traffic.go type Traffic (line 5) | type Traffic struct