@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.
- package/LICENCE +661 -0
- package/README.md +217 -0
- package/build/index.d.ts +17 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +19 -0
- package/build/src/common/errors/handler/handler.errors.d.ts +23 -0
- package/build/src/common/errors/handler/handler.errors.d.ts.map +1 -0
- package/build/src/common/errors/handler/handler.errors.js +22 -0
- package/build/src/common/errors/handler/index.d.ts +2 -0
- package/build/src/common/errors/handler/index.d.ts.map +1 -0
- package/build/src/common/errors/handler/index.js +17 -0
- package/build/src/common/errors/index.d.ts +3 -0
- package/build/src/common/errors/index.d.ts.map +1 -0
- package/build/src/common/errors/index.js +18 -0
- package/build/src/common/errors/router/index.d.ts +2 -0
- package/build/src/common/errors/router/index.d.ts.map +1 -0
- package/build/src/common/errors/router/index.js +17 -0
- package/build/src/common/errors/router/router.errors.d.ts +15 -0
- package/build/src/common/errors/router/router.errors.d.ts.map +1 -0
- package/build/src/common/errors/router/router.errors.js +14 -0
- package/build/src/common/errors/stats/index.d.ts +2 -0
- package/build/src/common/errors/stats/index.d.ts.map +1 -0
- package/build/src/common/errors/stats/index.js +17 -0
- package/build/src/common/errors/stats/stats.errors.d.ts +43 -0
- package/build/src/common/errors/stats/stats.errors.d.ts.map +1 -0
- package/build/src/common/errors/stats/stats.errors.js +42 -0
- package/build/src/common/types/index.d.ts +2 -0
- package/build/src/common/types/index.d.ts.map +1 -0
- package/build/src/common/types/index.js +17 -0
- package/build/src/common/types/sdk-response.d.ts +6 -0
- package/build/src/common/types/sdk-response.d.ts.map +1 -0
- package/build/src/common/types/sdk-response.js +2 -0
- package/build/src/common/utils/create-typed-message/create-typed-message.d.ts +5 -0
- package/build/src/common/utils/create-typed-message/create-typed-message.d.ts.map +1 -0
- package/build/src/common/utils/create-typed-message/create-typed-message.js +10 -0
- package/build/src/common/utils/decode-user/constants/account-types.d.ts +39 -0
- package/build/src/common/utils/decode-user/constants/account-types.d.ts.map +1 -0
- package/build/src/common/utils/decode-user/constants/account-types.js +65 -0
- package/build/src/common/utils/decode-user/constants/index.d.ts +2 -0
- package/build/src/common/utils/decode-user/constants/index.d.ts.map +1 -0
- package/build/src/common/utils/decode-user/constants/index.js +17 -0
- package/build/src/common/utils/decode-user/decode-user.d.ts +37 -0
- package/build/src/common/utils/decode-user/decode-user.d.ts.map +1 -0
- package/build/src/common/utils/decode-user/decode-user.js +55 -0
- package/build/src/common/utils/decode-user/types/account-type-keys.type.d.ts +3 -0
- package/build/src/common/utils/decode-user/types/account-type-keys.type.d.ts.map +1 -0
- package/build/src/common/utils/decode-user/types/account-type-keys.type.js +2 -0
- package/build/src/common/utils/decode-user/types/account-type-mapping.type.d.ts +4 -0
- package/build/src/common/utils/decode-user/types/account-type-mapping.type.d.ts.map +1 -0
- package/build/src/common/utils/decode-user/types/account-type-mapping.type.js +2 -0
- package/build/src/common/utils/decode-user/types/decoded-user.type.d.ts +18 -0
- package/build/src/common/utils/decode-user/types/decoded-user.type.d.ts.map +1 -0
- package/build/src/common/utils/decode-user/types/decoded-user.type.js +2 -0
- package/build/src/common/utils/decode-user/types/index.d.ts +4 -0
- package/build/src/common/utils/decode-user/types/index.d.ts.map +1 -0
- package/build/src/common/utils/decode-user/types/index.js +19 -0
- package/build/src/handler/handler.service.d.ts +155 -0
- package/build/src/handler/handler.service.d.ts.map +1 -0
- package/build/src/handler/handler.service.js +523 -0
- package/build/src/handler/interfaces/add-user/add-http-user.interface.d.ts +8 -0
- package/build/src/handler/interfaces/add-user/add-http-user.interface.d.ts.map +1 -0
- package/build/src/handler/interfaces/add-user/add-http-user.interface.js +2 -0
- package/build/src/handler/interfaces/add-user/add-hysteria-user.interface.d.ts +7 -0
- package/build/src/handler/interfaces/add-user/add-hysteria-user.interface.d.ts.map +1 -0
- package/build/src/handler/interfaces/add-user/add-hysteria-user.interface.js +2 -0
- package/build/src/handler/interfaces/add-user/add-shadowsocks-user.interface.d.ts +10 -0
- package/build/src/handler/interfaces/add-user/add-shadowsocks-user.interface.d.ts.map +1 -0
- package/build/src/handler/interfaces/add-user/add-shadowsocks-user.interface.js +2 -0
- package/build/src/handler/interfaces/add-user/add-shadowsocks2022-user.interface.d.ts +7 -0
- package/build/src/handler/interfaces/add-user/add-shadowsocks2022-user.interface.d.ts.map +1 -0
- package/build/src/handler/interfaces/add-user/add-shadowsocks2022-user.interface.js +2 -0
- package/build/src/handler/interfaces/add-user/add-socks-user.interface.d.ts +8 -0
- package/build/src/handler/interfaces/add-user/add-socks-user.interface.d.ts.map +1 -0
- package/build/src/handler/interfaces/add-user/add-socks-user.interface.js +2 -0
- package/build/src/handler/interfaces/add-user/add-trojan-user.interface.d.ts +7 -0
- package/build/src/handler/interfaces/add-user/add-trojan-user.interface.d.ts.map +1 -0
- package/build/src/handler/interfaces/add-user/add-trojan-user.interface.js +2 -0
- package/build/src/handler/interfaces/add-user/add-vless-user.interface.d.ts +8 -0
- package/build/src/handler/interfaces/add-user/add-vless-user.interface.d.ts.map +1 -0
- package/build/src/handler/interfaces/add-user/add-vless-user.interface.js +2 -0
- package/build/src/handler/interfaces/add-user/add-wireguard-user.interface.d.ts +8 -0
- package/build/src/handler/interfaces/add-user/add-wireguard-user.interface.d.ts.map +1 -0
- package/build/src/handler/interfaces/add-user/add-wireguard-user.interface.js +2 -0
- package/build/src/handler/interfaces/add-user/index.d.ts +9 -0
- package/build/src/handler/interfaces/add-user/index.d.ts.map +1 -0
- package/build/src/handler/interfaces/add-user/index.js +24 -0
- package/build/src/handler/interfaces/index.d.ts +2 -0
- package/build/src/handler/interfaces/index.d.ts.map +1 -0
- package/build/src/handler/interfaces/index.js +17 -0
- package/build/src/handler/models/add-user/add-user.response.model.d.ts +5 -0
- package/build/src/handler/models/add-user/add-user.response.model.d.ts.map +1 -0
- package/build/src/handler/models/add-user/add-user.response.model.js +9 -0
- package/build/src/handler/models/add-user/index.d.ts +2 -0
- package/build/src/handler/models/add-user/index.d.ts.map +1 -0
- package/build/src/handler/models/add-user/index.js +17 -0
- package/build/src/handler/models/get-inbound-users/get-inbound-users.response.model.d.ts +7 -0
- package/build/src/handler/models/get-inbound-users/get-inbound-users.response.model.d.ts.map +1 -0
- package/build/src/handler/models/get-inbound-users/get-inbound-users.response.model.js +10 -0
- package/build/src/handler/models/get-inbound-users/index.d.ts +2 -0
- package/build/src/handler/models/get-inbound-users/index.d.ts.map +1 -0
- package/build/src/handler/models/get-inbound-users/index.js +17 -0
- package/build/src/handler/models/index.d.ts +4 -0
- package/build/src/handler/models/index.d.ts.map +1 -0
- package/build/src/handler/models/index.js +19 -0
- package/build/src/handler/models/remove-user/index.d.ts +2 -0
- package/build/src/handler/models/remove-user/index.d.ts.map +1 -0
- package/build/src/handler/models/remove-user/index.js +17 -0
- package/build/src/handler/models/remove-user/remove-user.response.model.d.ts +5 -0
- package/build/src/handler/models/remove-user/remove-user.response.model.d.ts.map +1 -0
- package/build/src/handler/models/remove-user/remove-user.response.model.js +9 -0
- package/build/src/router/interfaces/index.d.ts +2 -0
- package/build/src/router/interfaces/index.d.ts.map +1 -0
- package/build/src/router/interfaces/index.js +17 -0
- package/build/src/router/interfaces/remove-rule-by-rule-tag.interface.d.ts +4 -0
- package/build/src/router/interfaces/remove-rule-by-rule-tag.interface.d.ts.map +1 -0
- package/build/src/router/interfaces/remove-rule-by-rule-tag.interface.js +2 -0
- package/build/src/router/models/index.d.ts +2 -0
- package/build/src/router/models/index.d.ts.map +1 -0
- package/build/src/router/models/index.js +17 -0
- package/build/src/router/models/remove-rule-by-rule-tag/index.d.ts +2 -0
- package/build/src/router/models/remove-rule-by-rule-tag/index.d.ts.map +1 -0
- package/build/src/router/models/remove-rule-by-rule-tag/index.js +17 -0
- package/build/src/router/models/remove-rule-by-rule-tag/remove-rule-by-rule-tag.response.model.d.ts +5 -0
- package/build/src/router/models/remove-rule-by-rule-tag/remove-rule-by-rule-tag.response.model.d.ts.map +1 -0
- package/build/src/router/models/remove-rule-by-rule-tag/remove-rule-by-rule-tag.response.model.js +9 -0
- package/build/src/router/router.service.d.ts +31 -0
- package/build/src/router/router.service.d.ts.map +1 -0
- package/build/src/router/router.service.js +56 -0
- package/build/src/stats/models/get-all-inbounds-stats/get-all-inbounds-stats.response.model.d.ts +21 -0
- package/build/src/stats/models/get-all-inbounds-stats/get-all-inbounds-stats.response.model.d.ts.map +1 -0
- package/build/src/stats/models/get-all-inbounds-stats/get-all-inbounds-stats.response.model.js +42 -0
- package/build/src/stats/models/get-all-inbounds-stats/index.d.ts +2 -0
- package/build/src/stats/models/get-all-inbounds-stats/index.d.ts.map +1 -0
- package/build/src/stats/models/get-all-inbounds-stats/index.js +17 -0
- package/build/src/stats/models/get-all-inbounds-stats/interfaces/inbound.interface.d.ts +6 -0
- package/build/src/stats/models/get-all-inbounds-stats/interfaces/inbound.interface.d.ts.map +1 -0
- package/build/src/stats/models/get-all-inbounds-stats/interfaces/inbound.interface.js +2 -0
- package/build/src/stats/models/get-all-inbounds-stats/interfaces/index.d.ts +2 -0
- package/build/src/stats/models/get-all-inbounds-stats/interfaces/index.d.ts.map +1 -0
- package/build/src/stats/models/get-all-inbounds-stats/interfaces/index.js +17 -0
- package/build/src/stats/models/get-all-outbounds-stats/get-all-outbounds-stats.response.model.d.ts +21 -0
- package/build/src/stats/models/get-all-outbounds-stats/get-all-outbounds-stats.response.model.d.ts.map +1 -0
- package/build/src/stats/models/get-all-outbounds-stats/get-all-outbounds-stats.response.model.js +42 -0
- package/build/src/stats/models/get-all-outbounds-stats/index.d.ts +2 -0
- package/build/src/stats/models/get-all-outbounds-stats/index.d.ts.map +1 -0
- package/build/src/stats/models/get-all-outbounds-stats/index.js +17 -0
- package/build/src/stats/models/get-all-outbounds-stats/interfaces/index.d.ts +2 -0
- package/build/src/stats/models/get-all-outbounds-stats/interfaces/index.d.ts.map +1 -0
- package/build/src/stats/models/get-all-outbounds-stats/interfaces/index.js +17 -0
- package/build/src/stats/models/get-all-outbounds-stats/interfaces/outbound.interface.d.ts +6 -0
- package/build/src/stats/models/get-all-outbounds-stats/interfaces/outbound.interface.d.ts.map +1 -0
- package/build/src/stats/models/get-all-outbounds-stats/interfaces/outbound.interface.js +2 -0
- package/build/src/stats/models/get-all-users-stats/get-all-users-stats.response.model.d.ts +21 -0
- package/build/src/stats/models/get-all-users-stats/get-all-users-stats.response.model.d.ts.map +1 -0
- package/build/src/stats/models/get-all-users-stats/get-all-users-stats.response.model.js +42 -0
- package/build/src/stats/models/get-all-users-stats/index.d.ts +2 -0
- package/build/src/stats/models/get-all-users-stats/index.d.ts.map +1 -0
- package/build/src/stats/models/get-all-users-stats/index.js +17 -0
- package/build/src/stats/models/get-all-users-stats/interfaces/index.d.ts +2 -0
- package/build/src/stats/models/get-all-users-stats/interfaces/index.d.ts.map +1 -0
- package/build/src/stats/models/get-all-users-stats/interfaces/index.js +17 -0
- package/build/src/stats/models/get-all-users-stats/interfaces/user.interface.d.ts +6 -0
- package/build/src/stats/models/get-all-users-stats/interfaces/user.interface.d.ts.map +1 -0
- package/build/src/stats/models/get-all-users-stats/interfaces/user.interface.js +2 -0
- package/build/src/stats/models/get-inbound-stats/get-inbound-stats.response.model.d.ts +27 -0
- package/build/src/stats/models/get-inbound-stats/get-inbound-stats.response.model.d.ts.map +1 -0
- package/build/src/stats/models/get-inbound-stats/get-inbound-stats.response.model.js +46 -0
- package/build/src/stats/models/get-inbound-stats/index.d.ts +2 -0
- package/build/src/stats/models/get-inbound-stats/index.d.ts.map +1 -0
- package/build/src/stats/models/get-inbound-stats/index.js +17 -0
- package/build/src/stats/models/get-inbound-stats/interfaces/inbound.interface.d.ts +6 -0
- package/build/src/stats/models/get-inbound-stats/interfaces/inbound.interface.d.ts.map +1 -0
- package/build/src/stats/models/get-inbound-stats/interfaces/inbound.interface.js +2 -0
- package/build/src/stats/models/get-inbound-stats/interfaces/index.d.ts +2 -0
- package/build/src/stats/models/get-inbound-stats/interfaces/index.d.ts.map +1 -0
- package/build/src/stats/models/get-inbound-stats/interfaces/index.js +17 -0
- package/build/src/stats/models/get-outbound-stats/get-outbound-stats.response.model.d.ts +27 -0
- package/build/src/stats/models/get-outbound-stats/get-outbound-stats.response.model.d.ts.map +1 -0
- package/build/src/stats/models/get-outbound-stats/get-outbound-stats.response.model.js +46 -0
- package/build/src/stats/models/get-outbound-stats/index.d.ts +2 -0
- package/build/src/stats/models/get-outbound-stats/index.d.ts.map +1 -0
- package/build/src/stats/models/get-outbound-stats/index.js +17 -0
- package/build/src/stats/models/get-outbound-stats/interfaces/index.d.ts +2 -0
- package/build/src/stats/models/get-outbound-stats/interfaces/index.d.ts.map +1 -0
- package/build/src/stats/models/get-outbound-stats/interfaces/index.js +17 -0
- package/build/src/stats/models/get-outbound-stats/interfaces/outbound.d.ts +6 -0
- package/build/src/stats/models/get-outbound-stats/interfaces/outbound.d.ts.map +1 -0
- package/build/src/stats/models/get-outbound-stats/interfaces/outbound.js +2 -0
- package/build/src/stats/models/get-sys-stats/get-sys-stats.response.model.d.ts +15 -0
- package/build/src/stats/models/get-sys-stats/get-sys-stats.response.model.d.ts.map +1 -0
- package/build/src/stats/models/get-sys-stats/get-sys-stats.response.model.js +22 -0
- package/build/src/stats/models/get-sys-stats/index.d.ts +2 -0
- package/build/src/stats/models/get-sys-stats/index.d.ts.map +1 -0
- package/build/src/stats/models/get-sys-stats/index.js +17 -0
- package/build/src/stats/models/get-user-online-status/get-user-online-status.response.model.d.ts +5 -0
- package/build/src/stats/models/get-user-online-status/get-user-online-status.response.model.d.ts.map +1 -0
- package/build/src/stats/models/get-user-online-status/get-user-online-status.response.model.js +9 -0
- package/build/src/stats/models/get-user-online-status/index.d.ts +2 -0
- package/build/src/stats/models/get-user-online-status/index.d.ts.map +1 -0
- package/build/src/stats/models/get-user-online-status/index.js +17 -0
- package/build/src/stats/models/get-user-stats/get-user-stats.response.model.d.ts +26 -0
- package/build/src/stats/models/get-user-stats/get-user-stats.response.model.d.ts.map +1 -0
- package/build/src/stats/models/get-user-stats/get-user-stats.response.model.js +46 -0
- package/build/src/stats/models/get-user-stats/index.d.ts +2 -0
- package/build/src/stats/models/get-user-stats/index.d.ts.map +1 -0
- package/build/src/stats/models/get-user-stats/index.js +17 -0
- package/build/src/stats/models/get-user-stats/interfaces/index.d.ts +2 -0
- package/build/src/stats/models/get-user-stats/interfaces/index.d.ts.map +1 -0
- package/build/src/stats/models/get-user-stats/interfaces/index.js +17 -0
- package/build/src/stats/models/get-user-stats/interfaces/user.interface.d.ts +6 -0
- package/build/src/stats/models/get-user-stats/interfaces/user.interface.d.ts.map +1 -0
- package/build/src/stats/models/get-user-stats/interfaces/user.interface.js +2 -0
- package/build/src/stats/models/get-users-stats/get-users-stats.response.model.d.ts +50 -0
- package/build/src/stats/models/get-users-stats/get-users-stats.response.model.d.ts.map +1 -0
- package/build/src/stats/models/get-users-stats/get-users-stats.response.model.js +52 -0
- package/build/src/stats/models/get-users-stats/index.d.ts +2 -0
- package/build/src/stats/models/get-users-stats/index.d.ts.map +1 -0
- package/build/src/stats/models/get-users-stats/index.js +17 -0
- package/build/src/stats/models/index.d.ts +10 -0
- package/build/src/stats/models/index.d.ts.map +1 -0
- package/build/src/stats/models/index.js +25 -0
- package/build/src/stats/stats.service.d.ts +271 -0
- package/build/src/stats/stats.service.d.ts.map +1 -0
- package/build/src/stats/stats.service.js +527 -0
- package/build/src/xray-protos/app/commander/config.d.ts +37 -0
- package/build/src/xray-protos/app/commander/config.d.ts.map +1 -0
- package/build/src/xray-protos/app/commander/config.js +143 -0
- package/build/src/xray-protos/app/dispatcher/config.d.ts +26 -0
- package/build/src/xray-protos/app/dispatcher/config.d.ts.map +1 -0
- package/build/src/xray-protos/app/dispatcher/config.js +112 -0
- package/build/src/xray-protos/app/geodata/config.d.ts +30 -0
- package/build/src/xray-protos/app/geodata/config.d.ts.map +1 -0
- package/build/src/xray-protos/app/geodata/config.js +172 -0
- package/build/src/xray-protos/app/log/command/config.d.ts +51 -0
- package/build/src/xray-protos/app/log/command/config.d.ts.map +1 -0
- package/build/src/xray-protos/app/log/command/config.js +143 -0
- package/build/src/xray-protos/app/log/config.d.ts +38 -0
- package/build/src/xray-protos/app/log/config.d.ts.map +1 -0
- package/build/src/xray-protos/app/log/config.js +244 -0
- package/build/src/xray-protos/app/metrics/config.d.ts +25 -0
- package/build/src/xray-protos/app/metrics/config.d.ts.map +1 -0
- package/build/src/xray-protos/app/metrics/config.js +86 -0
- package/build/src/xray-protos/app/policy/config.d.ts +78 -0
- package/build/src/xray-protos/app/policy/config.d.ts.map +1 -0
- package/build/src/xray-protos/app/policy/config.js +790 -0
- package/build/src/xray-protos/app/proxyman/command/command.d.ts +237 -0
- package/build/src/xray-protos/app/proxyman/command/command.d.ts.map +1 -0
- package/build/src/xray-protos/app/proxyman/command/command.js +1255 -0
- package/build/src/xray-protos/app/proxyman/config.d.ts +91 -0
- package/build/src/xray-protos/app/proxyman/config.d.ts.map +1 -0
- package/build/src/xray-protos/app/proxyman/config.js +779 -0
- package/build/src/xray-protos/app/reverse/config.d.ts +48 -0
- package/build/src/xray-protos/app/reverse/config.d.ts.map +1 -0
- package/build/src/xray-protos/app/reverse/config.js +365 -0
- package/build/src/xray-protos/app/router/command/command.d.ts +250 -0
- package/build/src/xray-protos/app/router/command/command.d.ts.map +1 -0
- package/build/src/xray-protos/app/router/command/command.js +1461 -0
- package/build/src/xray-protos/app/stats/command/command.d.ts +204 -0
- package/build/src/xray-protos/app/stats/command/command.d.ts.map +1 -0
- package/build/src/xray-protos/app/stats/command/command.js +1318 -0
- package/build/src/xray-protos/app/stats/config.d.ts +28 -0
- package/build/src/xray-protos/app/stats/config.d.ts.map +1 -0
- package/build/src/xray-protos/app/stats/config.js +140 -0
- package/build/src/xray-protos/app/version/config.d.ts +24 -0
- package/build/src/xray-protos/app/version/config.d.ts.map +1 -0
- package/build/src/xray-protos/app/version/config.js +113 -0
- package/build/src/xray-protos/common/geodata/geodat.d.ts +111 -0
- package/build/src/xray-protos/common/geodata/geodat.d.ts.map +1 -0
- package/build/src/xray-protos/common/geodata/geodat.js +1027 -0
- package/build/src/xray-protos/common/log/log.d.ts +12 -0
- package/build/src/xray-protos/common/log/log.d.ts.map +1 -0
- package/build/src/xray-protos/common/log/log.js +61 -0
- package/build/src/xray-protos/common/net/address.d.ts +29 -0
- package/build/src/xray-protos/common/net/address.d.ts.map +1 -0
- package/build/src/xray-protos/common/net/address.js +111 -0
- package/build/src/xray-protos/common/net/destination.d.ts +27 -0
- package/build/src/xray-protos/common/net/destination.d.ts.map +1 -0
- package/build/src/xray-protos/common/net/destination.js +105 -0
- package/build/src/xray-protos/common/net/network.d.ts +32 -0
- package/build/src/xray-protos/common/net/network.d.ts.map +1 -0
- package/build/src/xray-protos/common/net/network.js +122 -0
- package/build/src/xray-protos/common/net/port.d.ts +32 -0
- package/build/src/xray-protos/common/net/port.d.ts.map +1 -0
- package/build/src/xray-protos/common/net/port.js +142 -0
- package/build/src/xray-protos/common/protocol/headers.d.ts +34 -0
- package/build/src/xray-protos/common/protocol/headers.d.ts.map +1 -0
- package/build/src/xray-protos/common/protocol/headers.js +126 -0
- package/build/src/xray-protos/common/protocol/server_spec.d.ts +26 -0
- package/build/src/xray-protos/common/protocol/server_spec.d.ts.map +1 -0
- package/build/src/xray-protos/common/protocol/server_spec.js +105 -0
- package/build/src/xray-protos/common/protocol/user.d.ts +30 -0
- package/build/src/xray-protos/common/protocol/user.d.ts.map +1 -0
- package/build/src/xray-protos/common/protocol/user.js +104 -0
- package/build/src/xray-protos/common/serial/typed_message.d.ts +26 -0
- package/build/src/xray-protos/common/serial/typed_message.d.ts.map +1 -0
- package/build/src/xray-protos/common/serial/typed_message.js +111 -0
- package/build/src/xray-protos/core/config.d.ts +74 -0
- package/build/src/xray-protos/core/config.d.ts.map +1 -0
- package/build/src/xray-protos/core/config.js +366 -0
- package/build/src/xray-protos/proxy/blackhole/config.d.ts +31 -0
- package/build/src/xray-protos/proxy/blackhole/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/blackhole/config.js +152 -0
- package/build/src/xray-protos/proxy/dns/config.d.ts +43 -0
- package/build/src/xray-protos/proxy/dns/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/dns/config.js +276 -0
- package/build/src/xray-protos/proxy/dokodemo/config.d.ts +38 -0
- package/build/src/xray-protos/proxy/dokodemo/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/dokodemo/config.js +285 -0
- package/build/src/xray-protos/proxy/freedom/config.d.ts +82 -0
- package/build/src/xray-protos/proxy/freedom/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/freedom/config.js +902 -0
- package/build/src/xray-protos/proxy/http/config.d.ts +54 -0
- package/build/src/xray-protos/proxy/http/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/http/config.js +418 -0
- package/build/src/xray-protos/proxy/hysteria/account/config.d.ts +22 -0
- package/build/src/xray-protos/proxy/hysteria/account/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/hysteria/account/config.js +68 -0
- package/build/src/xray-protos/proxy/hysteria/config.d.ts +29 -0
- package/build/src/xray-protos/proxy/hysteria/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/hysteria/config.js +131 -0
- package/build/src/xray-protos/proxy/loopback/config.d.ts +24 -0
- package/build/src/xray-protos/proxy/loopback/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/loopback/config.js +93 -0
- package/build/src/xray-protos/proxy/shadowsocks/config.d.ts +49 -0
- package/build/src/xray-protos/proxy/shadowsocks/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/shadowsocks/config.js +307 -0
- package/build/src/xray-protos/proxy/shadowsocks_2022/config.d.ts +67 -0
- package/build/src/xray-protos/proxy/shadowsocks_2022/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/shadowsocks_2022/config.js +646 -0
- package/build/src/xray-protos/proxy/socks/config.d.ts +61 -0
- package/build/src/xray-protos/proxy/socks/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/socks/config.js +416 -0
- package/build/src/xray-protos/proxy/trojan/config.d.ts +45 -0
- package/build/src/xray-protos/proxy/trojan/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/trojan/config.js +342 -0
- package/build/src/xray-protos/proxy/tun/config.d.ts +28 -0
- package/build/src/xray-protos/proxy/tun/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/tun/config.js +182 -0
- package/build/src/xray-protos/proxy/vless/account.d.ts +39 -0
- package/build/src/xray-protos/proxy/vless/account.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/vless/account.js +287 -0
- package/build/src/xray-protos/proxy/vless/encoding/addons.d.ts +23 -0
- package/build/src/xray-protos/proxy/vless/encoding/addons.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/vless/encoding/addons.js +111 -0
- package/build/src/xray-protos/proxy/vless/inbound/config.d.ts +39 -0
- package/build/src/xray-protos/proxy/vless/inbound/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/vless/inbound/config.js +322 -0
- package/build/src/xray-protos/proxy/vless/outbound/config.d.ts +23 -0
- package/build/src/xray-protos/proxy/vless/outbound/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/vless/outbound/config.js +71 -0
- package/build/src/xray-protos/proxy/vmess/account.d.ts +31 -0
- package/build/src/xray-protos/proxy/vmess/account.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/vmess/account.js +112 -0
- package/build/src/xray-protos/proxy/vmess/inbound/config.d.ts +34 -0
- package/build/src/xray-protos/proxy/vmess/inbound/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/vmess/inbound/config.js +195 -0
- package/build/src/xray-protos/proxy/vmess/outbound/config.d.ts +23 -0
- package/build/src/xray-protos/proxy/vmess/outbound/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/vmess/outbound/config.js +74 -0
- package/build/src/xray-protos/proxy/wireguard/config.d.ts +50 -0
- package/build/src/xray-protos/proxy/wireguard/config.d.ts.map +1 -0
- package/build/src/xray-protos/proxy/wireguard/config.js +434 -0
- package/build/src/xray-protos/transport/internet/config.d.ts +164 -0
- package/build/src/xray-protos/transport/internet/config.d.ts.map +1 -0
- package/build/src/xray-protos/transport/internet/config.js +1705 -0
- package/build/src/xray-protos/typeRegistry.d.ts +19 -0
- package/build/src/xray-protos/typeRegistry.d.ts.map +1 -0
- package/build/src/xray-protos/typeRegistry.js +8 -0
- package/package.json +60 -0
package/build/src/stats/models/get-user-online-status/get-user-online-status.response.model.js
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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,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 @@
|
|
|
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"}
|