@neontechspace/fluxerly 1000.0.0-nightly.12

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 (1319) hide show
  1. package/CHANGELOG.md +833 -0
  2. package/LICENSE +201 -0
  3. package/README.md +129 -0
  4. package/agents/AGENTS.md +195 -0
  5. package/dist/api/default/application.d.ts +34 -0
  6. package/dist/api/default/application.d.ts.map +1 -0
  7. package/dist/api/default/application.js +2 -0
  8. package/dist/api/default/application.js.map +1 -0
  9. package/dist/api/default/attachments.d.ts +89 -0
  10. package/dist/api/default/attachments.d.ts.map +1 -0
  11. package/dist/api/default/attachments.js +2 -0
  12. package/dist/api/default/attachments.js.map +1 -0
  13. package/dist/api/default/audit-logs.d.ts +48 -0
  14. package/dist/api/default/audit-logs.d.ts.map +1 -0
  15. package/dist/api/default/audit-logs.js +2 -0
  16. package/dist/api/default/audit-logs.js.map +1 -0
  17. package/dist/api/default/bot.d.ts +200 -0
  18. package/dist/api/default/bot.d.ts.map +1 -0
  19. package/dist/api/default/bot.js +309 -0
  20. package/dist/api/default/bot.js.map +1 -0
  21. package/dist/api/default/cache.d.ts +105 -0
  22. package/dist/api/default/cache.d.ts.map +1 -0
  23. package/dist/api/default/cache.js +2 -0
  24. package/dist/api/default/cache.js.map +1 -0
  25. package/dist/api/default/channels.d.ts +249 -0
  26. package/dist/api/default/channels.d.ts.map +1 -0
  27. package/dist/api/default/channels.js +2 -0
  28. package/dist/api/default/channels.js.map +1 -0
  29. package/dist/api/default/client.d.ts +528 -0
  30. package/dist/api/default/client.d.ts.map +1 -0
  31. package/dist/api/default/client.js +301 -0
  32. package/dist/api/default/client.js.map +1 -0
  33. package/dist/api/default/collectors.d.ts +76 -0
  34. package/dist/api/default/collectors.d.ts.map +1 -0
  35. package/dist/api/default/collectors.js +2 -0
  36. package/dist/api/default/collectors.js.map +1 -0
  37. package/dist/api/default/commands.d.ts +91 -0
  38. package/dist/api/default/commands.d.ts.map +1 -0
  39. package/dist/api/default/commands.js +92 -0
  40. package/dist/api/default/commands.js.map +1 -0
  41. package/dist/api/default/direct-messages.d.ts +111 -0
  42. package/dist/api/default/direct-messages.d.ts.map +1 -0
  43. package/dist/api/default/direct-messages.js +2 -0
  44. package/dist/api/default/direct-messages.js.map +1 -0
  45. package/dist/api/default/discovery.d.ts +76 -0
  46. package/dist/api/default/discovery.d.ts.map +1 -0
  47. package/dist/api/default/discovery.js +2 -0
  48. package/dist/api/default/discovery.js.map +1 -0
  49. package/dist/api/default/emojis.d.ts +88 -0
  50. package/dist/api/default/emojis.d.ts.map +1 -0
  51. package/dist/api/default/emojis.js +2 -0
  52. package/dist/api/default/emojis.js.map +1 -0
  53. package/dist/api/default/events.d.ts +127 -0
  54. package/dist/api/default/events.d.ts.map +1 -0
  55. package/dist/api/default/events.js +2 -0
  56. package/dist/api/default/events.js.map +1 -0
  57. package/dist/api/default/gateway.d.ts +62 -0
  58. package/dist/api/default/gateway.d.ts.map +1 -0
  59. package/dist/api/default/gateway.js +2 -0
  60. package/dist/api/default/gateway.js.map +1 -0
  61. package/dist/api/default/guards.d.ts +87 -0
  62. package/dist/api/default/guards.d.ts.map +1 -0
  63. package/dist/api/default/guards.js +78 -0
  64. package/dist/api/default/guards.js.map +1 -0
  65. package/dist/api/default/guilds.d.ts +230 -0
  66. package/dist/api/default/guilds.d.ts.map +1 -0
  67. package/dist/api/default/guilds.js +2 -0
  68. package/dist/api/default/guilds.js.map +1 -0
  69. package/dist/api/default/helpers.d.ts +79 -0
  70. package/dist/api/default/helpers.d.ts.map +1 -0
  71. package/dist/api/default/helpers.js +79 -0
  72. package/dist/api/default/helpers.js.map +1 -0
  73. package/dist/api/default/instance.d.ts +47 -0
  74. package/dist/api/default/instance.d.ts.map +1 -0
  75. package/dist/api/default/instance.js +2 -0
  76. package/dist/api/default/instance.js.map +1 -0
  77. package/dist/api/default/invites.d.ts +57 -0
  78. package/dist/api/default/invites.d.ts.map +1 -0
  79. package/dist/api/default/invites.js +2 -0
  80. package/dist/api/default/invites.js.map +1 -0
  81. package/dist/api/default/logging.d.ts +37 -0
  82. package/dist/api/default/logging.d.ts.map +1 -0
  83. package/dist/api/default/logging.js +2 -0
  84. package/dist/api/default/logging.js.map +1 -0
  85. package/dist/api/default/members.d.ts +442 -0
  86. package/dist/api/default/members.d.ts.map +1 -0
  87. package/dist/api/default/members.js +2 -0
  88. package/dist/api/default/members.js.map +1 -0
  89. package/dist/api/default/messages.d.ts +898 -0
  90. package/dist/api/default/messages.d.ts.map +1 -0
  91. package/dist/api/default/messages.js +2 -0
  92. package/dist/api/default/messages.js.map +1 -0
  93. package/dist/api/default/oauth.d.ts +168 -0
  94. package/dist/api/default/oauth.d.ts.map +1 -0
  95. package/dist/api/default/oauth.js +84 -0
  96. package/dist/api/default/oauth.js.map +1 -0
  97. package/dist/api/default/permissions.d.ts +44 -0
  98. package/dist/api/default/permissions.d.ts.map +1 -0
  99. package/dist/api/default/permissions.js +2 -0
  100. package/dist/api/default/permissions.js.map +1 -0
  101. package/dist/api/default/presence.d.ts +88 -0
  102. package/dist/api/default/presence.d.ts.map +1 -0
  103. package/dist/api/default/presence.js +2 -0
  104. package/dist/api/default/presence.js.map +1 -0
  105. package/dist/api/default/rest.d.ts +28 -0
  106. package/dist/api/default/rest.d.ts.map +1 -0
  107. package/dist/api/default/rest.js +2 -0
  108. package/dist/api/default/rest.js.map +1 -0
  109. package/dist/api/default/results.d.ts +31 -0
  110. package/dist/api/default/results.d.ts.map +1 -0
  111. package/dist/api/default/results.js +14 -0
  112. package/dist/api/default/results.js.map +1 -0
  113. package/dist/api/default/roles.d.ts +119 -0
  114. package/dist/api/default/roles.d.ts.map +1 -0
  115. package/dist/api/default/roles.js +2 -0
  116. package/dist/api/default/roles.js.map +1 -0
  117. package/dist/api/default/stickers.d.ts +92 -0
  118. package/dist/api/default/stickers.d.ts.map +1 -0
  119. package/dist/api/default/stickers.js +2 -0
  120. package/dist/api/default/stickers.js.map +1 -0
  121. package/dist/api/default/supervisor.d.ts +51 -0
  122. package/dist/api/default/supervisor.d.ts.map +1 -0
  123. package/dist/api/default/supervisor.js +53 -0
  124. package/dist/api/default/supervisor.js.map +1 -0
  125. package/dist/api/default/threads.d.ts +158 -0
  126. package/dist/api/default/threads.d.ts.map +1 -0
  127. package/dist/api/default/threads.js +2 -0
  128. package/dist/api/default/threads.js.map +1 -0
  129. package/dist/api/default/users.d.ts +73 -0
  130. package/dist/api/default/users.d.ts.map +1 -0
  131. package/dist/api/default/users.js +2 -0
  132. package/dist/api/default/users.js.map +1 -0
  133. package/dist/api/default/webhook-client.d.ts +149 -0
  134. package/dist/api/default/webhook-client.d.ts.map +1 -0
  135. package/dist/api/default/webhook-client.js +69 -0
  136. package/dist/api/default/webhook-client.js.map +1 -0
  137. package/dist/api/default/webhooks.d.ts +62 -0
  138. package/dist/api/default/webhooks.d.ts.map +1 -0
  139. package/dist/api/default/webhooks.js +2 -0
  140. package/dist/api/default/webhooks.js.map +1 -0
  141. package/dist/api/effect/application.d.ts +29 -0
  142. package/dist/api/effect/application.d.ts.map +1 -0
  143. package/dist/api/effect/application.js +2 -0
  144. package/dist/api/effect/application.js.map +1 -0
  145. package/dist/api/effect/attachments.d.ts +84 -0
  146. package/dist/api/effect/attachments.d.ts.map +1 -0
  147. package/dist/api/effect/attachments.js +2 -0
  148. package/dist/api/effect/attachments.js.map +1 -0
  149. package/dist/api/effect/audit-logs.d.ts +42 -0
  150. package/dist/api/effect/audit-logs.d.ts.map +1 -0
  151. package/dist/api/effect/audit-logs.js +2 -0
  152. package/dist/api/effect/audit-logs.js.map +1 -0
  153. package/dist/api/effect/bot.d.ts +233 -0
  154. package/dist/api/effect/bot.d.ts.map +1 -0
  155. package/dist/api/effect/bot.js +230 -0
  156. package/dist/api/effect/bot.js.map +1 -0
  157. package/dist/api/effect/cache.d.ts +103 -0
  158. package/dist/api/effect/cache.d.ts.map +1 -0
  159. package/dist/api/effect/cache.js +2 -0
  160. package/dist/api/effect/cache.js.map +1 -0
  161. package/dist/api/effect/channels.d.ts +231 -0
  162. package/dist/api/effect/channels.d.ts.map +1 -0
  163. package/dist/api/effect/channels.js +2 -0
  164. package/dist/api/effect/channels.js.map +1 -0
  165. package/dist/api/effect/client.d.ts +622 -0
  166. package/dist/api/effect/client.d.ts.map +1 -0
  167. package/dist/api/effect/client.js +191 -0
  168. package/dist/api/effect/client.js.map +1 -0
  169. package/dist/api/effect/collectors.d.ts +90 -0
  170. package/dist/api/effect/collectors.d.ts.map +1 -0
  171. package/dist/api/effect/collectors.js +2 -0
  172. package/dist/api/effect/collectors.js.map +1 -0
  173. package/dist/api/effect/commands.d.ts +86 -0
  174. package/dist/api/effect/commands.d.ts.map +1 -0
  175. package/dist/api/effect/commands.js +87 -0
  176. package/dist/api/effect/commands.js.map +1 -0
  177. package/dist/api/effect/direct-messages.d.ts +102 -0
  178. package/dist/api/effect/direct-messages.d.ts.map +1 -0
  179. package/dist/api/effect/direct-messages.js +2 -0
  180. package/dist/api/effect/direct-messages.js.map +1 -0
  181. package/dist/api/effect/discovery.d.ts +68 -0
  182. package/dist/api/effect/discovery.d.ts.map +1 -0
  183. package/dist/api/effect/discovery.js +2 -0
  184. package/dist/api/effect/discovery.js.map +1 -0
  185. package/dist/api/effect/emojis.d.ts +77 -0
  186. package/dist/api/effect/emojis.d.ts.map +1 -0
  187. package/dist/api/effect/emojis.js +2 -0
  188. package/dist/api/effect/emojis.js.map +1 -0
  189. package/dist/api/effect/events.d.ts +78 -0
  190. package/dist/api/effect/events.d.ts.map +1 -0
  191. package/dist/api/effect/events.js +12 -0
  192. package/dist/api/effect/events.js.map +1 -0
  193. package/dist/api/effect/failures.d.ts +14 -0
  194. package/dist/api/effect/failures.d.ts.map +1 -0
  195. package/dist/api/effect/failures.js +2 -0
  196. package/dist/api/effect/failures.js.map +1 -0
  197. package/dist/api/effect/gateway.d.ts +63 -0
  198. package/dist/api/effect/gateway.d.ts.map +1 -0
  199. package/dist/api/effect/gateway.js +2 -0
  200. package/dist/api/effect/gateway.js.map +1 -0
  201. package/dist/api/effect/guards.d.ts +91 -0
  202. package/dist/api/effect/guards.d.ts.map +1 -0
  203. package/dist/api/effect/guards.js +94 -0
  204. package/dist/api/effect/guards.js.map +1 -0
  205. package/dist/api/effect/guilds.d.ts +221 -0
  206. package/dist/api/effect/guilds.d.ts.map +1 -0
  207. package/dist/api/effect/guilds.js +2 -0
  208. package/dist/api/effect/guilds.js.map +1 -0
  209. package/dist/api/effect/helpers.d.ts +300 -0
  210. package/dist/api/effect/helpers.d.ts.map +1 -0
  211. package/dist/api/effect/helpers.js +156 -0
  212. package/dist/api/effect/helpers.js.map +1 -0
  213. package/dist/api/effect/hierarchy.d.ts +26 -0
  214. package/dist/api/effect/hierarchy.d.ts.map +1 -0
  215. package/dist/api/effect/hierarchy.js +26 -0
  216. package/dist/api/effect/hierarchy.js.map +1 -0
  217. package/dist/api/effect/instance.d.ts +46 -0
  218. package/dist/api/effect/instance.d.ts.map +1 -0
  219. package/dist/api/effect/instance.js +8 -0
  220. package/dist/api/effect/instance.js.map +1 -0
  221. package/dist/api/effect/invites.d.ts +49 -0
  222. package/dist/api/effect/invites.d.ts.map +1 -0
  223. package/dist/api/effect/invites.js +2 -0
  224. package/dist/api/effect/invites.js.map +1 -0
  225. package/dist/api/effect/logging.d.ts +37 -0
  226. package/dist/api/effect/logging.d.ts.map +1 -0
  227. package/dist/api/effect/logging.js +2 -0
  228. package/dist/api/effect/logging.js.map +1 -0
  229. package/dist/api/effect/members.d.ts +433 -0
  230. package/dist/api/effect/members.d.ts.map +1 -0
  231. package/dist/api/effect/members.js +2 -0
  232. package/dist/api/effect/members.js.map +1 -0
  233. package/dist/api/effect/messages.d.ts +877 -0
  234. package/dist/api/effect/messages.d.ts.map +1 -0
  235. package/dist/api/effect/messages.js +2 -0
  236. package/dist/api/effect/messages.js.map +1 -0
  237. package/dist/api/effect/oauth.d.ts +148 -0
  238. package/dist/api/effect/oauth.d.ts.map +1 -0
  239. package/dist/api/effect/oauth.js +51 -0
  240. package/dist/api/effect/oauth.js.map +1 -0
  241. package/dist/api/effect/permissions.d.ts +41 -0
  242. package/dist/api/effect/permissions.d.ts.map +1 -0
  243. package/dist/api/effect/permissions.js +2 -0
  244. package/dist/api/effect/permissions.js.map +1 -0
  245. package/dist/api/effect/presence.d.ts +83 -0
  246. package/dist/api/effect/presence.d.ts.map +1 -0
  247. package/dist/api/effect/presence.js +2 -0
  248. package/dist/api/effect/presence.js.map +1 -0
  249. package/dist/api/effect/rest.d.ts +27 -0
  250. package/dist/api/effect/rest.d.ts.map +1 -0
  251. package/dist/api/effect/rest.js +2 -0
  252. package/dist/api/effect/rest.js.map +1 -0
  253. package/dist/api/effect/roles.d.ts +104 -0
  254. package/dist/api/effect/roles.d.ts.map +1 -0
  255. package/dist/api/effect/roles.js +2 -0
  256. package/dist/api/effect/roles.js.map +1 -0
  257. package/dist/api/effect/service.d.ts +76 -0
  258. package/dist/api/effect/service.d.ts.map +1 -0
  259. package/dist/api/effect/service.js +79 -0
  260. package/dist/api/effect/service.js.map +1 -0
  261. package/dist/api/effect/stickers.d.ts +81 -0
  262. package/dist/api/effect/stickers.d.ts.map +1 -0
  263. package/dist/api/effect/stickers.js +2 -0
  264. package/dist/api/effect/stickers.js.map +1 -0
  265. package/dist/api/effect/supervisor.d.ts +56 -0
  266. package/dist/api/effect/supervisor.d.ts.map +1 -0
  267. package/dist/api/effect/supervisor.js +58 -0
  268. package/dist/api/effect/supervisor.js.map +1 -0
  269. package/dist/api/effect/threads.d.ts +154 -0
  270. package/dist/api/effect/threads.d.ts.map +1 -0
  271. package/dist/api/effect/threads.js +2 -0
  272. package/dist/api/effect/threads.js.map +1 -0
  273. package/dist/api/effect/users.d.ts +62 -0
  274. package/dist/api/effect/users.d.ts.map +1 -0
  275. package/dist/api/effect/users.js +2 -0
  276. package/dist/api/effect/users.js.map +1 -0
  277. package/dist/api/effect/webhook-client.d.ts +140 -0
  278. package/dist/api/effect/webhook-client.d.ts.map +1 -0
  279. package/dist/api/effect/webhook-client.js +50 -0
  280. package/dist/api/effect/webhook-client.js.map +1 -0
  281. package/dist/api/effect/webhooks.d.ts +54 -0
  282. package/dist/api/effect/webhooks.d.ts.map +1 -0
  283. package/dist/api/effect/webhooks.js +2 -0
  284. package/dist/api/effect/webhooks.js.map +1 -0
  285. package/dist/api-errors.d.ts +609 -0
  286. package/dist/api-errors.d.ts.map +1 -0
  287. package/dist/api-errors.js +589 -0
  288. package/dist/api-errors.js.map +1 -0
  289. package/dist/application.d.ts +85 -0
  290. package/dist/application.d.ts.map +1 -0
  291. package/dist/application.js +44 -0
  292. package/dist/application.js.map +1 -0
  293. package/dist/assets.d.ts +197 -0
  294. package/dist/assets.d.ts.map +1 -0
  295. package/dist/assets.js +419 -0
  296. package/dist/assets.js.map +1 -0
  297. package/dist/attachments.d.ts +400 -0
  298. package/dist/attachments.d.ts.map +1 -0
  299. package/dist/attachments.js +88 -0
  300. package/dist/attachments.js.map +1 -0
  301. package/dist/audit-logs.d.ts +292 -0
  302. package/dist/audit-logs.d.ts.map +1 -0
  303. package/dist/audit-logs.js +46 -0
  304. package/dist/audit-logs.js.map +1 -0
  305. package/dist/bot-runner.d.ts +69 -0
  306. package/dist/bot-runner.d.ts.map +1 -0
  307. package/dist/bot-runner.js +41 -0
  308. package/dist/bot-runner.js.map +1 -0
  309. package/dist/builders.d.ts +153 -0
  310. package/dist/builders.d.ts.map +1 -0
  311. package/dist/builders.js +326 -0
  312. package/dist/builders.js.map +1 -0
  313. package/dist/cache.d.ts +187 -0
  314. package/dist/cache.d.ts.map +1 -0
  315. package/dist/cache.js +2 -0
  316. package/dist/cache.js.map +1 -0
  317. package/dist/channels.d.ts +903 -0
  318. package/dist/channels.d.ts.map +1 -0
  319. package/dist/channels.js +125 -0
  320. package/dist/channels.js.map +1 -0
  321. package/dist/cli.d.ts +9 -0
  322. package/dist/cli.d.ts.map +1 -0
  323. package/dist/cli.js +65 -0
  324. package/dist/cli.js.map +1 -0
  325. package/dist/client.d.ts +645 -0
  326. package/dist/client.d.ts.map +1 -0
  327. package/dist/client.js +2 -0
  328. package/dist/client.js.map +1 -0
  329. package/dist/collectors.d.ts +205 -0
  330. package/dist/collectors.d.ts.map +1 -0
  331. package/dist/collectors.js +71 -0
  332. package/dist/collectors.js.map +1 -0
  333. package/dist/colors.d.ts +55 -0
  334. package/dist/colors.d.ts.map +1 -0
  335. package/dist/colors.js +40 -0
  336. package/dist/colors.js.map +1 -0
  337. package/dist/command-arguments.d.ts +353 -0
  338. package/dist/command-arguments.d.ts.map +1 -0
  339. package/dist/command-arguments.js +2 -0
  340. package/dist/command-arguments.js.map +1 -0
  341. package/dist/command-help.d.ts +54 -0
  342. package/dist/command-help.d.ts.map +1 -0
  343. package/dist/command-help.js +2 -0
  344. package/dist/command-help.js.map +1 -0
  345. package/dist/commands.d.ts +328 -0
  346. package/dist/commands.d.ts.map +1 -0
  347. package/dist/commands.js +62 -0
  348. package/dist/commands.js.map +1 -0
  349. package/dist/counts.d.ts +124 -0
  350. package/dist/counts.d.ts.map +1 -0
  351. package/dist/counts.js +52 -0
  352. package/dist/counts.js.map +1 -0
  353. package/dist/default-commands.d.ts +400 -0
  354. package/dist/default-commands.d.ts.map +1 -0
  355. package/dist/default-commands.js +488 -0
  356. package/dist/default-commands.js.map +1 -0
  357. package/dist/default-supervisor.d.ts +111 -0
  358. package/dist/default-supervisor.d.ts.map +1 -0
  359. package/dist/default-supervisor.js +277 -0
  360. package/dist/default-supervisor.js.map +1 -0
  361. package/dist/discovery.d.ts +223 -0
  362. package/dist/discovery.d.ts.map +1 -0
  363. package/dist/discovery.js +18 -0
  364. package/dist/discovery.js.map +1 -0
  365. package/dist/effect-testing.d.ts +388 -0
  366. package/dist/effect-testing.d.ts.map +1 -0
  367. package/dist/effect-testing.js +261 -0
  368. package/dist/effect-testing.js.map +1 -0
  369. package/dist/effect.d.ts +220 -0
  370. package/dist/effect.d.ts.map +1 -0
  371. package/dist/effect.js +101 -0
  372. package/dist/effect.js.map +1 -0
  373. package/dist/embeds.d.ts +243 -0
  374. package/dist/embeds.d.ts.map +1 -0
  375. package/dist/embeds.js +2 -0
  376. package/dist/embeds.js.map +1 -0
  377. package/dist/error-tools.d.ts +101 -0
  378. package/dist/error-tools.d.ts.map +1 -0
  379. package/dist/error-tools.js +125 -0
  380. package/dist/error-tools.js.map +1 -0
  381. package/dist/errors.d.ts +386 -0
  382. package/dist/errors.d.ts.map +1 -0
  383. package/dist/errors.js +440 -0
  384. package/dist/errors.js.map +1 -0
  385. package/dist/events.d.ts +798 -0
  386. package/dist/events.d.ts.map +1 -0
  387. package/dist/events.js +2 -0
  388. package/dist/events.js.map +1 -0
  389. package/dist/expressions.d.ts +188 -0
  390. package/dist/expressions.d.ts.map +1 -0
  391. package/dist/expressions.js +2 -0
  392. package/dist/expressions.js.map +1 -0
  393. package/dist/failures.d.ts +53 -0
  394. package/dist/failures.d.ts.map +1 -0
  395. package/dist/failures.js +2 -0
  396. package/dist/failures.js.map +1 -0
  397. package/dist/gateway.d.ts +48 -0
  398. package/dist/gateway.d.ts.map +1 -0
  399. package/dist/gateway.js +60 -0
  400. package/dist/gateway.js.map +1 -0
  401. package/dist/guilds.d.ts +923 -0
  402. package/dist/guilds.d.ts.map +1 -0
  403. package/dist/guilds.js +204 -0
  404. package/dist/guilds.js.map +1 -0
  405. package/dist/helpers.d.ts +423 -0
  406. package/dist/helpers.d.ts.map +1 -0
  407. package/dist/helpers.js +434 -0
  408. package/dist/helpers.js.map +1 -0
  409. package/dist/index.d.ts +228 -0
  410. package/dist/index.d.ts.map +1 -0
  411. package/dist/index.js +109 -0
  412. package/dist/index.js.map +1 -0
  413. package/dist/input-validation.d.ts +51 -0
  414. package/dist/input-validation.d.ts.map +1 -0
  415. package/dist/input-validation.js +34 -0
  416. package/dist/input-validation.js.map +1 -0
  417. package/dist/instance.d.ts +101 -0
  418. package/dist/instance.d.ts.map +1 -0
  419. package/dist/instance.js +2 -0
  420. package/dist/instance.js.map +1 -0
  421. package/dist/internal/agents-section.d.ts +22 -0
  422. package/dist/internal/agents-section.d.ts.map +1 -0
  423. package/dist/internal/agents-section.js +101 -0
  424. package/dist/internal/agents-section.js.map +1 -0
  425. package/dist/internal/application.d.ts +16 -0
  426. package/dist/internal/application.d.ts.map +1 -0
  427. package/dist/internal/application.js +33 -0
  428. package/dist/internal/application.js.map +1 -0
  429. package/dist/internal/attachment-refresh.d.ts +18 -0
  430. package/dist/internal/attachment-refresh.d.ts.map +1 -0
  431. package/dist/internal/attachment-refresh.js +39 -0
  432. package/dist/internal/attachment-refresh.js.map +1 -0
  433. package/dist/internal/attachments.d.ts +45 -0
  434. package/dist/internal/attachments.d.ts.map +1 -0
  435. package/dist/internal/attachments.js +230 -0
  436. package/dist/internal/attachments.js.map +1 -0
  437. package/dist/internal/audit-logs.d.ts +13 -0
  438. package/dist/internal/audit-logs.d.ts.map +1 -0
  439. package/dist/internal/audit-logs.js +295 -0
  440. package/dist/internal/audit-logs.js.map +1 -0
  441. package/dist/internal/audit.d.ts +12 -0
  442. package/dist/internal/audit.d.ts.map +1 -0
  443. package/dist/internal/audit.js +22 -0
  444. package/dist/internal/audit.js.map +1 -0
  445. package/dist/internal/binding/default-adapters.d.ts +22 -0
  446. package/dist/internal/binding/default-adapters.d.ts.map +1 -0
  447. package/dist/internal/binding/default-adapters.js +304 -0
  448. package/dist/internal/binding/default-adapters.js.map +1 -0
  449. package/dist/internal/binding/default.d.ts +45 -0
  450. package/dist/internal/binding/default.d.ts.map +1 -0
  451. package/dist/internal/binding/default.js +86 -0
  452. package/dist/internal/binding/default.js.map +1 -0
  453. package/dist/internal/binding/execute.d.ts +51 -0
  454. package/dist/internal/binding/execute.d.ts.map +1 -0
  455. package/dist/internal/binding/execute.js +123 -0
  456. package/dist/internal/binding/execute.js.map +1 -0
  457. package/dist/internal/binding/native-adapters.d.ts +23 -0
  458. package/dist/internal/binding/native-adapters.d.ts.map +1 -0
  459. package/dist/internal/binding/native-adapters.js +90 -0
  460. package/dist/internal/binding/native-adapters.js.map +1 -0
  461. package/dist/internal/binding/native.d.ts +41 -0
  462. package/dist/internal/binding/native.d.ts.map +1 -0
  463. package/dist/internal/binding/native.js +34 -0
  464. package/dist/internal/binding/native.js.map +1 -0
  465. package/dist/internal/binding/operations.d.ts +361 -0
  466. package/dist/internal/binding/operations.d.ts.map +1 -0
  467. package/dist/internal/binding/operations.js +272 -0
  468. package/dist/internal/binding/operations.js.map +1 -0
  469. package/dist/internal/bot-runner.d.ts +65 -0
  470. package/dist/internal/bot-runner.d.ts.map +1 -0
  471. package/dist/internal/bot-runner.js +363 -0
  472. package/dist/internal/bot-runner.js.map +1 -0
  473. package/dist/internal/cache-changes.d.ts +43 -0
  474. package/dist/internal/cache-changes.d.ts.map +1 -0
  475. package/dist/internal/cache-changes.js +320 -0
  476. package/dist/internal/cache-changes.js.map +1 -0
  477. package/dist/internal/cache.d.ts +57 -0
  478. package/dist/internal/cache.d.ts.map +1 -0
  479. package/dist/internal/cache.js +318 -0
  480. package/dist/internal/cache.js.map +1 -0
  481. package/dist/internal/calls.d.ts +16 -0
  482. package/dist/internal/calls.d.ts.map +1 -0
  483. package/dist/internal/calls.js +108 -0
  484. package/dist/internal/calls.js.map +1 -0
  485. package/dist/internal/channel-cache.d.ts +69 -0
  486. package/dist/internal/channel-cache.d.ts.map +1 -0
  487. package/dist/internal/channel-cache.js +413 -0
  488. package/dist/internal/channel-cache.js.map +1 -0
  489. package/dist/internal/channel-decode.d.ts +44 -0
  490. package/dist/internal/channel-decode.d.ts.map +1 -0
  491. package/dist/internal/channel-decode.js +377 -0
  492. package/dist/internal/channel-decode.js.map +1 -0
  493. package/dist/internal/channels.d.ts +60 -0
  494. package/dist/internal/channels.d.ts.map +1 -0
  495. package/dist/internal/channels.js +605 -0
  496. package/dist/internal/channels.js.map +1 -0
  497. package/dist/internal/client/backoff.d.ts +42 -0
  498. package/dist/internal/client/backoff.d.ts.map +1 -0
  499. package/dist/internal/client/backoff.js +36 -0
  500. package/dist/internal/client/backoff.js.map +1 -0
  501. package/dist/internal/client/configuration-fields.d.ts +14 -0
  502. package/dist/internal/client/configuration-fields.d.ts.map +1 -0
  503. package/dist/internal/client/configuration-fields.js +11 -0
  504. package/dist/internal/client/configuration-fields.js.map +1 -0
  505. package/dist/internal/client/drain.d.ts +33 -0
  506. package/dist/internal/client/drain.d.ts.map +1 -0
  507. package/dist/internal/client/drain.js +109 -0
  508. package/dist/internal/client/drain.js.map +1 -0
  509. package/dist/internal/client/intake.d.ts +27 -0
  510. package/dist/internal/client/intake.d.ts.map +1 -0
  511. package/dist/internal/client/intake.js +198 -0
  512. package/dist/internal/client/intake.js.map +1 -0
  513. package/dist/internal/client/lifetime.d.ts +35 -0
  514. package/dist/internal/client/lifetime.d.ts.map +1 -0
  515. package/dist/internal/client/lifetime.js +109 -0
  516. package/dist/internal/client/lifetime.js.map +1 -0
  517. package/dist/internal/client/shard-loop.d.ts +93 -0
  518. package/dist/internal/client/shard-loop.d.ts.map +1 -0
  519. package/dist/internal/client/shard-loop.js +452 -0
  520. package/dist/internal/client/shard-loop.js.map +1 -0
  521. package/dist/internal/client-registry.d.ts +26 -0
  522. package/dist/internal/client-registry.d.ts.map +1 -0
  523. package/dist/internal/client-registry.js +11 -0
  524. package/dist/internal/client-registry.js.map +1 -0
  525. package/dist/internal/client.d.ts +189 -0
  526. package/dist/internal/client.d.ts.map +1 -0
  527. package/dist/internal/client.js +1935 -0
  528. package/dist/internal/client.js.map +1 -0
  529. package/dist/internal/clock.d.ts +9 -0
  530. package/dist/internal/clock.d.ts.map +1 -0
  531. package/dist/internal/clock.js +5 -0
  532. package/dist/internal/clock.js.map +1 -0
  533. package/dist/internal/code-catalogue.d.ts +712 -0
  534. package/dist/internal/code-catalogue.d.ts.map +1 -0
  535. package/dist/internal/code-catalogue.js +655 -0
  536. package/dist/internal/code-catalogue.js.map +1 -0
  537. package/dist/internal/collector.d.ts +34 -0
  538. package/dist/internal/collector.d.ts.map +1 -0
  539. package/dist/internal/collector.js +400 -0
  540. package/dist/internal/collector.js.map +1 -0
  541. package/dist/internal/command-arguments.d.ts +29 -0
  542. package/dist/internal/command-arguments.d.ts.map +1 -0
  543. package/dist/internal/command-arguments.js +484 -0
  544. package/dist/internal/command-arguments.js.map +1 -0
  545. package/dist/internal/command-guards.d.ts +57 -0
  546. package/dist/internal/command-guards.d.ts.map +1 -0
  547. package/dist/internal/command-guards.js +81 -0
  548. package/dist/internal/command-guards.js.map +1 -0
  549. package/dist/internal/command-help.d.ts +15 -0
  550. package/dist/internal/command-help.d.ts.map +1 -0
  551. package/dist/internal/command-help.js +121 -0
  552. package/dist/internal/command-help.js.map +1 -0
  553. package/dist/internal/commands.d.ts +212 -0
  554. package/dist/internal/commands.d.ts.map +1 -0
  555. package/dist/internal/commands.js +1004 -0
  556. package/dist/internal/commands.js.map +1 -0
  557. package/dist/internal/configuration.d.ts +86 -0
  558. package/dist/internal/configuration.d.ts.map +1 -0
  559. package/dist/internal/configuration.js +401 -0
  560. package/dist/internal/configuration.js.map +1 -0
  561. package/dist/internal/counts.d.ts +33 -0
  562. package/dist/internal/counts.d.ts.map +1 -0
  563. package/dist/internal/counts.js +348 -0
  564. package/dist/internal/counts.js.map +1 -0
  565. package/dist/internal/decode/primitives.d.ts +30 -0
  566. package/dist/internal/decode/primitives.d.ts.map +1 -0
  567. package/dist/internal/decode/primitives.js +56 -0
  568. package/dist/internal/decode/primitives.js.map +1 -0
  569. package/dist/internal/decode/timestamp.d.ts +13 -0
  570. package/dist/internal/decode/timestamp.d.ts.map +1 -0
  571. package/dist/internal/decode/timestamp.js +27 -0
  572. package/dist/internal/decode/timestamp.js.map +1 -0
  573. package/dist/internal/decode/trace.d.ts +11 -0
  574. package/dist/internal/decode/trace.d.ts.map +1 -0
  575. package/dist/internal/decode/trace.js +69 -0
  576. package/dist/internal/decode/trace.js.map +1 -0
  577. package/dist/internal/defects.d.ts +48 -0
  578. package/dist/internal/defects.d.ts.map +1 -0
  579. package/dist/internal/defects.js +100 -0
  580. package/dist/internal/defects.js.map +1 -0
  581. package/dist/internal/effect-failures.d.ts +12 -0
  582. package/dist/internal/effect-failures.d.ts.map +1 -0
  583. package/dist/internal/effect-failures.js +45 -0
  584. package/dist/internal/effect-failures.js.map +1 -0
  585. package/dist/internal/embeds.d.ts +12 -0
  586. package/dist/internal/embeds.d.ts.map +1 -0
  587. package/dist/internal/embeds.js +308 -0
  588. package/dist/internal/embeds.js.map +1 -0
  589. package/dist/internal/events.d.ts +156 -0
  590. package/dist/internal/events.d.ts.map +1 -0
  591. package/dist/internal/events.js +1071 -0
  592. package/dist/internal/events.js.map +1 -0
  593. package/dist/internal/expiry-queue.d.ts +42 -0
  594. package/dist/internal/expiry-queue.d.ts.map +1 -0
  595. package/dist/internal/expiry-queue.js +138 -0
  596. package/dist/internal/expiry-queue.js.map +1 -0
  597. package/dist/internal/expressions.d.ts +35 -0
  598. package/dist/internal/expressions.d.ts.map +1 -0
  599. package/dist/internal/expressions.js +311 -0
  600. package/dist/internal/expressions.js.map +1 -0
  601. package/dist/internal/failures.d.ts +107 -0
  602. package/dist/internal/failures.d.ts.map +1 -0
  603. package/dist/internal/failures.js +416 -0
  604. package/dist/internal/failures.js.map +1 -0
  605. package/dist/internal/field-text.d.ts +10 -0
  606. package/dist/internal/field-text.d.ts.map +1 -0
  607. package/dist/internal/field-text.js +37 -0
  608. package/dist/internal/field-text.js.map +1 -0
  609. package/dist/internal/gateway/commands.d.ts +92 -0
  610. package/dist/internal/gateway/commands.d.ts.map +1 -0
  611. package/dist/internal/gateway/commands.js +223 -0
  612. package/dist/internal/gateway/commands.js.map +1 -0
  613. package/dist/internal/gateway/dispatch-table.d.ts +42 -0
  614. package/dist/internal/gateway/dispatch-table.d.ts.map +1 -0
  615. package/dist/internal/gateway/dispatch-table.js +288 -0
  616. package/dist/internal/gateway/dispatch-table.js.map +1 -0
  617. package/dist/internal/gateway/event-dispatches.d.ts +97 -0
  618. package/dist/internal/gateway/event-dispatches.d.ts.map +1 -0
  619. package/dist/internal/gateway/event-dispatches.js +172 -0
  620. package/dist/internal/gateway/event-dispatches.js.map +1 -0
  621. package/dist/internal/gateway/frames.d.ts +45 -0
  622. package/dist/internal/gateway/frames.d.ts.map +1 -0
  623. package/dist/internal/gateway/frames.js +121 -0
  624. package/dist/internal/gateway/frames.js.map +1 -0
  625. package/dist/internal/gateway/options.d.ts +24 -0
  626. package/dist/internal/gateway/options.d.ts.map +1 -0
  627. package/dist/internal/gateway/options.js +103 -0
  628. package/dist/internal/gateway/options.js.map +1 -0
  629. package/dist/internal/gateway/session.d.ts +104 -0
  630. package/dist/internal/gateway/session.d.ts.map +1 -0
  631. package/dist/internal/gateway/session.js +420 -0
  632. package/dist/internal/gateway/session.js.map +1 -0
  633. package/dist/internal/gateway-requests.d.ts +10 -0
  634. package/dist/internal/gateway-requests.d.ts.map +1 -0
  635. package/dist/internal/gateway-requests.js +26 -0
  636. package/dist/internal/gateway-requests.js.map +1 -0
  637. package/dist/internal/gateway.d.ts +19 -0
  638. package/dist/internal/gateway.d.ts.map +1 -0
  639. package/dist/internal/gateway.js +11 -0
  640. package/dist/internal/gateway.js.map +1 -0
  641. package/dist/internal/guild-cache.d.ts +69 -0
  642. package/dist/internal/guild-cache.d.ts.map +1 -0
  643. package/dist/internal/guild-cache.js +402 -0
  644. package/dist/internal/guild-cache.js.map +1 -0
  645. package/dist/internal/guild-discovery.d.ts +15 -0
  646. package/dist/internal/guild-discovery.d.ts.map +1 -0
  647. package/dist/internal/guild-discovery.js +258 -0
  648. package/dist/internal/guild-discovery.js.map +1 -0
  649. package/dist/internal/guild-lifecycle.d.ts +18 -0
  650. package/dist/internal/guild-lifecycle.d.ts.map +1 -0
  651. package/dist/internal/guild-lifecycle.js +119 -0
  652. package/dist/internal/guild-lifecycle.js.map +1 -0
  653. package/dist/internal/guild-settings.d.ts +11 -0
  654. package/dist/internal/guild-settings.d.ts.map +1 -0
  655. package/dist/internal/guild-settings.js +150 -0
  656. package/dist/internal/guild-settings.js.map +1 -0
  657. package/dist/internal/guilds.d.ts +94 -0
  658. package/dist/internal/guilds.d.ts.map +1 -0
  659. package/dist/internal/guilds.js +785 -0
  660. package/dist/internal/guilds.js.map +1 -0
  661. package/dist/internal/init-command.d.ts +54 -0
  662. package/dist/internal/init-command.d.ts.map +1 -0
  663. package/dist/internal/init-command.js +248 -0
  664. package/dist/internal/init-command.js.map +1 -0
  665. package/dist/internal/instance.d.ts +69 -0
  666. package/dist/internal/instance.d.ts.map +1 -0
  667. package/dist/internal/instance.js +455 -0
  668. package/dist/internal/instance.js.map +1 -0
  669. package/dist/internal/invalid-callback-return.d.ts +3 -0
  670. package/dist/internal/invalid-callback-return.d.ts.map +1 -0
  671. package/dist/internal/invalid-callback-return.js +26 -0
  672. package/dist/internal/invalid-callback-return.js.map +1 -0
  673. package/dist/internal/invites.d.ts +19 -0
  674. package/dist/internal/invites.d.ts.map +1 -0
  675. package/dist/internal/invites.js +182 -0
  676. package/dist/internal/invites.js.map +1 -0
  677. package/dist/internal/logging.d.ts +129 -0
  678. package/dist/internal/logging.d.ts.map +1 -0
  679. package/dist/internal/logging.js +868 -0
  680. package/dist/internal/logging.js.map +1 -0
  681. package/dist/internal/logical-scheduler.d.ts +27 -0
  682. package/dist/internal/logical-scheduler.d.ts.map +1 -0
  683. package/dist/internal/logical-scheduler.js +102 -0
  684. package/dist/internal/logical-scheduler.js.map +1 -0
  685. package/dist/internal/masking.d.ts +13 -0
  686. package/dist/internal/masking.d.ts.map +1 -0
  687. package/dist/internal/masking.js +235 -0
  688. package/dist/internal/masking.js.map +1 -0
  689. package/dist/internal/member-chunks.d.ts +96 -0
  690. package/dist/internal/member-chunks.d.ts.map +1 -0
  691. package/dist/internal/member-chunks.js +557 -0
  692. package/dist/internal/member-chunks.js.map +1 -0
  693. package/dist/internal/member-search-workflow.d.ts +19 -0
  694. package/dist/internal/member-search-workflow.d.ts.map +1 -0
  695. package/dist/internal/member-search-workflow.js +143 -0
  696. package/dist/internal/member-search-workflow.js.map +1 -0
  697. package/dist/internal/member-search.d.ts +20 -0
  698. package/dist/internal/member-search.d.ts.map +1 -0
  699. package/dist/internal/member-search.js +201 -0
  700. package/dist/internal/member-search.js.map +1 -0
  701. package/dist/internal/message-cleanup.d.ts +9 -0
  702. package/dist/internal/message-cleanup.d.ts.map +1 -0
  703. package/dist/internal/message-cleanup.js +368 -0
  704. package/dist/internal/message-cleanup.js.map +1 -0
  705. package/dist/internal/message-fields.d.ts +9 -0
  706. package/dist/internal/message-fields.d.ts.map +1 -0
  707. package/dist/internal/message-fields.js +55 -0
  708. package/dist/internal/message-fields.js.map +1 -0
  709. package/dist/internal/message-search-workflow.d.ts +14 -0
  710. package/dist/internal/message-search-workflow.d.ts.map +1 -0
  711. package/dist/internal/message-search-workflow.js +101 -0
  712. package/dist/internal/message-search-workflow.js.map +1 -0
  713. package/dist/internal/message-search.d.ts +19 -0
  714. package/dist/internal/message-search.d.ts.map +1 -0
  715. package/dist/internal/message-search.js +317 -0
  716. package/dist/internal/message-search.js.map +1 -0
  717. package/dist/internal/message.d.ts +34 -0
  718. package/dist/internal/message.d.ts.map +1 -0
  719. package/dist/internal/message.js +723 -0
  720. package/dist/internal/message.js.map +1 -0
  721. package/dist/internal/metrics.d.ts +16 -0
  722. package/dist/internal/metrics.d.ts.map +1 -0
  723. package/dist/internal/metrics.js +49 -0
  724. package/dist/internal/metrics.js.map +1 -0
  725. package/dist/internal/moderation.d.ts +20 -0
  726. package/dist/internal/moderation.d.ts.map +1 -0
  727. package/dist/internal/moderation.js +219 -0
  728. package/dist/internal/moderation.js.map +1 -0
  729. package/dist/internal/multipart.d.ts +10 -0
  730. package/dist/internal/multipart.d.ts.map +1 -0
  731. package/dist/internal/multipart.js +156 -0
  732. package/dist/internal/multipart.js.map +1 -0
  733. package/dist/internal/node-version.d.ts +10 -0
  734. package/dist/internal/node-version.d.ts.map +1 -0
  735. package/dist/internal/node-version.js +21 -0
  736. package/dist/internal/node-version.js.map +1 -0
  737. package/dist/internal/oauth.d.ts +29 -0
  738. package/dist/internal/oauth.d.ts.map +1 -0
  739. package/dist/internal/oauth.js +721 -0
  740. package/dist/internal/oauth.js.map +1 -0
  741. package/dist/internal/observer.d.ts +21 -0
  742. package/dist/internal/observer.d.ts.map +1 -0
  743. package/dist/internal/observer.js +48 -0
  744. package/dist/internal/observer.js.map +1 -0
  745. package/dist/internal/operation-signal.d.ts +9 -0
  746. package/dist/internal/operation-signal.d.ts.map +1 -0
  747. package/dist/internal/operation-signal.js +19 -0
  748. package/dist/internal/operation-signal.js.map +1 -0
  749. package/dist/internal/pagination.d.ts +67 -0
  750. package/dist/internal/pagination.d.ts.map +1 -0
  751. package/dist/internal/pagination.js +306 -0
  752. package/dist/internal/pagination.js.map +1 -0
  753. package/dist/internal/permission-requirements.d.ts +34 -0
  754. package/dist/internal/permission-requirements.d.ts.map +1 -0
  755. package/dist/internal/permission-requirements.js +204 -0
  756. package/dist/internal/permission-requirements.js.map +1 -0
  757. package/dist/internal/permissions.d.ts +28 -0
  758. package/dist/internal/permissions.d.ts.map +1 -0
  759. package/dist/internal/permissions.js +314 -0
  760. package/dist/internal/permissions.js.map +1 -0
  761. package/dist/internal/pins.d.ts +24 -0
  762. package/dist/internal/pins.d.ts.map +1 -0
  763. package/dist/internal/pins.js +83 -0
  764. package/dist/internal/pins.js.map +1 -0
  765. package/dist/internal/presence.d.ts +101 -0
  766. package/dist/internal/presence.d.ts.map +1 -0
  767. package/dist/internal/presence.js +581 -0
  768. package/dist/internal/presence.js.map +1 -0
  769. package/dist/internal/protocol/gateway.d.ts +116 -0
  770. package/dist/internal/protocol/gateway.d.ts.map +1 -0
  771. package/dist/internal/protocol/gateway.js +258 -0
  772. package/dist/internal/protocol/gateway.js.map +1 -0
  773. package/dist/internal/rate-limit-templates.d.ts +2 -0
  774. package/dist/internal/rate-limit-templates.d.ts.map +1 -0
  775. package/dist/internal/rate-limit-templates.js +132 -0
  776. package/dist/internal/rate-limit-templates.js.map +1 -0
  777. package/dist/internal/rate-limits.d.ts +32 -0
  778. package/dist/internal/rate-limits.d.ts.map +1 -0
  779. package/dist/internal/rate-limits.js +306 -0
  780. package/dist/internal/rate-limits.js.map +1 -0
  781. package/dist/internal/reaction-collector.d.ts +39 -0
  782. package/dist/internal/reaction-collector.d.ts.map +1 -0
  783. package/dist/internal/reaction-collector.js +441 -0
  784. package/dist/internal/reaction-collector.js.map +1 -0
  785. package/dist/internal/reaction-pages.d.ts +18 -0
  786. package/dist/internal/reaction-pages.d.ts.map +1 -0
  787. package/dist/internal/reaction-pages.js +213 -0
  788. package/dist/internal/reaction-pages.js.map +1 -0
  789. package/dist/internal/reactions.d.ts +30 -0
  790. package/dist/internal/reactions.d.ts.map +1 -0
  791. package/dist/internal/reactions.js +160 -0
  792. package/dist/internal/reactions.js.map +1 -0
  793. package/dist/internal/rejection-scope.d.ts +25 -0
  794. package/dist/internal/rejection-scope.d.ts.map +1 -0
  795. package/dist/internal/rejection-scope.js +103 -0
  796. package/dist/internal/rejection-scope.js.map +1 -0
  797. package/dist/internal/response-json.d.ts +12 -0
  798. package/dist/internal/response-json.d.ts.map +1 -0
  799. package/dist/internal/response-json.js +74 -0
  800. package/dist/internal/response-json.js.map +1 -0
  801. package/dist/internal/rest/admission.d.ts +77 -0
  802. package/dist/internal/rest/admission.d.ts.map +1 -0
  803. package/dist/internal/rest/admission.js +178 -0
  804. package/dist/internal/rest/admission.js.map +1 -0
  805. package/dist/internal/rest/attempt.d.ts +124 -0
  806. package/dist/internal/rest/attempt.d.ts.map +1 -0
  807. package/dist/internal/rest/attempt.js +410 -0
  808. package/dist/internal/rest/attempt.js.map +1 -0
  809. package/dist/internal/rest/classify.d.ts +93 -0
  810. package/dist/internal/rest/classify.d.ts.map +1 -0
  811. package/dist/internal/rest/classify.js +304 -0
  812. package/dist/internal/rest/classify.js.map +1 -0
  813. package/dist/internal/rest/download.d.ts +66 -0
  814. package/dist/internal/rest/download.d.ts.map +1 -0
  815. package/dist/internal/rest/download.js +552 -0
  816. package/dist/internal/rest/download.js.map +1 -0
  817. package/dist/internal/rest/options.d.ts +42 -0
  818. package/dist/internal/rest/options.d.ts.map +1 -0
  819. package/dist/internal/rest/options.js +99 -0
  820. package/dist/internal/rest/options.js.map +1 -0
  821. package/dist/internal/rest/owner.d.ts +154 -0
  822. package/dist/internal/rest/owner.d.ts.map +1 -0
  823. package/dist/internal/rest/owner.js +1292 -0
  824. package/dist/internal/rest/owner.js.map +1 -0
  825. package/dist/internal/rest/request.d.ts +31 -0
  826. package/dist/internal/rest/request.d.ts.map +1 -0
  827. package/dist/internal/rest/request.js +227 -0
  828. package/dist/internal/rest/request.js.map +1 -0
  829. package/dist/internal/rest.d.ts +10 -0
  830. package/dist/internal/rest.d.ts.map +1 -0
  831. package/dist/internal/rest.js +9 -0
  832. package/dist/internal/rest.js.map +1 -0
  833. package/dist/internal/retention-age.d.ts +11 -0
  834. package/dist/internal/retention-age.d.ts.map +1 -0
  835. package/dist/internal/retention-age.js +29 -0
  836. package/dist/internal/retention-age.js.map +1 -0
  837. package/dist/internal/role-hierarchy-workflow.d.ts +15 -0
  838. package/dist/internal/role-hierarchy-workflow.d.ts.map +1 -0
  839. package/dist/internal/role-hierarchy-workflow.js +122 -0
  840. package/dist/internal/role-hierarchy-workflow.js.map +1 -0
  841. package/dist/internal/role-hierarchy.d.ts +11 -0
  842. package/dist/internal/role-hierarchy.d.ts.map +1 -0
  843. package/dist/internal/role-hierarchy.js +87 -0
  844. package/dist/internal/role-hierarchy.js.map +1 -0
  845. package/dist/internal/scheduled-tasks.d.ts +46 -0
  846. package/dist/internal/scheduled-tasks.d.ts.map +1 -0
  847. package/dist/internal/scheduled-tasks.js +190 -0
  848. package/dist/internal/scheduled-tasks.js.map +1 -0
  849. package/dist/internal/sharding.d.ts +62 -0
  850. package/dist/internal/sharding.d.ts.map +1 -0
  851. package/dist/internal/sharding.js +205 -0
  852. package/dist/internal/sharding.js.map +1 -0
  853. package/dist/internal/starter-project.d.ts +27 -0
  854. package/dist/internal/starter-project.d.ts.map +1 -0
  855. package/dist/internal/starter-project.js +224 -0
  856. package/dist/internal/starter-project.js.map +1 -0
  857. package/dist/internal/suggest.d.ts +12 -0
  858. package/dist/internal/suggest.d.ts.map +1 -0
  859. package/dist/internal/suggest.js +51 -0
  860. package/dist/internal/suggest.js.map +1 -0
  861. package/dist/internal/supervisor.d.ts +95 -0
  862. package/dist/internal/supervisor.d.ts.map +1 -0
  863. package/dist/internal/supervisor.js +1829 -0
  864. package/dist/internal/supervisor.js.map +1 -0
  865. package/dist/internal/testing/discovery.d.ts +24 -0
  866. package/dist/internal/testing/discovery.d.ts.map +1 -0
  867. package/dist/internal/testing/discovery.js +22 -0
  868. package/dist/internal/testing/discovery.js.map +1 -0
  869. package/dist/internal/testing/errors.d.ts +43 -0
  870. package/dist/internal/testing/errors.d.ts.map +1 -0
  871. package/dist/internal/testing/errors.js +63 -0
  872. package/dist/internal/testing/errors.js.map +1 -0
  873. package/dist/internal/testing/fixtures.d.ts +477 -0
  874. package/dist/internal/testing/fixtures.d.ts.map +1 -0
  875. package/dist/internal/testing/fixtures.js +233 -0
  876. package/dist/internal/testing/fixtures.js.map +1 -0
  877. package/dist/internal/testing/gateway.d.ts +51 -0
  878. package/dist/internal/testing/gateway.d.ts.map +1 -0
  879. package/dist/internal/testing/gateway.js +265 -0
  880. package/dist/internal/testing/gateway.js.map +1 -0
  881. package/dist/internal/testing/harness.d.ts +60 -0
  882. package/dist/internal/testing/harness.d.ts.map +1 -0
  883. package/dist/internal/testing/harness.js +280 -0
  884. package/dist/internal/testing/harness.js.map +1 -0
  885. package/dist/internal/testing/http.d.ts +31 -0
  886. package/dist/internal/testing/http.d.ts.map +1 -0
  887. package/dist/internal/testing/http.js +347 -0
  888. package/dist/internal/testing/http.js.map +1 -0
  889. package/dist/internal/testing/types.d.ts +222 -0
  890. package/dist/internal/testing/types.d.ts.map +1 -0
  891. package/dist/internal/testing/types.js +2 -0
  892. package/dist/internal/testing/types.js.map +1 -0
  893. package/dist/internal/testing/wait.d.ts +16 -0
  894. package/dist/internal/testing/wait.d.ts.map +1 -0
  895. package/dist/internal/testing/wait.js +55 -0
  896. package/dist/internal/testing/wait.js.map +1 -0
  897. package/dist/internal/thread-events.d.ts +40 -0
  898. package/dist/internal/thread-events.d.ts.map +1 -0
  899. package/dist/internal/thread-events.js +121 -0
  900. package/dist/internal/thread-events.js.map +1 -0
  901. package/dist/internal/threads.d.ts +47 -0
  902. package/dist/internal/threads.d.ts.map +1 -0
  903. package/dist/internal/threads.js +587 -0
  904. package/dist/internal/threads.js.map +1 -0
  905. package/dist/internal/transfer-source.d.ts +29 -0
  906. package/dist/internal/transfer-source.d.ts.map +1 -0
  907. package/dist/internal/transfer-source.js +347 -0
  908. package/dist/internal/transfer-source.js.map +1 -0
  909. package/dist/internal/transport/http.d.ts +12 -0
  910. package/dist/internal/transport/http.d.ts.map +1 -0
  911. package/dist/internal/transport/http.js +44 -0
  912. package/dist/internal/transport/http.js.map +1 -0
  913. package/dist/internal/transport/index.d.ts +21 -0
  914. package/dist/internal/transport/index.d.ts.map +1 -0
  915. package/dist/internal/transport/index.js +15 -0
  916. package/dist/internal/transport/index.js.map +1 -0
  917. package/dist/internal/transport/socket.d.ts +51 -0
  918. package/dist/internal/transport/socket.d.ts.map +1 -0
  919. package/dist/internal/transport/socket.js +27 -0
  920. package/dist/internal/transport/socket.js.map +1 -0
  921. package/dist/internal/transport/user-agent.d.ts +7 -0
  922. package/dist/internal/transport/user-agent.d.ts.map +1 -0
  923. package/dist/internal/transport/user-agent.js +42 -0
  924. package/dist/internal/transport/user-agent.js.map +1 -0
  925. package/dist/internal/uploads.d.ts +23 -0
  926. package/dist/internal/uploads.d.ts.map +1 -0
  927. package/dist/internal/uploads.js +89 -0
  928. package/dist/internal/uploads.js.map +1 -0
  929. package/dist/internal/user-cache.d.ts +50 -0
  930. package/dist/internal/user-cache.d.ts.map +1 -0
  931. package/dist/internal/user-cache.js +273 -0
  932. package/dist/internal/user-cache.js.map +1 -0
  933. package/dist/internal/users.d.ts +41 -0
  934. package/dist/internal/users.d.ts.map +1 -0
  935. package/dist/internal/users.js +333 -0
  936. package/dist/internal/users.js.map +1 -0
  937. package/dist/internal/vanity-url.d.ts +11 -0
  938. package/dist/internal/vanity-url.d.ts.map +1 -0
  939. package/dist/internal/vanity-url.js +58 -0
  940. package/dist/internal/vanity-url.js.map +1 -0
  941. package/dist/internal/webhooks.d.ts +58 -0
  942. package/dist/internal/webhooks.d.ts.map +1 -0
  943. package/dist/internal/webhooks.js +490 -0
  944. package/dist/internal/webhooks.js.map +1 -0
  945. package/dist/invites.d.ts +86 -0
  946. package/dist/invites.d.ts.map +1 -0
  947. package/dist/invites.js +2 -0
  948. package/dist/invites.js.map +1 -0
  949. package/dist/logging.d.ts +228 -0
  950. package/dist/logging.d.ts.map +1 -0
  951. package/dist/logging.js +2 -0
  952. package/dist/logging.js.map +1 -0
  953. package/dist/member-chunks.d.ts +145 -0
  954. package/dist/member-chunks.d.ts.map +1 -0
  955. package/dist/member-chunks.js +68 -0
  956. package/dist/member-chunks.js.map +1 -0
  957. package/dist/member-search.d.ts +140 -0
  958. package/dist/member-search.d.ts.map +1 -0
  959. package/dist/member-search.js +14 -0
  960. package/dist/member-search.js.map +1 -0
  961. package/dist/message-cleanup.d.ts +227 -0
  962. package/dist/message-cleanup.d.ts.map +1 -0
  963. package/dist/message-cleanup.js +101 -0
  964. package/dist/message-cleanup.js.map +1 -0
  965. package/dist/message-errors.d.ts +172 -0
  966. package/dist/message-errors.d.ts.map +1 -0
  967. package/dist/message-errors.js +173 -0
  968. package/dist/message-errors.js.map +1 -0
  969. package/dist/message-search.d.ts +201 -0
  970. package/dist/message-search.d.ts.map +1 -0
  971. package/dist/message-search.js +2 -0
  972. package/dist/message-search.js.map +1 -0
  973. package/dist/messages.d.ts +694 -0
  974. package/dist/messages.d.ts.map +1 -0
  975. package/dist/messages.js +37 -0
  976. package/dist/messages.js.map +1 -0
  977. package/dist/native-commands.d.ts +451 -0
  978. package/dist/native-commands.d.ts.map +1 -0
  979. package/dist/native-commands.js +432 -0
  980. package/dist/native-commands.js.map +1 -0
  981. package/dist/native-supervisor.d.ts +125 -0
  982. package/dist/native-supervisor.d.ts.map +1 -0
  983. package/dist/native-supervisor.js +126 -0
  984. package/dist/native-supervisor.js.map +1 -0
  985. package/dist/oauth.d.ts +298 -0
  986. package/dist/oauth.d.ts.map +1 -0
  987. package/dist/oauth.js +128 -0
  988. package/dist/oauth.js.map +1 -0
  989. package/dist/observer.d.ts +111 -0
  990. package/dist/observer.d.ts.map +1 -0
  991. package/dist/observer.js +2 -0
  992. package/dist/observer.js.map +1 -0
  993. package/dist/pagination.d.ts +117 -0
  994. package/dist/pagination.d.ts.map +1 -0
  995. package/dist/pagination.js +61 -0
  996. package/dist/pagination.js.map +1 -0
  997. package/dist/permissions.d.ts +73 -0
  998. package/dist/permissions.d.ts.map +1 -0
  999. package/dist/permissions.js +2 -0
  1000. package/dist/permissions.js.map +1 -0
  1001. package/dist/pins.d.ts +62 -0
  1002. package/dist/pins.d.ts.map +1 -0
  1003. package/dist/pins.js +2 -0
  1004. package/dist/pins.js.map +1 -0
  1005. package/dist/presence.d.ts +84 -0
  1006. package/dist/presence.d.ts.map +1 -0
  1007. package/dist/presence.js +46 -0
  1008. package/dist/presence.js.map +1 -0
  1009. package/dist/reaction-pages.d.ts +99 -0
  1010. package/dist/reaction-pages.d.ts.map +1 -0
  1011. package/dist/reaction-pages.js +2 -0
  1012. package/dist/reaction-pages.js.map +1 -0
  1013. package/dist/reactions.d.ts +118 -0
  1014. package/dist/reactions.d.ts.map +1 -0
  1015. package/dist/reactions.js +2 -0
  1016. package/dist/reactions.js.map +1 -0
  1017. package/dist/rest.d.ts +260 -0
  1018. package/dist/rest.d.ts.map +1 -0
  1019. package/dist/rest.js +46 -0
  1020. package/dist/rest.js.map +1 -0
  1021. package/dist/role-hierarchy.d.ts +81 -0
  1022. package/dist/role-hierarchy.d.ts.map +1 -0
  1023. package/dist/role-hierarchy.js +53 -0
  1024. package/dist/role-hierarchy.js.map +1 -0
  1025. package/dist/sharding.d.ts +219 -0
  1026. package/dist/sharding.d.ts.map +1 -0
  1027. package/dist/sharding.js +86 -0
  1028. package/dist/sharding.js.map +1 -0
  1029. package/dist/supervisor.d.ts +392 -0
  1030. package/dist/supervisor.d.ts.map +1 -0
  1031. package/dist/supervisor.js +101 -0
  1032. package/dist/supervisor.js.map +1 -0
  1033. package/dist/testing.d.ts +258 -0
  1034. package/dist/testing.d.ts.map +1 -0
  1035. package/dist/testing.js +202 -0
  1036. package/dist/testing.js.map +1 -0
  1037. package/dist/text.d.ts +38 -0
  1038. package/dist/text.d.ts.map +1 -0
  1039. package/dist/text.js +46 -0
  1040. package/dist/text.js.map +1 -0
  1041. package/dist/threads.d.ts +258 -0
  1042. package/dist/threads.d.ts.map +1 -0
  1043. package/dist/threads.js +2 -0
  1044. package/dist/threads.js.map +1 -0
  1045. package/dist/users.d.ts +204 -0
  1046. package/dist/users.d.ts.map +1 -0
  1047. package/dist/users.js +44 -0
  1048. package/dist/users.js.map +1 -0
  1049. package/dist/webhooks.d.ts +423 -0
  1050. package/dist/webhooks.d.ts.map +1 -0
  1051. package/dist/webhooks.js +68 -0
  1052. package/dist/webhooks.js.map +1 -0
  1053. package/esm-only.cjs +3 -0
  1054. package/examples/starter/bot-effect.ts +17 -0
  1055. package/examples/starter/bot.js +13 -0
  1056. package/examples/starter/bot.ts +13 -0
  1057. package/package.json +82 -0
  1058. package/src/api/default/application.ts +40 -0
  1059. package/src/api/default/attachments.ts +106 -0
  1060. package/src/api/default/audit-logs.ts +58 -0
  1061. package/src/api/default/bot.ts +586 -0
  1062. package/src/api/default/cache.ts +106 -0
  1063. package/src/api/default/channels.ts +317 -0
  1064. package/src/api/default/client.ts +829 -0
  1065. package/src/api/default/collectors.ts +81 -0
  1066. package/src/api/default/commands.ts +92 -0
  1067. package/src/api/default/direct-messages.ts +143 -0
  1068. package/src/api/default/discovery.ts +103 -0
  1069. package/src/api/default/emojis.ts +125 -0
  1070. package/src/api/default/events.ts +144 -0
  1071. package/src/api/default/gateway.ts +67 -0
  1072. package/src/api/default/guards.ts +173 -0
  1073. package/src/api/default/guilds.ts +271 -0
  1074. package/src/api/default/helpers.ts +97 -0
  1075. package/src/api/default/instance.ts +49 -0
  1076. package/src/api/default/invites.ts +73 -0
  1077. package/src/api/default/logging.ts +37 -0
  1078. package/src/api/default/members.ts +550 -0
  1079. package/src/api/default/messages.ts +1053 -0
  1080. package/src/api/default/oauth.ts +293 -0
  1081. package/src/api/default/permissions.ts +47 -0
  1082. package/src/api/default/presence.ts +88 -0
  1083. package/src/api/default/rest.ts +30 -0
  1084. package/src/api/default/results.ts +44 -0
  1085. package/src/api/default/roles.ts +154 -0
  1086. package/src/api/default/stickers.ts +129 -0
  1087. package/src/api/default/supervisor.ts +53 -0
  1088. package/src/api/default/threads.ts +233 -0
  1089. package/src/api/default/users.ts +82 -0
  1090. package/src/api/default/webhook-client.ts +266 -0
  1091. package/src/api/default/webhooks.ts +89 -0
  1092. package/src/api/effect/application.ts +29 -0
  1093. package/src/api/effect/attachments.ts +100 -0
  1094. package/src/api/effect/audit-logs.ts +50 -0
  1095. package/src/api/effect/bot.ts +546 -0
  1096. package/src/api/effect/cache.ts +110 -0
  1097. package/src/api/effect/channels.ts +293 -0
  1098. package/src/api/effect/client.ts +792 -0
  1099. package/src/api/effect/collectors.ts +103 -0
  1100. package/src/api/effect/commands.ts +87 -0
  1101. package/src/api/effect/direct-messages.ts +119 -0
  1102. package/src/api/effect/discovery.ts +87 -0
  1103. package/src/api/effect/emojis.ts +108 -0
  1104. package/src/api/effect/events.ts +92 -0
  1105. package/src/api/effect/failures.ts +14 -0
  1106. package/src/api/effect/gateway.ts +63 -0
  1107. package/src/api/effect/guards.ts +194 -0
  1108. package/src/api/effect/guilds.ts +247 -0
  1109. package/src/api/effect/helpers.ts +359 -0
  1110. package/src/api/effect/hierarchy.ts +26 -0
  1111. package/src/api/effect/instance.ts +50 -0
  1112. package/src/api/effect/invites.ts +59 -0
  1113. package/src/api/effect/logging.ts +37 -0
  1114. package/src/api/effect/members.ts +521 -0
  1115. package/src/api/effect/messages.ts +1003 -0
  1116. package/src/api/effect/oauth.ts +208 -0
  1117. package/src/api/effect/permissions.ts +44 -0
  1118. package/src/api/effect/presence.ts +83 -0
  1119. package/src/api/effect/rest.ts +27 -0
  1120. package/src/api/effect/roles.ts +136 -0
  1121. package/src/api/effect/service.ts +104 -0
  1122. package/src/api/effect/stickers.ts +112 -0
  1123. package/src/api/effect/supervisor.ts +58 -0
  1124. package/src/api/effect/threads.ts +221 -0
  1125. package/src/api/effect/users.ts +66 -0
  1126. package/src/api/effect/webhook-client.ts +206 -0
  1127. package/src/api/effect/webhooks.ts +75 -0
  1128. package/src/api-errors.ts +985 -0
  1129. package/src/application.ts +103 -0
  1130. package/src/assets.ts +731 -0
  1131. package/src/attachments.ts +469 -0
  1132. package/src/audit-logs.ts +355 -0
  1133. package/src/bot-runner.ts +91 -0
  1134. package/src/builders.ts +390 -0
  1135. package/src/cache.ts +190 -0
  1136. package/src/channels.ts +1051 -0
  1137. package/src/cli.ts +60 -0
  1138. package/src/client.ts +663 -0
  1139. package/src/collectors.ts +248 -0
  1140. package/src/colors.ts +91 -0
  1141. package/src/command-arguments.ts +432 -0
  1142. package/src/command-help.ts +55 -0
  1143. package/src/commands.ts +403 -0
  1144. package/src/counts.ts +160 -0
  1145. package/src/default-commands.ts +1147 -0
  1146. package/src/default-supervisor.ts +484 -0
  1147. package/src/discovery.ts +241 -0
  1148. package/src/effect-testing.ts +603 -0
  1149. package/src/effect.ts +751 -0
  1150. package/src/embeds.ts +253 -0
  1151. package/src/error-tools.ts +191 -0
  1152. package/src/errors.ts +849 -0
  1153. package/src/events.ts +830 -0
  1154. package/src/expressions.ts +198 -0
  1155. package/src/failures.ts +55 -0
  1156. package/src/gateway.ts +86 -0
  1157. package/src/guilds.ts +1108 -0
  1158. package/src/helpers.ts +836 -0
  1159. package/src/index.ts +796 -0
  1160. package/src/input-validation.ts +94 -0
  1161. package/src/instance.ts +111 -0
  1162. package/src/internal/agents-section.ts +114 -0
  1163. package/src/internal/application.ts +51 -0
  1164. package/src/internal/attachment-refresh.ts +57 -0
  1165. package/src/internal/attachments.ts +313 -0
  1166. package/src/internal/audit-logs.ts +336 -0
  1167. package/src/internal/audit.ts +33 -0
  1168. package/src/internal/binding/default-adapters.ts +482 -0
  1169. package/src/internal/binding/default.ts +155 -0
  1170. package/src/internal/binding/execute.ts +221 -0
  1171. package/src/internal/binding/native-adapters.ts +199 -0
  1172. package/src/internal/binding/native.ts +72 -0
  1173. package/src/internal/binding/operations.ts +1171 -0
  1174. package/src/internal/bot-runner.ts +480 -0
  1175. package/src/internal/cache-changes.ts +363 -0
  1176. package/src/internal/cache.ts +323 -0
  1177. package/src/internal/calls.ts +119 -0
  1178. package/src/internal/channel-cache.ts +435 -0
  1179. package/src/internal/channel-decode.ts +399 -0
  1180. package/src/internal/channels.ts +874 -0
  1181. package/src/internal/client/backoff.ts +69 -0
  1182. package/src/internal/client/configuration-fields.ts +18 -0
  1183. package/src/internal/client/drain.ts +150 -0
  1184. package/src/internal/client/intake.ts +228 -0
  1185. package/src/internal/client/lifetime.ts +165 -0
  1186. package/src/internal/client/shard-loop.ts +586 -0
  1187. package/src/internal/client-registry.ts +35 -0
  1188. package/src/internal/client.ts +2448 -0
  1189. package/src/internal/clock.ts +11 -0
  1190. package/src/internal/code-catalogue.ts +739 -0
  1191. package/src/internal/collector.ts +452 -0
  1192. package/src/internal/command-arguments.ts +585 -0
  1193. package/src/internal/command-guards.ts +96 -0
  1194. package/src/internal/command-help.ts +156 -0
  1195. package/src/internal/commands.ts +1319 -0
  1196. package/src/internal/configuration.ts +529 -0
  1197. package/src/internal/counts.ts +471 -0
  1198. package/src/internal/decode/primitives.ts +67 -0
  1199. package/src/internal/decode/timestamp.ts +29 -0
  1200. package/src/internal/decode/trace.ts +65 -0
  1201. package/src/internal/defects.ts +115 -0
  1202. package/src/internal/effect-failures.ts +65 -0
  1203. package/src/internal/embeds.ts +355 -0
  1204. package/src/internal/events.ts +1345 -0
  1205. package/src/internal/expiry-queue.ts +148 -0
  1206. package/src/internal/expressions.ts +415 -0
  1207. package/src/internal/failures.ts +492 -0
  1208. package/src/internal/field-text.ts +40 -0
  1209. package/src/internal/gateway/commands.ts +328 -0
  1210. package/src/internal/gateway/dispatch-table.ts +383 -0
  1211. package/src/internal/gateway/event-dispatches.ts +201 -0
  1212. package/src/internal/gateway/frames.ts +176 -0
  1213. package/src/internal/gateway/options.ts +144 -0
  1214. package/src/internal/gateway/session.ts +625 -0
  1215. package/src/internal/gateway-requests.ts +26 -0
  1216. package/src/internal/gateway.ts +22 -0
  1217. package/src/internal/guild-cache.ts +424 -0
  1218. package/src/internal/guild-discovery.ts +332 -0
  1219. package/src/internal/guild-lifecycle.ts +128 -0
  1220. package/src/internal/guild-settings.ts +209 -0
  1221. package/src/internal/guilds.ts +949 -0
  1222. package/src/internal/init-command.ts +305 -0
  1223. package/src/internal/instance.ts +645 -0
  1224. package/src/internal/invalid-callback-return.ts +28 -0
  1225. package/src/internal/invites.ts +234 -0
  1226. package/src/internal/logging.ts +1007 -0
  1227. package/src/internal/logical-scheduler.ts +139 -0
  1228. package/src/internal/masking.ts +224 -0
  1229. package/src/internal/member-chunks.ts +649 -0
  1230. package/src/internal/member-search-workflow.ts +237 -0
  1231. package/src/internal/member-search.ts +272 -0
  1232. package/src/internal/message-cleanup.ts +515 -0
  1233. package/src/internal/message-fields.ts +71 -0
  1234. package/src/internal/message-search-workflow.ts +166 -0
  1235. package/src/internal/message-search.ts +476 -0
  1236. package/src/internal/message.ts +879 -0
  1237. package/src/internal/metrics.ts +55 -0
  1238. package/src/internal/moderation.ts +288 -0
  1239. package/src/internal/multipart.ts +171 -0
  1240. package/src/internal/node-version.ts +22 -0
  1241. package/src/internal/oauth.ts +1146 -0
  1242. package/src/internal/observer.ts +62 -0
  1243. package/src/internal/operation-signal.ts +26 -0
  1244. package/src/internal/pagination.ts +494 -0
  1245. package/src/internal/permission-requirements.ts +359 -0
  1246. package/src/internal/permissions.ts +417 -0
  1247. package/src/internal/pins.ts +115 -0
  1248. package/src/internal/presence.ts +745 -0
  1249. package/src/internal/protocol/gateway.ts +299 -0
  1250. package/src/internal/rate-limit-templates.ts +138 -0
  1251. package/src/internal/rate-limits.ts +346 -0
  1252. package/src/internal/reaction-collector.ts +499 -0
  1253. package/src/internal/reaction-pages.ts +260 -0
  1254. package/src/internal/reactions.ts +174 -0
  1255. package/src/internal/rejection-scope.ts +119 -0
  1256. package/src/internal/response-json.ts +76 -0
  1257. package/src/internal/rest/admission.ts +210 -0
  1258. package/src/internal/rest/attempt.ts +617 -0
  1259. package/src/internal/rest/classify.ts +391 -0
  1260. package/src/internal/rest/download.ts +658 -0
  1261. package/src/internal/rest/options.ts +145 -0
  1262. package/src/internal/rest/owner.ts +1828 -0
  1263. package/src/internal/rest/request.ts +289 -0
  1264. package/src/internal/rest.ts +9 -0
  1265. package/src/internal/retention-age.ts +33 -0
  1266. package/src/internal/role-hierarchy-workflow.ts +150 -0
  1267. package/src/internal/role-hierarchy.ts +93 -0
  1268. package/src/internal/scheduled-tasks.ts +217 -0
  1269. package/src/internal/sharding.ts +270 -0
  1270. package/src/internal/starter-project.ts +251 -0
  1271. package/src/internal/suggest.ts +50 -0
  1272. package/src/internal/supervisor.ts +2253 -0
  1273. package/src/internal/testing/discovery.ts +23 -0
  1274. package/src/internal/testing/errors.ts +67 -0
  1275. package/src/internal/testing/fixtures.ts +714 -0
  1276. package/src/internal/testing/gateway.ts +305 -0
  1277. package/src/internal/testing/harness.ts +328 -0
  1278. package/src/internal/testing/http.ts +395 -0
  1279. package/src/internal/testing/types.ts +240 -0
  1280. package/src/internal/testing/wait.ts +63 -0
  1281. package/src/internal/thread-events.ts +128 -0
  1282. package/src/internal/threads.ts +718 -0
  1283. package/src/internal/transfer-source.ts +359 -0
  1284. package/src/internal/transport/http.ts +46 -0
  1285. package/src/internal/transport/index.ts +23 -0
  1286. package/src/internal/transport/socket.ts +71 -0
  1287. package/src/internal/transport/user-agent.ts +46 -0
  1288. package/src/internal/uploads.ts +111 -0
  1289. package/src/internal/user-cache.ts +294 -0
  1290. package/src/internal/users.ts +402 -0
  1291. package/src/internal/vanity-url.ts +80 -0
  1292. package/src/internal/webhooks.ts +690 -0
  1293. package/src/invites.ts +87 -0
  1294. package/src/logging.ts +247 -0
  1295. package/src/member-chunks.ts +195 -0
  1296. package/src/member-search.ts +152 -0
  1297. package/src/message-cleanup.ts +308 -0
  1298. package/src/message-errors.ts +245 -0
  1299. package/src/message-search.ts +213 -0
  1300. package/src/messages.ts +768 -0
  1301. package/src/native-commands.ts +1249 -0
  1302. package/src/native-supervisor.ts +345 -0
  1303. package/src/oauth.ts +413 -0
  1304. package/src/observer.ts +118 -0
  1305. package/src/pagination.ts +172 -0
  1306. package/src/permissions.ts +74 -0
  1307. package/src/pins.ts +65 -0
  1308. package/src/presence.ts +124 -0
  1309. package/src/reaction-pages.ts +106 -0
  1310. package/src/reactions.ts +126 -0
  1311. package/src/rest.ts +282 -0
  1312. package/src/role-hierarchy.ts +127 -0
  1313. package/src/sharding.ts +272 -0
  1314. package/src/supervisor.ts +460 -0
  1315. package/src/testing.ts +424 -0
  1316. package/src/text.ts +76 -0
  1317. package/src/threads.ts +274 -0
  1318. package/src/users.ts +237 -0
  1319. package/src/webhooks.ts +512 -0
