@kissesses/xtls-sdk 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. package/LICENCE +661 -0
  2. package/README.md +217 -0
  3. package/build/index.d.ts +17 -0
  4. package/build/index.d.ts.map +1 -0
  5. package/build/index.js +19 -0
  6. package/build/src/common/errors/handler/handler.errors.d.ts +23 -0
  7. package/build/src/common/errors/handler/handler.errors.d.ts.map +1 -0
  8. package/build/src/common/errors/handler/handler.errors.js +22 -0
  9. package/build/src/common/errors/handler/index.d.ts +2 -0
  10. package/build/src/common/errors/handler/index.d.ts.map +1 -0
  11. package/build/src/common/errors/handler/index.js +17 -0
  12. package/build/src/common/errors/index.d.ts +3 -0
  13. package/build/src/common/errors/index.d.ts.map +1 -0
  14. package/build/src/common/errors/index.js +18 -0
  15. package/build/src/common/errors/router/index.d.ts +2 -0
  16. package/build/src/common/errors/router/index.d.ts.map +1 -0
  17. package/build/src/common/errors/router/index.js +17 -0
  18. package/build/src/common/errors/router/router.errors.d.ts +15 -0
  19. package/build/src/common/errors/router/router.errors.d.ts.map +1 -0
  20. package/build/src/common/errors/router/router.errors.js +14 -0
  21. package/build/src/common/errors/stats/index.d.ts +2 -0
  22. package/build/src/common/errors/stats/index.d.ts.map +1 -0
  23. package/build/src/common/errors/stats/index.js +17 -0
  24. package/build/src/common/errors/stats/stats.errors.d.ts +43 -0
  25. package/build/src/common/errors/stats/stats.errors.d.ts.map +1 -0
  26. package/build/src/common/errors/stats/stats.errors.js +42 -0
  27. package/build/src/common/types/index.d.ts +2 -0
  28. package/build/src/common/types/index.d.ts.map +1 -0
  29. package/build/src/common/types/index.js +17 -0
  30. package/build/src/common/types/sdk-response.d.ts +6 -0
  31. package/build/src/common/types/sdk-response.d.ts.map +1 -0
  32. package/build/src/common/types/sdk-response.js +2 -0
  33. package/build/src/common/utils/create-typed-message/create-typed-message.d.ts +5 -0
  34. package/build/src/common/utils/create-typed-message/create-typed-message.d.ts.map +1 -0
  35. package/build/src/common/utils/create-typed-message/create-typed-message.js +10 -0
  36. package/build/src/common/utils/decode-user/constants/account-types.d.ts +39 -0
  37. package/build/src/common/utils/decode-user/constants/account-types.d.ts.map +1 -0
  38. package/build/src/common/utils/decode-user/constants/account-types.js +65 -0
  39. package/build/src/common/utils/decode-user/constants/index.d.ts +2 -0
  40. package/build/src/common/utils/decode-user/constants/index.d.ts.map +1 -0
  41. package/build/src/common/utils/decode-user/constants/index.js +17 -0
  42. package/build/src/common/utils/decode-user/decode-user.d.ts +37 -0
  43. package/build/src/common/utils/decode-user/decode-user.d.ts.map +1 -0
  44. package/build/src/common/utils/decode-user/decode-user.js +55 -0
  45. package/build/src/common/utils/decode-user/types/account-type-keys.type.d.ts +3 -0
  46. package/build/src/common/utils/decode-user/types/account-type-keys.type.d.ts.map +1 -0
  47. package/build/src/common/utils/decode-user/types/account-type-keys.type.js +2 -0
  48. package/build/src/common/utils/decode-user/types/account-type-mapping.type.d.ts +4 -0
  49. package/build/src/common/utils/decode-user/types/account-type-mapping.type.d.ts.map +1 -0
  50. package/build/src/common/utils/decode-user/types/account-type-mapping.type.js +2 -0
  51. package/build/src/common/utils/decode-user/types/decoded-user.type.d.ts +18 -0
  52. package/build/src/common/utils/decode-user/types/decoded-user.type.d.ts.map +1 -0
  53. package/build/src/common/utils/decode-user/types/decoded-user.type.js +2 -0
  54. package/build/src/common/utils/decode-user/types/index.d.ts +4 -0
  55. package/build/src/common/utils/decode-user/types/index.d.ts.map +1 -0
  56. package/build/src/common/utils/decode-user/types/index.js +19 -0
  57. package/build/src/handler/handler.service.d.ts +155 -0
  58. package/build/src/handler/handler.service.d.ts.map +1 -0
  59. package/build/src/handler/handler.service.js +523 -0
  60. package/build/src/handler/interfaces/add-user/add-http-user.interface.d.ts +8 -0
  61. package/build/src/handler/interfaces/add-user/add-http-user.interface.d.ts.map +1 -0
  62. package/build/src/handler/interfaces/add-user/add-http-user.interface.js +2 -0
  63. package/build/src/handler/interfaces/add-user/add-hysteria-user.interface.d.ts +7 -0
  64. package/build/src/handler/interfaces/add-user/add-hysteria-user.interface.d.ts.map +1 -0
  65. package/build/src/handler/interfaces/add-user/add-hysteria-user.interface.js +2 -0
  66. package/build/src/handler/interfaces/add-user/add-shadowsocks-user.interface.d.ts +10 -0
  67. package/build/src/handler/interfaces/add-user/add-shadowsocks-user.interface.d.ts.map +1 -0
  68. package/build/src/handler/interfaces/add-user/add-shadowsocks-user.interface.js +2 -0
  69. package/build/src/handler/interfaces/add-user/add-shadowsocks2022-user.interface.d.ts +7 -0
  70. package/build/src/handler/interfaces/add-user/add-shadowsocks2022-user.interface.d.ts.map +1 -0
  71. package/build/src/handler/interfaces/add-user/add-shadowsocks2022-user.interface.js +2 -0
  72. package/build/src/handler/interfaces/add-user/add-socks-user.interface.d.ts +8 -0
  73. package/build/src/handler/interfaces/add-user/add-socks-user.interface.d.ts.map +1 -0
  74. package/build/src/handler/interfaces/add-user/add-socks-user.interface.js +2 -0
  75. package/build/src/handler/interfaces/add-user/add-trojan-user.interface.d.ts +7 -0
  76. package/build/src/handler/interfaces/add-user/add-trojan-user.interface.d.ts.map +1 -0
  77. package/build/src/handler/interfaces/add-user/add-trojan-user.interface.js +2 -0
  78. package/build/src/handler/interfaces/add-user/add-vless-user.interface.d.ts +8 -0
  79. package/build/src/handler/interfaces/add-user/add-vless-user.interface.d.ts.map +1 -0
  80. package/build/src/handler/interfaces/add-user/add-vless-user.interface.js +2 -0
  81. package/build/src/handler/interfaces/add-user/add-wireguard-user.interface.d.ts +8 -0
  82. package/build/src/handler/interfaces/add-user/add-wireguard-user.interface.d.ts.map +1 -0
  83. package/build/src/handler/interfaces/add-user/add-wireguard-user.interface.js +2 -0
  84. package/build/src/handler/interfaces/add-user/index.d.ts +9 -0
  85. package/build/src/handler/interfaces/add-user/index.d.ts.map +1 -0
  86. package/build/src/handler/interfaces/add-user/index.js +24 -0
  87. package/build/src/handler/interfaces/index.d.ts +2 -0
  88. package/build/src/handler/interfaces/index.d.ts.map +1 -0
  89. package/build/src/handler/interfaces/index.js +17 -0
  90. package/build/src/handler/models/add-user/add-user.response.model.d.ts +5 -0
  91. package/build/src/handler/models/add-user/add-user.response.model.d.ts.map +1 -0
  92. package/build/src/handler/models/add-user/add-user.response.model.js +9 -0
  93. package/build/src/handler/models/add-user/index.d.ts +2 -0
  94. package/build/src/handler/models/add-user/index.d.ts.map +1 -0
  95. package/build/src/handler/models/add-user/index.js +17 -0
  96. package/build/src/handler/models/get-inbound-users/get-inbound-users.response.model.d.ts +7 -0
  97. package/build/src/handler/models/get-inbound-users/get-inbound-users.response.model.d.ts.map +1 -0
  98. package/build/src/handler/models/get-inbound-users/get-inbound-users.response.model.js +10 -0
  99. package/build/src/handler/models/get-inbound-users/index.d.ts +2 -0
  100. package/build/src/handler/models/get-inbound-users/index.d.ts.map +1 -0
  101. package/build/src/handler/models/get-inbound-users/index.js +17 -0
  102. package/build/src/handler/models/index.d.ts +4 -0
  103. package/build/src/handler/models/index.d.ts.map +1 -0
  104. package/build/src/handler/models/index.js +19 -0
  105. package/build/src/handler/models/remove-user/index.d.ts +2 -0
  106. package/build/src/handler/models/remove-user/index.d.ts.map +1 -0
  107. package/build/src/handler/models/remove-user/index.js +17 -0
  108. package/build/src/handler/models/remove-user/remove-user.response.model.d.ts +5 -0
  109. package/build/src/handler/models/remove-user/remove-user.response.model.d.ts.map +1 -0
  110. package/build/src/handler/models/remove-user/remove-user.response.model.js +9 -0
  111. package/build/src/router/interfaces/index.d.ts +2 -0
  112. package/build/src/router/interfaces/index.d.ts.map +1 -0
  113. package/build/src/router/interfaces/index.js +17 -0
  114. package/build/src/router/interfaces/remove-rule-by-rule-tag.interface.d.ts +4 -0
  115. package/build/src/router/interfaces/remove-rule-by-rule-tag.interface.d.ts.map +1 -0
  116. package/build/src/router/interfaces/remove-rule-by-rule-tag.interface.js +2 -0
  117. package/build/src/router/models/index.d.ts +2 -0
  118. package/build/src/router/models/index.d.ts.map +1 -0
  119. package/build/src/router/models/index.js +17 -0
  120. package/build/src/router/models/remove-rule-by-rule-tag/index.d.ts +2 -0
  121. package/build/src/router/models/remove-rule-by-rule-tag/index.d.ts.map +1 -0
  122. package/build/src/router/models/remove-rule-by-rule-tag/index.js +17 -0
  123. package/build/src/router/models/remove-rule-by-rule-tag/remove-rule-by-rule-tag.response.model.d.ts +5 -0
  124. package/build/src/router/models/remove-rule-by-rule-tag/remove-rule-by-rule-tag.response.model.d.ts.map +1 -0
  125. package/build/src/router/models/remove-rule-by-rule-tag/remove-rule-by-rule-tag.response.model.js +9 -0
  126. package/build/src/router/router.service.d.ts +31 -0
  127. package/build/src/router/router.service.d.ts.map +1 -0
  128. package/build/src/router/router.service.js +56 -0
  129. package/build/src/stats/models/get-all-inbounds-stats/get-all-inbounds-stats.response.model.d.ts +21 -0
  130. package/build/src/stats/models/get-all-inbounds-stats/get-all-inbounds-stats.response.model.d.ts.map +1 -0
  131. package/build/src/stats/models/get-all-inbounds-stats/get-all-inbounds-stats.response.model.js +42 -0
  132. package/build/src/stats/models/get-all-inbounds-stats/index.d.ts +2 -0
  133. package/build/src/stats/models/get-all-inbounds-stats/index.d.ts.map +1 -0
  134. package/build/src/stats/models/get-all-inbounds-stats/index.js +17 -0
  135. package/build/src/stats/models/get-all-inbounds-stats/interfaces/inbound.interface.d.ts +6 -0
  136. package/build/src/stats/models/get-all-inbounds-stats/interfaces/inbound.interface.d.ts.map +1 -0
  137. package/build/src/stats/models/get-all-inbounds-stats/interfaces/inbound.interface.js +2 -0
  138. package/build/src/stats/models/get-all-inbounds-stats/interfaces/index.d.ts +2 -0
  139. package/build/src/stats/models/get-all-inbounds-stats/interfaces/index.d.ts.map +1 -0
  140. package/build/src/stats/models/get-all-inbounds-stats/interfaces/index.js +17 -0
  141. package/build/src/stats/models/get-all-outbounds-stats/get-all-outbounds-stats.response.model.d.ts +21 -0
  142. package/build/src/stats/models/get-all-outbounds-stats/get-all-outbounds-stats.response.model.d.ts.map +1 -0
  143. package/build/src/stats/models/get-all-outbounds-stats/get-all-outbounds-stats.response.model.js +42 -0
  144. package/build/src/stats/models/get-all-outbounds-stats/index.d.ts +2 -0
  145. package/build/src/stats/models/get-all-outbounds-stats/index.d.ts.map +1 -0
  146. package/build/src/stats/models/get-all-outbounds-stats/index.js +17 -0
  147. package/build/src/stats/models/get-all-outbounds-stats/interfaces/index.d.ts +2 -0
  148. package/build/src/stats/models/get-all-outbounds-stats/interfaces/index.d.ts.map +1 -0
  149. package/build/src/stats/models/get-all-outbounds-stats/interfaces/index.js +17 -0
  150. package/build/src/stats/models/get-all-outbounds-stats/interfaces/outbound.interface.d.ts +6 -0
  151. package/build/src/stats/models/get-all-outbounds-stats/interfaces/outbound.interface.d.ts.map +1 -0
  152. package/build/src/stats/models/get-all-outbounds-stats/interfaces/outbound.interface.js +2 -0
  153. package/build/src/stats/models/get-all-users-stats/get-all-users-stats.response.model.d.ts +21 -0
  154. package/build/src/stats/models/get-all-users-stats/get-all-users-stats.response.model.d.ts.map +1 -0
  155. package/build/src/stats/models/get-all-users-stats/get-all-users-stats.response.model.js +42 -0
  156. package/build/src/stats/models/get-all-users-stats/index.d.ts +2 -0
  157. package/build/src/stats/models/get-all-users-stats/index.d.ts.map +1 -0
  158. package/build/src/stats/models/get-all-users-stats/index.js +17 -0
  159. package/build/src/stats/models/get-all-users-stats/interfaces/index.d.ts +2 -0
  160. package/build/src/stats/models/get-all-users-stats/interfaces/index.d.ts.map +1 -0
  161. package/build/src/stats/models/get-all-users-stats/interfaces/index.js +17 -0
  162. package/build/src/stats/models/get-all-users-stats/interfaces/user.interface.d.ts +6 -0
  163. package/build/src/stats/models/get-all-users-stats/interfaces/user.interface.d.ts.map +1 -0
  164. package/build/src/stats/models/get-all-users-stats/interfaces/user.interface.js +2 -0
  165. package/build/src/stats/models/get-inbound-stats/get-inbound-stats.response.model.d.ts +27 -0
  166. package/build/src/stats/models/get-inbound-stats/get-inbound-stats.response.model.d.ts.map +1 -0
  167. package/build/src/stats/models/get-inbound-stats/get-inbound-stats.response.model.js +46 -0
  168. package/build/src/stats/models/get-inbound-stats/index.d.ts +2 -0
  169. package/build/src/stats/models/get-inbound-stats/index.d.ts.map +1 -0
  170. package/build/src/stats/models/get-inbound-stats/index.js +17 -0
  171. package/build/src/stats/models/get-inbound-stats/interfaces/inbound.interface.d.ts +6 -0
  172. package/build/src/stats/models/get-inbound-stats/interfaces/inbound.interface.d.ts.map +1 -0
  173. package/build/src/stats/models/get-inbound-stats/interfaces/inbound.interface.js +2 -0
  174. package/build/src/stats/models/get-inbound-stats/interfaces/index.d.ts +2 -0
  175. package/build/src/stats/models/get-inbound-stats/interfaces/index.d.ts.map +1 -0
  176. package/build/src/stats/models/get-inbound-stats/interfaces/index.js +17 -0
  177. package/build/src/stats/models/get-outbound-stats/get-outbound-stats.response.model.d.ts +27 -0
  178. package/build/src/stats/models/get-outbound-stats/get-outbound-stats.response.model.d.ts.map +1 -0
  179. package/build/src/stats/models/get-outbound-stats/get-outbound-stats.response.model.js +46 -0
  180. package/build/src/stats/models/get-outbound-stats/index.d.ts +2 -0
  181. package/build/src/stats/models/get-outbound-stats/index.d.ts.map +1 -0
  182. package/build/src/stats/models/get-outbound-stats/index.js +17 -0
  183. package/build/src/stats/models/get-outbound-stats/interfaces/index.d.ts +2 -0
  184. package/build/src/stats/models/get-outbound-stats/interfaces/index.d.ts.map +1 -0
  185. package/build/src/stats/models/get-outbound-stats/interfaces/index.js +17 -0
  186. package/build/src/stats/models/get-outbound-stats/interfaces/outbound.d.ts +6 -0
  187. package/build/src/stats/models/get-outbound-stats/interfaces/outbound.d.ts.map +1 -0
  188. package/build/src/stats/models/get-outbound-stats/interfaces/outbound.js +2 -0
  189. package/build/src/stats/models/get-sys-stats/get-sys-stats.response.model.d.ts +15 -0
  190. package/build/src/stats/models/get-sys-stats/get-sys-stats.response.model.d.ts.map +1 -0
  191. package/build/src/stats/models/get-sys-stats/get-sys-stats.response.model.js +22 -0
  192. package/build/src/stats/models/get-sys-stats/index.d.ts +2 -0
  193. package/build/src/stats/models/get-sys-stats/index.d.ts.map +1 -0
  194. package/build/src/stats/models/get-sys-stats/index.js +17 -0
  195. package/build/src/stats/models/get-user-online-status/get-user-online-status.response.model.d.ts +5 -0
  196. package/build/src/stats/models/get-user-online-status/get-user-online-status.response.model.d.ts.map +1 -0
  197. package/build/src/stats/models/get-user-online-status/get-user-online-status.response.model.js +9 -0
  198. package/build/src/stats/models/get-user-online-status/index.d.ts +2 -0
  199. package/build/src/stats/models/get-user-online-status/index.d.ts.map +1 -0
  200. package/build/src/stats/models/get-user-online-status/index.js +17 -0
  201. package/build/src/stats/models/get-user-stats/get-user-stats.response.model.d.ts +26 -0
  202. package/build/src/stats/models/get-user-stats/get-user-stats.response.model.d.ts.map +1 -0
  203. package/build/src/stats/models/get-user-stats/get-user-stats.response.model.js +46 -0
  204. package/build/src/stats/models/get-user-stats/index.d.ts +2 -0
  205. package/build/src/stats/models/get-user-stats/index.d.ts.map +1 -0
  206. package/build/src/stats/models/get-user-stats/index.js +17 -0
  207. package/build/src/stats/models/get-user-stats/interfaces/index.d.ts +2 -0
  208. package/build/src/stats/models/get-user-stats/interfaces/index.d.ts.map +1 -0
  209. package/build/src/stats/models/get-user-stats/interfaces/index.js +17 -0
  210. package/build/src/stats/models/get-user-stats/interfaces/user.interface.d.ts +6 -0
  211. package/build/src/stats/models/get-user-stats/interfaces/user.interface.d.ts.map +1 -0
  212. package/build/src/stats/models/get-user-stats/interfaces/user.interface.js +2 -0
  213. package/build/src/stats/models/get-users-stats/get-users-stats.response.model.d.ts +50 -0
  214. package/build/src/stats/models/get-users-stats/get-users-stats.response.model.d.ts.map +1 -0
  215. package/build/src/stats/models/get-users-stats/get-users-stats.response.model.js +52 -0
  216. package/build/src/stats/models/get-users-stats/index.d.ts +2 -0
  217. package/build/src/stats/models/get-users-stats/index.d.ts.map +1 -0
  218. package/build/src/stats/models/get-users-stats/index.js +17 -0
  219. package/build/src/stats/models/index.d.ts +10 -0
  220. package/build/src/stats/models/index.d.ts.map +1 -0
  221. package/build/src/stats/models/index.js +25 -0
  222. package/build/src/stats/stats.service.d.ts +271 -0
  223. package/build/src/stats/stats.service.d.ts.map +1 -0
  224. package/build/src/stats/stats.service.js +527 -0
  225. package/build/src/xray-protos/app/commander/config.d.ts +37 -0
  226. package/build/src/xray-protos/app/commander/config.d.ts.map +1 -0
  227. package/build/src/xray-protos/app/commander/config.js +143 -0
  228. package/build/src/xray-protos/app/dispatcher/config.d.ts +26 -0
  229. package/build/src/xray-protos/app/dispatcher/config.d.ts.map +1 -0
  230. package/build/src/xray-protos/app/dispatcher/config.js +112 -0
  231. package/build/src/xray-protos/app/geodata/config.d.ts +30 -0
  232. package/build/src/xray-protos/app/geodata/config.d.ts.map +1 -0
  233. package/build/src/xray-protos/app/geodata/config.js +172 -0
  234. package/build/src/xray-protos/app/log/command/config.d.ts +51 -0
  235. package/build/src/xray-protos/app/log/command/config.d.ts.map +1 -0
  236. package/build/src/xray-protos/app/log/command/config.js +143 -0
  237. package/build/src/xray-protos/app/log/config.d.ts +38 -0
  238. package/build/src/xray-protos/app/log/config.d.ts.map +1 -0
  239. package/build/src/xray-protos/app/log/config.js +244 -0
  240. package/build/src/xray-protos/app/metrics/config.d.ts +25 -0
  241. package/build/src/xray-protos/app/metrics/config.d.ts.map +1 -0
  242. package/build/src/xray-protos/app/metrics/config.js +86 -0
  243. package/build/src/xray-protos/app/policy/config.d.ts +78 -0
  244. package/build/src/xray-protos/app/policy/config.d.ts.map +1 -0
  245. package/build/src/xray-protos/app/policy/config.js +790 -0
  246. package/build/src/xray-protos/app/proxyman/command/command.d.ts +237 -0
  247. package/build/src/xray-protos/app/proxyman/command/command.d.ts.map +1 -0
  248. package/build/src/xray-protos/app/proxyman/command/command.js +1255 -0
  249. package/build/src/xray-protos/app/proxyman/config.d.ts +91 -0
  250. package/build/src/xray-protos/app/proxyman/config.d.ts.map +1 -0
  251. package/build/src/xray-protos/app/proxyman/config.js +779 -0
  252. package/build/src/xray-protos/app/reverse/config.d.ts +48 -0
  253. package/build/src/xray-protos/app/reverse/config.d.ts.map +1 -0
  254. package/build/src/xray-protos/app/reverse/config.js +365 -0
  255. package/build/src/xray-protos/app/router/command/command.d.ts +250 -0
  256. package/build/src/xray-protos/app/router/command/command.d.ts.map +1 -0
  257. package/build/src/xray-protos/app/router/command/command.js +1461 -0
  258. package/build/src/xray-protos/app/stats/command/command.d.ts +204 -0
  259. package/build/src/xray-protos/app/stats/command/command.d.ts.map +1 -0
  260. package/build/src/xray-protos/app/stats/command/command.js +1318 -0
  261. package/build/src/xray-protos/app/stats/config.d.ts +28 -0
  262. package/build/src/xray-protos/app/stats/config.d.ts.map +1 -0
  263. package/build/src/xray-protos/app/stats/config.js +140 -0
  264. package/build/src/xray-protos/app/version/config.d.ts +24 -0
  265. package/build/src/xray-protos/app/version/config.d.ts.map +1 -0
  266. package/build/src/xray-protos/app/version/config.js +113 -0
  267. package/build/src/xray-protos/common/geodata/geodat.d.ts +111 -0
  268. package/build/src/xray-protos/common/geodata/geodat.d.ts.map +1 -0
  269. package/build/src/xray-protos/common/geodata/geodat.js +1027 -0
  270. package/build/src/xray-protos/common/log/log.d.ts +12 -0
  271. package/build/src/xray-protos/common/log/log.d.ts.map +1 -0
  272. package/build/src/xray-protos/common/log/log.js +61 -0
  273. package/build/src/xray-protos/common/net/address.d.ts +29 -0
  274. package/build/src/xray-protos/common/net/address.d.ts.map +1 -0
  275. package/build/src/xray-protos/common/net/address.js +111 -0
  276. package/build/src/xray-protos/common/net/destination.d.ts +27 -0
  277. package/build/src/xray-protos/common/net/destination.d.ts.map +1 -0
  278. package/build/src/xray-protos/common/net/destination.js +105 -0
  279. package/build/src/xray-protos/common/net/network.d.ts +32 -0
  280. package/build/src/xray-protos/common/net/network.d.ts.map +1 -0
  281. package/build/src/xray-protos/common/net/network.js +122 -0
  282. package/build/src/xray-protos/common/net/port.d.ts +32 -0
  283. package/build/src/xray-protos/common/net/port.d.ts.map +1 -0
  284. package/build/src/xray-protos/common/net/port.js +142 -0
  285. package/build/src/xray-protos/common/protocol/headers.d.ts +34 -0
  286. package/build/src/xray-protos/common/protocol/headers.d.ts.map +1 -0
  287. package/build/src/xray-protos/common/protocol/headers.js +126 -0
  288. package/build/src/xray-protos/common/protocol/server_spec.d.ts +26 -0
  289. package/build/src/xray-protos/common/protocol/server_spec.d.ts.map +1 -0
  290. package/build/src/xray-protos/common/protocol/server_spec.js +105 -0
  291. package/build/src/xray-protos/common/protocol/user.d.ts +30 -0
  292. package/build/src/xray-protos/common/protocol/user.d.ts.map +1 -0
  293. package/build/src/xray-protos/common/protocol/user.js +104 -0
  294. package/build/src/xray-protos/common/serial/typed_message.d.ts +26 -0
  295. package/build/src/xray-protos/common/serial/typed_message.d.ts.map +1 -0
  296. package/build/src/xray-protos/common/serial/typed_message.js +111 -0
  297. package/build/src/xray-protos/core/config.d.ts +74 -0
  298. package/build/src/xray-protos/core/config.d.ts.map +1 -0
  299. package/build/src/xray-protos/core/config.js +366 -0
  300. package/build/src/xray-protos/proxy/blackhole/config.d.ts +31 -0
  301. package/build/src/xray-protos/proxy/blackhole/config.d.ts.map +1 -0
  302. package/build/src/xray-protos/proxy/blackhole/config.js +152 -0
  303. package/build/src/xray-protos/proxy/dns/config.d.ts +43 -0
  304. package/build/src/xray-protos/proxy/dns/config.d.ts.map +1 -0
  305. package/build/src/xray-protos/proxy/dns/config.js +276 -0
  306. package/build/src/xray-protos/proxy/dokodemo/config.d.ts +38 -0
  307. package/build/src/xray-protos/proxy/dokodemo/config.d.ts.map +1 -0
  308. package/build/src/xray-protos/proxy/dokodemo/config.js +285 -0
  309. package/build/src/xray-protos/proxy/freedom/config.d.ts +82 -0
  310. package/build/src/xray-protos/proxy/freedom/config.d.ts.map +1 -0
  311. package/build/src/xray-protos/proxy/freedom/config.js +902 -0
  312. package/build/src/xray-protos/proxy/http/config.d.ts +54 -0
  313. package/build/src/xray-protos/proxy/http/config.d.ts.map +1 -0
  314. package/build/src/xray-protos/proxy/http/config.js +418 -0
  315. package/build/src/xray-protos/proxy/hysteria/account/config.d.ts +22 -0
  316. package/build/src/xray-protos/proxy/hysteria/account/config.d.ts.map +1 -0
  317. package/build/src/xray-protos/proxy/hysteria/account/config.js +68 -0
  318. package/build/src/xray-protos/proxy/hysteria/config.d.ts +29 -0
  319. package/build/src/xray-protos/proxy/hysteria/config.d.ts.map +1 -0
  320. package/build/src/xray-protos/proxy/hysteria/config.js +131 -0
  321. package/build/src/xray-protos/proxy/loopback/config.d.ts +24 -0
  322. package/build/src/xray-protos/proxy/loopback/config.d.ts.map +1 -0
  323. package/build/src/xray-protos/proxy/loopback/config.js +93 -0
  324. package/build/src/xray-protos/proxy/shadowsocks/config.d.ts +49 -0
  325. package/build/src/xray-protos/proxy/shadowsocks/config.d.ts.map +1 -0
  326. package/build/src/xray-protos/proxy/shadowsocks/config.js +307 -0
  327. package/build/src/xray-protos/proxy/shadowsocks_2022/config.d.ts +67 -0
  328. package/build/src/xray-protos/proxy/shadowsocks_2022/config.d.ts.map +1 -0
  329. package/build/src/xray-protos/proxy/shadowsocks_2022/config.js +646 -0
  330. package/build/src/xray-protos/proxy/socks/config.d.ts +61 -0
  331. package/build/src/xray-protos/proxy/socks/config.d.ts.map +1 -0
  332. package/build/src/xray-protos/proxy/socks/config.js +416 -0
  333. package/build/src/xray-protos/proxy/trojan/config.d.ts +45 -0
  334. package/build/src/xray-protos/proxy/trojan/config.d.ts.map +1 -0
  335. package/build/src/xray-protos/proxy/trojan/config.js +342 -0
  336. package/build/src/xray-protos/proxy/tun/config.d.ts +28 -0
  337. package/build/src/xray-protos/proxy/tun/config.d.ts.map +1 -0
  338. package/build/src/xray-protos/proxy/tun/config.js +182 -0
  339. package/build/src/xray-protos/proxy/vless/account.d.ts +39 -0
  340. package/build/src/xray-protos/proxy/vless/account.d.ts.map +1 -0
  341. package/build/src/xray-protos/proxy/vless/account.js +287 -0
  342. package/build/src/xray-protos/proxy/vless/encoding/addons.d.ts +23 -0
  343. package/build/src/xray-protos/proxy/vless/encoding/addons.d.ts.map +1 -0
  344. package/build/src/xray-protos/proxy/vless/encoding/addons.js +111 -0
  345. package/build/src/xray-protos/proxy/vless/inbound/config.d.ts +39 -0
  346. package/build/src/xray-protos/proxy/vless/inbound/config.d.ts.map +1 -0
  347. package/build/src/xray-protos/proxy/vless/inbound/config.js +322 -0
  348. package/build/src/xray-protos/proxy/vless/outbound/config.d.ts +23 -0
  349. package/build/src/xray-protos/proxy/vless/outbound/config.d.ts.map +1 -0
  350. package/build/src/xray-protos/proxy/vless/outbound/config.js +71 -0
  351. package/build/src/xray-protos/proxy/vmess/account.d.ts +31 -0
  352. package/build/src/xray-protos/proxy/vmess/account.d.ts.map +1 -0
  353. package/build/src/xray-protos/proxy/vmess/account.js +112 -0
  354. package/build/src/xray-protos/proxy/vmess/inbound/config.d.ts +34 -0
  355. package/build/src/xray-protos/proxy/vmess/inbound/config.d.ts.map +1 -0
  356. package/build/src/xray-protos/proxy/vmess/inbound/config.js +195 -0
  357. package/build/src/xray-protos/proxy/vmess/outbound/config.d.ts +23 -0
  358. package/build/src/xray-protos/proxy/vmess/outbound/config.d.ts.map +1 -0
  359. package/build/src/xray-protos/proxy/vmess/outbound/config.js +74 -0
  360. package/build/src/xray-protos/proxy/wireguard/config.d.ts +50 -0
  361. package/build/src/xray-protos/proxy/wireguard/config.d.ts.map +1 -0
  362. package/build/src/xray-protos/proxy/wireguard/config.js +434 -0
  363. package/build/src/xray-protos/transport/internet/config.d.ts +164 -0
  364. package/build/src/xray-protos/transport/internet/config.d.ts.map +1 -0
  365. package/build/src/xray-protos/transport/internet/config.js +1705 -0
  366. package/build/src/xray-protos/typeRegistry.d.ts +19 -0
  367. package/build/src/xray-protos/typeRegistry.d.ts.map +1 -0
  368. package/build/src/xray-protos/typeRegistry.js +8 -0
  369. package/package.json +60 -0
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetUserOnlineStatusResponseModel = void 0;
4
+ class GetUserOnlineStatusResponseModel {
5
+ constructor(data) {
6
+ this.online = data;
7
+ }
8
+ }
9
+ exports.GetUserOnlineStatusResponseModel = GetUserOnlineStatusResponseModel;
@@ -0,0 +1,2 @@
1
+ export * from './get-user-online-status.response.model';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/stats/models/get-user-online-status/index.ts"],"names":[],"mappings":"AAAA,cAAc,yCAAyC,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./get-user-online-status.response.model"), exports);
@@ -0,0 +1,26 @@
1
+ import { QueryStatsResponse } from '../../../xray-protos/app/stats/command/command';
2
+ import { IUserStat } from './interfaces';
3
+ /**
4
+ * Model class for handling user statistics response data from the Xray server.
5
+ */
6
+ export declare class GetUserStatsResponseModel {
7
+ /**
8
+ * The user statistics data, or null if no data is available.
9
+ */
10
+ user: IUserStat | null;
11
+ /**
12
+ * Creates a new GetUserStatsResponseModel instance.
13
+ *
14
+ * @param data - The raw query stats response from the Xray server
15
+ */
16
+ constructor(data: QueryStatsResponse);
17
+ /**
18
+ * Parses the raw stats response data into formatted user statistics.
19
+ *
20
+ * @param data - The raw query stats response to parse
21
+ * @returns An array of formatted user statistics
22
+ * @private
23
+ */
24
+ private parseData;
25
+ }
26
+ //# sourceMappingURL=get-user-stats.response.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-user-stats.response.model.d.ts","sourceRoot":"","sources":["../../../../../src/stats/models/get-user-stats/get-user-stats.response.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;GAEG;AACH,qBAAa,yBAAyB;IAClC;;OAEG;IACI,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IAE9B;;;;OAIG;gBACS,IAAI,EAAE,kBAAkB;IAKpC;;;;;;OAMG;IACH,OAAO,CAAC,SAAS;CAwBpB"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetUserStatsResponseModel = void 0;
4
+ /**
5
+ * Model class for handling user statistics response data from the Xray server.
6
+ */
7
+ class GetUserStatsResponseModel {
8
+ /**
9
+ * Creates a new GetUserStatsResponseModel instance.
10
+ *
11
+ * @param data - The raw query stats response from the Xray server
12
+ */
13
+ constructor(data) {
14
+ const users = this.parseData(data);
15
+ this.user = users[0] ?? null;
16
+ }
17
+ /**
18
+ * Parses the raw stats response data into formatted user statistics.
19
+ *
20
+ * @param data - The raw query stats response to parse
21
+ * @returns An array of formatted user statistics
22
+ * @private
23
+ */
24
+ parseData(data) {
25
+ const usersMap = new Map();
26
+ for (const stat of data.stat) {
27
+ const nameParts = stat.name.split('>>>');
28
+ const username = nameParts[1];
29
+ const type = nameParts[3];
30
+ const value = stat.value;
31
+ let user = usersMap.get(username);
32
+ if (!user) {
33
+ user = { username, uplink: 0, downlink: 0 };
34
+ usersMap.set(username, user);
35
+ }
36
+ if (type === 'uplink') {
37
+ user.uplink += value;
38
+ }
39
+ else if (type === 'downlink') {
40
+ user.downlink += value;
41
+ }
42
+ }
43
+ return Array.from(usersMap.values());
44
+ }
45
+ }
46
+ exports.GetUserStatsResponseModel = GetUserStatsResponseModel;
@@ -0,0 +1,2 @@
1
+ export * from './get-user-stats.response.model';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/stats/models/get-user-stats/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./get-user-stats.response.model"), exports);
@@ -0,0 +1,2 @@
1
+ export * from './user.interface';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/stats/models/get-user-stats/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./user.interface"), exports);
@@ -0,0 +1,6 @@
1
+ export interface IUserStat {
2
+ username: string;
3
+ uplink: number;
4
+ downlink: number;
5
+ }
6
+ //# sourceMappingURL=user.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.interface.d.ts","sourceRoot":"","sources":["../../../../../../src/stats/models/get-user-stats/interfaces/user.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,50 @@
1
+ import { GetUsersStatsResponse } from '../../../xray-protos/app/stats/command/command';
2
+ export interface UserIPEntry {
3
+ ip: string;
4
+ lastSeen: Date;
5
+ }
6
+ export interface UserTrafficStat {
7
+ uplink: number;
8
+ downlink: number;
9
+ }
10
+ export interface UserStat {
11
+ /**
12
+ * User identifier. Maps to the `email` field from Xray core.
13
+ */
14
+ userId: string;
15
+ ips: UserIPEntry[];
16
+ traffic?: UserTrafficStat;
17
+ }
18
+ /**
19
+ * Model class for handling user statistics response data from the Xray server.
20
+ */
21
+ export declare class GetUsersStatsResponseModel {
22
+ /**
23
+ * The user statistics data, or null if no data is available.
24
+ */
25
+ users: UserStat[] | null;
26
+ /**
27
+ * Creates a new GetUserStatsResponseModel instance.
28
+ *
29
+ * @param data - The raw query stats response from the Xray server
30
+ */
31
+ constructor(data: GetUsersStatsResponse);
32
+ /**
33
+ * Creates a model instance from an already-parsed array of user stats,
34
+ * bypassing the native `GetUsersStatsResponse` parser.
35
+ *
36
+ * Intended for code paths that build `UserStat[]` from other sources
37
+ * (e.g. the legacy fallback that combines `GetAllOnlineUsers` and
38
+ * `GetStatsOnlineIpList`).
39
+ */
40
+ static fromUserStats(users: UserStat[]): GetUsersStatsResponseModel;
41
+ /**
42
+ * Parses the raw stats response data into formatted user statistics.
43
+ *
44
+ * @param data - The raw query stats response to parse
45
+ * @returns An array of formatted user statistics
46
+ * @private
47
+ */
48
+ private parseData;
49
+ }
50
+ //# sourceMappingURL=get-users-stats.response.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-users-stats.response.model.d.ts","sourceRoot":"","sources":["../../../../../src/stats/models/get-users-stats/get-users-stats.response.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAEvF,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACrB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,WAAW,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC7B;AACD;;GAEG;AACH,qBAAa,0BAA0B;IACnC;;OAEG;IACI,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAEhC;;;;OAIG;gBACS,IAAI,EAAE,qBAAqB;IAKvC;;;;;;;OAOG;WACW,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,0BAA0B;IAQ1E;;;;;;OAMG;IACH,OAAO,CAAC,SAAS;CAcpB"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetUsersStatsResponseModel = void 0;
4
+ /**
5
+ * Model class for handling user statistics response data from the Xray server.
6
+ */
7
+ class GetUsersStatsResponseModel {
8
+ /**
9
+ * Creates a new GetUserStatsResponseModel instance.
10
+ *
11
+ * @param data - The raw query stats response from the Xray server
12
+ */
13
+ constructor(data) {
14
+ const users = this.parseData(data);
15
+ this.users = users;
16
+ }
17
+ /**
18
+ * Creates a model instance from an already-parsed array of user stats,
19
+ * bypassing the native `GetUsersStatsResponse` parser.
20
+ *
21
+ * Intended for code paths that build `UserStat[]` from other sources
22
+ * (e.g. the legacy fallback that combines `GetAllOnlineUsers` and
23
+ * `GetStatsOnlineIpList`).
24
+ */
25
+ static fromUserStats(users) {
26
+ const model = Object.create(GetUsersStatsResponseModel.prototype);
27
+ model.users = users;
28
+ return model;
29
+ }
30
+ /**
31
+ * Parses the raw stats response data into formatted user statistics.
32
+ *
33
+ * @param data - The raw query stats response to parse
34
+ * @returns An array of formatted user statistics
35
+ * @private
36
+ */
37
+ parseData(data) {
38
+ const users = [];
39
+ for (const user of data.users) {
40
+ const userStat = {
41
+ userId: user.email,
42
+ ips: user.ips.map((ip) => ({ ip: ip.ip, lastSeen: new Date(ip.lastSeen * 1000) })),
43
+ traffic: user.traffic
44
+ ? { uplink: user.traffic.uplink, downlink: user.traffic.downlink }
45
+ : undefined,
46
+ };
47
+ users.push(userStat);
48
+ }
49
+ return users;
50
+ }
51
+ }
52
+ exports.GetUsersStatsResponseModel = GetUsersStatsResponseModel;
@@ -0,0 +1,2 @@
1
+ export * from './get-users-stats.response.model';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/stats/models/get-users-stats/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./get-users-stats.response.model"), exports);
@@ -0,0 +1,10 @@
1
+ export * from './get-sys-stats';
2
+ export * from './get-all-users-stats';
3
+ export * from './get-user-stats';
4
+ export * from './get-user-online-status';
5
+ export * from './get-all-inbounds-stats';
6
+ export * from './get-inbound-stats';
7
+ export * from './get-all-outbounds-stats';
8
+ export * from './get-outbound-stats';
9
+ export * from './get-users-stats';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/stats/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./get-sys-stats"), exports);
18
+ __exportStar(require("./get-all-users-stats"), exports);
19
+ __exportStar(require("./get-user-stats"), exports);
20
+ __exportStar(require("./get-user-online-status"), exports);
21
+ __exportStar(require("./get-all-inbounds-stats"), exports);
22
+ __exportStar(require("./get-inbound-stats"), exports);
23
+ __exportStar(require("./get-all-outbounds-stats"), exports);
24
+ __exportStar(require("./get-outbound-stats"), exports);
25
+ __exportStar(require("./get-users-stats"), exports);
@@ -0,0 +1,271 @@
1
+ import { Channel } from 'nice-grpc';
2
+ import { GetAllUsersStatsResponseModel, GetUserStatsResponseModel, GetSysStatsResponseModel, GetUserOnlineStatusResponseModel, GetAllInboundsStatsResponseModel, GetInboundStatsResponseModel, GetAllOutboundsStatsResponseModel, GetOutboundStatsResponseModel, GetUsersStatsResponseModel } from './models';
3
+ import { StatsServiceClient } from '../xray-protos/app/stats/command/command';
4
+ import { ISdkResponse } from '../common/types';
5
+ /**
6
+ * Service class for interacting with Xray server statistics.
7
+ * Provides methods to retrieve system and user statistics.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * // Create a new StatsService instance
12
+ * const stats = new StatsService(channel);
13
+ *
14
+ * // Get system stats
15
+ * const sysStats = await stats.getSysStats();
16
+ *
17
+ * // Get all users stats
18
+ * const allUsersStats = await stats.getAllUsersStats();
19
+ *
20
+ * // Get specific user stats
21
+ * const userStats = await stats.getUserStats('username123');
22
+ *
23
+ * // Check if user is online
24
+ * const isOnline = await stats.getUserOnlineStatus('username123');
25
+ * ```
26
+ */
27
+ export declare class StatsService {
28
+ private readonly channel;
29
+ /**
30
+ * The gRPC client instance for making stats-related requests to the Xray server
31
+ * @private
32
+ */
33
+ private readonly client;
34
+ /**
35
+ * Cached flag indicating whether the remote Xray server supports the
36
+ * `GetUsersStats` unary method. `null` means "not probed yet", `true` means
37
+ * the method is available, `false` means the legacy fallback should be used.
38
+ *
39
+ * The flag is cached for the lifetime of this instance — if the Xray core
40
+ * is upgraded without re-creating the SDK, a manual re-instantiation is
41
+ * required to re-detect support.
42
+ * @private
43
+ */
44
+ private supportsGetUsersStats;
45
+ /**
46
+ * Creates a new StatsService instance
47
+ * @param channel - The gRPC channel to use for communication with the Xray server
48
+ */
49
+ constructor(channel: Channel);
50
+ /**
51
+ * Retrieves system statistics from the Xray server.
52
+ * This includes information about the system's overall performance and resource usage.
53
+ *
54
+ * @returns {Promise<ISdkResponse<GetSysStatsResponseModel>>} A promise that resolves to:
55
+ * - On success: An object with `isOk: true` and `data` containing the system stats
56
+ * - On failure: An object with `isOk: false` and error details from STATS_ERRORS
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const stats = new StatsService(channel);
61
+ * const response = await stats.getSysStats();
62
+ *
63
+ * if (response.isOk) {
64
+ * console.log(response.data); // GetSysStatsResponseModel
65
+ * } else {
66
+ * console.error(response.message); // Error message
67
+ * }
68
+ * ```
69
+ */
70
+ getSysStats(): Promise<ISdkResponse<GetSysStatsResponseModel>>;
71
+ /**
72
+ * Retrieves statistics for all users from the Xray server.
73
+ * This provides a comprehensive view of all user activities and their resource usage.
74
+ *
75
+ * @param {boolean} reset - Whether to reset the statistics after retrieving them. Defaults to false.
76
+ * @returns {Promise<ISdkResponse<GetAllUsersStatsResponseModel>>} A promise that resolves to:
77
+ * - On success: An object with `isOk: true` and `data` containing user stats
78
+ * - On failure: An object with `isOk: false` and error details from STATS_ERRORS
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * const stats = new StatsService(channel);
83
+ *
84
+ * // Get stats without resetting
85
+ * const response = await stats.getAllUsersStats();
86
+ *
87
+ * // Get stats and reset them
88
+ * const responseWithReset = await stats.getAllUsersStats(true);
89
+ *
90
+ * if (response.isOk) {
91
+ * console.log(response.data.users); // Array of user statistics
92
+ * } else {
93
+ * console.error(response.message); // Error message
94
+ * }
95
+ * ```
96
+ */
97
+ getAllUsersStats(reset?: boolean): Promise<ISdkResponse<GetAllUsersStatsResponseModel>>;
98
+ /**
99
+ * Retrieves statistics for a specific user from the Xray server.
100
+ * This includes detailed information about the user's network usage, connections, and other metrics.
101
+ *
102
+ * @param {string} username - The username to get statistics for
103
+ * @param {boolean} reset - Whether to reset the statistics after retrieving them. Defaults to false.
104
+ * @returns {Promise<ISdkResponse<GetUserStatsResponseModel>>} A promise that resolves to:
105
+ * - On success: An object with `isOk: true` and `data` containing the user's stats
106
+ * - On failure: An object with `isOk: false` and error details from STATS_ERRORS
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * const stats = new StatsService(channel);
111
+ *
112
+ * // Get user stats without resetting
113
+ * const response = await stats.getUserStats('username123');
114
+ *
115
+ * // Get user stats and reset them
116
+ * const responseWithReset = await stats.getUserStats('username123', true);
117
+ *
118
+ * if (response.isOk) {
119
+ * console.log(response.data.user); // User statistics
120
+ * } else {
121
+ * console.error(response.message); // Error message
122
+ * }
123
+ * ```
124
+ */
125
+ getUserStats(username: string, reset?: boolean): Promise<ISdkResponse<GetUserStatsResponseModel>>;
126
+ /**
127
+ * Checks if a specific user is currently online on the Xray server.
128
+ * This method queries the server's real-time connection status for the specified user.
129
+ *
130
+ * @param {string} username - The username to check online status for
131
+ * @returns {Promise<ISdkResponse<GetUserOnlineStatusResponseModel>>} A promise that resolves to:
132
+ * - On success: An object with `isOk: true` and `data` containing the user's online status (`data.online`)
133
+ * - On failure: An object with `isOk: false` and error details from STATS_ERRORS
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * const stats = new StatsService(channel);
138
+ * const response = await stats.getUserOnlineStatus('username123');
139
+ *
140
+ * if (response.isOk) {
141
+ * if (response.data.online) {
142
+ * console.log('User is online');
143
+ * } else {
144
+ * console.log('User is offline');
145
+ * }
146
+ * } else {
147
+ * console.error(response.message); // Error message
148
+ * }
149
+ * ```
150
+ */
151
+ getUserOnlineStatus(username: string): Promise<ISdkResponse<GetUserOnlineStatusResponseModel>>;
152
+ /**
153
+ * Gets statistics for all inbound connections.
154
+ *
155
+ * @param reset - Whether to reset the statistics after retrieving them. Defaults to false.
156
+ * @returns A promise that resolves to an ISdkResponse containing:
157
+ * - On success: An object with `isOk: true` and data containing an array of inbound stats
158
+ * - On failure: An object with `isOk: false` and error details from STATS_ERRORS
159
+ *
160
+ * @example
161
+ * ```typescript
162
+ * const stats = new StatsService(channel);
163
+ * const response = await stats.getAllInboundsStats();
164
+ *
165
+ * if (response.isOk) {
166
+ * console.log('Inbound stats:', response.data.inbounds);
167
+ * } else {
168
+ * console.error(response.message); // Error message
169
+ * }
170
+ * ```
171
+ */
172
+ getAllInboundsStats(reset?: boolean): Promise<ISdkResponse<GetAllInboundsStatsResponseModel>>;
173
+ /**
174
+ * Gets statistics for a specific inbound connection.
175
+ *
176
+ * @param inbound - The name/tag of the inbound connection to get stats for
177
+ * @param reset - Whether to reset the statistics after retrieving them. Defaults to false.
178
+ * @returns A promise that resolves to an ISdkResponse containing:
179
+ * - On success: An object with `isOk: true` and data containing the inbound stats
180
+ * - On failure: An object with `isOk: false` and error details from STATS_ERRORS
181
+ *
182
+ * @example
183
+ * ```typescript
184
+ * const stats = new StatsService(channel);
185
+ * const response = await stats.getInboundStats('http_in');
186
+ *
187
+ * if (response.isOk) {
188
+ * console.log('Inbound stats:', response.data.stats);
189
+ * } else {
190
+ * console.error(response.message); // Error message
191
+ * }
192
+ * ```
193
+ */
194
+ getInboundStats(inbound: string, reset?: boolean): Promise<ISdkResponse<GetInboundStatsResponseModel>>;
195
+ /**
196
+ * Gets statistics for all outbound connections.
197
+ *
198
+ * @param reset - Whether to reset the statistics after retrieving them. Defaults to false.
199
+ * @returns A promise that resolves to an ISdkResponse containing:
200
+ * - On success: An object with `isOk: true` and data containing an array of outbound stats
201
+ * - On failure: An object with `isOk: false` and error details from STATS_ERRORS
202
+ *
203
+ * @example
204
+ * ```typescript
205
+ * const stats = new StatsService(channel);
206
+ * const response = await stats.getAllOutboundsStats();
207
+ *
208
+ * if (response.isOk) {
209
+ * console.log('Outbound stats:', response.data.outbounds);
210
+ * } else {
211
+ * console.error(response.message); // Error message
212
+ * }
213
+ * ```
214
+ */
215
+ getAllOutboundsStats(reset?: boolean): Promise<ISdkResponse<GetAllOutboundsStatsResponseModel>>;
216
+ /**
217
+ * Gets statistics for a specific outbound connection.
218
+ *
219
+ * @param outbound - The name/tag of the outbound connection to get stats for
220
+ * @param reset - Whether to reset the statistics after retrieving them. Defaults to false.
221
+ * @returns A promise that resolves to an ISdkResponse containing:
222
+ * - On success: An object with `isOk: true` and data containing the outbound stats
223
+ * - On failure: An object with `isOk: false` and error details from STATS_ERRORS
224
+ *
225
+ * @example
226
+ * ```typescript
227
+ * const stats = new StatsService(channel);
228
+ * const response = await stats.getOutboundStats('http_out');
229
+ *
230
+ * if (response.isOk) {
231
+ * console.log('Outbound stats:', response.data.stats);
232
+ * } else {
233
+ * console.error(response.message); // Error message
234
+ * }
235
+ * ```
236
+ */
237
+ getOutboundStats(outbound: string, reset?: boolean): Promise<ISdkResponse<GetOutboundStatsResponseModel>>;
238
+ /**
239
+ * Retrieves per-user statistics (online IP list and, optionally, traffic)
240
+ * from the Xray server.
241
+ *
242
+ * Prefers the native `GetUsersStats` gRPC method introduced in recent
243
+ * Xray-core versions. If the server replies with `UNIMPLEMENTED` (i.e. the
244
+ * method is missing), transparently falls back to the legacy approach of
245
+ * combining `GetAllOnlineUsers` + `GetStatsOnlineIpList`. The detection
246
+ * result is cached for the lifetime of this service instance, so the
247
+ * `UNIMPLEMENTED` round-trip happens at most once.
248
+ *
249
+ * Note: the `includeTraffic` flag is honored only on the native path. In
250
+ * legacy mode traffic is always returned as `undefined`, since the old
251
+ * endpoints do not expose per-user traffic in a single call.
252
+ *
253
+ * @param includeTraffic - Whether to request traffic counters alongside IPs (native path only).
254
+ * @param reset - Whether to reset the stats after retrieving them.
255
+ */
256
+ getUsersStats(includeTraffic?: boolean, reset?: boolean): Promise<ISdkResponse<GetUsersStatsResponseModel>>;
257
+ /**
258
+ * Legacy fallback for {@link getUsersStats}. Uses `GetAllOnlineUsers` to
259
+ * enumerate currently connected users and then queries
260
+ * `GetStatsOnlineIpList` for each of them in parallel with a bounded
261
+ * worker pool. Always returns `traffic: undefined` for every user.
262
+ * @private
263
+ */
264
+ private getUsersStatsLegacy;
265
+ /**
266
+ * Gets the raw gRPC client for direct access to all stats service methods
267
+ * @returns The underlying StatsServiceClient instance
268
+ */
269
+ get rawClient(): StatsServiceClient;
270
+ }
271
+ //# sourceMappingURL=stats.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.service.d.ts","sourceRoot":"","sources":["../../../src/stats/stats.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAqC,MAAM,WAAW,CAAC;AAEvE,OAAO,EACH,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,gCAAgC,EAChC,gCAAgC,EAChC,4BAA4B,EAC5B,iCAAiC,EACjC,6BAA6B,EAC7B,0BAA0B,EAE7B,MAAM,UAAU,CAAC;AAClB,OAAO,EAEH,kBAAkB,EACrB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,YAAY;IAuBT,OAAO,CAAC,QAAQ,CAAC,OAAO;IAtBpC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C;;;;;;;;;OASG;IACH,OAAO,CAAC,qBAAqB,CAAwB;IAErD;;;OAGG;gBAC0B,OAAO,EAAE,OAAO;IAI7C;;;;;;;;;;;;;;;;;;;OAmBG;IACU,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IAoB3E;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACU,gBAAgB,CACzB,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,6BAA6B,CAAC,CAAC;IAuBvD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,YAAY,CACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;IAuBnD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,mBAAmB,CAC5B,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC,gCAAgC,CAAC,CAAC;IA8B1D;;;;;;;;;;;;;;;;;;;OAmBG;IACU,mBAAmB,CAC5B,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,gCAAgC,CAAC,CAAC;IAuB1D;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,eAAe,CACxB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAAC;IAuBtD;;;;;;;;;;;;;;;;;;;OAmBG;IACU,oBAAoB,CAC7B,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,iCAAiC,CAAC,CAAC;IAuB3D;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,gBAAgB,CACzB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,6BAA6B,CAAC,CAAC;IAuBvD;;;;;;;;;;;;;;;;;OAiBG;IACU,aAAa,CACtB,cAAc,GAAE,OAAe,EAC/B,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;IAkCpD;;;;;;OAMG;YACW,mBAAmB;IA+DjC;;;OAGG;IACH,IAAW,SAAS,IAAI,kBAAkB,CAEzC;CACJ"}