@honeybbq/teamspeak 0.0.1 → 1.0.0-beta.7

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 (393) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +726 -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/voice.d.ts +24 -0
  12. package/dist/client/api/voice.d.ts.map +1 -0
  13. package/dist/client/api/voice.js +33 -0
  14. package/dist/client/api/voice.js.map +1 -0
  15. package/dist/client/capabilities.d.ts +68 -0
  16. package/dist/client/capabilities.d.ts.map +1 -0
  17. package/dist/client/capabilities.js +59 -0
  18. package/dist/client/capabilities.js.map +1 -0
  19. package/dist/client/client.d.ts +196 -0
  20. package/dist/client/client.d.ts.map +1 -0
  21. package/dist/client/client.js +1523 -0
  22. package/dist/client/client.js.map +1 -0
  23. package/dist/client/commands.d.ts +66 -0
  24. package/dist/client/commands.d.ts.map +1 -0
  25. package/dist/client/commands.js +162 -0
  26. package/dist/client/commands.js.map +1 -0
  27. package/dist/client/crypto/crypt-ops.d.ts +7 -0
  28. package/dist/client/crypto/crypt-ops.d.ts.map +1 -0
  29. package/dist/client/crypto/crypt-ops.js +2 -0
  30. package/dist/client/crypto/crypt-ops.js.map +1 -0
  31. package/dist/client/crypto/crypt.d.ts +37 -0
  32. package/dist/client/crypto/crypt.d.ts.map +1 -0
  33. package/dist/client/crypto/crypt.js +203 -0
  34. package/dist/client/crypto/crypt.js.map +1 -0
  35. package/dist/client/crypto/eax.d.ts +12 -0
  36. package/dist/client/crypto/eax.d.ts.map +1 -0
  37. package/dist/client/crypto/eax.js +118 -0
  38. package/dist/client/crypto/eax.js.map +1 -0
  39. package/dist/client/crypto/identity.d.ts +97 -0
  40. package/dist/client/crypto/identity.d.ts.map +1 -0
  41. package/dist/client/crypto/identity.js +412 -0
  42. package/dist/client/crypto/identity.js.map +1 -0
  43. package/dist/client/crypto/index.d.ts +7 -0
  44. package/dist/client/crypto/index.d.ts.map +1 -0
  45. package/dist/client/crypto/index.js +5 -0
  46. package/dist/client/crypto/index.js.map +1 -0
  47. package/dist/client/crypto/primitives.d.ts +43 -0
  48. package/dist/client/crypto/primitives.d.ts.map +1 -0
  49. package/dist/client/crypto/primitives.js +116 -0
  50. package/dist/client/crypto/primitives.js.map +1 -0
  51. package/dist/client/diagnostics.d.ts +45 -0
  52. package/dist/client/diagnostics.d.ts.map +1 -0
  53. package/dist/client/diagnostics.js +30 -0
  54. package/dist/client/diagnostics.js.map +1 -0
  55. package/dist/client/discovery/index.d.ts +2 -0
  56. package/dist/client/discovery/index.d.ts.map +1 -0
  57. package/dist/client/discovery/index.js +2 -0
  58. package/dist/client/discovery/index.js.map +1 -0
  59. package/dist/client/discovery/resolver.d.ts +26 -0
  60. package/dist/client/discovery/resolver.d.ts.map +1 -0
  61. package/dist/client/discovery/resolver.js +275 -0
  62. package/dist/client/discovery/resolver.js.map +1 -0
  63. package/dist/client/errors.d.ts +82 -0
  64. package/dist/client/errors.d.ts.map +1 -0
  65. package/dist/client/errors.js +201 -0
  66. package/dist/client/errors.js.map +1 -0
  67. package/dist/client/events.d.ts +3 -0
  68. package/dist/client/events.d.ts.map +1 -0
  69. package/dist/client/events.js +8 -0
  70. package/dist/client/events.js.map +1 -0
  71. package/dist/client/handshake/crypt-handshake.d.ts +17 -0
  72. package/dist/client/handshake/crypt-handshake.d.ts.map +1 -0
  73. package/dist/client/handshake/crypt-handshake.js +128 -0
  74. package/dist/client/handshake/crypt-handshake.js.map +1 -0
  75. package/dist/client/handshake/crypt-init2.d.ts +7 -0
  76. package/dist/client/handshake/crypt-init2.d.ts.map +1 -0
  77. package/dist/client/handshake/crypt-init2.js +37 -0
  78. package/dist/client/handshake/crypt-init2.js.map +1 -0
  79. package/dist/client/handshake/index.d.ts +4 -0
  80. package/dist/client/handshake/index.d.ts.map +1 -0
  81. package/dist/client/handshake/index.js +4 -0
  82. package/dist/client/handshake/index.js.map +1 -0
  83. package/dist/client/handshake/license.d.ts +35 -0
  84. package/dist/client/handshake/license.d.ts.map +1 -0
  85. package/dist/client/handshake/license.js +169 -0
  86. package/dist/client/handshake/license.js.map +1 -0
  87. package/dist/client/handshake.d.ts +27 -0
  88. package/dist/client/handshake.d.ts.map +1 -0
  89. package/dist/client/handshake.js +126 -0
  90. package/dist/client/handshake.js.map +1 -0
  91. package/dist/client/helpers.d.ts +6 -0
  92. package/dist/client/helpers.d.ts.map +1 -0
  93. package/dist/client/helpers.js +13 -0
  94. package/dist/client/helpers.js.map +1 -0
  95. package/dist/client/hooks.d.ts +7 -0
  96. package/dist/client/hooks.d.ts.map +1 -0
  97. package/dist/client/hooks.js +28 -0
  98. package/dist/client/hooks.js.map +1 -0
  99. package/dist/client/index.d.ts +26 -0
  100. package/dist/client/index.d.ts.map +1 -0
  101. package/dist/client/index.js +28 -0
  102. package/dist/client/index.js.map +1 -0
  103. package/dist/client/reconnect.d.ts +12 -0
  104. package/dist/client/reconnect.d.ts.map +1 -0
  105. package/dist/client/reconnect.js +44 -0
  106. package/dist/client/reconnect.js.map +1 -0
  107. package/dist/client/throttle.d.ts +20 -0
  108. package/dist/client/throttle.d.ts.map +1 -0
  109. package/dist/client/throttle.js +83 -0
  110. package/dist/client/throttle.js.map +1 -0
  111. package/dist/client/trace.d.ts +223 -0
  112. package/dist/client/trace.d.ts.map +1 -0
  113. package/dist/client/trace.js +13 -0
  114. package/dist/client/trace.js.map +1 -0
  115. package/dist/client/transfer.d.ts +111 -0
  116. package/dist/client/transfer.d.ts.map +1 -0
  117. package/dist/client/transfer.js +243 -0
  118. package/dist/client/transfer.js.map +1 -0
  119. package/dist/client/transport/generation-window.d.ts +30 -0
  120. package/dist/client/transport/generation-window.d.ts.map +1 -0
  121. package/dist/client/transport/generation-window.js +97 -0
  122. package/dist/client/transport/generation-window.js.map +1 -0
  123. package/dist/client/transport/handler.d.ts +61 -0
  124. package/dist/client/transport/handler.d.ts.map +1 -0
  125. package/dist/client/transport/handler.js +793 -0
  126. package/dist/client/transport/handler.js.map +1 -0
  127. package/dist/client/transport/index.d.ts +6 -0
  128. package/dist/client/transport/index.d.ts.map +1 -0
  129. package/dist/client/transport/index.js +5 -0
  130. package/dist/client/transport/index.js.map +1 -0
  131. package/dist/client/transport/packet.d.ts +36 -0
  132. package/dist/client/transport/packet.d.ts.map +1 -0
  133. package/dist/client/transport/packet.js +55 -0
  134. package/dist/client/transport/packet.js.map +1 -0
  135. package/dist/client/transport/quicklz.d.ts +24 -0
  136. package/dist/client/transport/quicklz.d.ts.map +1 -0
  137. package/dist/client/transport/quicklz.js +179 -0
  138. package/dist/client/transport/quicklz.js.map +1 -0
  139. package/dist/client/types.d.ts +226 -0
  140. package/dist/client/types.d.ts.map +1 -0
  141. package/dist/client/types.js +39 -0
  142. package/dist/client/types.js.map +1 -0
  143. package/dist/core/api/channels.d.ts +182 -0
  144. package/dist/core/api/channels.d.ts.map +1 -0
  145. package/dist/core/api/channels.js +155 -0
  146. package/dist/core/api/channels.js.map +1 -0
  147. package/dist/core/api/clients.d.ts +304 -0
  148. package/dist/core/api/clients.d.ts.map +1 -0
  149. package/dist/core/api/clients.js +260 -0
  150. package/dist/core/api/clients.js.map +1 -0
  151. package/dist/core/api/command.d.ts +305 -0
  152. package/dist/core/api/command.d.ts.map +1 -0
  153. package/dist/core/api/command.js +363 -0
  154. package/dist/core/api/command.js.map +1 -0
  155. package/dist/core/api/files.d.ts +153 -0
  156. package/dist/core/api/files.d.ts.map +1 -0
  157. package/dist/core/api/files.js +181 -0
  158. package/dist/core/api/files.js.map +1 -0
  159. package/dist/core/api/groups.d.ts +248 -0
  160. package/dist/core/api/groups.d.ts.map +1 -0
  161. package/dist/core/api/groups.js +271 -0
  162. package/dist/core/api/groups.js.map +1 -0
  163. package/dist/core/api/moderation.d.ts +205 -0
  164. package/dist/core/api/moderation.d.ts.map +1 -0
  165. package/dist/core/api/moderation.js +209 -0
  166. package/dist/core/api/moderation.js.map +1 -0
  167. package/dist/core/api/parse.d.ts +16 -0
  168. package/dist/core/api/parse.d.ts.map +1 -0
  169. package/dist/core/api/parse.js +40 -0
  170. package/dist/core/api/parse.js.map +1 -0
  171. package/dist/core/api/server.d.ts +310 -0
  172. package/dist/core/api/server.d.ts.map +1 -0
  173. package/dist/core/api/server.js +290 -0
  174. package/dist/core/api/server.js.map +1 -0
  175. package/dist/core/command/command.d.ts +20 -0
  176. package/dist/core/command/command.d.ts.map +1 -0
  177. package/dist/core/command/command.js +112 -0
  178. package/dist/core/command/command.js.map +1 -0
  179. package/dist/core/command/ids.d.ts +125 -0
  180. package/dist/core/command/ids.d.ts.map +1 -0
  181. package/dist/core/command/ids.js +85 -0
  182. package/dist/core/command/ids.js.map +1 -0
  183. package/dist/core/command/parser.d.ts +17 -0
  184. package/dist/core/command/parser.d.ts.map +1 -0
  185. package/dist/core/command/parser.js +65 -0
  186. package/dist/core/command/parser.js.map +1 -0
  187. package/dist/core/command/request.d.ts +61 -0
  188. package/dist/core/command/request.d.ts.map +1 -0
  189. package/dist/core/command/request.js +64 -0
  190. package/dist/core/command/request.js.map +1 -0
  191. package/dist/core/command/responses.d.ts +59 -0
  192. package/dist/core/command/responses.d.ts.map +1 -0
  193. package/dist/core/command/responses.js +74 -0
  194. package/dist/core/command/responses.js.map +1 -0
  195. package/dist/core/command-name.d.ts +333 -0
  196. package/dist/core/command-name.d.ts.map +1 -0
  197. package/dist/core/command-name.js +331 -0
  198. package/dist/core/command-name.js.map +1 -0
  199. package/dist/core/enums.d.ts +146 -0
  200. package/dist/core/enums.d.ts.map +1 -0
  201. package/dist/core/enums.js +132 -0
  202. package/dist/core/enums.js.map +1 -0
  203. package/dist/core/errorcode.d.ts +413 -0
  204. package/dist/core/errorcode.d.ts.map +1 -0
  205. package/dist/core/errorcode.js +410 -0
  206. package/dist/core/errorcode.js.map +1 -0
  207. package/dist/core/errors.d.ts +111 -0
  208. package/dist/core/errors.d.ts.map +1 -0
  209. package/dist/core/errors.js +233 -0
  210. package/dist/core/errors.js.map +1 -0
  211. package/dist/core/events.d.ts +207 -0
  212. package/dist/core/events.d.ts.map +1 -0
  213. package/dist/core/events.js +6 -0
  214. package/dist/core/events.js.map +1 -0
  215. package/dist/core/helpers.d.ts +42 -0
  216. package/dist/core/helpers.d.ts.map +1 -0
  217. package/dist/core/helpers.js +156 -0
  218. package/dist/core/helpers.js.map +1 -0
  219. package/dist/core/index.d.ts +35 -0
  220. package/dist/core/index.d.ts.map +1 -0
  221. package/dist/core/index.js +34 -0
  222. package/dist/core/index.js.map +1 -0
  223. package/dist/core/internal.d.ts +23 -0
  224. package/dist/core/internal.d.ts.map +1 -0
  225. package/dist/core/internal.js +20 -0
  226. package/dist/core/internal.js.map +1 -0
  227. package/dist/core/middleware.d.ts +14 -0
  228. package/dist/core/middleware.d.ts.map +1 -0
  229. package/dist/core/middleware.js +18 -0
  230. package/dist/core/middleware.js.map +1 -0
  231. package/dist/core/notification-name.d.ts +154 -0
  232. package/dist/core/notification-name.d.ts.map +1 -0
  233. package/dist/core/notification-name.js +152 -0
  234. package/dist/core/notification-name.js.map +1 -0
  235. package/dist/core/notifications.d.ts +43 -0
  236. package/dist/core/notifications.d.ts.map +1 -0
  237. package/dist/core/notifications.js +116 -0
  238. package/dist/core/notifications.js.map +1 -0
  239. package/dist/core/permission-name.d.ts +533 -0
  240. package/dist/core/permission-name.d.ts.map +1 -0
  241. package/dist/core/permission-name.js +531 -0
  242. package/dist/core/permission-name.js.map +1 -0
  243. package/dist/core/permission.d.ts +31 -0
  244. package/dist/core/permission.d.ts.map +1 -0
  245. package/dist/core/permission.js +20 -0
  246. package/dist/core/permission.js.map +1 -0
  247. package/dist/core/property-name.d.ts +403 -0
  248. package/dist/core/property-name.d.ts.map +1 -0
  249. package/dist/core/property-name.js +405 -0
  250. package/dist/core/property-name.js.map +1 -0
  251. package/dist/core/reason.d.ts +39 -0
  252. package/dist/core/reason.d.ts.map +1 -0
  253. package/dist/core/reason.js +36 -0
  254. package/dist/core/reason.js.map +1 -0
  255. package/dist/core/reconnect.d.ts +59 -0
  256. package/dist/core/reconnect.d.ts.map +1 -0
  257. package/dist/core/reconnect.js +55 -0
  258. package/dist/core/reconnect.js.map +1 -0
  259. package/dist/core/types.d.ts +110 -0
  260. package/dist/core/types.d.ts.map +1 -0
  261. package/dist/core/types.js +27 -0
  262. package/dist/core/types.js.map +1 -0
  263. package/dist/query/client.d.ts +194 -0
  264. package/dist/query/client.d.ts.map +1 -0
  265. package/dist/query/client.js +967 -0
  266. package/dist/query/client.js.map +1 -0
  267. package/dist/query/errors.d.ts +61 -0
  268. package/dist/query/errors.d.ts.map +1 -0
  269. package/dist/query/errors.js +100 -0
  270. package/dist/query/errors.js.map +1 -0
  271. package/dist/query/index.d.ts +36 -0
  272. package/dist/query/index.d.ts.map +1 -0
  273. package/dist/query/index.js +34 -0
  274. package/dist/query/index.js.map +1 -0
  275. package/dist/query/knownhosts.d.ts +61 -0
  276. package/dist/query/knownhosts.d.ts.map +1 -0
  277. package/dist/query/knownhosts.js +223 -0
  278. package/dist/query/knownhosts.js.map +1 -0
  279. package/dist/query/lines.d.ts +14 -0
  280. package/dist/query/lines.d.ts.map +1 -0
  281. package/dist/query/lines.js +29 -0
  282. package/dist/query/lines.js.map +1 -0
  283. package/dist/query/options.d.ts +187 -0
  284. package/dist/query/options.d.ts.map +1 -0
  285. package/dist/query/options.js +213 -0
  286. package/dist/query/options.js.map +1 -0
  287. package/dist/query/reconnect.d.ts +29 -0
  288. package/dist/query/reconnect.d.ts.map +1 -0
  289. package/dist/query/reconnect.js +87 -0
  290. package/dist/query/reconnect.js.map +1 -0
  291. package/dist/query/ssh.d.ts +345 -0
  292. package/dist/query/ssh.d.ts.map +1 -0
  293. package/dist/query/ssh.js +241 -0
  294. package/dist/query/ssh.js.map +1 -0
  295. package/dist/query/stream.d.ts +38 -0
  296. package/dist/query/stream.d.ts.map +1 -0
  297. package/dist/query/stream.js +70 -0
  298. package/dist/query/stream.js.map +1 -0
  299. package/dist/query/tcp.d.ts +38 -0
  300. package/dist/query/tcp.d.ts.map +1 -0
  301. package/dist/query/tcp.js +53 -0
  302. package/dist/query/tcp.js.map +1 -0
  303. package/dist/query/transport.d.ts +36 -0
  304. package/dist/query/transport.d.ts.map +1 -0
  305. package/dist/query/transport.js +2 -0
  306. package/dist/query/transport.js.map +1 -0
  307. package/dist/query/web.d.ts +54 -0
  308. package/dist/query/web.d.ts.map +1 -0
  309. package/dist/query/web.js +146 -0
  310. package/dist/query/web.js.map +1 -0
  311. package/dist/versions/index.d.ts +3094 -0
  312. package/dist/versions/index.d.ts.map +1 -0
  313. package/dist/versions/index.js +9237 -0
  314. package/dist/versions/index.js.map +1 -0
  315. package/package.json +118 -4
  316. package/src/client/abort.ts +24 -0
  317. package/src/client/address.ts +74 -0
  318. package/src/client/api/voice.ts +61 -0
  319. package/src/client/capabilities.ts +106 -0
  320. package/src/client/client.ts +1809 -0
  321. package/src/client/commands.ts +193 -0
  322. package/src/client/crypto/crypt-ops.ts +6 -0
  323. package/src/client/crypto/crypt.ts +275 -0
  324. package/src/client/crypto/eax.ts +152 -0
  325. package/src/client/crypto/identity.ts +484 -0
  326. package/src/client/crypto/index.ts +21 -0
  327. package/src/client/crypto/primitives.ts +141 -0
  328. package/src/client/diagnostics.ts +58 -0
  329. package/src/client/discovery/index.ts +1 -0
  330. package/src/client/discovery/resolver.ts +325 -0
  331. package/src/client/errors.ts +217 -0
  332. package/src/client/events.ts +12 -0
  333. package/src/client/handshake/crypt-handshake.ts +157 -0
  334. package/src/client/handshake/crypt-init2.ts +48 -0
  335. package/src/client/handshake/index.ts +3 -0
  336. package/src/client/handshake/license.ts +208 -0
  337. package/src/client/handshake.ts +150 -0
  338. package/src/client/helpers.ts +10 -0
  339. package/src/client/hooks.ts +30 -0
  340. package/src/client/index.ts +93 -0
  341. package/src/client/reconnect.ts +43 -0
  342. package/src/client/throttle.ts +92 -0
  343. package/src/client/trace.ts +237 -0
  344. package/src/client/transfer.ts +436 -0
  345. package/src/client/transport/generation-window.ts +108 -0
  346. package/src/client/transport/handler.ts +926 -0
  347. package/src/client/transport/index.ts +14 -0
  348. package/src/client/transport/packet.ts +69 -0
  349. package/src/client/transport/quicklz.ts +209 -0
  350. package/src/client/types.ts +268 -0
  351. package/src/core/api/channels.ts +396 -0
  352. package/src/core/api/clients.ts +654 -0
  353. package/src/core/api/command.ts +563 -0
  354. package/src/core/api/files.ts +405 -0
  355. package/src/core/api/groups.ts +622 -0
  356. package/src/core/api/moderation.ts +525 -0
  357. package/src/core/api/parse.ts +52 -0
  358. package/src/core/api/server.ts +709 -0
  359. package/src/core/command/command.ts +125 -0
  360. package/src/core/command/ids.ts +149 -0
  361. package/src/core/command/parser.ts +68 -0
  362. package/src/core/command/request.ts +119 -0
  363. package/src/core/command/responses.ts +114 -0
  364. package/src/core/command-name.ts +334 -0
  365. package/src/core/enums.ts +167 -0
  366. package/src/core/errorcode.ts +412 -0
  367. package/src/core/errors.ts +258 -0
  368. package/src/core/events.ts +219 -0
  369. package/src/core/helpers.ts +161 -0
  370. package/src/core/index.ts +126 -0
  371. package/src/core/internal.ts +23 -0
  372. package/src/core/middleware.ts +24 -0
  373. package/src/core/notification-name.ts +155 -0
  374. package/src/core/notifications.ts +157 -0
  375. package/src/core/permission-name.ts +538 -0
  376. package/src/core/permission.ts +34 -0
  377. package/src/core/property-name.ts +411 -0
  378. package/src/core/reason.ts +38 -0
  379. package/src/core/reconnect.ts +98 -0
  380. package/src/core/types.ts +138 -0
  381. package/src/query/client.ts +1132 -0
  382. package/src/query/errors.ts +108 -0
  383. package/src/query/index.ts +65 -0
  384. package/src/query/knownhosts.ts +257 -0
  385. package/src/query/lines.ts +28 -0
  386. package/src/query/options.ts +388 -0
  387. package/src/query/reconnect.ts +84 -0
  388. package/src/query/ssh.ts +614 -0
  389. package/src/query/stream.ts +91 -0
  390. package/src/query/tcp.ts +85 -0
  391. package/src/query/transport.ts +35 -0
  392. package/src/query/web.ts +195 -0
  393. package/src/versions/index.ts +10774 -0