@@ -0,0 +1,1004 @@
1
+ import { commandArgumentMetadata, snapshotCommandArguments, } from "#sdk/internal/command-arguments";
2
+ import { ConfigurationError } from "#sdk/errors";
3
+ import { readCaller } from "./defects.js";
4
+ import { MessageType } from "#sdk/messages";
5
+ import * as Cause from "effect/Cause";
6
+ import * as Clock from "effect/Clock";
7
+ import * as Effect from "effect/Effect";
8
+ import { nowMs } from "./clock.js";
9
+ import { editDistance, unsupportedKeyHint } from "./suggest.js";
10
+ import { identifyCommand } from "./events.js";
11
+ const commandName = /^[A-Za-z0-9][A-Za-z0-9_-]*$/;
12
+ const maxDurationMs = 2_147_483_647;
13
+ const emptyCommandMetadata = Object.freeze([]);
14
+ /** Default key limit of a memory cooldown store, including each router's own store */
15
+ const defaultCooldownEntries = 10_000;
16
+ /** How long `onReject: "reply"` stays quiet for one user and command after answering a guard denial */
17
+ const guardFeedbackWindowMs = 5_000;
18
+ /** Shared immutable command lookup state. Entry-point adapters own callback and error boundaries */
19
+ export class PrefixCommandRegistry {
20
+ #definitions;
21
+ #commands;
22
+ #groups;
23
+ #groupLookup;
24
+ #entries;
25
+ #options;
26
+ #visibleEntries;
27
+ /** The router-owned cooldown store for commands that do not supply their own, shared by every router derived from one create */
28
+ cooldowns;
29
+ /** Keys whose `onReject: "reply"` feedback was already sent, shared like the cooldown store and bounded by the same limit */
30
+ feedback;
31
+ constructor(options, adapterKeys, definitions = new Map(), commands = emptyCommandMetadata, groups = Object.freeze([]), groupLookup = new Map(), entries = commands, shared) {
32
+ // Only the reads of the caller options are marked as application input, not building the registry
33
+ this.#options = readCaller(() => copyOptions(options, adapterKeys));
34
+ this.#definitions = definitions;
35
+ this.#commands = commands;
36
+ this.#groups = groups;
37
+ this.#groupLookup = groupLookup;
38
+ this.#entries = entries;
39
+ // Read the router-level cooldown options once, after the option shape has been validated
40
+ this.cooldowns =
41
+ shared?.cooldowns ??
42
+ createMemoryCooldownStore(readCaller(() => options.cooldowns));
43
+ this.feedback = shared?.feedback ?? new ExpiringKeys(this.cooldowns.maxEntries);
44
+ }
45
+ /** The configured prefix or resolver, for the adapter that runs a resolver in its own way */
46
+ get prefix() {
47
+ return this.#options.prefix;
48
+ }
49
+ /** Whether a mention of the bot also acts as a prefix */
50
+ get mentionPrefix() {
51
+ return this.#options.mentionPrefix === true;
52
+ }
53
+ /**
54
+ * Whether the router skips a message before any prefix work: One from a bot unless `ignoreBots` is false, or one a person did not type.
55
+ * Only Default and Reply messages carry typed text. Every other type is a notice Fluxer posts itself, such as a new thread's name, so an allow-list keeps future types out too.
56
+ * Fluxer always sends a type, so a message without one, such as a hand-written test payload, counts as typed rather than being dropped silently
57
+ */
58
+ ignores(message) {
59
+ const { type } = message;
60
+ if (type !== undefined && type !== MessageType.Default && type !== MessageType.Reply)
61
+ return true;
62
+ return this.#options.ignoreBots !== false && message.author.isBot === true;
63
+ }
64
+ derive(definitions, commands, groups, groupLookup, entries) {
65
+ return new PrefixCommandRegistry(this.#options, ["prefix", "parse", "ignoreBots", "caseSensitive", "mentionPrefix"], definitions, commands, groups, groupLookup, entries, { cooldowns: this.cooldowns, feedback: this.feedback });
66
+ }
67
+ /** Immutable registration-order help metadata with no callbacks or local storage references */
68
+ get commands() {
69
+ return this.#commands;
70
+ }
71
+ get groups() {
72
+ return this.#groups;
73
+ }
74
+ get entries() {
75
+ return this.#entries;
76
+ }
77
+ /**
78
+ * Commands and groups that help and unknown-name suggestions may reveal, in registration order.
79
+ * Leaves out entries registered with `hidden: true` and every entry inside a hidden group
80
+ */
81
+ get visibleEntries() {
82
+ if (this.#visibleEntries !== undefined)
83
+ return this.#visibleEntries;
84
+ const hiddenGroups = new Set(this.#groups.filter((group) => group.hidden === true).map((group) => JSON.stringify(group.path)));
85
+ const visible = this.#entries.filter((entry) => {
86
+ if (entry.hidden === true)
87
+ return false;
88
+ const path = entry.path ?? [entry.name];
89
+ for (let depth = 1; depth < path.length; depth += 1)
90
+ if (hiddenGroups.has(JSON.stringify(path.slice(0, depth))))
91
+ return false;
92
+ return true;
93
+ });
94
+ this.#visibleEntries = visible.length === this.#entries.length ? this.#entries : Object.freeze(visible);
95
+ return this.#visibleEntries;
96
+ }
97
+ /** Retain an adapter-validated owned definition in a separate registry. Existing routers and subscriptions keep their previous definitions */
98
+ register(stored, options) {
99
+ return this.registerAtParent(stored, this.registrationParent(options));
100
+ }
101
+ /** Register an already snapshotted batch into one new registry, leaving this registry unchanged if any entry fails */
102
+ registerMany(stored, options) {
103
+ const parent = this.registrationParent(options);
104
+ let registry = this;
105
+ for (const definition of stored)
106
+ registry = registry.registerAtParent(definition, parent);
107
+ return registry;
108
+ }
109
+ registerAtParent(stored, parent) {
110
+ const keys = this.registrationKeys(stored, parent);
111
+ const definitions = new Map(this.#definitions);
112
+ for (const key of keys)
113
+ definitions.set(key, stored);
114
+ const metadata = commandMetadata(stored, parent);
115
+ return this.derive(definitions, Object.freeze([...this.#commands, metadata]), this.#groups, this.#groupLookup, Object.freeze([...this.#entries, metadata]));
116
+ }
117
+ registerGroup(value, options) {
118
+ const definition = readCaller(() => {
119
+ validateCommandShape(value, ["name", "aliases", "description", "hidden"]);
120
+ const aliases = value.aliases;
121
+ const description = value.description;
122
+ const hidden = value.hidden;
123
+ return snapshotCommandDefinition({
124
+ name: value.name,
125
+ ...(aliases === undefined ? {} : { aliases }),
126
+ ...(description === undefined ? {} : { description }),
127
+ ...(hidden === undefined ? {} : { hidden }),
128
+ });
129
+ });
130
+ const parent = this.registrationParent(options);
131
+ const keys = this.registrationKeys(definition, parent);
132
+ const metadata = Object.freeze({
133
+ ...definition,
134
+ kind: "group",
135
+ path: Object.freeze([...parent, definition.name]),
136
+ });
137
+ const lookup = new Map(this.#groupLookup);
138
+ for (const key of keys)
139
+ lookup.set(key, metadata);
140
+ return this.derive(this.#definitions, this.#commands, Object.freeze([...this.#groups, metadata]), lookup, Object.freeze([...this.#entries, metadata]));
141
+ }
142
+ /** Match a message against the prefixes the adapter resolved for it, then consume groups and parse the command */
143
+ resolve(message, prefixes) {
144
+ if (this.ignores(message))
145
+ return undefined;
146
+ const prefix = this.matchPrefix(message, prefixes);
147
+ if (prefix === undefined)
148
+ return undefined;
149
+ let source = message.content.slice(prefix.length);
150
+ let parent = Object.freeze([]);
151
+ for (;;) {
152
+ const suffix = source.trimStart();
153
+ const segment = /^(\S+)(?:\s+|$)/.exec(suffix);
154
+ const group = segment === null ? undefined : this.#groupLookup.get(this.lookupKey(parent, segment[1]));
155
+ if (group === undefined)
156
+ break;
157
+ parent = group.path;
158
+ source = suffix.slice(segment[0].length);
159
+ if (source.length === 0)
160
+ return Object.freeze({
161
+ prefix,
162
+ unmatched: Object.freeze({ _tag: "CommandMissingSubcommand", path: parent }),
163
+ });
164
+ }
165
+ const grouped = parent.length === 0 ? {} : { path: parent };
166
+ const input = Object.freeze({
167
+ message,
168
+ prefix,
169
+ source,
170
+ ...grouped,
171
+ });
172
+ const parsed = this.#options.parse === undefined ? defaultParse(input) : this.#options.parse(input);
173
+ if (parsed === undefined || isParseRejection(parsed)) {
174
+ const reason = parsed === undefined ? undefined : copyParseRejection(parsed);
175
+ return Object.freeze({
176
+ prefix,
177
+ unmatched: Object.freeze({
178
+ _tag: "CommandParserRejected",
179
+ ...(reason === undefined ? {} : { reason }),
180
+ ...grouped,
181
+ }),
182
+ });
183
+ }
184
+ const parse = copyParse(parsed);
185
+ const definition = this.#definitions.get(this.lookupKey(parent, parse.name));
186
+ if (definition === undefined) {
187
+ const suggestion = this.closestName(parent, parse.name);
188
+ return Object.freeze({
189
+ prefix,
190
+ unmatched: Object.freeze({
191
+ _tag: "CommandUnknownName",
192
+ name: parse.name,
193
+ ...(suggestion === undefined ? {} : { suggestion }),
194
+ ...grouped,
195
+ }),
196
+ });
197
+ }
198
+ return Object.freeze({
199
+ definition,
200
+ prefix,
201
+ parse,
202
+ ...(parent.length === 0 ? {} : { path: Object.freeze([...parent, definition.name]) }),
203
+ });
204
+ }
205
+ registrationParent(options) {
206
+ if (options === undefined)
207
+ return Object.freeze([]);
208
+ const path = readCaller(() => {
209
+ validateObjectShape(options, ["group"], "command", "registration options");
210
+ const group = options.group;
211
+ return group === undefined ? Object.freeze([]) : copyCommandGroupPath(group, "command");
212
+ });
213
+ if (path.length > 0 && !this.#groups.some((group) => sameCommandPath(group.path, path)))
214
+ throw new ConfigurationError("command", 'The registration option "group" must be the path of a registered group, using group names rather than aliases', { hint: 'Register the parent group first, then pass its full path, such as ["admin", "roles"]' });
215
+ return path;
216
+ }
217
+ registrationKeys(value, parent) {
218
+ const names = [value.name, ...(value.aliases ?? [])];
219
+ const keys = names.map((name) => this.lookupKey(parent, name));
220
+ if (new Set(keys).size !== keys.length)
221
+ throw new ConfigurationError("aliases", `The name and aliases of ${value.name} must all be different`);
222
+ const taken = keys.findIndex((key) => this.#definitions.has(key) || this.#groupLookup.has(key));
223
+ if (taken !== -1)
224
+ throw new ConfigurationError("aliases", `The name or alias ${JSON.stringify(names[taken])} of ${value.name} is already used by another command or group at the same level`, { hint: "Choose a different name or alias" });
225
+ return keys;
226
+ }
227
+ lookupKey(parent, name) {
228
+ return JSON.stringify([...parent, this.normalize(name)]);
229
+ }
230
+ /**
231
+ * The visible registered command or group name in this parent closest to an unknown name, within a bounded edit
232
+ * distance: At most one edit for names up to four characters and two edits for longer names, preferring the earliest
233
+ * registration. Hidden entries and entries inside hidden groups are never suggested
234
+ */
235
+ closestName(parent, name) {
236
+ const wanted = this.normalize(name);
237
+ const limit = wanted.length <= 4 ? 1 : 2;
238
+ let best;
239
+ for (const entry of this.visibleEntries) {
240
+ const path = entry.path ?? [entry.name];
241
+ if (!sameCommandPath(path.slice(0, -1), parent))
242
+ continue;
243
+ for (const candidate of [entry.name, ...(entry.aliases ?? [])]) {
244
+ const distance = editDistance(wanted, this.normalize(candidate), limit);
245
+ if (distance <= limit && (best === undefined || distance < best.distance))
246
+ best = { name: entry.name, distance };
247
+ }
248
+ }
249
+ return best?.name;
250
+ }
251
+ matchPrefix(message, resolved) {
252
+ const prefixes = typeof resolved === "string" ? [resolved] : resolved;
253
+ if (!Array.isArray(prefixes)) {
254
+ if (prefixes === undefined)
255
+ return undefined;
256
+ throw new ConfigurationError("prefix", "A prefix resolver must return a string, string array or undefined");
257
+ }
258
+ const values = copyNonemptyStringArray(prefixes, "prefix");
259
+ let selected;
260
+ for (const prefix of values)
261
+ if (message.content.startsWith(prefix) && (selected === undefined || prefix.length > selected.length))
262
+ selected = prefix;
263
+ return selected;
264
+ }
265
+ normalize(value) {
266
+ return this.#options.caseSensitive === true ? value : value.toLowerCase();
267
+ }
268
+ }
269
+ /**
270
+ * Create one bounded local cooldown store after validating only its retention limit.
271
+ * Used for `commands.memoryCooldowns(options)` and for a router's own store from its `cooldowns` option
272
+ */
273
+ export function createMemoryCooldownStore(options) {
274
+ // Only reading the caller options is marked as application input, not creating the store
275
+ const maxEntries = readCaller(() => {
276
+ if (options !== undefined)
277
+ validateObjectShape(options, ["maxEntries"], "maxEntries", "cooldown options");
278
+ const selected = options?.maxEntries;
279
+ return selected === undefined ? defaultCooldownEntries : selected;
280
+ });
281
+ if (!Number.isSafeInteger(maxEntries) || maxEntries < 1)
282
+ throw new ConfigurationError("maxEntries", 'The cooldown option "maxEntries" must be a positive safe integer');
283
+ return new LocalMemoryCooldownStoreOwner(maxEntries);
284
+ }
285
+ /** Copy a caller claim once, so the validated key and duration are the ones claimed. Other values pass unchanged */
286
+ export function snapshotClaimInput(input) {
287
+ if (typeof input !== "object" || input === null || Array.isArray(input))
288
+ return input;
289
+ const { key, durationMs } = input;
290
+ return { key, durationMs };
291
+ }
292
+ /**
293
+ * Keys with expiry times in one process, bounded without ever refusing a new key.
294
+ * Making room removes expired keys first and then the key that expires soonest
295
+ */
296
+ export class ExpiringKeys {
297
+ maxEntries;
298
+ #entries = new Map();
299
+ constructor(maxEntries) {
300
+ this.maxEntries = maxEntries;
301
+ }
302
+ get size() {
303
+ return this.#entries.size;
304
+ }
305
+ /** The expiry of an unexpired key, or undefined after removing an expired one */
306
+ active(key, now) {
307
+ const expiry = this.#entries.get(key);
308
+ if (expiry === undefined)
309
+ return undefined;
310
+ if (expiry > now)
311
+ return expiry;
312
+ this.#entries.delete(key);
313
+ return undefined;
314
+ }
315
+ /** Keep a key until expiry, making room first when a new key would exceed the limit */
316
+ set(key, expiry, now) {
317
+ if (!this.#entries.has(key) && this.#entries.size >= this.maxEntries) {
318
+ this.sweep(now);
319
+ if (this.#entries.size >= this.maxEntries) {
320
+ let soonest;
321
+ let soonestExpiry = Infinity;
322
+ for (const [candidate, candidateExpiry] of this.#entries)
323
+ if (candidateExpiry < soonestExpiry) {
324
+ soonest = candidate;
325
+ soonestExpiry = candidateExpiry;
326
+ }
327
+ if (soonest !== undefined)
328
+ this.#entries.delete(soonest);
329
+ }
330
+ }
331
+ this.#entries.set(key, expiry);
332
+ }
333
+ /**
334
+ * Report whether a key is already active. Otherwise keep it until `until` and report false, so the caller acts once
335
+ * per active key. A time that has already passed is not kept
336
+ */
337
+ suppress(key, until, now) {
338
+ if (this.active(key, now) !== undefined)
339
+ return true;
340
+ if (until > now)
341
+ this.set(key, until, now);
342
+ return false;
343
+ }
344
+ /** Remove expired keys and return how many were removed */
345
+ sweep(now) {
346
+ let count = 0;
347
+ for (const [key, expiry] of this.#entries)
348
+ if (expiry <= now) {
349
+ this.#entries.delete(key);
350
+ count += 1;
351
+ }
352
+ return count;
353
+ }
354
+ clear() {
355
+ this.#entries.clear();
356
+ }
357
+ }
358
+ /** Snapshot cooldown fields before validation, retaining only the intentional store and key references */
359
+ export function snapshotCommandCooldown(value) {
360
+ if (value === undefined)
361
+ return;
362
+ validateObjectShape(value, ["store", "durationMs", "per", "key"], "cooldown", "cooldown");
363
+ const { durationMs, store, key, per } = value;
364
+ if (typeof durationMs !== "number" ||
365
+ !Number.isSafeInteger(durationMs) ||
366
+ durationMs < 1 ||
367
+ durationMs > maxDurationMs)
368
+ throw new ConfigurationError("cooldown", `The cooldown option "durationMs" must be a positive safe integer of at most ${maxDurationMs} ms`);
369
+ if (store !== undefined &&
370
+ (typeof store !== "object" || store === null || typeof store.claim !== "function"))
371
+ throw new ConfigurationError("cooldown", 'The cooldown option "store" must be an object with a claim method');
372
+ if (key !== undefined && typeof key !== "function")
373
+ throw new ConfigurationError("cooldown", 'The cooldown option "key" must be a function');
374
+ if (per !== undefined && per !== "user" && per !== "channel" && per !== "guild")
375
+ throw new ConfigurationError("cooldown", 'The cooldown option "per" must be "user", "channel" or "guild"');
376
+ return Object.freeze({
377
+ durationMs,
378
+ per: per ?? "user",
379
+ ...(store === undefined ? {} : { store }),
380
+ ...(key === undefined ? {} : { key }),
381
+ });
382
+ }
383
+ /** The default cooldown key suffix for one invocation, selected by per */
384
+ export function cooldownSuffix(per, message) {
385
+ if (per === "channel")
386
+ return `channel:${message.channelId}`;
387
+ if (per === "guild")
388
+ return message.guildId === undefined ? `channel:${message.channelId}` : `guild:${message.guildId}`;
389
+ return `user:${message.author.id}`;
390
+ }
391
+ /** Validate and copy the shared definition fields once before an adapter adds its callback and cooldown references */
392
+ export function snapshotCommandDefinition(value, keyedName) {
393
+ if (typeof value !== "object" || value === null)
394
+ throw new ConfigurationError("command", "The command must be an object");
395
+ const name = keyedName ?? value.name;
396
+ if (!isCommandName(name))
397
+ throw new ConfigurationError("command", "Command names must use ASCII letters, numbers, `_` or `-` and begin alphanumerically");
398
+ const { aliases: sourceAliases, description, usage, hidden, arguments: sourceArguments } = value;
399
+ const aliases = sourceAliases === undefined ? undefined : copyCommandNames(sourceAliases, "aliases");
400
+ if (description !== undefined && typeof description !== "string")
401
+ throw new ConfigurationError("command", "Command description must be a string when supplied");
402
+ if (usage !== undefined && typeof usage !== "string")
403
+ throw new ConfigurationError("command", "Command usage must be a string when supplied");
404
+ if (hidden !== undefined && typeof hidden !== "boolean")
405
+ throw new ConfigurationError("command", "Command hidden must be a boolean when supplied");
406
+ const argumentsSchema = snapshotCommandArguments(sourceArguments);
407
+ return Object.freeze({
408
+ name,
409
+ ...(aliases === undefined ? {} : { aliases }),
410
+ ...(description === undefined ? {} : { description }),
411
+ ...(usage === undefined ? {} : { usage }),
412
+ ...(hidden === undefined ? {} : { hidden }),
413
+ ...(argumentsSchema === undefined ? {} : { arguments: argumentsSchema }),
414
+ });
415
+ }
416
+ /** Validate a finite adapter command object before reading its selected public fields */
417
+ export function validateCommandShape(value, keys) {
418
+ validateObjectShape(value, keys, "command", "command");
419
+ }
420
+ /** Reject malformed command cooldown claims without exposing caller-supplied data */
421
+ function validateCooldownClaim(value) {
422
+ if (typeof value !== "object" || value === null)
423
+ throw new ConfigurationError("cooldown", "The cooldown store returned an invalid claim", { hint: claimHint });
424
+ const claim = value;
425
+ if ((claim._tag === "CooldownAcquired" || claim._tag === "CooldownActive") &&
426
+ typeof claim.retryAtMs === "number" &&
427
+ Number.isSafeInteger(claim.retryAtMs))
428
+ return;
429
+ throw new ConfigurationError("cooldown", "The cooldown store returned an invalid claim", { hint: claimHint });
430
+ }
431
+ const claimHint = 'A cooldown store claim must return { _tag: "CooldownAcquired" } or { _tag: "CooldownActive" } with a safe integer retryAtMs';
432
+ /** Validate and namespace a caller-selected cooldown key before a store sees it */
433
+ export function cooldownRequest(commandName, key, durationMs) {
434
+ if (typeof key !== "string" || key.length === 0)
435
+ throw new ConfigurationError("cooldown", "A cooldown key must be a nonempty string");
436
+ return Object.freeze({ key: JSON.stringify([commandName, key]), durationMs });
437
+ }
438
+ /** Convert only expected configuration exceptions into the Effect error channel. Other exceptions remain defects */
439
+ export function configurationEffect(thunk) {
440
+ return Effect.try({
441
+ try: thunk,
442
+ catch: (error) => {
443
+ if (error instanceof ConfigurationError)
444
+ return error;
445
+ throw error;
446
+ },
447
+ });
448
+ }
449
+ /** Why a command did not run, for its Debug record. Never includes the rejected argument text */
450
+ function rejectionText(rejection, now) {
451
+ switch (rejection._tag) {
452
+ case "CommandGuardRejected":
453
+ return "a guard denied it";
454
+ case "CommandCooldownActive":
455
+ return `its cooldown is active for another ${Math.max(0, rejection.retryAtMs - now)} ms`;
456
+ case "CommandArgumentRejected":
457
+ if (rejection.reason === "Unexpected")
458
+ return "it received more arguments than it accepts";
459
+ if (rejection.reason === "Missing")
460
+ return `the argument ${rejection.argument} is missing`;
461
+ if (rejection.reason === "Ambiguous")
462
+ return `the argument ${rejection.argument} matches more than one option`;
463
+ return `the argument ${rejection.argument} is invalid`;
464
+ }
465
+ }
466
+ /** Unmatched reasons in plain words for the Debug record */
467
+ const unmatchedText = {
468
+ CommandUnknownName: "A message used the command prefix with a name that matches no command",
469
+ CommandMissingSubcommand: "A message named a command group without a subcommand",
470
+ CommandParserRejected: "A message used the command prefix, but the parser found no command in it",
471
+ };
472
+ /** Command routers keep up with bursts: Several commands run at once and overflow drops the oldest waiting message */
473
+ const routerDefaults = Object.freeze({ concurrency: 8, overflow: "dropOldest" });
474
+ /** Subscription options for an attached router: Its defaults, then each defined caller setting. An explicit undefined
475
+ * keeps the default. The onError option is removed because the router reports command failures through its own hook queue.
476
+ * A non-object value passes through unchanged so client.on rejects it with its usual ConfigurationError
477
+ */
478
+ export function routerSubscriptionOptions(options) {
479
+ if (options === undefined)
480
+ return routerDefaults;
481
+ if (typeof options !== "object" || options === null || Array.isArray(options))
482
+ return options;
483
+ const selected = { ...routerDefaults };
484
+ for (const [key, value] of Object.entries(options))
485
+ if (key !== "onError" && value !== undefined)
486
+ selected[key] = value;
487
+ return Object.freeze(selected);
488
+ }
489
+ /** Validate a guard verdict: `true` allows, `false` denies without a reason and `{ deny }` denies with one */
490
+ function guardVerdict(value) {
491
+ if (value === true)
492
+ return true;
493
+ if (value === false)
494
+ return {};
495
+ if (typeof value === "object" &&
496
+ value !== null &&
497
+ typeof value.deny === "string" &&
498
+ value.deny.length > 0)
499
+ return { reason: value.deny };
500
+ throw new ConfigurationError("command", "A command guard must return a boolean or { deny: string }");
501
+ }
502
+ /** Prefixes to try for one message: The configured or resolved prefixes, plus the bot mention when enabled */
503
+ function prefixesFor(registry, message, adapter) {
504
+ return Effect.gen(function* () {
505
+ const source = registry.prefix;
506
+ const prefixes = typeof source === "function" ? yield* adapter.prefix(source, message) : source;
507
+ if (!registry.mentionPrefix || adapter.selfId === undefined || prefixes === undefined)
508
+ return prefixes;
509
+ if (!message.content.startsWith("<@"))
510
+ return prefixes;
511
+ const id = yield* adapter.selfId();
512
+ if (id === undefined)
513
+ return prefixes;
514
+ const listed = typeof prefixes === "string" ? [prefixes] : Array.isArray(prefixes) ? prefixes : undefined;
515
+ // A malformed resolver value stays as it is, so resolve rejects it with the usual ConfigurationError
516
+ return listed === undefined ? prefixes : [...listed, `<@${id}>`, `<@!${id}>`];
517
+ });
518
+ }
519
+ /** Dispatch one resolved command through the caller's Effect runtime without a queue, send or retry */
520
+ export function dispatchCommand(registry, message, adapter) {
521
+ const active = () => adapter.active === undefined
522
+ ? Effect.void
523
+ : Effect.suspend(() => (adapter.active() ? Effect.void : Effect.interrupt));
524
+ /**
525
+ * Log a rejection and give its feedback. A `"reply"` answers once per limit key while that key is active, so repeated
526
+ * attempts do not make the bot repeat itself. Application callbacks receive every rejection
527
+ */
528
+ const reject = (definition, context, rejection, limit) => Effect.gen(function* () {
529
+ const now = yield* Clock.currentTimeMillis;
530
+ const selected = adapter.reject === undefined
531
+ ? undefined
532
+ : adapter.feedback === undefined
533
+ ? "callback"
534
+ : adapter.feedback(definition);
535
+ // A false guard has no automatic reply, but custom callbacks still receive every rejection
536
+ const feedback = selected === "reply" && rejection._tag === "CommandGuardRejected" && rejection.reason === undefined
537
+ ? undefined
538
+ : selected;
539
+ const suppressed = feedback === "reply" &&
540
+ limit !== undefined &&
541
+ registry.feedback.suppress(limit.key, limit.until(now), now);
542
+ adapter.logger?.drop("commandRejections", {
543
+ level: "debug",
544
+ category: "commands",
545
+ code: "commands.rejected",
546
+ message: `Command ${definition.name} did not run because ${rejectionText(rejection, now)}${feedback === undefined
547
+ ? ""
548
+ : suppressed
549
+ ? ". No reply was sent because the same rejection was answered recently"
550
+ : feedback === "reply"
551
+ ? ". A reply explains why"
552
+ : ". The onReject callback was called"}`,
553
+ command: definition.name,
554
+ fields: {
555
+ rejection: rejection._tag,
556
+ ...(rejection._tag === "CommandArgumentRejected" ? { argument: rejection.argument } : {}),
557
+ ...(suppressed ? { feedbackSuppressed: true } : {}),
558
+ },
559
+ });
560
+ if (feedback === undefined || suppressed)
561
+ return;
562
+ yield* adapter.reject(definition, context, rejection, now);
563
+ });
564
+ const dispatch = Effect.gen(function* () {
565
+ yield* active();
566
+ if (registry.ignores(message))
567
+ return;
568
+ const prefixes = yield* prefixesFor(registry, message, adapter);
569
+ const resolved = yield* configurationEffect(() => registry.resolve(message, prefixes));
570
+ if (resolved === undefined)
571
+ return;
572
+ if ("unmatched" in resolved) {
573
+ yield* active();
574
+ const suggestion = resolved.unmatched._tag === "CommandUnknownName" ? resolved.unmatched.suggestion : undefined;
575
+ const detail = resolved.unmatched._tag === "CommandMissingSubcommand"
576
+ ? ` (${resolved.unmatched.path.join(" ")})`
577
+ : resolved.unmatched._tag === "CommandParserRejected" && resolved.unmatched.reason !== undefined
578
+ ? ` (${resolved.unmatched.reason})`
579
+ : "";
580
+ adapter.logger?.drop("unmatchedCommands", {
581
+ level: "debug",
582
+ category: "commands",
583
+ code: "commands.unmatched",
584
+ message: `${unmatchedText[resolved.unmatched._tag]}${detail}${suggestion === undefined ? "" : `. The closest command is ${suggestion}`}${adapter.unmatched === undefined ? "" : ". The onUnmatched callback was called"}`,
585
+ fields: {
586
+ reason: resolved.unmatched._tag,
587
+ messageId: message.id,
588
+ channelId: message.channelId,
589
+ ...(suggestion === undefined ? {} : { suggestion }),
590
+ },
591
+ });
592
+ if (adapter.unmatched !== undefined)
593
+ yield* adapter.unmatched(resolved);
594
+ return;
595
+ }
596
+ const matched = resolved;
597
+ yield* identifyCommand(matched.definition.name);
598
+ const run = matchedCommand(matched).pipe(Effect.withSpan("fluxerly.command.execute", {
599
+ attributes: { "fluxerly.command": matched.definition.name },
600
+ }));
601
+ if (adapter.failed === undefined)
602
+ return yield* run;
603
+ return yield* run.pipe(Effect.catchCause((cause) => Cause.hasInterrupts(cause) ? Effect.failCause(cause) : adapter.failed(matched.definition.name, cause)));
604
+ });
605
+ if (adapter.failed === undefined)
606
+ return dispatch;
607
+ // Unmatched callbacks and custom parsers can fail outside a matched command, and they reach the same report
608
+ return dispatch.pipe(Effect.catchCause((cause) => Cause.hasInterrupts(cause) ? Effect.failCause(cause) : adapter.failed(undefined, cause)));
609
+ function matchedCommand(matched) {
610
+ return Effect.gen(function* () {
611
+ const context = adapter.context(matched);
612
+ yield* active();
613
+ let continued = false;
614
+ const rest = Effect.gen(function* () {
615
+ continued = true;
616
+ yield* checkedCommand(matched, context);
617
+ });
618
+ if (adapter.around === undefined)
619
+ return yield* rest;
620
+ yield* adapter.around(context, rest);
621
+ if (!continued)
622
+ adapter.logger?.log({
623
+ level: "debug",
624
+ category: "commands",
625
+ code: "commands.middlewareStopped",
626
+ message: `Command ${matched.definition.name} did not run because middleware did not continue`,
627
+ command: matched.definition.name,
628
+ });
629
+ });
630
+ }
631
+ function checkedCommand(matched, context) {
632
+ return Effect.gen(function* () {
633
+ const verdict = guardVerdict(yield* adapter.guard(matched.definition, context));
634
+ if (verdict !== true) {
635
+ yield* active();
636
+ yield* reject(matched.definition, context, Object.freeze({
637
+ _tag: "CommandGuardRejected",
638
+ ...(verdict.reason === undefined ? {} : { reason: verdict.reason }),
639
+ }), {
640
+ key: JSON.stringify(["guard", matched.path ?? [matched.definition.name], message.author.id]),
641
+ until: (now) => now + guardFeedbackWindowMs,
642
+ });
643
+ return;
644
+ }
645
+ const conversion = adapter.convert === undefined ? undefined : adapter.convert(matched.definition, context);
646
+ if (conversion !== undefined && conversion._tag === "Rejected") {
647
+ yield* active();
648
+ yield* reject(matched.definition, context, Object.freeze({
649
+ _tag: "CommandArgumentRejected",
650
+ argument: conversion.argument,
651
+ reason: conversion.reason,
652
+ }));
653
+ return;
654
+ }
655
+ const executionContext = conversion === undefined || adapter.executionContext === undefined
656
+ ? context
657
+ : adapter.executionContext(context, conversion.values);
658
+ if (adapter.cooldown !== undefined) {
659
+ yield* active();
660
+ const claimed = yield* adapter.cooldown(matched.definition, executionContext, registry.cooldowns);
661
+ if (claimed !== undefined) {
662
+ yield* configurationEffect(() => validateCooldownClaim(claimed.claim));
663
+ const claim = claimed.claim;
664
+ if (claim._tag === "CooldownActive") {
665
+ yield* active();
666
+ yield* reject(matched.definition, context, Object.freeze({ _tag: "CommandCooldownActive", retryAtMs: claim.retryAtMs }), { key: JSON.stringify(["cooldown", claimed.key]), until: () => claim.retryAtMs });
667
+ return;
668
+ }
669
+ }
670
+ }
671
+ yield* active();
672
+ // Measured on the dispatch's Effect Clock, so a TestClock controls the reported duration
673
+ const clock = yield* Clock.Clock;
674
+ const startedAt = nowMs(clock);
675
+ yield* adapter.execute(matched.definition, executionContext);
676
+ adapter.logger?.log({
677
+ level: "debug",
678
+ category: "commands",
679
+ code: "commands.executed",
680
+ message: `Command ${matched.definition.name} finished`,
681
+ command: matched.definition.name,
682
+ durationMs: Math.round(nowMs(clock) - startedAt),
683
+ });
684
+ });
685
+ }
686
+ }
687
+ /**
688
+ * Impersonal reply text for a rejected command, used by `onReject: "reply"`.
689
+ * A guard denial without a reason returns undefined, so a false verdict has no generic reply.
690
+ * Argument rejections name the argument, what was expected and the command's usage.
691
+ * Cooldown replies measure the remaining time from `now`, the dispatch Clock's wall time
692
+ */
693
+ export function rejectionReply(rejection, command, prefix, now) {
694
+ switch (rejection._tag) {
695
+ case "CommandGuardRejected":
696
+ return rejection.reason;
697
+ case "CommandCooldownActive": {
698
+ const seconds = Math.max(1, Math.ceil((rejection.retryAtMs - now) / 1_000));
699
+ return `This command is on cooldown. Try again in ${seconds} ${seconds === 1 ? "second" : "seconds"}`;
700
+ }
701
+ case "CommandArgumentRejected": {
702
+ const usage = command === undefined
703
+ ? ""
704
+ : `. Usage: ${prefix}${(command.path ?? [command.name]).join(" ")}${commandUsage(command) ? " " + commandUsage(command) : ""}`;
705
+ if (rejection.reason === "Unexpected")
706
+ return `Too many arguments${usage}`;
707
+ const argument = command?.arguments?.find((entry) => entry.name === rejection.argument);
708
+ if (rejection.reason === "Missing")
709
+ return `Missing ${rejection.argument}${usage}`;
710
+ if (rejection.reason === "Ambiguous")
711
+ return `The ${rejection.argument} value matches more than one option, so an ID or mention is needed${usage}`;
712
+ return `Invalid ${rejection.argument}${argument === undefined ? "" : `. Expected ${expectation(argument)}`}${usage}`;
713
+ }
714
+ }
715
+ }
716
+ /** Generated usage syntax such as `<text> [count]`, or the command's explicit usage */
717
+ function commandUsage(command) {
718
+ return (command.usage ??
719
+ command.arguments
720
+ ?.map((argument) => {
721
+ const name = argument.name + (argument.rest ? "..." : "");
722
+ return argument.optional ? `[${name}]` : `<${name}>`;
723
+ })
724
+ .join(" ") ??
725
+ "");
726
+ }
727
+ function expectation(argument) {
728
+ const range = (unit) => argument.min !== undefined && argument.max !== undefined
729
+ ? ` from ${unit(argument.min)} to ${unit(argument.max)}`
730
+ : argument.min !== undefined
731
+ ? ` of at least ${unit(argument.min)}`
732
+ : argument.max !== undefined
733
+ ? ` of at most ${unit(argument.max)}`
734
+ : "";
735
+ switch (argument.type) {
736
+ case "integer":
737
+ return `a whole number${range(String)}`;
738
+ case "number":
739
+ return `a number${range(String)}`;
740
+ case "duration":
741
+ return `a duration${argument.wholeSeconds === true ? " in whole seconds" : ""} such as 10m or 1h30m${range((value) => `${value} ms`)}`;
742
+ case "boolean":
743
+ return "true or false";
744
+ case "id":
745
+ return argument.mention === undefined ? "an ID" : `an ID or ${argument.mention} mention`;
746
+ case "choice":
747
+ return `one of ${(argument.choices ?? []).join(", ")}`;
748
+ case "member":
749
+ return "a member mention or ID";
750
+ case "userChoice":
751
+ return "a listed user";
752
+ case "channelChoice":
753
+ return "a listed channel";
754
+ case "roleChoice":
755
+ return "a listed role";
756
+ case "custom":
757
+ return argument.expected ?? "a valid value";
758
+ case "text":
759
+ return "text";
760
+ }
761
+ }
762
+ /** Router option keys shared by both APIs. Each API adds its own callback keys */
763
+ const routerOptionKeys = ["prefix", "parse", "ignoreBots", "caseSensitive", "mentionPrefix", "cooldowns"];
764
+ /** Subscription delivery settings that a runBot commands option passes to the router's attach unchanged */
765
+ export const botCommandDeliveryKeys = [
766
+ "concurrency",
767
+ "partition",
768
+ "overflow",
769
+ "maxPendingMessages",
770
+ "maxPendingBytes",
771
+ ];
772
+ /**
773
+ * Check the keys of a runBot commands option before its router is created, so the hint also lists commands and onError.
774
+ * A key whose value looks like a command definition is explained as a command placed one level too high.
775
+ * Values are read through property descriptors, so no getter runs here
776
+ */
777
+ export function checkBotCommandKeys(options, adapterKeys) {
778
+ const keys = [...routerOptionKeys, ...adapterKeys, ...botCommandDeliveryKeys, "commands", "onError"];
779
+ for (const key of Reflect.ownKeys(options)) {
780
+ if (typeof key !== "string" || keys.includes(key))
781
+ continue;
782
+ const value = Reflect.getOwnPropertyDescriptor(options, key)?.value;
783
+ const command = typeof value === "object" && value !== null && Object.hasOwn(value, "execute");
784
+ throw new ConfigurationError("commands", `Unsupported key ${JSON.stringify(key)} in the runBot commands option`, {
785
+ hint: command
786
+ ? `Put command definitions in the inner commands object, next to prefix, such as commands: { prefix: "!", commands: { ${key.length > 64 ? "name" : key}: { execute } } }`
787
+ : unsupportedKeyHint(key, keys, "keys"),
788
+ });
789
+ }
790
+ }
791
+ /**
792
+ * Validate the shared router settings. Adapter keys, such as callbacks, are allowed here and validated by the adapter.
793
+ * The `cooldowns` option is allowed but not copied, because the registry reads it once to create its own store
794
+ */
795
+ function copyOptions(input, adapterKeys) {
796
+ validateObjectShape(input, [...routerOptionKeys, ...adapterKeys], "commands", "prefix command options");
797
+ const value = input;
798
+ if (value.prefix === undefined)
799
+ throw new ConfigurationError("prefix", 'The option "prefix" is required', {
800
+ hint: 'Set the text that starts a command, such as prefix: "!"',
801
+ });
802
+ if (typeof value.prefix !== "string" && !Array.isArray(value.prefix) && typeof value.prefix !== "function")
803
+ throw new ConfigurationError("prefix", 'The option "prefix" must be a string, an array of strings or a function');
804
+ if (typeof value.prefix === "string" && value.prefix.length === 0)
805
+ throw new ConfigurationError("prefix", 'The option "prefix" must not be empty');
806
+ const prefix = Array.isArray(value.prefix) ? copyNonemptyStringArray(value.prefix, "prefix") : value.prefix;
807
+ if (value.parse !== undefined && typeof value.parse !== "function")
808
+ throw new ConfigurationError("parser", 'The option "parse" must be a function');
809
+ if (value.ignoreBots !== undefined && typeof value.ignoreBots !== "boolean")
810
+ throw new ConfigurationError("commands", 'The option "ignoreBots" must be a boolean');
811
+ if (value.caseSensitive !== undefined && typeof value.caseSensitive !== "boolean")
812
+ throw new ConfigurationError("commands", 'The option "caseSensitive" must be a boolean');
813
+ if (value.mentionPrefix !== undefined && typeof value.mentionPrefix !== "boolean")
814
+ throw new ConfigurationError("commands", 'The option "mentionPrefix" must be a boolean');
815
+ return Object.freeze({
816
+ prefix,
817
+ ...(value.parse === undefined ? {} : { parse: value.parse }),
818
+ ...(value.ignoreBots === undefined ? {} : { ignoreBots: value.ignoreBots }),
819
+ ...(value.caseSensitive === undefined ? {} : { caseSensitive: value.caseSensitive }),
820
+ ...(value.mentionPrefix === undefined ? {} : { mentionPrefix: value.mentionPrefix }),
821
+ });
822
+ }
823
+ /** Project only public metadata from an already validated owned registration snapshot */
824
+ function commandMetadata(value, parent) {
825
+ const argumentsMetadata = commandArgumentMetadata(value.arguments);
826
+ return Object.freeze({
827
+ name: value.name,
828
+ ...(parent.length === 0 ? {} : { path: Object.freeze([...parent, value.name]) }),
829
+ ...(value.aliases === undefined ? {} : { aliases: value.aliases }),
830
+ ...(value.description === undefined ? {} : { description: value.description }),
831
+ ...(value.usage === undefined ? {} : { usage: value.usage }),
832
+ ...(value.hidden === undefined ? {} : { hidden: value.hidden }),
833
+ ...(argumentsMetadata === undefined ? {} : { arguments: argumentsMetadata }),
834
+ });
835
+ }
836
+ /** Validate a canonical group selector without retaining rejected caller values */
837
+ export function copyCommandGroupPath(value, field) {
838
+ if (!Array.isArray(value))
839
+ throw new ConfigurationError(field, 'The option "group" must be an array of group names, not aliases');
840
+ validateArrayShape(value, field);
841
+ const path = [];
842
+ for (let index = 0; index < value.length; index += 1) {
843
+ const name = value[index];
844
+ if (!isCommandName(name))
845
+ throw new ConfigurationError(field, 'The option "group" must contain group names that use ASCII letters, numbers, `_` or `-` and begin alphanumerically');
846
+ path.push(name);
847
+ }
848
+ return Object.freeze(path);
849
+ }
850
+ /** Exact canonical path comparison, independent of alias matching policy */
851
+ export function sameCommandPath(left, right) {
852
+ return left.length === right.length && left.every((name, index) => name === right[index]);
853
+ }
854
+ /** A parser result with a reason and no name, which declines the text with an explanation instead of naming a command */
855
+ function isParseRejection(value) {
856
+ return typeof value === "object" && value !== null && "reason" in value && !("name" in value);
857
+ }
858
+ function copyParseRejection(value) {
859
+ validateObjectShape(value, ["reason"], "parser", "parser rejection");
860
+ const reason = value.reason;
861
+ if (typeof reason !== "string" || reason.length === 0)
862
+ throw new ConfigurationError("parser", "A parser rejection must have a nonempty string reason");
863
+ return reason;
864
+ }
865
+ function copyParse(value) {
866
+ validateObjectShape(value, ["name", "args", "rawArgs"], "parser", "parser result");
867
+ if (!isCommandName(value.name))
868
+ throw new ConfigurationError("parser", "A parser must return a valid command name");
869
+ if (typeof value.rawArgs !== "string")
870
+ throw new ConfigurationError("parser", "A parser must return rawArgs as a string");
871
+ return Object.freeze({ name: value.name, rawArgs: value.rawArgs, args: copyStringArray(value.args, "parser") });
872
+ }
873
+ function defaultParse(input) {
874
+ const source = input.source.trimStart();
875
+ if (source.length === 0)
876
+ return undefined;
877
+ const match = /^(\S+)(?:\s+([\s\S]*))?$/.exec(source);
878
+ const name = match?.[1];
879
+ if (name === undefined || !isCommandName(name))
880
+ return undefined;
881
+ const rawArgs = match?.[2] ?? "";
882
+ const positional = rawArgs.trim();
883
+ return { name, rawArgs, args: positional.length === 0 ? [] : positional.split(/\s+/) };
884
+ }
885
+ function copyCommandNames(value, field) {
886
+ const names = copyStringArray(value, field);
887
+ for (const name of names)
888
+ if (!isCommandName(name))
889
+ throw new ConfigurationError("aliases", "Command aliases must use ASCII letters, numbers, `_` or `-` and begin alphanumerically");
890
+ return names;
891
+ }
892
+ function copyNonemptyStringArray(value, field) {
893
+ const values = copyStringArray(value, field);
894
+ if (values.length === 0)
895
+ throw new ConfigurationError("prefix", prefixArrayMessage);
896
+ for (const prefix of values)
897
+ if (prefix.length === 0)
898
+ throw new ConfigurationError("prefix", prefixArrayMessage);
899
+ return values;
900
+ }
901
+ const prefixArrayMessage = "A prefix array must contain at least one prefix, and no prefix may be empty";
902
+ /** How array shape messages name the value they check */
903
+ const shapeSubjects = {
904
+ aliases: 'The option "aliases"',
905
+ prefix: "The prefix list",
906
+ parser: 'The parser result "args"',
907
+ command: 'The option "group"',
908
+ help: 'The help option "group"',
909
+ };
910
+ function copyStringArray(value, field) {
911
+ if (!Array.isArray(value))
912
+ throw new ConfigurationError(field, `${shapeSubjects[field]} must be an array of strings`);
913
+ validateArrayShape(value, field);
914
+ const copied = [];
915
+ for (let index = 0; index < value.length; index += 1) {
916
+ const entry = value[index];
917
+ if (typeof entry !== "string")
918
+ throw new ConfigurationError(field, `${shapeSubjects[field]} must contain only strings`);
919
+ copied.push(entry);
920
+ }
921
+ return Object.freeze(copied);
922
+ }
923
+ function validateObjectShape(value, keys, field, subject) {
924
+ if (typeof value !== "object" || value === null || Array.isArray(value))
925
+ throw new ConfigurationError(field, `The ${subject} must be an object`);
926
+ for (const key of Reflect.ownKeys(value))
927
+ if (typeof key !== "string" || !keys.includes(key))
928
+ throw new ConfigurationError(field, typeof key === "string"
929
+ ? `Unsupported key ${JSON.stringify(key)} in the ${subject}`
930
+ : `The ${subject} must not have symbol keys`, {
931
+ hint: typeof key === "string"
932
+ ? unsupportedKeyHint(key, keys, "keys")
933
+ : `Supported keys are ${keys.join(", ")}`,
934
+ });
935
+ }
936
+ function validateArrayShape(value, field) {
937
+ for (let index = 0; index < value.length; index += 1)
938
+ if (!Object.hasOwn(value, index))
939
+ throw new ConfigurationError(field, `${shapeSubjects[field]} must not have empty slots`);
940
+ for (const key of Reflect.ownKeys(value)) {
941
+ if (key === "length")
942
+ continue;
943
+ if (typeof key !== "string" || !isArrayIndex(key, value.length))
944
+ throw new ConfigurationError(field, `${shapeSubjects[field]} must be a plain array without extra properties`);
945
+ }
946
+ }
947
+ function isArrayIndex(key, length) {
948
+ if (!/^(?:0|[1-9]\d*)$/.test(key))
949
+ return false;
950
+ const index = Number(key);
951
+ return Number.isSafeInteger(index) && index >= 0 && index < length;
952
+ }
953
+ function isCommandName(value) {
954
+ return typeof value === "string" && commandName.test(value);
955
+ }
956
+ /** A memory cooldown store that never denies a new key for capacity, evicting as ExpiringKeys describes */
957
+ class LocalMemoryCooldownStoreOwner {
958
+ maxEntries;
959
+ #entries;
960
+ constructor(maxEntries) {
961
+ this.maxEntries = maxEntries;
962
+ this.#entries = new ExpiringKeys(maxEntries);
963
+ }
964
+ get size() {
965
+ return this.#entries.size;
966
+ }
967
+ claim(input, now = Date.now()) {
968
+ const request = validateMemoryRequest(input);
969
+ if (request._tag === "Failure")
970
+ return request;
971
+ const active = this.#entries.active(request.value.key, now);
972
+ if (active !== undefined)
973
+ return success(Object.freeze({ _tag: "CooldownActive", retryAtMs: active }));
974
+ const retryAtMs = now + request.value.durationMs;
975
+ this.#entries.set(request.value.key, retryAtMs, now);
976
+ return success(Object.freeze({ _tag: "CooldownAcquired", retryAtMs }));
977
+ }
978
+ sweep(now = Date.now()) {
979
+ return this.#entries.sweep(now);
980
+ }
981
+ clear() {
982
+ this.#entries.clear();
983
+ }
984
+ }
985
+ function validateMemoryRequest(input) {
986
+ if (typeof input !== "object" || input === null || Array.isArray(input))
987
+ return failure(new ConfigurationError("cooldown", "A cooldown claim requires an object"));
988
+ const request = input;
989
+ if (typeof request.key !== "string" || request.key.length === 0)
990
+ return failure(new ConfigurationError("cooldown", "A cooldown key must be a nonempty string"));
991
+ if (typeof request.durationMs !== "number" ||
992
+ !Number.isSafeInteger(request.durationMs) ||
993
+ request.durationMs < 1 ||
994
+ request.durationMs > maxDurationMs)
995
+ return failure(new ConfigurationError("cooldown", `The cooldown option "durationMs" must be a positive safe integer of at most ${maxDurationMs} ms`));
996
+ return success(Object.freeze({ key: request.key, durationMs: request.durationMs }));
997
+ }
998
+ function success(value) {
999
+ return Object.freeze({ _tag: "Success", value });
1000
+ }
1001
+ function failure(error) {
1002
+ return Object.freeze({ _tag: "Failure", error });
1003
+ }
1004
+ //# sourceMappingURL=commands.js.map