{"_id":"x3ui-api","_rev":"29-7f25352c1914281343195e30687b5dfe","name":"x3ui-api","dist-tags":{"latest":"1.1.2"},"versions":{"1.0.0":{"name":"x3ui-api","version":"1.0.0","keywords":["x3ui","api","client"],"author":"","license":"MIT","_id":"x3ui-api@1.0.0","maintainers":[{"name":"redguys","email":"admin@redguy.ru"}],"homepage":"https://github.com/RedGuys/x3ui-api#readme","bugs":{"url":"https://github.com/RedGuys/x3ui-api/issues"},"dist":{"shasum":"2d06ffdee5aee7e805967a482f1c0e902237da44","tarball":"https://registry.npmjs.org/x3ui-api/-/x3ui-api-1.0.0.tgz","fileCount":4,"integrity":"sha512-EmjP3ympNyw0N/LqT6Gt8UJM0q+QPrAMeMAvUD4N2CIrYfq9VN8hY1TpR5lqu7t5/P+tT06FsurHlGM28+RNpQ==","signatures":[{"sig":"MEQCIApWDEIFQ6EfnGy++FoWRXv4rVdZ0cXe96mK+h5MzWVBAiBIVpInq1+6l3AsOGxlOWfH/ueyd33K2sueKXAfPyRjBA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19354},"main":"src/index.js","types":"src/index.d.ts","gitHead":"124c2215bf1fd1c862940194bcb5cca42f3eddde","scripts":{"test":"jest"},"_npmUser":{"name":"redguys","email":"admin@redguy.ru"},"repository":{"url":"git+https://github.com/RedGuys/x3ui-api.git"},"_npmVersion":"10.7.0","description":"API client for x3ui panel","directories":{},"_nodeVersion":"18.20.3","dependencies":{"axios":"^1.6.5","form-data":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.11.5"},"_npmOperationalInternal":{"tmp":"tmp/x3ui-api_1.0.0_1737220489731_0.8406497653085283","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"x3ui-api","version":"1.0.1","keywords":["x3ui","api","client"],"author":"","license":"MIT","_id":"x3ui-api@1.0.1","maintainers":[{"name":"redguys","email":"admin@redguy.ru"}],"homepage":"https://github.com/RedGuys/x3ui-api#readme","bugs":{"url":"https://github.com/RedGuys/x3ui-api/issues"},"dist":{"shasum":"f9f7cb60513ceafa64dd0f27d9efd90a0701cb26","tarball":"https://registry.npmjs.org/x3ui-api/-/x3ui-api-1.0.1.tgz","fileCount":4,"integrity":"sha512-KvBAXhdRNUIz3Nty+hjJu8yWbvSVNEy1AF25ky0mxJ2zj5CA45fTcedb8sRPPWAuIdISoDBjkPMkf+OR3EPshA==","signatures":[{"sig":"MEQCIA5trcVlZRYKRoQ+Ghv0JpP4YyRQMCGQkiqb+mgSobJjAiBD7JY/5H1X9wS+WJ/7b7X3XD/Woa3JbdzqUljPF/PPvg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19409},"main":"src/index.js","types":"src/index.d.ts","gitHead":"124c2215bf1fd1c862940194bcb5cca42f3eddde","scripts":{"test":"jest"},"_npmUser":{"name":"redguys","email":"admin@redguy.ru"},"repository":{"url":"git+https://github.com/RedGuys/x3ui-api.git"},"_npmVersion":"10.7.0","description":"API client for x3ui panel","directories":{},"_nodeVersion":"18.20.3","dependencies":{"axios":"^1.6.5","form-data":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.11.5"},"_npmOperationalInternal":{"tmp":"tmp/x3ui-api_1.0.1_1737226508040_0.9231401395846655","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"x3ui-api","version":"1.0.2","keywords":["x3ui","api","client"],"author":"","license":"MIT","_id":"x3ui-api@1.0.2","maintainers":[{"name":"redguys","email":"admin@redguy.ru"}],"homepage":"https://github.com/RedGuys/x3ui-api#readme","bugs":{"url":"https://github.com/RedGuys/x3ui-api/issues"},"dist":{"shasum":"50f7af299407e8e123c09567bc2bdf961d23ea25","tarball":"https://registry.npmjs.org/x3ui-api/-/x3ui-api-1.0.2.tgz","fileCount":4,"integrity":"sha512-fXv+bAi73T9isG20lXwR/8mOlATxhQ4XglAPuJQ8ayFNStqbGGkmyiR4q+0Pxy+IurnG1ZBLOSsmads8mZ1dNw==","signatures":[{"sig":"MEYCIQCl1rvrVt8ME2dGywL4fJdq/iRZIDh5zt+Nma9/nw7+MgIhAITvJ01uJWWJ9Vlb3rvLW0NWY1u46ETZullUHjZiu71i","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21601},"main":"src/index.js","types":"src/index.d.ts","gitHead":"7a519ee0b12fde56bbacec4a2f179d74615decb8","scripts":{"test":"jest"},"_npmUser":{"name":"redguys","email":"admin@redguy.ru"},"repository":{"url":"git+https://github.com/RedGuys/x3ui-api.git"},"_npmVersion":"10.7.0","description":"API client for x3ui panel","directories":{},"_nodeVersion":"18.20.3","dependencies":{"axios":"^1.6.5","form-data":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.11.5"},"_npmOperationalInternal":{"tmp":"tmp/x3ui-api_1.0.2_1737941433044_0.45375367739084504","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"x3ui-api","version":"1.0.3","keywords":["x3ui","api","client"],"author":"","license":"MIT","_id":"x3ui-api@1.0.3","maintainers":[{"name":"redguys","email":"admin@redguy.ru"}],"homepage":"https://github.com/RedGuys/x3ui-api#readme","bugs":{"url":"https://github.com/RedGuys/x3ui-api/issues"},"dist":{"shasum":"6e23c5d067c8d05e06303c0da8ea10f2edfb5726","tarball":"https://registry.npmjs.org/x3ui-api/-/x3ui-api-1.0.3.tgz","fileCount":4,"integrity":"sha512-DBForCP0FEnxOJvQBtNM7/TA1oKdwPs/34vIktFKUbucD9LNMoWsR46zR0RIOMVRAls2FA6ct9FP+bw/Cfe9CQ==","signatures":[{"sig":"MEQCIHo+c4PJ94cwPcySg5vza8VUMOQafnttt+cSkYiUCclPAiA+TzzsQVyCeGDkddwq/ZnD9EQt+YIjPgdOSDLiJIamoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26407},"main":"src/index.js","types":"src/index.d.ts","gitHead":"7a519ee0b12fde56bbacec4a2f179d74615decb8","scripts":{"test":"jest"},"_npmUser":{"name":"redguys","email":"admin@redguy.ru"},"repository":{"url":"git+https://github.com/RedGuys/x3ui-api.git"},"_npmVersion":"9.5.0","description":"API client for x3ui panel","directories":{},"_nodeVersion":"18.14.2","dependencies":{"axios":"^1.8.2","form-data":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.11.5"},"_npmOperationalInternal":{"tmp":"tmp/x3ui-api_1.0.3_1746796167837_0.8075998648802156","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"x3ui-api","version":"1.0.4","keywords":["x3ui","api","client"],"author":"","license":"MIT","_id":"x3ui-api@1.0.4","maintainers":[{"name":"redguys","email":"admin@redguy.ru"}],"homepage":"https://github.com/RedGuys/x3ui-api#readme","bugs":{"url":"https://github.com/RedGuys/x3ui-api/issues"},"dist":{"shasum":"9bf9bd901d6ee3001a560ef4e685a99936bc645d","tarball":"https://registry.npmjs.org/x3ui-api/-/x3ui-api-1.0.4.tgz","fileCount":22,"integrity":"sha512-m9ZWgxi6AFgKniDuYWTRUGJcc7I2WhTTobL6k0IIop10Z29mEOmhGZx1JueyFz6W33GxIn9rfaOasCyP+wimEw==","signatures":[{"sig":"MEUCIAca55vyMdcoVi1D94kY4eqCglV8AUEB/P2sLISvGVvzAiEA1UR884eroAbftqaHgEO0ECS6t27z9HTgh6Ikie1q0sA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47464},"main":"src/index.js","types":"src/index.d.ts","gitHead":"002a97f2041e1ab71f617d3035f7c528545b649b","scripts":{"test":"jest"},"_npmUser":{"name":"redguys","email":"admin@redguy.ru"},"repository":{"url":"git+https://github.com/RedGuys/x3ui-api.git"},"_npmVersion":"9.5.0","description":"API client for x3ui panel","directories":{},"_nodeVersion":"18.14.2","dependencies":{"axios":"^1.8.2","form-data":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.11.5"},"_npmOperationalInternal":{"tmp":"tmp/x3ui-api_1.0.4_1746897804043_0.5299834647246158","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"x3ui-api","version":"1.0.5","keywords":["x3ui","api","client"],"author":"","license":"MIT","_id":"x3ui-api@1.0.5","maintainers":[{"name":"redguys","email":"admin@redguy.ru"}],"homepage":"https://github.com/RedGuys/x3ui-api#readme","bugs":{"url":"https://github.com/RedGuys/x3ui-api/issues"},"dist":{"shasum":"9cc5e9aa91798b1b00145f3599ff617727d90e77","tarball":"https://registry.npmjs.org/x3ui-api/-/x3ui-api-1.0.5.tgz","fileCount":29,"integrity":"sha512-nnWWUWRLrXHwiZBvNeT+6xqhiT1LBN6p76qtUWBfO4LNmn0XHiaXu69jUd8abjlUoejaY+ObmCcTx1KEutqMdQ==","signatures":[{"sig":"MEUCIQCY9NzNNFaqICkvQpejT79yNJXlFhkhyx34ABK/iVOx4wIgJKcMNDAq6t2EbxpIfScg+9npKwOfU62VSGY6OsqUyiE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70372},"main":"src/index.js","types":"src/index.d.ts","gitHead":"edfa5534b38f17a64a0ce1e8b502dd453e609c3e","scripts":{"test":"jest"},"_npmUser":{"name":"redguys","email":"admin@redguy.ru"},"repository":{"url":"git+https://github.com/RedGuys/x3ui-api.git"},"_npmVersion":"9.5.0","description":"API client for x3ui panel","directories":{},"_nodeVersion":"18.14.2","dependencies":{"axios":"^1.8.2","form-data":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.11.5"},"_npmOperationalInternal":{"tmp":"tmp/x3ui-api_1.0.5_1746991917741_0.5992282348364488","host":"s3://npm-registry-packages-npm-production"}},"1.0.6-3":{"name":"x3ui-api","version":"1.0.6-3","keywords":["x3ui","api","client"],"author":"","license":"MIT","_id":"x3ui-api@1.0.6-3","maintainers":[{"name":"redguys","email":"admin@redguy.ru"}],"homepage":"https://github.com/RedGuys/x3ui-api#readme","bugs":{"url":"https://github.com/RedGuys/x3ui-api/issues"},"dist":{"shasum":"e480a298c90c39efce5dbd0c3efe604d79ed389f","tarball":"https://registry.npmjs.org/x3ui-api/-/x3ui-api-1.0.6-3.tgz","fileCount":28,"integrity":"sha512-ZxU2wEHilgT7MVb1XZeLt/7qC/27qo7A2Yrs7YzCXlPdD9C7ZMrY5KZZdLRYKxHfGR6hPKseicvnlz6lo4qs/g==","signatures":[{"sig":"MEUCIQDFJMXGwHT53j3rUp9L82Grzzgs4p5DRepcwZgYQFOH5QIgSq93QkwNWedMEh1YpgJM4KFfGCk+Zht3SalKoViaX2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68692},"main":"src/index.js","types":"src/index.d.ts","gitHead":"edfa5534b38f17a64a0ce1e8b502dd453e609c3e","scripts":{"test":"jest"},"_npmUser":{"name":"redguys","email":"admin@redguy.ru"},"repository":{"url":"git+https://github.com/RedGuys/x3ui-api.git"},"_npmVersion":"9.5.0","description":"API client for x3ui panel","directories":{},"_nodeVersion":"18.14.2","dependencies":{"axios":"^1.8.2","form-data":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.11.5"},"_npmOperationalInternal":{"tmp":"tmp/x3ui-api_1.0.6-3_1752357719459_0.18963100997221316","host":"s3://npm-registry-packages-npm-production"}},"1.0.7-1":{"name":"x3ui-api","version":"1.0.7-1","keywords":["x3ui","api","client"],"author":"","license":"MIT","_id":"x3ui-api@1.0.7-1","maintainers":[{"name":"redguys","email":"admin@redguy.ru"}],"homepage":"https://github.com/RedGuys/x3ui-api#readme","bugs":{"url":"https://github.com/RedGuys/x3ui-api/issues"},"dist":{"shasum":"6646a6db70fc98c9737d32f02cee8dd9d104105a","tarball":"https://registry.npmjs.org/x3ui-api/-/x3ui-api-1.0.7-1.tgz","fileCount":32,"integrity":"sha512-chZH+cRczSqE5gLy1iuGhI5DdhA0q/TGeq2OyejfE/b0j6NwFzCVi5Gn/ubyFaIqwsiNslFntME5hsnolFm+KA==","signatures":[{"sig":"MEYCIQC6n6dGYJeLflvolHzEe9oU+rdnkCKawohsn740Issl1AIhAJv91RxrfRoy51ZdOHUjal/FzCr6W4vLdAqATC1UIb47","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76140},"main":"src/index.js","types":"src/index.d.ts","gitHead":"edfa5534b38f17a64a0ce1e8b502dd453e609c3e","scripts":{"test":"jest"},"_npmUser":{"name":"redguys","email":"admin@redguy.ru"},"repository":{"url":"git+https://github.com/RedGuys/x3ui-api.git"},"_npmVersion":"9.5.0","description":"API client for x3ui panel","directories":{},"_nodeVersion":"18.14.2","dependencies":{"axios":"^1.8.2","form-data":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.11.5"},"_npmOperationalInternal":{"tmp":"tmp/x3ui-api_1.0.7-1_1752358713142_0.23473309201079307","host":"s3://npm-registry-packages-npm-production"}},"1.0.8-1":{"name":"x3ui-api","version":"1.0.8-1","keywords":["x3ui","api","client"],"author":"","license":"MIT","_id":"x3ui-api@1.0.8-1","maintainers":[{"name":"redguys","email":"admin@redguy.ru"}],"homepage":"https://github.com/RedGuys/x3ui-api#readme","bugs":{"url":"https://github.com/RedGuys/x3ui-api/issues"},"dist":{"shasum":"e9e85bd4200481260082be809fc5f590b921d14e","tarball":"https://registry.npmjs.org/x3ui-api/-/x3ui-api-1.0.8-1.tgz","fileCount":32,"integrity":"sha512-p+bGBNieNQeP51VphHmjJG1sYNbcVhvfZB3m/62UJsoOIuduUp7HMGZMmFUANZRvxLWGb7uBlhw/pW5guB95SA==","signatures":[{"sig":"MEUCICd8BEnYVc4gVEdkkFzsPCdlZ12ac4ziqIwzHTs+6EGuAiEA/0HxM8B1XazzWUwrN+qSyM821AcEBuy4cGFkf1X7y0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75752},"main":"src/index.js","types":"src/index.d.ts","gitHead":"bc373aa3bf9a25461998d7133561db7606a578b7","scripts":{"test":"jest"},"_npmUser":{"name":"redguys","email":"admin@redguy.ru"},"repository":{"url":"git+https://github.com/RedGuys/x3ui-api.git"},"_npmVersion":"10.9.0","description":"API client for x3ui panel","directories":{},"_nodeVersion":"22.12.0","dependencies":{"axios":"^1.8.2","form-data":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.11.5"},"_npmOperationalInternal":{"tmp":"tmp/x3ui-api_1.0.8-1_1757522538485_0.012165213345957104","host":"s3://npm-registry-packages-npm-production"}},"1.0.9-1":{"name":"x3ui-api","version":"1.0.9-1","keywords":["x3ui","api","client"],"author":"","license":"MIT","_id":"x3ui-api@1.0.9-1","maintainers":[{"name":"redguys","email":"admin@redguy.ru"}],"homepage":"https://github.com/RedGuys/x3ui-api#readme","bugs":{"url":"https://github.com/RedGuys/x3ui-api/issues"},"dist":{"shasum":"25b17a10d396648bf5a8c30b912b5827862ed819","tarball":"https://registry.npmjs.org/x3ui-api/-/x3ui-api-1.0.9-1.tgz","fileCount":32,"integrity":"sha512-2d33RKN1EHd1zxkbDRme4JKq/WCGGfyGsv9ZPvTNfy5N145Ka30DP755if6pcpkH2Y/OKmAsfauwhevnsQhsLA==","signatures":[{"sig":"MEYCIQC2VUs7fqCGlx1K51yuDd/EUxYD7UCsw8ffFp8qYOIfRwIhAOLg4wOfLWceORvJacgbkEnygTyNswR/r2CBXe0noXjN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76817},"main":"src/index.js","types":"src/index.d.ts","gitHead":"d62c5de5bae0a46d9e6e5689a4fa4070dcd63e3a","scripts":{"test":"jest"},"_npmUser":{"name":"redguys","email":"admin@redguy.ru"},"repository":{"url":"git+https://github.com/RedGuys/x3ui-api.git"},"_npmVersion":"10.9.0","description":"API client for x3ui panel","directories":{},"_nodeVersion":"22.12.0","dependencies":{"axios":"^1.8.2","form-data":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.11.5"},"_npmOperationalInternal":{"tmp":"tmp/x3ui-api_1.0.9-1_1757614455881_0.7638040716254291","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"x3ui-api","version":"1.1.0","keywords":["x3ui","api","client"],"author":"","license":"MIT","_id":"x3ui-api@1.1.0","maintainers":[{"name":"redguys","email":"admin@redguy.ru"}],"homepage":"https://github.com/RedGuys/x3ui-api#readme","bugs":{"url":"https://github.com/RedGuys/x3ui-api/issues"},"dist":{"shasum":"bba0a90a48dfed28588fcd58859b592b23c41d11","tarball":"https://registry.npmjs.org/x3ui-api/-/x3ui-api-1.1.0.tgz","fileCount":32,"integrity":"sha512-m+/KK0QFMgpY28ZKkC5ppKbOEw9M8eBlJsYmcm6birEMcoaEsyswybFyUD2dIn+zrZnK+ZYz+8CreiscSUfj3A==","signatures":[{"sig":"MEYCIQC6Qzz9vyr8tXay1tiHaaIrw12N8EUGA+2/Z+jbj/br0AIhAJ1NmkB3hvkHJDb+GR1LQNtUkmV5WsoAkYpNFKhWylMC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77015},"main":"src/index.js","types":"src/index.d.ts","gitHead":"b10bd6fb3cf4dd2709bef711de865821c9b0861d","scripts":{"test":"jest"},"_npmUser":{"name":"redguys","email":"admin@redguy.ru"},"repository":{"url":"git+https://github.com/RedGuys/x3ui-api.git"},"_npmVersion":"10.9.0","description":"API client for x3ui panel","directories":{},"_nodeVersion":"22.12.0","dependencies":{"axios":"1.12.0","form-data":"4.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.11.5"},"_npmOperationalInternal":{"tmp":"tmp/x3ui-api_1.1.0_1764627924737_0.41661791568446094","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-1":{"name":"x3ui-api","version":"1.1.0-1","keywords":["x3ui","api","client"],"author":"","license":"MIT","_id":"x3ui-api@1.1.0-1","maintainers":[{"name":"redguys","email":"admin@redguy.ru"}],"homepage":"https://github.com/RedGuys/x3ui-api#readme","bugs":{"url":"https://github.com/RedGuys/x3ui-api/issues"},"dist":{"shasum":"e5564b991c9b0d844aa57bbef35d2d01c01f8aca","tarball":"https://registry.npmjs.org/x3ui-api/-/x3ui-api-1.1.0-1.tgz","fileCount":32,"integrity":"sha512-XqS24VjoxTWjv4FWOXzV5czqD2SLlBP0RLGIXa55pt/Hz6TZs/3octF10P1D+8zuB1NzfDjXsB3Spt5kSNC16A==","signatures":[{"sig":"MEYCIQCOayYgtqIq+nzMMX+IwcWukJxY36O69RHjD7bIs+lHxwIhAJqoJ0o2xU/S+FSpfDxWKxMwsVo0l2TgJYJM0KvGazky","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77016},"main":"src/index.js","types":"src/index.d.ts","gitHead":"b10bd6fb3cf4dd2709bef711de865821c9b0861d","scripts":{"test":"jest"},"_npmUser":{"name":"redguys","email":"admin@redguy.ru"},"repository":{"url":"git+https://github.com/RedGuys/x3ui-api.git"},"_npmVersion":"10.9.0","description":"API client for x3ui panel","directories":{},"_nodeVersion":"22.12.0","dependencies":{"axios":"1.12.0","form-data":"4.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.11.5"},"_npmOperationalInternal":{"tmp":"tmp/x3ui-api_1.1.0-1_1764628332711_0.10922123758663238","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"x3ui-api","version":"1.1.2","description":"API client for x3ui panel","main":"src/index.js","types":"src/index.d.ts","scripts":{"test":"jest"},"keywords":["x3ui","api","client"],"author":"","license":"MIT","dependencies":{"axios":"1.12.0","form-data":"4.0.4"},"devDependencies":{"@types/node":"^20.11.5"},"repository":{"url":"git+https://github.com/RedGuys/x3ui-api.git"},"_id":"x3ui-api@1.1.2","gitHead":"b44f9b9f02a622aa2ebe1b128f09267ad8d4babf","bugs":{"url":"https://github.com/RedGuys/x3ui-api/issues"},"homepage":"https://github.com/RedGuys/x3ui-api#readme","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-4GeFJyRFJtd9O2cijT9ZDzXp7Li32ets2rVdhUoVPmaazaqBX6TnAKH0qveLHFQkRjqmZPoeiDbvalzv0fzl2g==","shasum":"fd8173f2629ee16655307414ff27bac500755c3d","tarball":"https://registry.npmjs.org/x3ui-api/-/x3ui-api-1.1.2.tgz","fileCount":32,"unpackedSize":77432,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGWeVklgjtdTbM3RM4jDKpV4uzwnVv/EF2jRqp33GEeLAiEAiGls6ilkPpuQxc2/VrkrRyH6FqBp7XzDVdhv3X6SHVs="}]},"_npmUser":{"name":"redguys","email":"admin@redguy.ru"},"directories":{},"maintainers":[{"name":"redguys","email":"admin@redguy.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/x3ui-api_1.1.2_1766521554902_0.22012387308457648"},"_hasShrinkwrap":false}},"time":{"created":"2025-01-18T17:14:49.730Z","modified":"2025-12-23T20:25:55.212Z","1.0.0":"2025-01-18T17:14:49.923Z","1.0.1":"2025-01-18T18:55:08.267Z","1.0.2":"2025-01-27T01:30:33.232Z","1.0.3":"2025-05-09T13:09:28.041Z","1.0.4":"2025-05-10T17:23:24.231Z","1.0.5":"2025-05-11T19:31:57.955Z","1.0.6":"2025-07-12T19:12:04.806Z","1.0.7":"2025-07-12T19:14:03.656Z","1.0.8":"2025-07-12T19:23:39.293Z","1.0.9":"2025-07-12T19:54:38.837Z","1.0.10":"2025-07-12T19:55:20.023Z","1.0.11":"2025-07-12T20:13:23.396Z","1.0.6-1":"2025-07-12T20:18:50.990Z","1.0.6-2":"2025-07-12T20:23:16.870Z","1.0.6-3":"2025-07-12T22:01:59.640Z","1.0.7-1":"2025-07-12T22:18:33.306Z","1.0.8-1":"2025-09-10T16:42:18.707Z","1.0.9-1":"2025-09-11T18:14:16.078Z","1.1.0":"2025-12-01T22:25:24.914Z","1.1.0-1":"2025-12-01T22:32:12.915Z","1.1.2":"2025-12-23T20:25:55.037Z"},"bugs":{"url":"https://github.com/RedGuys/x3ui-api/issues"},"license":"MIT","homepage":"https://github.com/RedGuys/x3ui-api#readme","keywords":["x3ui","api","client"],"repository":{"url":"git+https://github.com/RedGuys/x3ui-api.git"},"description":"API client for x3ui panel","maintainers":[{"name":"redguys","email":"admin@redguy.ru"}],"readme":"# x3ui-api\n\nA Node.js client for interacting with the x3ui panel API. This library provides a simple interface to manage X-UI inbounds, clients, and system statistics.\n\n## Requirements\n\n- x3-ui v2.7.0 or higher (for lover x3-ui versions, use v1.0.9-1 version of this library)\n\n## Installation\n\n```bash\nnpm install x3ui-api\n```\n\n## Features\n\n- Authentication with x3ui panel\n- Get system statistics (CPU, memory, network, etc.)\n- Manage inbounds (list, add, update, delete)\n- Protocol-specific builders with fluent API:\n  - VLESS with Reality support\n  - VMess with HTTP Upgrade support\n  - WireGuard support\n- Client management with fluent API\n- TypeScript support\n\n## Usage\n\n### Basic Usage\n\n```javascript\nconst X3UIClient = require('x3ui-api');\n\n// Initialize client\nconst client = new X3UIClient({\n  baseURL: 'http://your-x3ui-panel.com:54321'\n});\n\n// Login to panel\nasync function main() {\n  try {\n    const loginResult = await client.login('admin', 'password');\n    console.log('Login successful:', loginResult.success);\n    \n    // Get system stats\n    const stats = await client.getSystemStats();\n    console.log('CPU Usage:', stats.cpu + '%');\n    console.log('Memory:', Math.round(stats.mem.current / stats.mem.total * 100) + '%');\n    \n    // List all inbounds\n    const inbounds = await client.getInbounds();\n    console.log('Inbounds:', inbounds.length);\n    \n    // First inbound details\n    if (inbounds.length > 0) {\n      console.log('First inbound:', inbounds[0].remark);\n      console.log('Protocol:', inbounds[0].protocol);\n      console.log('Port:', inbounds[0].port);\n    }\n  } catch (error) {\n    console.error('Error:', error.message);\n  }\n}\n\nmain();\n```\n\n### Creating a VMess Inbound\n\nThe library provides a convenient builder pattern for creating VMess inbounds with HTTP Upgrade:\n\n```javascript\nconst X3UIClient = require('x3ui-api');\nconst vmess = require('x3ui-api/src/protocols/vmess');\n\nconst client = new X3UIClient({\n  baseURL: 'http://your-x3ui-panel.com:54321'\n});\n\nasync function createVmessInbound() {\n  try {\n    await client.login('admin', 'password');\n    \n    // Create a VMess inbound builder\n    let builder = new vmess.VmessBuilder(client)\n      .setRemark('My VMess Inbound')\n      .setPort(8443) // Optional, will auto-generate if not provided\n      .setHttpUpgradeHost('your-domain.com');\n    \n    // Add a client\n    builder.addClient()\n      .setEmail('user@example.com')\n      .setTotalGB(100) // 100 GB traffic limit\n      .setExpiryTime(Date.now() + 30 * 24 * 60 * 60 * 1000); // 30 days\n    \n    // Build and add the inbound\n    const inbound = await builder.build();\n    const createdInbound = await client.addInbound(inbound);\n    \n    // Update the builder with the server-returned inbound to get all metrics and IDs\n    builder = new vmess.VmessBuilder(client, createdInbound);\n    \n    console.log('Inbound created:', createdInbound);\n    \n    // Get connection link for the client (now with accurate server-assigned values)\n    const link = builder.getClientLink(0, 'your-server-ip.com');\n    console.log('Client connection link:', link);\n  } catch (error) {\n    console.error('Error creating inbound:', error.message);\n  }\n}\n\ncreateVmessInbound();\n```\n\n### Creating a VLESS Reality Inbound\n\nThe library provides a convenient builder pattern for creating Reality inbounds:\n\n```javascript\nconst X3UIClient = require('x3ui-api');\nconst vless = require('x3ui-api/src/protocols/vless');\n\nconst client = new X3UIClient({\n  baseURL: 'http://your-x3ui-panel.com:54321'\n});\n\nasync function createRealityInbound() {\n  try {\n    await client.login('admin', 'password');\n    \n    // Create a Reality inbound builder\n    let builder = new vless.RealityBuilder(client, {\n      remark: 'My Reality Inbound',\n      port: 8443 // Optional, will auto-generate if not provided\n    });\n    \n    // Configure Reality settings\n    builder\n      .setDest('yahoo.com:443')\n      .setServerNames(['yahoo.com', 'www.yahoo.com'])\n      .setFingerprint('chrome');\n    \n    // Add a client\n    builder.addClient()\n      .setEmail('user@example.com')\n      .setTotalGB(100) // 100 GB traffic limit\n      .setExpiryTime(Date.now() + 30 * 24 * 60 * 60 * 1000); // 30 days\n    \n    // Build and add the inbound\n    const inbound = await builder.build();\n    const createdInbound = await client.addInbound(inbound);\n    \n    // Update the builder with the server-returned inbound to get all metrics and IDs\n    builder = new vless.RealityBuilder(client, createdInbound);\n    \n    console.log('Inbound created:', createdInbound);\n    \n    // Get connection link for the client (now with accurate server-assigned values)\n    const link = builder.getClientLink(0, 'your-server-ip.com');\n    console.log('Client connection link:', link);\n  } catch (error) {\n    console.error('Error creating inbound:', error.message);\n  }\n}\n```\n\n### Creating a WireGuard Inbound\n\nThe library provides a convenient builder pattern for creating WireGuard inbounds:\n\n```javascript\nconst X3UIClient = require('x3ui-api');\nconst wireguard = require('x3ui-api/src/protocols/wireguard');\n\nconst client = new X3UIClient({\n  baseURL: 'http://your-x3ui-panel.com:54321'\n});\n\nasync function createWireguardInbound() {\n  try {\n    await client.login('admin', 'password');\n    \n    // Create a WireGuard inbound builder\n    let builder = new wireguard.WireguardBuilder(client)\n      .setRemark('My WireGuard Inbound')\n      .setPort(51820) // WireGuard port, will auto-generate if not provided\n      .setMtu(1420);   // Optional, default is 1420\n    \n    // Keys are automatically generated, but you can set them manually if needed\n    // builder.setSecretKey('your-base64-encoded-secret-key');\n    \n    // Add a client\n    const clientBuilder = builder.addClient()\n      .setEmail('user@example.com')\n      .setTotalGB(100) // 100 GB traffic limit\n      .setExpiryTime(Date.now() + 30 * 24 * 60 * 60 * 1000); // 30 days\n    \n    // Generate key pair for the client (or you can set them manually)\n    clientBuilder.generateKeyPair();\n    \n    // Set allowed IPs (default is 10.0.0.2/32)\n    clientBuilder.setAllowedIPs(['10.0.0.2/32']);\n    \n    // Optionally generate a pre-shared key for additional security\n    clientBuilder.generatePresharedKey();\n    \n    // Build and add the inbound\n    const inbound = await builder.build();\n    const createdInbound = await client.addInbound(inbound);\n    \n    // Update the builder with the server-returned inbound to get all metrics and IDs\n    builder = new wireguard.WireguardBuilder(client, createdInbound);\n    \n    console.log('Inbound created:', createdInbound);\n    \n    // Get WireGuard configuration for the client\n    const config = builder.getClientConfig(0, 'your-server-ip.com');\n    console.log('Client configuration:');\n    console.log(config);\n  } catch (error) {\n    console.error('Error creating inbound:', error.message);\n  }\n}\n\ncreateWireguardInbound();\n```\n\n### Real-World Example\n\nHere's a complete example showing how to create a VMess inbound and get the client link:\n\n```javascript\nconst X3UIClient = require('x3ui-api');\nconst vmess = require('x3ui-api/src/protocols/vmess');\n\nconst client = new X3UIClient({\n    baseURL: 'https://your-panel-url.com/path/',\n});\n\n(async () => {\n    await client.login('username', 'password');\n\n    // Create VMess builder with HTTP Upgrade\n    let vmessBuilder = new vmess.VmessBuilder(client)\n        .setRemark(\"My VMess Inbound\")\n        .setHttpUpgradeHost(\"your-domain.com\");\n\n    // Add the inbound to the server\n    const vmessInbound = await client.addInbound(await vmessBuilder.build());\n    \n    // Create a new builder with the server-returned inbound to get accurate client links\n    vmessBuilder = new vmess.VmessBuilder(client, vmessInbound);\n    \n    // Generate and output the client connection link\n    console.log(vmessBuilder.getClientLink(0, \"your-domain.com\"));\n})();\n```\n\n### Managing Existing Inbounds\n\n```javascript\nasync function manageInbounds() {\n  try {\n    // Get all inbounds\n    const inbounds = await client.getInbounds();\n    \n    if (inbounds.length > 0) {\n      // Get the first inbound\n      const inbound = inbounds[0];\n      const inboundId = inbound.id;\n      \n      // IMPORTANT: When updating an inbound, always start with the complete inbound object\n      // to avoid losing data, then modify only what you need to change\n      \n      // Example 1: Update the remark and enable status\n      inbound.remark = 'Updated Inbound Name';\n      inbound.enable = true;\n      \n      // Send the complete updated inbound back to the server\n      await client.updateInbound(inboundId, inbound);\n      \n      // Example 2: Add a new client to an existing inbound\n      if (inbound.protocol === 'vmess') {\n        // Create a builder with the existing inbound\n        const builder = new vmess.VmessBuilder(client, inbound);\n        \n        // Add a new client\n        builder.addClient()\n          .setEmail('newuser@example.com')\n          .setTotalGB(50);\n        \n        // Build the updated inbound and send it to the server\n        const updatedInbound = await builder.build();\n        await client.updateInbound(inboundId, updatedInbound);\n        \n        // Get the link for the new client\n        const link = builder.getClientLink(builder.clients.length - 1, 'your-server-ip.com');\n        console.log('New client link:', link);\n      }\n      \n      // Example 3: Delete an inbound\n      await client.deleteInbound(inboundId);\n    }\n  } catch (error) {\n    console.error('Error managing inbounds:', error.message);\n  }\n}\n```\n\n## API Reference\n\n### X3UIClient\n\n#### Constructor\n\n```javascript\nnew X3UIClient({\n  baseURL: string,       // Required: URL to your x3ui panel\n  token?: string,        // Optional: Authentication token (if already logged in)\n})\n```\n\n#### Methods\n\n- `login(username: string, password: string)` - Authenticate with the panel\n- `getSystemStats()` - Get system statistics\n- `getInbounds()` - Get all configured inbounds\n- `addInbound(config)` - Add a new inbound and returns the created inbound with server-assigned values\n- `updateInbound(id, config)` - Update an existing inbound with the complete inbound configuration\n- `deleteInbound(id)` - Delete an inbound\n- `getNewX25519Cert()` - Generate a new X25519 certificate\n\n### Protocol Builders\n\nThe library provides protocol-specific builders for creating different types of inbounds:\n\n#### VMess Builder\n\n```javascript\nconst vmess = require('x3ui-api/src/protocols/vmess');\nconst builder = new vmess.VmessBuilder(client, options);\n```\n\nMethods:\n- `setPort(port)` - Set the port for the inbound\n- `setRemark(remark)` - Set the name/remark for the inbound\n- `setNetwork(network)` - Set the network type (default: 'httpupgrade')\n- `setSecurity(security)` - Set the security type (default: 'none')\n- `setHttpUpgradePath(path)` - Set the HTTP upgrade path\n- `setHttpUpgradeHost(host)` - Set the HTTP upgrade host\n- `setSniffing(enabled, destOverride, metadataOnly, routeOnly)` - Configure sniffing\n- `setListenIP(ip)` - Set listen IP address\n- `setExpiryTime(timestamp)` - Set inbound expiry time\n- `addClient(options)` - Add a new client to the inbound\n- `getClientLink(clientIndex, host, port)` - Get connection link for a client\n- `build()` - Build the final inbound config\n\n#### VLESS Reality Builder\n\n```javascript\nconst vless = require('x3ui-api/src/protocols/vless');\nconst builder = new vless.RealityBuilder(client, options);\n```\n\nMethods:\n- `setPort(port)` - Set the port for the inbound\n- `setRemark(remark)` - Set the name/remark for the inbound\n- `setDest(dest)` - Set the destination address (e.g., \"yahoo.com:443\")\n- `setServerNames(names)` - Set server names for SNI\n- `setKeyPair(privateKey, publicKey)` - Set Reality keypair\n- `setShortIds(ids)` - Set short IDs for Reality\n- `setFingerprint(fingerprint)` - Set browser fingerprint\n- `setListenIP(ip)` - Set listen IP address\n- `setExpiryTime(timestamp)` - Set inbound expiry time\n- `addClient(options)` - Add a new client to the inbound\n- `getClientLink(clientIndex, host)` - Get connection link for a client\n- `build()` - Build the final inbound config\n\n#### WireGuard Builder\n\n```javascript\nconst wireguard = require('x3ui-api/src/protocols/wireguard');\nconst builder = new wireguard.WireguardBuilder(client, options);\n```\n\nMethods:\n- `setPort(port)` - Set the port for the inbound\n- `setRemark(remark)` - Set the name/remark for the inbound\n- `setMtu(mtu)` - Set the MTU value (default: 1420)\n- `setSecretKey(secretKey)` - Set the server's secret key (automatically generates if not provided)\n- `setNoKernelTun(noKernelTun)` - Set whether to disable kernel TUN support\n- `setSniffing(enabled, destOverride, metadataOnly, routeOnly)` - Configure sniffing\n- `setListenIP(ip)` - Set listen IP address\n- `setExpiryTime(timestamp)` - Set inbound expiry time\n- `addClient(options)` - Add a new client to the inbound\n- `getClientLink(clientIndex, host, port)` - Get connection link for a client\n- `getClientConfig(clientIndex, host, port)` - Get WireGuard configuration file content for a client\n- `build()` - Build the final inbound config\n\n##### WireGuard Client Builder\n\nMethods:\n- `setPrivateKey(privateKey)` - Set client's private key\n- `setPublicKey(publicKey)` - Set client's public key\n- `setPreSharedKey(preSharedKey)` - Set pre-shared key for additional security\n- `setAllowedIPs(allowedIPs)` - Set allowed IP ranges (default: ['10.0.0.2/32'])\n- `setKeepAlive(keepAlive)` - Set keep-alive interval in seconds\n- `generateKeyPair()` - Generate a new key pair for the client\n- `generatePresharedKey()` - Generate a new pre-shared key\n- `setEmail(email)` - Set client email\n- `setTotalGB(gb)` - Set total traffic limit in GB\n- `setExpiryTime(timestamp)` - Set client expiry time\n- `setTgId(id)` - Set Telegram ID\n- `getLink(host, port)` - Get WireGuard configuration as text\n- `getConfigFile(host, port)` - Get WireGuard configuration file content\n\n## License\n\nMIT\n","readmeFilename":"README.md"}