@honeybbq/teamspeak 0.0.1 → 1.0.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (438) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +749 -2
  3. package/dist/client/abort.d.ts +5 -0
  4. package/dist/client/abort.d.ts.map +1 -0
  5. package/dist/client/abort.js +23 -0
  6. package/dist/client/abort.js.map +1 -0
  7. package/dist/client/address.d.ts +17 -0
  8. package/dist/client/address.d.ts.map +1 -0
  9. package/dist/client/address.js +66 -0
  10. package/dist/client/address.js.map +1 -0
  11. package/dist/client/api/avatars.d.ts +65 -0
  12. package/dist/client/api/avatars.d.ts.map +1 -0
  13. package/dist/client/api/avatars.js +118 -0
  14. package/dist/client/api/avatars.js.map +1 -0
  15. package/dist/client/api/voice.d.ts +59 -0
  16. package/dist/client/api/voice.d.ts.map +1 -0
  17. package/dist/client/api/voice.js +110 -0
  18. package/dist/client/api/voice.js.map +1 -0
  19. package/dist/client/capabilities.d.ts +68 -0
  20. package/dist/client/capabilities.d.ts.map +1 -0
  21. package/dist/client/capabilities.js +59 -0
  22. package/dist/client/capabilities.js.map +1 -0
  23. package/dist/client/client.d.ts +235 -0
  24. package/dist/client/client.d.ts.map +1 -0
  25. package/dist/client/client.js +1666 -0
  26. package/dist/client/client.js.map +1 -0
  27. package/dist/client/commands.d.ts +66 -0
  28. package/dist/client/commands.d.ts.map +1 -0
  29. package/dist/client/commands.js +168 -0
  30. package/dist/client/commands.js.map +1 -0
  31. package/dist/client/connection-info.d.ts +14 -0
  32. package/dist/client/connection-info.d.ts.map +1 -0
  33. package/dist/client/connection-info.js +47 -0
  34. package/dist/client/connection-info.js.map +1 -0
  35. package/dist/client/crypto/crypt-ops.d.ts +7 -0
  36. package/dist/client/crypto/crypt-ops.d.ts.map +1 -0
  37. package/dist/client/crypto/crypt-ops.js +2 -0
  38. package/dist/client/crypto/crypt-ops.js.map +1 -0
  39. package/dist/client/crypto/crypt.d.ts +37 -0
  40. package/dist/client/crypto/crypt.d.ts.map +1 -0
  41. package/dist/client/crypto/crypt.js +203 -0
  42. package/dist/client/crypto/crypt.js.map +1 -0
  43. package/dist/client/crypto/eax.d.ts +12 -0
  44. package/dist/client/crypto/eax.d.ts.map +1 -0
  45. package/dist/client/crypto/eax.js +118 -0
  46. package/dist/client/crypto/eax.js.map +1 -0
  47. package/dist/client/crypto/identity.d.ts +97 -0
  48. package/dist/client/crypto/identity.d.ts.map +1 -0
  49. package/dist/client/crypto/identity.js +412 -0
  50. package/dist/client/crypto/identity.js.map +1 -0
  51. package/dist/client/crypto/index.d.ts +7 -0
  52. package/dist/client/crypto/index.d.ts.map +1 -0
  53. package/dist/client/crypto/index.js +5 -0
  54. package/dist/client/crypto/index.js.map +1 -0
  55. package/dist/client/crypto/primitives.d.ts +43 -0
  56. package/dist/client/crypto/primitives.d.ts.map +1 -0
  57. package/dist/client/crypto/primitives.js +116 -0
  58. package/dist/client/crypto/primitives.js.map +1 -0
  59. package/dist/client/diagnostics.d.ts +45 -0
  60. package/dist/client/diagnostics.d.ts.map +1 -0
  61. package/dist/client/diagnostics.js +30 -0
  62. package/dist/client/diagnostics.js.map +1 -0
  63. package/dist/client/discovery/index.d.ts +2 -0
  64. package/dist/client/discovery/index.d.ts.map +1 -0
  65. package/dist/client/discovery/index.js +2 -0
  66. package/dist/client/discovery/index.js.map +1 -0
  67. package/dist/client/discovery/resolver.d.ts +26 -0
  68. package/dist/client/discovery/resolver.d.ts.map +1 -0
  69. package/dist/client/discovery/resolver.js +275 -0
  70. package/dist/client/discovery/resolver.js.map +1 -0
  71. package/dist/client/errors.d.ts +82 -0
  72. package/dist/client/errors.d.ts.map +1 -0
  73. package/dist/client/errors.js +201 -0
  74. package/dist/client/errors.js.map +1 -0
  75. package/dist/client/events.d.ts +3 -0
  76. package/dist/client/events.d.ts.map +1 -0
  77. package/dist/client/events.js +8 -0
  78. package/dist/client/events.js.map +1 -0
  79. package/dist/client/handshake/crypt-handshake.d.ts +17 -0
  80. package/dist/client/handshake/crypt-handshake.d.ts.map +1 -0
  81. package/dist/client/handshake/crypt-handshake.js +128 -0
  82. package/dist/client/handshake/crypt-handshake.js.map +1 -0
  83. package/dist/client/handshake/crypt-init2.d.ts +7 -0
  84. package/dist/client/handshake/crypt-init2.d.ts.map +1 -0
  85. package/dist/client/handshake/crypt-init2.js +37 -0
  86. package/dist/client/handshake/crypt-init2.js.map +1 -0
  87. package/dist/client/handshake/index.d.ts +4 -0
  88. package/dist/client/handshake/index.d.ts.map +1 -0
  89. package/dist/client/handshake/index.js +4 -0
  90. package/dist/client/handshake/index.js.map +1 -0
  91. package/dist/client/handshake/license.d.ts +35 -0
  92. package/dist/client/handshake/license.d.ts.map +1 -0
  93. package/dist/client/handshake/license.js +169 -0
  94. package/dist/client/handshake/license.js.map +1 -0
  95. package/dist/client/handshake.d.ts +27 -0
  96. package/dist/client/handshake.d.ts.map +1 -0
  97. package/dist/client/handshake.js +126 -0
  98. package/dist/client/handshake.js.map +1 -0
  99. package/dist/client/helpers.d.ts +6 -0
  100. package/dist/client/helpers.d.ts.map +1 -0
  101. package/dist/client/helpers.js +13 -0
  102. package/dist/client/helpers.js.map +1 -0
  103. package/dist/client/hooks.d.ts +7 -0
  104. package/dist/client/hooks.d.ts.map +1 -0
  105. package/dist/client/hooks.js +28 -0
  106. package/dist/client/hooks.js.map +1 -0
  107. package/dist/client/index.d.ts +28 -0
  108. package/dist/client/index.d.ts.map +1 -0
  109. package/dist/client/index.js +29 -0
  110. package/dist/client/index.js.map +1 -0
  111. package/dist/client/reconnect.d.ts +12 -0
  112. package/dist/client/reconnect.d.ts.map +1 -0
  113. package/dist/client/reconnect.js +44 -0
  114. package/dist/client/reconnect.js.map +1 -0
  115. package/dist/client/throttle.d.ts +20 -0
  116. package/dist/client/throttle.d.ts.map +1 -0
  117. package/dist/client/throttle.js +83 -0
  118. package/dist/client/throttle.js.map +1 -0
  119. package/dist/client/trace.d.ts +223 -0
  120. package/dist/client/trace.d.ts.map +1 -0
  121. package/dist/client/trace.js +13 -0
  122. package/dist/client/trace.js.map +1 -0
  123. package/dist/client/transfer.d.ts +111 -0
  124. package/dist/client/transfer.d.ts.map +1 -0
  125. package/dist/client/transfer.js +243 -0
  126. package/dist/client/transfer.js.map +1 -0
  127. package/dist/client/transport/generation-window.d.ts +30 -0
  128. package/dist/client/transport/generation-window.d.ts.map +1 -0
  129. package/dist/client/transport/generation-window.js +97 -0
  130. package/dist/client/transport/generation-window.js.map +1 -0
  131. package/dist/client/transport/handler.d.ts +79 -0
  132. package/dist/client/transport/handler.d.ts.map +1 -0
  133. package/dist/client/transport/handler.js +868 -0
  134. package/dist/client/transport/handler.js.map +1 -0
  135. package/dist/client/transport/index.d.ts +6 -0
  136. package/dist/client/transport/index.d.ts.map +1 -0
  137. package/dist/client/transport/index.js +5 -0
  138. package/dist/client/transport/index.js.map +1 -0
  139. package/dist/client/transport/packet.d.ts +36 -0
  140. package/dist/client/transport/packet.d.ts.map +1 -0
  141. package/dist/client/transport/packet.js +55 -0
  142. package/dist/client/transport/packet.js.map +1 -0
  143. package/dist/client/transport/quicklz.d.ts +24 -0
  144. package/dist/client/transport/quicklz.d.ts.map +1 -0
  145. package/dist/client/transport/quicklz.js +179 -0
  146. package/dist/client/transport/quicklz.js.map +1 -0
  147. package/dist/client/transport/traffic.d.ts +43 -0
  148. package/dist/client/transport/traffic.d.ts.map +1 -0
  149. package/dist/client/transport/traffic.js +90 -0
  150. package/dist/client/transport/traffic.js.map +1 -0
  151. package/dist/client/types.d.ts +402 -0
  152. package/dist/client/types.d.ts.map +1 -0
  153. package/dist/client/types.js +113 -0
  154. package/dist/client/types.js.map +1 -0
  155. package/dist/client/view.d.ts +162 -0
  156. package/dist/client/view.d.ts.map +1 -0
  157. package/dist/client/view.js +228 -0
  158. package/dist/client/view.js.map +1 -0
  159. package/dist/core/api/avatars.d.ts +26 -0
  160. package/dist/core/api/avatars.d.ts.map +1 -0
  161. package/dist/core/api/avatars.js +37 -0
  162. package/dist/core/api/avatars.js.map +1 -0
  163. package/dist/core/api/channels.d.ts +191 -0
  164. package/dist/core/api/channels.d.ts.map +1 -0
  165. package/dist/core/api/channels.js +174 -0
  166. package/dist/core/api/channels.js.map +1 -0
  167. package/dist/core/api/clients.d.ts +562 -0
  168. package/dist/core/api/clients.d.ts.map +1 -0
  169. package/dist/core/api/clients.js +435 -0
  170. package/dist/core/api/clients.js.map +1 -0
  171. package/dist/core/api/command.d.ts +400 -0
  172. package/dist/core/api/command.d.ts.map +1 -0
  173. package/dist/core/api/command.js +462 -0
  174. package/dist/core/api/command.js.map +1 -0
  175. package/dist/core/api/credentials.d.ts +186 -0
  176. package/dist/core/api/credentials.d.ts.map +1 -0
  177. package/dist/core/api/credentials.js +144 -0
  178. package/dist/core/api/credentials.js.map +1 -0
  179. package/dist/core/api/files.d.ts +153 -0
  180. package/dist/core/api/files.d.ts.map +1 -0
  181. package/dist/core/api/files.js +185 -0
  182. package/dist/core/api/files.js.map +1 -0
  183. package/dist/core/api/groups.d.ts +301 -0
  184. package/dist/core/api/groups.d.ts.map +1 -0
  185. package/dist/core/api/groups.js +339 -0
  186. package/dist/core/api/groups.js.map +1 -0
  187. package/dist/core/api/icons.d.ts +67 -0
  188. package/dist/core/api/icons.d.ts.map +1 -0
  189. package/dist/core/api/icons.js +125 -0
  190. package/dist/core/api/icons.js.map +1 -0
  191. package/dist/core/api/instance.d.ts +197 -0
  192. package/dist/core/api/instance.d.ts.map +1 -0
  193. package/dist/core/api/instance.js +160 -0
  194. package/dist/core/api/instance.js.map +1 -0
  195. package/dist/core/api/moderation.d.ts +266 -0
  196. package/dist/core/api/moderation.d.ts.map +1 -0
  197. package/dist/core/api/moderation.js +258 -0
  198. package/dist/core/api/moderation.js.map +1 -0
  199. package/dist/core/api/parse.d.ts +36 -0
  200. package/dist/core/api/parse.d.ts.map +1 -0
  201. package/dist/core/api/parse.js +109 -0
  202. package/dist/core/api/parse.js.map +1 -0
  203. package/dist/core/api/server.d.ts +334 -0
  204. package/dist/core/api/server.d.ts.map +1 -0
  205. package/dist/core/api/server.js +324 -0
  206. package/dist/core/api/server.js.map +1 -0
  207. package/dist/core/channel-tree.d.ts +87 -0
  208. package/dist/core/channel-tree.d.ts.map +1 -0
  209. package/dist/core/channel-tree.js +378 -0
  210. package/dist/core/channel-tree.js.map +1 -0
  211. package/dist/core/command/command.d.ts +20 -0
  212. package/dist/core/command/command.d.ts.map +1 -0
  213. package/dist/core/command/command.js +112 -0
  214. package/dist/core/command/command.js.map +1 -0
  215. package/dist/core/command/ids.d.ts +131 -0
  216. package/dist/core/command/ids.d.ts.map +1 -0
  217. package/dist/core/command/ids.js +87 -0
  218. package/dist/core/command/ids.js.map +1 -0
  219. package/dist/core/command/parser.d.ts +17 -0
  220. package/dist/core/command/parser.d.ts.map +1 -0
  221. package/dist/core/command/parser.js +65 -0
  222. package/dist/core/command/parser.js.map +1 -0
  223. package/dist/core/command/request.d.ts +61 -0
  224. package/dist/core/command/request.d.ts.map +1 -0
  225. package/dist/core/command/request.js +64 -0
  226. package/dist/core/command/request.js.map +1 -0
  227. package/dist/core/command/responses.d.ts +73 -0
  228. package/dist/core/command/responses.d.ts.map +1 -0
  229. package/dist/core/command/responses.js +97 -0
  230. package/dist/core/command/responses.js.map +1 -0
  231. package/dist/core/command-name.d.ts +349 -0
  232. package/dist/core/command-name.d.ts.map +1 -0
  233. package/dist/core/command-name.js +347 -0
  234. package/dist/core/command-name.js.map +1 -0
  235. package/dist/core/enums.d.ts +188 -0
  236. package/dist/core/enums.d.ts.map +1 -0
  237. package/dist/core/enums.js +172 -0
  238. package/dist/core/enums.js.map +1 -0
  239. package/dist/core/errorcode.d.ts +413 -0
  240. package/dist/core/errorcode.d.ts.map +1 -0
  241. package/dist/core/errorcode.js +410 -0
  242. package/dist/core/errorcode.js.map +1 -0
  243. package/dist/core/errors.d.ts +119 -0
  244. package/dist/core/errors.d.ts.map +1 -0
  245. package/dist/core/errors.js +241 -0
  246. package/dist/core/errors.js.map +1 -0
  247. package/dist/core/events.d.ts +404 -0
  248. package/dist/core/events.d.ts.map +1 -0
  249. package/dist/core/events.js +6 -0
  250. package/dist/core/events.js.map +1 -0
  251. package/dist/core/helpers.d.ts +42 -0
  252. package/dist/core/helpers.d.ts.map +1 -0
  253. package/dist/core/helpers.js +156 -0
  254. package/dist/core/helpers.js.map +1 -0
  255. package/dist/core/index.d.ts +41 -0
  256. package/dist/core/index.d.ts.map +1 -0
  257. package/dist/core/index.js +40 -0
  258. package/dist/core/index.js.map +1 -0
  259. package/dist/core/internal.d.ts +24 -0
  260. package/dist/core/internal.d.ts.map +1 -0
  261. package/dist/core/internal.js +21 -0
  262. package/dist/core/internal.js.map +1 -0
  263. package/dist/core/middleware.d.ts +14 -0
  264. package/dist/core/middleware.d.ts.map +1 -0
  265. package/dist/core/middleware.js +18 -0
  266. package/dist/core/middleware.js.map +1 -0
  267. package/dist/core/notification-name.d.ts +160 -0
  268. package/dist/core/notification-name.d.ts.map +1 -0
  269. package/dist/core/notification-name.js +158 -0
  270. package/dist/core/notification-name.js.map +1 -0
  271. package/dist/core/notifications.d.ts +93 -0
  272. package/dist/core/notifications.d.ts.map +1 -0
  273. package/dist/core/notifications.js +301 -0
  274. package/dist/core/notifications.js.map +1 -0
  275. package/dist/core/permission-name.d.ts +1046 -0
  276. package/dist/core/permission-name.d.ts.map +1 -0
  277. package/dist/core/permission-name.js +1045 -0
  278. package/dist/core/permission-name.js.map +1 -0
  279. package/dist/core/permission.d.ts +31 -0
  280. package/dist/core/permission.d.ts.map +1 -0
  281. package/dist/core/permission.js +20 -0
  282. package/dist/core/permission.js.map +1 -0
  283. package/dist/core/property-name.d.ts +403 -0
  284. package/dist/core/property-name.d.ts.map +1 -0
  285. package/dist/core/property-name.js +405 -0
  286. package/dist/core/property-name.js.map +1 -0
  287. package/dist/core/reason.d.ts +39 -0
  288. package/dist/core/reason.d.ts.map +1 -0
  289. package/dist/core/reason.js +36 -0
  290. package/dist/core/reason.js.map +1 -0
  291. package/dist/core/reconnect.d.ts +59 -0
  292. package/dist/core/reconnect.d.ts.map +1 -0
  293. package/dist/core/reconnect.js +55 -0
  294. package/dist/core/reconnect.js.map +1 -0
  295. package/dist/core/types.d.ts +122 -0
  296. package/dist/core/types.d.ts.map +1 -0
  297. package/dist/core/types.js +27 -0
  298. package/dist/core/types.js.map +1 -0
  299. package/dist/query/client.d.ts +244 -0
  300. package/dist/query/client.d.ts.map +1 -0
  301. package/dist/query/client.js +1122 -0
  302. package/dist/query/client.js.map +1 -0
  303. package/dist/query/errors.d.ts +61 -0
  304. package/dist/query/errors.d.ts.map +1 -0
  305. package/dist/query/errors.js +100 -0
  306. package/dist/query/errors.js.map +1 -0
  307. package/dist/query/index.d.ts +36 -0
  308. package/dist/query/index.d.ts.map +1 -0
  309. package/dist/query/index.js +34 -0
  310. package/dist/query/index.js.map +1 -0
  311. package/dist/query/knownhosts.d.ts +61 -0
  312. package/dist/query/knownhosts.d.ts.map +1 -0
  313. package/dist/query/knownhosts.js +223 -0
  314. package/dist/query/knownhosts.js.map +1 -0
  315. package/dist/query/lines.d.ts +14 -0
  316. package/dist/query/lines.d.ts.map +1 -0
  317. package/dist/query/lines.js +29 -0
  318. package/dist/query/lines.js.map +1 -0
  319. package/dist/query/options.d.ts +206 -0
  320. package/dist/query/options.d.ts.map +1 -0
  321. package/dist/query/options.js +251 -0
  322. package/dist/query/options.js.map +1 -0
  323. package/dist/query/reconnect.d.ts +29 -0
  324. package/dist/query/reconnect.d.ts.map +1 -0
  325. package/dist/query/reconnect.js +87 -0
  326. package/dist/query/reconnect.js.map +1 -0
  327. package/dist/query/ssh.d.ts +385 -0
  328. package/dist/query/ssh.d.ts.map +1 -0
  329. package/dist/query/ssh.js +257 -0
  330. package/dist/query/ssh.js.map +1 -0
  331. package/dist/query/stream.d.ts +38 -0
  332. package/dist/query/stream.d.ts.map +1 -0
  333. package/dist/query/stream.js +70 -0
  334. package/dist/query/stream.js.map +1 -0
  335. package/dist/query/tcp.d.ts +38 -0
  336. package/dist/query/tcp.d.ts.map +1 -0
  337. package/dist/query/tcp.js +53 -0
  338. package/dist/query/tcp.js.map +1 -0
  339. package/dist/query/transport.d.ts +36 -0
  340. package/dist/query/transport.d.ts.map +1 -0
  341. package/dist/query/transport.js +2 -0
  342. package/dist/query/transport.js.map +1 -0
  343. package/dist/query/web.d.ts +78 -0
  344. package/dist/query/web.d.ts.map +1 -0
  345. package/dist/query/web.js +157 -0
  346. package/dist/query/web.js.map +1 -0
  347. package/dist/versions/index.d.ts +3094 -0
  348. package/dist/versions/index.d.ts.map +1 -0
  349. package/dist/versions/index.js +9237 -0
  350. package/dist/versions/index.js.map +1 -0
  351. package/package.json +119 -4
  352. package/src/client/abort.ts +24 -0
  353. package/src/client/address.ts +74 -0
  354. package/src/client/api/avatars.ts +164 -0
  355. package/src/client/api/voice.ts +177 -0
  356. package/src/client/capabilities.ts +106 -0
  357. package/src/client/client.ts +1976 -0
  358. package/src/client/commands.ts +201 -0
  359. package/src/client/connection-info.ts +52 -0
  360. package/src/client/crypto/crypt-ops.ts +6 -0
  361. package/src/client/crypto/crypt.ts +275 -0
  362. package/src/client/crypto/eax.ts +152 -0
  363. package/src/client/crypto/identity.ts +484 -0
  364. package/src/client/crypto/index.ts +21 -0
  365. package/src/client/crypto/primitives.ts +141 -0
  366. package/src/client/diagnostics.ts +58 -0
  367. package/src/client/discovery/index.ts +1 -0
  368. package/src/client/discovery/resolver.ts +325 -0
  369. package/src/client/errors.ts +217 -0
  370. package/src/client/events.ts +12 -0
  371. package/src/client/handshake/crypt-handshake.ts +157 -0
  372. package/src/client/handshake/crypt-init2.ts +48 -0
  373. package/src/client/handshake/index.ts +3 -0
  374. package/src/client/handshake/license.ts +208 -0
  375. package/src/client/handshake.ts +150 -0
  376. package/src/client/helpers.ts +10 -0
  377. package/src/client/hooks.ts +30 -0
  378. package/src/client/index.ts +97 -0
  379. package/src/client/reconnect.ts +43 -0
  380. package/src/client/throttle.ts +92 -0
  381. package/src/client/trace.ts +237 -0
  382. package/src/client/transfer.ts +436 -0
  383. package/src/client/transport/generation-window.ts +108 -0
  384. package/src/client/transport/handler.ts +1021 -0
  385. package/src/client/transport/index.ts +14 -0
  386. package/src/client/transport/packet.ts +69 -0
  387. package/src/client/transport/quicklz.ts +209 -0
  388. package/src/client/transport/traffic.ts +116 -0
  389. package/src/client/types.ts +478 -0
  390. package/src/client/view.ts +372 -0
  391. package/src/core/api/avatars.ts +40 -0
  392. package/src/core/api/channels.ts +420 -0
  393. package/src/core/api/clients.ts +1098 -0
  394. package/src/core/api/command.ts +737 -0
  395. package/src/core/api/credentials.ts +335 -0
  396. package/src/core/api/files.ts +411 -0
  397. package/src/core/api/groups.ts +730 -0
  398. package/src/core/api/icons.ts +175 -0
  399. package/src/core/api/instance.ts +369 -0
  400. package/src/core/api/moderation.ts +632 -0
  401. package/src/core/api/parse.ts +139 -0
  402. package/src/core/api/server.ts +769 -0
  403. package/src/core/channel-tree.ts +398 -0
  404. package/src/core/command/command.ts +125 -0
  405. package/src/core/command/ids.ts +153 -0
  406. package/src/core/command/parser.ts +68 -0
  407. package/src/core/command/request.ts +119 -0
  408. package/src/core/command/responses.ts +152 -0
  409. package/src/core/command-name.ts +350 -0
  410. package/src/core/enums.ts +215 -0
  411. package/src/core/errorcode.ts +412 -0
  412. package/src/core/errors.ts +266 -0
  413. package/src/core/events.ts +431 -0
  414. package/src/core/helpers.ts +161 -0
  415. package/src/core/index.ts +153 -0
  416. package/src/core/internal.ts +24 -0
  417. package/src/core/middleware.ts +24 -0
  418. package/src/core/notification-name.ts +161 -0
  419. package/src/core/notifications.ts +404 -0
  420. package/src/core/permission-name.ts +1162 -0
  421. package/src/core/permission.ts +34 -0
  422. package/src/core/property-name.ts +411 -0
  423. package/src/core/reason.ts +38 -0
  424. package/src/core/reconnect.ts +98 -0
  425. package/src/core/types.ts +150 -0
  426. package/src/query/client.ts +1303 -0
  427. package/src/query/errors.ts +108 -0
  428. package/src/query/index.ts +66 -0
  429. package/src/query/knownhosts.ts +257 -0
  430. package/src/query/lines.ts +28 -0
  431. package/src/query/options.ts +452 -0
  432. package/src/query/reconnect.ts +84 -0
  433. package/src/query/ssh.ts +674 -0
  434. package/src/query/stream.ts +91 -0
  435. package/src/query/tcp.ts +85 -0
  436. package/src/query/transport.ts +35 -0
  437. package/src/query/web.ts +234 -0
  438. package/src/versions/index.ts +10774 -0