@@ -0,0 +1,39 @@
1
+ /** The values of the table below, before freezing. */
2
+ const eventNameValues = {
3
+ /** A text message to this client, its channel or the server. */
4
+ TextMessage: "textMessage",
5
+ /** A client coming into view, including every client already there on connecting. */
6
+ ClientEnter: "clientEnter",
7
+ /** A client going out of view. */
8
+ ClientLeave: "clientLeave",
9
+ /** A client changing channel. */
10
+ ClientMoved: "clientMoved",
11
+ /** This client being poked. */
12
+ Poked: "poked",
13
+ /** Audio from another client. Only decoded with a listener or event middleware. */
14
+ VoiceData: "voiceData",
15
+ /**
16
+ * Every notification the server sends, modelled or not, after any event it
17
+ * produces; one with a typed event arrives here as well, not only there.
18
+ */
19
+ Notification: "notification",
20
+ /** The handshake completing, on `connect()` and on every reconnection. */
21
+ Connected: "connected",
22
+ /** The connection ending, with its cause and whether a reconnection follows. */
23
+ Disconnected: "disconnected",
24
+ /** A kick from the server, which also ends the connection. */
25
+ Kicked: "kicked",
26
+ };
27
+ /**
28
+ * The names of the events `Client.on()` takes, as constants. `on(EventName.TextMessage, ...)`
29
+ * and `on("textMessage", ...)` are the same call, and both give the listener
30
+ * the same payload type.
31
+ */
32
+ export const EventName = /* @__PURE__ */ Object.freeze(eventNameValues);
33
+ // Each direction fails to compile when `EventMap` and `EventName` drift: an
34
+ // event without a name, and a name that is not an event.
35
+ const eventNamesCoverEventMap = true;
36
+ const eventMapCoversEventNames = true;
37
+ void eventNamesCoverEventMap;
38
+ void eventMapCoversEventNames;
39
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAmDA,sDAAsD;AACtD,MAAM,eAAe,GAAG;IACtB,gEAAgE;IAChE,WAAW,EAAE,aAAa;IAC1B,qFAAqF;IACrF,WAAW,EAAE,aAAa;IAC1B,kCAAkC;IAClC,WAAW,EAAE,aAAa;IAC1B,iCAAiC;IACjC,WAAW,EAAE,aAAa;IAC1B,+BAA+B;IAC/B,KAAK,EAAE,OAAO;IACd,mFAAmF;IACnF,SAAS,EAAE,WAAW;IACtB;;;OAGG;IACH,YAAY,EAAE,cAAc;IAC5B,0EAA0E;IAC1E,SAAS,EAAE,WAAW;IACtB,gFAAgF;IAChF,YAAY,EAAE,cAAc;IAC5B,8DAA8D;IAC9D,MAAM,EAAE,QAAQ;CACR,CAAC;AACX;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAA2B,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAOhG,4EAA4E;AAC5E,yDAAyD;AACzD,MAAM,uBAAuB,GAC3B,IAAI,CAAC;AACP,MAAM,wBAAwB,GAElB,IAAI,CAAC;AACjB,KAAK,uBAAuB,CAAC;AAC7B,KAAK,wBAAwB,CAAC"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Channel commands.
3
+ *
4
+ * Channel settings are a wide, mostly-optional set. The options objects name
5
+ * them in camelCase without the `channel_` prefix (`codecQuality` for
6
+ * `channel_codec_quality`), and each options type has a table naming every
7
+ * field's wire parameter, so the mapping is written down once and a key the
8
+ * table does not know is never sent.
9
+ */
10
+ import type { Channel, PermissionEntry } from "./command.js";
11
+ import type { CommandExecutor, CommandOptions } from "../command/request.js";
12
+ import type { ChannelID, ClientDBID } from "../command/ids.js";
13
+ import type { Codec } from "../enums.js";
14
+ import type { Permission } from "../permission.js";
15
+ /**
16
+ * Channel settings, as `channelcreate` and `channeledit` take them.
17
+ *
18
+ * Only the fields you set are sent. An unset (undefined) field is omitted and
19
+ * leaves the setting alone; any other value is sent, so `""` sends an empty
20
+ * value — `password: ""` clears a channel's password, while leaving `password`
21
+ * unset keeps it.
22
+ */
23
+ export interface ChannelSettings {
24
+ /** The topic shown under the name (`channel_topic`). */
25
+ readonly topic?: string | undefined;
26
+ /** The description (`channel_description`). */
27
+ readonly description?: string | undefined;
28
+ /**
29
+ * The channel password (`channel_password`), in cleartext: the voice client
30
+ * hashes it on the wire and ServerQuery sends it as is. `""` removes it.
31
+ */
32
+ readonly password?: string | undefined;
33
+ /**
34
+ * Whether the channel is password-protected (`channel_flag_password`). The
35
+ * server sets this itself when a password is set.
36
+ */
37
+ readonly hasPassword?: boolean | undefined;
38
+ /** The voice codec (`channel_codec`). */
39
+ readonly codec?: Codec | undefined;
40
+ /** The codec's quality, 0 to 10 (`channel_codec_quality`). */
41
+ readonly codecQuality?: number | undefined;
42
+ /** How many packets of voice to send at once, 1 to 10 (`channel_codec_latency_factor`). */
43
+ readonly codecLatencyFactor?: number | undefined;
44
+ /** Whether voice in the channel travels unencrypted (`channel_codec_is_unencrypted`). */
45
+ readonly isUnencrypted?: boolean | undefined;
46
+ /** How many clients may be in the channel (`channel_maxclients`). */
47
+ readonly maxClients?: number | undefined;
48
+ /**
49
+ * How many clients may be in the channel and those under it
50
+ * (`channel_maxfamilyclients`).
51
+ */
52
+ readonly maxFamilyClients?: number | undefined;
53
+ /** Whether `maxClients` is ignored (`channel_flag_maxclients_unlimited`). */
54
+ readonly isMaxClientsUnlimited?: boolean | undefined;
55
+ /** Whether `maxFamilyClients` is ignored (`channel_flag_maxfamilyclients_unlimited`). */
56
+ readonly isMaxFamilyClientsUnlimited?: boolean | undefined;
57
+ /**
58
+ * Whether the family limit is taken from the parent
59
+ * (`channel_flag_maxfamilyclients_inherited`).
60
+ */
61
+ readonly isMaxFamilyClientsInherited?: boolean | undefined;
62
+ /**
63
+ * The channel to sort this one after among its siblings; 0 sorts it first
64
+ * (`channel_order`).
65
+ */
66
+ readonly order?: ChannelID | undefined;
67
+ /** The talk power a client needs to speak here (`channel_needed_talk_power`). */
68
+ readonly neededTalkPower?: number | undefined;
69
+ /** Whether the channel survives a server restart (`channel_flag_permanent`). */
70
+ readonly isPermanent?: boolean | undefined;
71
+ /**
72
+ * Whether the channel survives its last client leaving, but not a restart
73
+ * (`channel_flag_semi_permanent`).
74
+ */
75
+ readonly isSemiPermanent?: boolean | undefined;
76
+ /** Whether new clients land here (`channel_flag_default`). */
77
+ readonly isDefault?: boolean | undefined;
78
+ /**
79
+ * How long a temporary channel survives its last client leaving, in
80
+ * milliseconds (`channel_delete_delay`). Sent in whole seconds.
81
+ */
82
+ readonly deleteDelayMs?: number | undefined;
83
+ /** How the name is pronounced, for text-to-speech (`channel_name_phonetic`). */
84
+ readonly namePhonetic?: string | undefined;
85
+ }
86
+ /** A new channel's settings. Only `name` is required; see {@link ChannelSettings}. */
87
+ export interface ChannelCreateOptions extends ChannelSettings {
88
+ /** The channel's name (`channel_name`). */
89
+ readonly name: string;
90
+ /**
91
+ * The channel to create the new one under; unset or 0 is the top level, and
92
+ * either omits the parameter (`cpid`).
93
+ */
94
+ readonly parentID?: ChannelID | undefined;
95
+ }
96
+ /**
97
+ * Create a channel and return the id the server assigned.
98
+ *
99
+ * Over the voice protocol the server also moves the creator into the new
100
+ * channel.
101
+ *
102
+ * `channel` is what to send; the command's `signal` and `timeoutMs` go in
103
+ * `options`, a separate last argument — set among the fields, they are not
104
+ * read.
105
+ */
106
+ export declare function createChannel(client: CommandExecutor, channel: ChannelCreateOptions, options?: CommandOptions): Promise<ChannelID>;
107
+ /** A channel's changed settings; see {@link ChannelSettings}. */
108
+ export interface ChannelEditOptions extends ChannelSettings {
109
+ /** The channel's new name (`channel_name`). */
110
+ readonly name?: string | undefined;
111
+ }
112
+ /**
113
+ * Change a channel's settings. Only the fields you set are sent.
114
+ *
115
+ * `settings` is what to send; the command's `signal` and `timeoutMs` go in
116
+ * `options`, a separate last argument — set among the fields, they are not
117
+ * read.
118
+ */
119
+ export declare function editChannel(client: CommandExecutor, cid: ChannelID, settings: ChannelEditOptions, options?: CommandOptions): Promise<void>;
120
+ /** How {@link deleteChannel} deletes. */
121
+ export interface ChannelDeleteOptions extends CommandOptions {
122
+ /**
123
+ * Delete the channel even while clients are in it, moving them out; false
124
+ * by default, which the server then refuses for an occupied channel
125
+ * (`force`, always sent).
126
+ */
127
+ readonly force?: boolean | undefined;
128
+ }
129
+ /** Delete a channel. */
130
+ export declare function deleteChannel(client: CommandExecutor, cid: ChannelID, options?: ChannelDeleteOptions): Promise<void>;
131
+ /**
132
+ * All channels on the server, in the server's own sort order.
133
+ *
134
+ * Always asks for the topic, flags, voice, limits and icon, which a bare
135
+ * `channellist` leaves out. `description` and `uid` are not part of
136
+ * `channellist` and stay empty; `getChannelInfo` has them.
137
+ */
138
+ export declare function listChannels(client: CommandExecutor, options?: CommandOptions): Promise<Channel[]>;
139
+ /**
140
+ * One channel's full settings.
141
+ *
142
+ * `totalClients`, `totalFamilyClients` and `neededSubscribePower` are left
143
+ * undefined: `channelinfo` does not carry them. `listChannels` does.
144
+ *
145
+ * `channelinfo` answers with `pid` and the settings but no `cid` — the channel
146
+ * is whatever was asked for — so the id is taken from the argument rather than
147
+ * read from the row, where it would come back 0.
148
+ */
149
+ export declare function getChannelInfo(client: CommandExecutor, cid: ChannelID, options?: CommandOptions): Promise<Channel>;
150
+ /** A channel whose name matched a search. */
151
+ export interface ChannelMatch {
152
+ /** The channel's id. */
153
+ readonly id: ChannelID;
154
+ /** The channel's name. */
155
+ readonly name: string;
156
+ }
157
+ /**
158
+ * Channels whose name contains `pattern`; none is an empty list. The server
159
+ * reports finding none as error 768 (invalid channelID), which this answers
160
+ * as `[]`.
161
+ */
162
+ export declare function findChannels(client: CommandExecutor, pattern: string, options?: CommandOptions): Promise<ChannelMatch[]>;
163
+ /** Where {@link moveChannel} sorts the channel among its new siblings. */
164
+ export interface ChannelMoveOptions extends CommandOptions {
165
+ /** The sibling to sort after, 0 for first; unset leaves it to the server (`order`). */
166
+ readonly order?: ChannelID | undefined;
167
+ }
168
+ /** Move a channel under a new parent. */
169
+ export declare function moveChannel(client: CommandExecutor, cid: ChannelID, parentID: ChannelID, options?: ChannelMoveOptions): Promise<void>;
170
+ /** Set a permission on a channel. */
171
+ export declare function addChannelPermission(client: CommandExecutor, cid: ChannelID, permission: Permission, value: number, options?: CommandOptions): Promise<void>;
172
+ /** Remove a permission from a channel. */
173
+ export declare function deleteChannelPermission(client: CommandExecutor, cid: ChannelID, permission: Permission, options?: CommandOptions): Promise<void>;
174
+ /** Permissions set directly on a channel. */
175
+ export declare function listChannelPermissions(client: CommandExecutor, cid: ChannelID, options?: CommandOptions): Promise<PermissionEntry[]>;
176
+ /** Permissions granted to one client within one channel. */
177
+ export declare function listChannelClientPermissions(client: CommandExecutor, cid: ChannelID, cldbid: ClientDBID, options?: CommandOptions): Promise<PermissionEntry[]>;
178
+ /** Set a permission on one client within one channel. */
179
+ export declare function addChannelClientPermission(client: CommandExecutor, cid: ChannelID, cldbid: ClientDBID, permission: Permission, value: number, options?: CommandOptions): Promise<void>;
180
+ /** Remove a permission from one client within one channel. */
181
+ export declare function deleteChannelClientPermission(client: CommandExecutor, cid: ChannelID, cldbid: ClientDBID, permission: Permission, options?: CommandOptions): Promise<void>;
182
+ //# sourceMappingURL=channels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../../src/core/api/channels.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Channel commands.
3
+ *
4
+ * Channel settings are a wide, mostly-optional set. The options objects name
5
+ * them in camelCase without the `channel_` prefix (`codecQuality` for
6
+ * `channel_codec_quality`), and each options type has a table naming every
7
+ * field's wire parameter, so the mapping is written down once and a key the
8
+ * table does not know is never sent.
9
+ */
10
+ import { nonZero, firstRow, exec, query, list, parseChannel, parsePermission, permissionParam, encodeFields, inSeconds, big, str, } from "./command.js";
11
+ import { asChannelID } from "../command/ids.js";
12
+ import { ErrorCode } from "../errorcode.js";
13
+ const settingNames = {
14
+ topic: "channel_topic",
15
+ description: "channel_description",
16
+ password: "channel_password",
17
+ hasPassword: "channel_flag_password",
18
+ codec: "channel_codec",
19
+ codecQuality: "channel_codec_quality",
20
+ codecLatencyFactor: "channel_codec_latency_factor",
21
+ isUnencrypted: "channel_codec_is_unencrypted",
22
+ maxClients: "channel_maxclients",
23
+ maxFamilyClients: "channel_maxfamilyclients",
24
+ isMaxClientsUnlimited: "channel_flag_maxclients_unlimited",
25
+ isMaxFamilyClientsUnlimited: "channel_flag_maxfamilyclients_unlimited",
26
+ isMaxFamilyClientsInherited: "channel_flag_maxfamilyclients_inherited",
27
+ order: "channel_order",
28
+ neededTalkPower: "channel_needed_talk_power",
29
+ isPermanent: "channel_flag_permanent",
30
+ isSemiPermanent: "channel_flag_semi_permanent",
31
+ isDefault: "channel_flag_default",
32
+ deleteDelayMs: ["channel_delete_delay", inSeconds],
33
+ namePhonetic: "channel_name_phonetic",
34
+ };
35
+ const createNames = {
36
+ name: "channel_name",
37
+ parentID: ["cpid", nonZero],
38
+ ...settingNames,
39
+ };
40
+ /**
41
+ * Create a channel and return the id the server assigned.
42
+ *
43
+ * Over the voice protocol the server also moves the creator into the new
44
+ * channel.
45
+ *
46
+ * `channel` is what to send; the command's `signal` and `timeoutMs` go in
47
+ * `options`, a separate last argument — set among the fields, they are not
48
+ * read.
49
+ */
50
+ export async function createChannel(client, channel, options) {
51
+ const rows = await query(client, "channelcreate", encodeFields(channel, createNames), options, [
52
+ "channel_password",
53
+ ]);
54
+ return asChannelID(big(firstRow(rows, "channelcreate", "cid"), "cid"));
55
+ }
56
+ const editNames = { name: "channel_name", ...settingNames };
57
+ /**
58
+ * Change a channel's settings. Only the fields you set are sent.
59
+ *
60
+ * `settings` is what to send; the command's `signal` and `timeoutMs` go in
61
+ * `options`, a separate last argument — set among the fields, they are not
62
+ * read.
63
+ */
64
+ export async function editChannel(client, cid, settings, options) {
65
+ await exec(client, "channeledit", [["cid", cid], ...encodeFields(settings, editNames)], options, [
66
+ "channel_password",
67
+ ]);
68
+ }
69
+ /** Delete a channel. */
70
+ export async function deleteChannel(client, cid, options = {}) {
71
+ await exec(client, "channeldelete", [
72
+ ["cid", cid],
73
+ ["force", options.force ?? false],
74
+ ], options);
75
+ }
76
+ const listFlags = [
77
+ ["-topic", true],
78
+ ["-flags", true],
79
+ ["-voice", true],
80
+ ["-limits", true],
81
+ ["-icon", true],
82
+ ];
83
+ /**
84
+ * All channels on the server, in the server's own sort order.
85
+ *
86
+ * Always asks for the topic, flags, voice, limits and icon, which a bare
87
+ * `channellist` leaves out. `description` and `uid` are not part of
88
+ * `channellist` and stay empty; `getChannelInfo` has them.
89
+ */
90
+ export async function listChannels(client, options) {
91
+ return (await list(client, "channellist", listFlags, options)).map(parseChannel);
92
+ }
93
+ /**
94
+ * One channel's full settings.
95
+ *
96
+ * `totalClients`, `totalFamilyClients` and `neededSubscribePower` are left
97
+ * undefined: `channelinfo` does not carry them. `listChannels` does.
98
+ *
99
+ * `channelinfo` answers with `pid` and the settings but no `cid` — the channel
100
+ * is whatever was asked for — so the id is taken from the argument rather than
101
+ * read from the row, where it would come back 0.
102
+ */
103
+ export async function getChannelInfo(client, cid, options) {
104
+ const rows = await query(client, "channelinfo", [["cid", cid]], options);
105
+ return { ...parseChannel(firstRow(rows, "channelinfo")), id: cid };
106
+ }
107
+ /**
108
+ * Channels whose name contains `pattern`; none is an empty list. The server
109
+ * reports finding none as error 768 (invalid channelID), which this answers
110
+ * as `[]`.
111
+ */
112
+ export async function findChannels(client, pattern, options) {
113
+ const rows = await list(client, "channelfind", [["pattern", pattern]], options, {
114
+ noMatch: ErrorCode.ChannelInvalidID,
115
+ });
116
+ return rows.map((row) => ({ id: asChannelID(big(row, "cid")), name: str(row, "channel_name") }));
117
+ }
118
+ /** Move a channel under a new parent. */
119
+ export async function moveChannel(client, cid, parentID, options = {}) {
120
+ await exec(client, "channelmove", [
121
+ ["cid", cid],
122
+ ["cpid", parentID],
123
+ ["order", options.order],
124
+ ], options);
125
+ }
126
+ // ---- Channel permissions ----------------------------------------------------
127
+ /** Set a permission on a channel. */
128
+ export async function addChannelPermission(client, cid, permission, value, options) {
129
+ await exec(client, "channeladdperm", [["cid", cid], permissionParam(permission), ["permvalue", value]], options);
130
+ }
131
+ /** Remove a permission from a channel. */
132
+ export async function deleteChannelPermission(client, cid, permission, options) {
133
+ await exec(client, "channeldelperm", [["cid", cid], permissionParam(permission)], options);
134
+ }
135
+ /** Permissions set directly on a channel. */
136
+ export async function listChannelPermissions(client, cid, options) {
137
+ return (await list(client, "channelpermlist", [["cid", cid]], options)).map(parsePermission);
138
+ }
139
+ /** Permissions granted to one client within one channel. */
140
+ export async function listChannelClientPermissions(client, cid, cldbid, options) {
141
+ const rows = await list(client, "channelclientpermlist", [
142
+ ["cid", cid],
143
+ ["cldbid", cldbid],
144
+ ], options);
145
+ return rows.map(parsePermission);
146
+ }
147
+ /** Set a permission on one client within one channel. */
148
+ export async function addChannelClientPermission(client, cid, cldbid, permission, value, options) {
149
+ await exec(client, "channelclientaddperm", [["cid", cid], ["cldbid", cldbid], permissionParam(permission), ["permvalue", value]], options);
150
+ }
151
+ /** Remove a permission from one client within one channel. */
152
+ export async function deleteChannelClientPermission(client, cid, cldbid, permission, options) {
153
+ await exec(client, "channelclientdelperm", [["cid", cid], ["cldbid", cldbid], permissionParam(permission)], options);
154
+ }
155
+ //# sourceMappingURL=channels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channels.js","sourceRoot":"","sources":["../../../src/core/api/channels.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,eAAe,EACf,eAAe,EACf,YAAY,EACZ,SAAS,EACT,GAAG,EACH,GAAG,GACJ,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AA4E5C,MAAM,YAAY,GAA+B;IAC/C,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,qBAAqB;IAClC,QAAQ,EAAE,kBAAkB;IAC5B,WAAW,EAAE,uBAAuB;IACpC,KAAK,EAAE,eAAe;IACtB,YAAY,EAAE,uBAAuB;IACrC,kBAAkB,EAAE,8BAA8B;IAClD,aAAa,EAAE,8BAA8B;IAC7C,UAAU,EAAE,oBAAoB;IAChC,gBAAgB,EAAE,0BAA0B;IAC5C,qBAAqB,EAAE,mCAAmC;IAC1D,2BAA2B,EAAE,yCAAyC;IACtE,2BAA2B,EAAE,yCAAyC;IACtE,KAAK,EAAE,eAAe;IACtB,eAAe,EAAE,2BAA2B;IAC5C,WAAW,EAAE,wBAAwB;IACrC,eAAe,EAAE,6BAA6B;IAC9C,SAAS,EAAE,sBAAsB;IACjC,aAAa,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC;IAClD,YAAY,EAAE,uBAAuB;CACtC,CAAC;AAaF,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3B,GAAG,YAAY;CAChB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAuB,EACvB,OAA6B,EAC7B,OAAwB;IAExB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE;QAC7F,kBAAkB;KACnB,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACzE,CAAC;AAQD,MAAM,SAAS,GAAkC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,YAAY,EAAE,CAAC;AAE3F;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAuB,EACvB,GAAc,EACd,QAA4B,EAC5B,OAAwB;IAExB,MAAM,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE;QAC/F,kBAAkB;KACnB,CAAC,CAAC;AACL,CAAC;AAYD,wBAAwB;AACxB,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAuB,EACvB,GAAc,EACd,OAAO,GAAyB,EAAE;IAElC,MAAM,IAAI,CACR,MAAM,EACN,eAAe,EACf;QACE,CAAC,KAAK,EAAE,GAAG,CAAC;QACZ,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;KAClC,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAA2C;IACxD,CAAC,QAAQ,EAAE,IAAI,CAAC;IAChB,CAAC,QAAQ,EAAE,IAAI,CAAC;IAChB,CAAC,QAAQ,EAAE,IAAI,CAAC;IAChB,CAAC,SAAS,EAAE,IAAI,CAAC;IACjB,CAAC,OAAO,EAAE,IAAI,CAAC;CAChB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAuB,EACvB,OAAwB;IAExB,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAuB,EACvB,GAAc,EACd,OAAwB;IAExB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACzE,OAAO,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;AACrE,CAAC;AAUD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAuB,EACvB,OAAe,EACf,OAAwB;IAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE;QAC9E,OAAO,EAAE,SAAS,CAAC,gBAAgB;KACpC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;AACnG,CAAC;AAQD,yCAAyC;AACzC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAuB,EACvB,GAAc,EACd,QAAmB,EACnB,OAAO,GAAuB,EAAE;IAEhC,MAAM,IAAI,CACR,MAAM,EACN,aAAa,EACb;QACE,CAAC,KAAK,EAAE,GAAG,CAAC;QACZ,CAAC,MAAM,EAAE,QAAQ,CAAC;QAClB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;KACzB,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAuB,EACvB,GAAc,EACd,UAAsB,EACtB,KAAa,EACb,OAAwB;IAExB,MAAM,IAAI,CACR,MAAM,EACN,gBAAgB,EAChB,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EACjE,OAAO,CACR,CAAC;AACJ,CAAC;AAED,0CAA0C;AAC1C,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAuB,EACvB,GAAc,EACd,UAAsB,EACtB,OAAwB;IAExB,MAAM,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC7F,CAAC;AAED,6CAA6C;AAC7C,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAuB,EACvB,GAAc,EACd,OAAwB;IAExB,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC/F,CAAC;AAED,4DAA4D;AAC5D,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAuB,EACvB,GAAc,EACd,MAAkB,EAClB,OAAwB;IAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CACrB,MAAM,EACN,uBAAuB,EACvB;QACE,CAAC,KAAK,EAAE,GAAG,CAAC;QACZ,CAAC,QAAQ,EAAE,MAAM,CAAC;KACnB,EACD,OAAO,CACR,CAAC;IACF,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACnC,CAAC;AAED,yDAAyD;AACzD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAAuB,EACvB,GAAc,EACd,MAAkB,EAClB,UAAsB,EACtB,KAAa,EACb,OAAwB;IAExB,MAAM,IAAI,CACR,MAAM,EACN,sBAAsB,EACtB,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EACrF,OAAO,CACR,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,MAAuB,EACvB,GAAc,EACd,MAAkB,EAClB,UAAsB,EACtB,OAAwB;IAExB,MAAM,IAAI,CACR,MAAM,EACN,sBAAsB,EACtB,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,EAC/D,OAAO,CACR,CAAC;AACJ,CAAC"}