@@ -0,0 +1,59 @@
1
+ /**
2
+ * What the connected server is, and what that means for the caller.
3
+ *
4
+ * TS3 and TS6 differ in ways that stay invisible until something breaks. The
5
+ * clearest: the server hashes a client's public key with SHA-1 on TS3 and
6
+ * SHA-256 on TS6, so a client that assumes either one computes a
7
+ * `client_unique_identifier` the other server never sends.
8
+ *
9
+ * Everything below comes from the handshake — `initserver` carries
10
+ * `virtualserver_version`, the one place the server names itself, along with
11
+ * its name, icon, banner and welcome message — so reading it costs no extra
12
+ * round trip.
13
+ */
14
+ import { asServerID } from "@honeybbq/teamspeak";
15
+ import { parseIconID, parseUint64 } from "../core/internal.js";
16
+ import { uidAlgorithmForVersion } from "./crypto/identity.js";
17
+ /**
18
+ * Read what a server says about itself in `initserver`, or a version string
19
+ * alone, such as "6.0.0-beta13.1 [Build: 1]".
20
+ */
21
+ export function parseServerCapabilities(initserver) {
22
+ const params = typeof initserver === "string" ? { virtualserver_version: initserver } : initserver;
23
+ const version = params["virtualserver_version"] ?? "";
24
+ const parsed = Number.parseInt(version, 10);
25
+ const major = Number.isNaN(parsed) ? 0 : parsed;
26
+ let family = "unknown";
27
+ if (major === 3)
28
+ family = "ts3";
29
+ else if (major >= 6)
30
+ family = "ts6";
31
+ return {
32
+ version,
33
+ major,
34
+ family,
35
+ uidAlgorithm: uidAlgorithmForVersion(version),
36
+ name: params["virtualserver_name"] ?? "",
37
+ iconID: parseIconID(params["virtualserver_icon_id"]),
38
+ hostBannerImageURL: params["virtualserver_hostbanner_gfx_url"]?.trim() || undefined,
39
+ welcomeMessage: params["virtualserver_welcomemessage"] ?? "",
40
+ serverID: asServerID(parseUint64(params["virtualserver_id"] ?? "")),
41
+ serverUID: params["virtualserver_unique_identifier"] ?? "",
42
+ hostMessage: params["virtualserver_hostmessage"] ?? "",
43
+ hostMessageMode: hostMessageMode(params["virtualserver_hostmessage_mode"]),
44
+ };
45
+ }
46
+ /**
47
+ * Capabilities of a server that has not been connected to yet.
48
+ *
49
+ * The family is `unknown` — nothing has said which server this is — and
50
+ * `uidAlgorithm` is SHA-1, the TS3 hash.
51
+ */
52
+ export function unknownServerCapabilities() {
53
+ return parseServerCapabilities("");
54
+ }
55
+ function hostMessageMode(value) {
56
+ const parsed = Number.parseInt(value ?? "", 10);
57
+ return Number.isNaN(parsed) ? 0 : parsed;
58
+ }
59
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/client/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAiD,MAAM,qBAAqB,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAqB,MAAM,sBAAsB,CAAC;AA2CjF;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAqD;IAErD,MAAM,MAAM,GACV,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;IACtF,MAAM,OAAO,GAAG,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAEhD,IAAI,MAAM,GAAiB,SAAS,CAAC;IACrC,IAAI,KAAK,KAAK,CAAC;QAAE,MAAM,GAAG,KAAK,CAAC;SAC3B,IAAI,KAAK,IAAI,CAAC;QAAE,MAAM,GAAG,KAAK,CAAC;IAEpC,OAAO;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,YAAY,EAAE,sBAAsB,CAAC,OAAO,CAAC;QAC7C,IAAI,EAAE,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE;QACxC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACpD,kBAAkB,EAAE,MAAM,CAAC,kCAAkC,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS;QACnF,cAAc,EAAE,MAAM,CAAC,8BAA8B,CAAC,IAAI,EAAE;QAC5D,QAAQ,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,SAAS,EAAE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE;QAC1D,WAAW,EAAE,MAAM,CAAC,2BAA2B,CAAC,IAAI,EAAE;QACtD,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO,uBAAuB,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,eAAe,CAAC,KAAyB;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,235 @@
1
+ import { type EventMap, type VoiceOptions, type WhisperTargets, type GroupWhisperTarget, type ClientOptions } from "./types.js";
2
+ import { type ChannelID, type ClientID, type Codec, type CommandOptions, type UID, type Listener, type Unsubscribe, ClientStatus } from "@honeybbq/teamspeak";
3
+ import type { Identity } from "./crypto/index.js";
4
+ import { type FileTransferOptions } from "./transfer.js";
5
+ import type { ClientVersion, CommandExecutor, CommandRequest } from "@honeybbq/teamspeak";
6
+ import type { FileUploadInfo, FileDownloadInfo } from "@honeybbq/teamspeak";
7
+ import type { Readable, Writable } from "node:stream";
8
+ import { type ServerCapabilities } from "./capabilities.js";
9
+ import { type ServerView } from "./view.js";
10
+ /**
11
+ * What clientinit sends about the connection, with the passwords already in
12
+ * their wire form, `base64(sha1(password))`: hashed once, when the client is
13
+ * made, so the plain text is never held.
14
+ */
15
+ export interface ClientInitOptions {
16
+ readonly serverPasswordHash: string;
17
+ readonly defaultChannel: string;
18
+ readonly defaultChannelPasswordHash: string;
19
+ /** The privilege key (`client_default_token`), or `""`; dropped once a connection succeeds. */
20
+ readonly privilegeKey: string;
21
+ /** The meta data (`client_meta_data`), or `""`. */
22
+ readonly metaData: string;
23
+ /** The platform, version and signature, copied so later changes to the option have no effect. */
24
+ readonly version: ClientVersion;
25
+ }
26
+ /**
27
+ * A TeamSpeak client over the voice protocol.
28
+ *
29
+ * Listeners run one at a time, in the order their events arrived, after the
30
+ * packet that carried them has been handled, so a listener may call the client
31
+ * and await an answer.
32
+ */
33
+ export declare class Client implements CommandExecutor, AsyncDisposable {
34
+ #private;
35
+ constructor(identity: Identity, addr: string, nickname: string, options?: ClientOptions);
36
+ /**
37
+ * What this client knows of the server: the channel tree, the clients it
38
+ * has been told about, and itself. Always there, and `"empty"` until the
39
+ * first `connect()`.
40
+ *
41
+ * @experimental New in 1.x and may change in a minor release.
42
+ */
43
+ get view(): ServerView;
44
+ /** Where the client is in its connection's life. */
45
+ get status(): ClientStatus;
46
+ /**
47
+ * Connect to the server. Resolves once the handshake completes.
48
+ *
49
+ * An address that cannot be one — no host, a port outside 1–65535 — rejects
50
+ * with an InvalidAddressError at once, before anything starts. A host name
51
+ * that does not resolve fails the attempt with a TeamspeakError whose
52
+ * `cause` is the lookup's error.
53
+ *
54
+ * A failed attempt rejects with its cause, such as the server's error for a
55
+ * rejected password. Aborting `signal` abandons the attempt and rejects with
56
+ * the signal's reason. The signal bounds only the connecting: once this
57
+ * resolves, the connection lasts until `disconnect()` or a drop.
58
+ * `connect()` does not retry; the `reconnect` option only retries a
59
+ * connection that drops after it was established.
60
+ *
61
+ * Called while a `disconnect()` is still saying goodbye, or while an earlier
62
+ * session's `disconnected` is still waiting to be delivered, this waits for
63
+ * that first, so the old session is closed, and its `disconnected`
64
+ * delivered, before the new one starts: no listener or `events()` iterator
65
+ * of the new session hears the old one end. A `disconnect()` called during
66
+ * that wait wins: this then rejects with a NotConnectedError.
67
+ *
68
+ * `connected` is delivered after this resolves, so a listener added right
69
+ * after `await client.connect()` still hears it.
70
+ */
71
+ connect(options?: {
72
+ readonly signal?: AbortSignal | undefined;
73
+ }): Promise<void>;
74
+ /**
75
+ * Leave the server and close the connection.
76
+ *
77
+ * Says goodbye first, waiting for the server's acknowledgement for a second
78
+ * at most, or less if `signal` aborts sooner. The connection is closed
79
+ * either way. A `connect()` still waiting for its handshake rejects with a
80
+ * NotConnectedError, and so do the commands still waiting for an answer.
81
+ * Resolves once `disconnected` has been delivered to the listeners, so one
82
+ * added after `await client.disconnect()` does not hear it. Does nothing on
83
+ * a client that is not connected; called again while an earlier call is
84
+ * still saying goodbye, it waits for that one (and its message is the first
85
+ * call's).
86
+ *
87
+ * `reasonMessage` is what the server tells the other clients who see this
88
+ * one leave, in `clientLeave`'s `reasonMessage` (`reasonmsg` of
89
+ * `clientdisconnect`, sent with `reasonid=8`, `Reason.Disconnect`: measured
90
+ * on TeamSpeak 3 and 6, the server drops the message without it);
91
+ * default `"Shutdown"`.
92
+ */
93
+ disconnect(options?: {
94
+ readonly signal?: AbortSignal | undefined;
95
+ readonly reasonMessage?: string | undefined;
96
+ }): Promise<void>;
97
+ /** `await using client = …` disconnects when the scope ends. */
98
+ [Symbol.asyncDispose](): Promise<void>;
99
+ /**
100
+ * Send a raw command line and return the rows that answer it: the escape
101
+ * hatch for a command the typed functions do not cover. The line is sent as
102
+ * given, so its values must already be escaped and any channel password
103
+ * already hashed. `CommandName` lists the command names.
104
+ *
105
+ * Rejects with a NotConnectedError unless the client is connected: while it
106
+ * is still connecting, the session's keys may not exist yet.
107
+ */
108
+ exec(command: string, options?: CommandOptions): Promise<Record<string, string>[]>;
109
+ /**
110
+ * Send a raw command line without waiting for an answer, for the few
111
+ * commands the server answers with nothing at all. `CommandName` lists
112
+ * the command names.
113
+ *
114
+ * Commands are paced by a flood throttle; aborting `signal` while this waits
115
+ * for its turn rejects with the signal's reason and sends nothing. Rejects
116
+ * with a NotConnectedError unless the client is connected.
117
+ */
118
+ execNoWait(command: string, options?: {
119
+ readonly signal?: AbortSignal | undefined;
120
+ }): Promise<void>;
121
+ /**
122
+ * Send a typed command; this is the CommandExecutor the typed commands run on.
123
+ *
124
+ * The request passes through the `commandMiddleware` first. Channel
125
+ * passwords are then hashed, because that is this protocol's rule: the voice
126
+ * protocol expects `base64(sha1(password))`, where ServerQuery takes the
127
+ * password itself.
128
+ */
129
+ send(request: CommandRequest, options?: CommandOptions): Promise<Record<string, string>[]>;
130
+ /**
131
+ * Listen for an event. Returns a function that removes the listener.
132
+ *
133
+ * The event is named by an {@link EventName} constant or by its string, and
134
+ * the listener's payload type follows from it:
135
+ *
136
+ * ```ts
137
+ * client.on(EventName.TextMessage, (message) => console.log(message.message));
138
+ * ```
139
+ *
140
+ * A listener that throws does not stop the others: the rest of the event's
141
+ * listeners, and the events after it, are still delivered, and the exception
142
+ * is rethrown on its own, from a microtask, so it surfaces as an
143
+ * `uncaughtException` just as an EventEmitter listener's would. An async
144
+ * listener's rejection is not caught, and surfaces as an unhandled
145
+ * rejection.
146
+ */
147
+ on<K extends keyof EventMap>(event: K, listener: Listener<EventMap, K>): Unsubscribe;
148
+ /** Listen for the next occurrence of an event only. */
149
+ once<K extends keyof EventMap>(event: K, listener: Listener<EventMap, K>): Unsubscribe;
150
+ /**
151
+ * An event as an async iterator, for `for await`:
152
+ *
153
+ * ```ts
154
+ * for await (const message of client.events("textMessage", { signal })) { … }
155
+ * ```
156
+ *
157
+ * Events that arrive while the loop body runs are buffered, so none is
158
+ * missed. The buffer is unbounded: an iterator that is not consumed as fast
159
+ * as events arrive holds every one of them in memory until it is read, so
160
+ * stop iterating (or abort `signal`) when you stop reading. Voice is the
161
+ * exception: at most 256 `voiceData` frames are buffered, and the rest are
162
+ * dropped, as for a listener that falls behind.
163
+ *
164
+ * Iteration ends when the loop exits early (`break`, `return`, a throw), and
165
+ * — for every event but `disconnected` — when the client disconnects. When
166
+ * `signal` aborts, listening stops at once, whatever is buffered is
167
+ * discarded, and the pending and every later `next()` reject with the
168
+ * signal's reason, as `events.on` in Node does.
169
+ *
170
+ * `next()` may be called again before an earlier call has settled; the calls
171
+ * are answered in order.
172
+ */
173
+ events<K extends keyof EventMap>(event: K, options?: {
174
+ readonly signal?: AbortSignal | undefined;
175
+ }): AsyncIterableIterator<EventMap[K]>;
176
+ /** This client's id on the server, assigned in the handshake; 0 before it. */
177
+ get clientID(): ClientID;
178
+ /**
179
+ * What the connected server is: version, generation, and the uid hash it
180
+ * uses. Read from `initserver`; before connecting the family is `unknown`
181
+ * and the uid hash SHA-1.
182
+ */
183
+ get serverCapabilities(): ServerCapabilities;
184
+ /**
185
+ * Our own `client_unique_identifier`, hashed with the algorithm the connected
186
+ * server uses.
187
+ *
188
+ * TS3 uses SHA-1 and TS6 SHA-256, so this reads the algorithm learned during
189
+ * initserver rather than assuming one. Comparing a hard-coded SHA-1 UID to a
190
+ * TS6 server silently never matches.
191
+ */
192
+ get uid(): UID;
193
+ /**
194
+ * The host this client connects to, as it was given, without the port: where
195
+ * the file transfer port is, for `uploadFileData` and the avatar and icon
196
+ * helpers.
197
+ */
198
+ get host(): string;
199
+ /** The channel this client is in, as it last learned; 0 before connecting. */
200
+ get channelID(): ChannelID;
201
+ /**
202
+ * Send Opus voice directly to clients, to channels, or to both: the
203
+ * packet's direct form. Throws a NotConnectedError unless the client is
204
+ * connected, and a RangeError for no target at all, more than 32 clients,
205
+ * more than 255 channels, or an id the packet cannot hold. Whether a target
206
+ * hears it is the server's decision, from `i_client_whisper_power` against
207
+ * the target's `i_client_needed_whisper_power`.
208
+ */
209
+ sendWhisper(data: Uint8Array, targets: WhisperTargets, codec: Codec): void;
210
+ /**
211
+ * Send Opus voice to a group of clients: a server group, a channel group,
212
+ * the channel commanders or everyone, within the channels the target's
213
+ * `scope` picks. The packet's group form; `sendWhisper` is the direct one.
214
+ * Throws a NotConnectedError unless the client is connected, and a
215
+ * RangeError for a type, scope or group id the packet cannot hold. Whether
216
+ * a client hears it is the server's decision, as for `sendWhisper`.
217
+ */
218
+ sendGroupWhisper(data: Uint8Array, target: GroupWhisperTarget, codec: Codec): void;
219
+ /**
220
+ * Send one encoded audio frame to the channel this client is in. Throws a
221
+ * NotConnectedError unless the client is connected.
222
+ */
223
+ sendVoice(data: Uint8Array, codec: Codec, options?: VoiceOptions): void;
224
+ /**
225
+ * Upload `data` over a negotiated transfer, through the client's
226
+ * `fileTransferSocketFactory` if it has one.
227
+ */
228
+ uploadFileData(host: string, info: FileUploadInfo, data: Readable, options?: Pick<FileTransferOptions, "signal" | "trace">): Promise<void>;
229
+ /**
230
+ * Download a negotiated transfer into `dest`, through the client's
231
+ * `fileTransferSocketFactory` if it has one.
232
+ */
233
+ downloadFileData(host: string, info: FileDownloadInfo, dest: Writable, options?: Pick<FileTransferOptions, "signal" | "trace">): Promise<void>;
234
+ }
235
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}