@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,1071 @@
1
+ /**
2
+ * Event intake: Per-subscription scheduling, bounded pending delivery, overflow policies and event waits.
3
+ * Invariant: Gateway callbacks never await consumer work, overflow ends only the affected subscription, and shutdown discards
4
+ * pending delivery with one record per subscription that had waiting events. Default callback promises stay application-owned
5
+ * while native cleanup is cooperative and awaited, and a native handler's shutdown request runs in the client scope so the
6
+ * handler never joins itself. Each admitted event keeps the shard and
7
+ * received frame size it arrived with for its handler context, without changing queue accounting. Middleware wraps on handler
8
+ * invocations only, with the list registered when an invocation starts, and every failure inside the chain is reported where it
9
+ * occurs, so middleware cannot hide a handler failure. A partitioned handler starts events in receive order per key and runs
10
+ * at most one invocation per key, selecting from its own bounded queue so queue limits still cover every waiting event.
11
+ * A draining shutdown seals the bus: New events and registrations are refused while running and queued handler work
12
+ * continues until the client stops the bus, which records how many refused events had a subscription. Implements [SDK contracts: Delivery, requests and caches](/docs/SDK-CONTRACTS.md#delivery-requests-and-caches)
13
+ */
14
+ import * as Cause from "effect/Cause";
15
+ import * as Clock from "effect/Clock";
16
+ import * as Deferred from "effect/Deferred";
17
+ import * as Effect from "effect/Effect";
18
+ import * as Exit from "effect/Exit";
19
+ import * as Scope from "effect/Scope";
20
+ import * as Stream from "effect/Stream";
21
+ import { ClientClosedError, ConfigurationError } from "#sdk/errors";
22
+ import { EventOverflowError, EventReadBusyError, EventWaitError, } from "#sdk/message-errors";
23
+ import { inputDefect, readInput } from "./defects.js";
24
+ import { withDeadline } from "./effect-failures.js";
25
+ import { nowMs } from "./clock.js";
26
+ import { record } from "./decode/primitives.js";
27
+ import { discardInvalidCallbackReturn } from "./invalid-callback-return.js";
28
+ import { logHandlerReport, makeReport, messageReference, primaryError, standaloneHookQueue, throwIfErr, } from "./failures.js";
29
+ import { metrics } from "./metrics.js";
30
+ import { RejectionScope, fiberRejectionScope, withRejectionScope } from "./rejection-scope.js";
31
+ import { emitObservation, failureFacts, observing } from "./observer.js";
32
+ import { editDistance, unsupportedKeyHint } from "./suggest.js";
33
+ // Rejection scopes already cross both the native fiber and default Promise boundaries of one invocation
34
+ const invocationOutcomes = new WeakMap();
35
+ /** Select the canonical command name once a router matches, before its guards and middleware run */
36
+ export function identifyCommand(name) {
37
+ return Effect.withFiber((fiber) => {
38
+ const scope = fiberRejectionScope(fiber.context);
39
+ const outcome = scope === undefined ? undefined : invocationOutcomes.get(scope);
40
+ if (outcome)
41
+ outcome.command = name;
42
+ return Effect.void;
43
+ });
44
+ }
45
+ /** Keep a reported command failure visible to the enclosing handler observation, even when dispatch recovers */
46
+ export function recordCommandFailure(name, cause, context) {
47
+ const scope = fiberRejectionScope(context);
48
+ const outcome = scope === undefined ? undefined : invocationOutcomes.get(scope);
49
+ if (outcome)
50
+ outcome.failure ??= cause;
51
+ metrics.handlerFailure(name ?? "messageCreate", context);
52
+ }
53
+ /** Default handler concurrency when a partition is set, so events of different keys can run side by side */
54
+ const partitionedConcurrency = 8;
55
+ /** Events whose own ID is the community they describe */
56
+ const guildSelfEvents = new Set(["guildCreate", "guildUpdate", "guildDelete"]);
57
+ /** Events whose own ID is the channel they describe, a thread being a channel */
58
+ const channelSelfEvents = new Set([
59
+ "guildChannelCreate",
60
+ "guildChannelUpdate",
61
+ "guildChannelDelete",
62
+ "directMessageCreate",
63
+ "directMessageUpdate",
64
+ "directMessageDelete",
65
+ "threadCreate",
66
+ "threadUpdate",
67
+ "threadDelete",
68
+ ]);
69
+ /**
70
+ * The partition key of one event. The guild partition uses the community ID, else the channel ID, so direct messages are
71
+ * ordered per conversation, and the channel partition uses the channel ID, else the community ID. A thread member
72
+ * change's channel is its thread. An event with neither uses the empty key, shared by all such events. A function's
73
+ * undefined also selects the empty key
74
+ */
75
+ function partitionKey(partition, event, payload) {
76
+ if (typeof partition === "function")
77
+ return partition(payload);
78
+ const value = payload;
79
+ const guild = typeof value.guildId === "string" ? value.guildId : guildSelfEvents.has(event) ? value.id : undefined;
80
+ const channel = typeof value.channelId === "string"
81
+ ? value.channelId
82
+ : typeof value.threadId === "string"
83
+ ? value.threadId
84
+ : channelSelfEvents.has(event)
85
+ ? value.id
86
+ : undefined;
87
+ const key = partition === "guild" ? (guild ?? channel) : (channel ?? guild);
88
+ return typeof key === "string" ? key : undefined;
89
+ }
90
+ /**
91
+ * Adapt default-API middleware. Its next promise runs the rest of the chain with the invocation's services and signal,
92
+ * and resolves once that finishes, even after a reported failure or interruption
93
+ */
94
+ export function defaultMiddleware(middleware) {
95
+ return (invocation, next) => Effect.flatMap(Effect.context(), (services) =>
96
+ // @effect-diagnostics-next-line unknownInEffectCatch:off
97
+ Effect.tryPromise({
98
+ try: (signal) => new Promise((resolve) => {
99
+ const runNext = () => Effect.runPromiseExitWith(services)(next, { signal }).then(() => undefined);
100
+ resolve(middleware(invocation, runNext, signal));
101
+ }).then(throwIfErr),
102
+ // Keep the thrown or rejected value itself for the failure report
103
+ catch: (error) => error,
104
+ }));
105
+ }
106
+ /**
107
+ * Adapt native middleware to run with the services captured at registration, while its next Effect runs the rest of
108
+ * the chain with the handler's own services
109
+ */
110
+ export function nativeMiddleware(middleware, services) {
111
+ return (invocation, next) => Effect.flatMap(Effect.context(), (outer) => Effect.suspend(() => middleware(invocation, Effect.updateContext(next, () => outer))).pipe(Effect.provideContext(services)));
112
+ }
113
+ /** Frozen delivery details for a handler */
114
+ function eventContext(delivery) {
115
+ return Object.freeze({ shardId: delivery.shardId, receivedBytes: delivery.bytes });
116
+ }
117
+ /** Names commonly guessed for a readiness event, compared in lowercase */
118
+ const readyNames = new Set(["ready", "clientready", "onready", "connected"]);
119
+ /** Explain an unsupported event name, suggesting the closest supported one. Event names are not sensitive */
120
+ function unknownEventError(event, names) {
121
+ if (typeof event !== "string" || event.length > 64)
122
+ return new ConfigurationError("event", "Unsupported event name", {
123
+ hint: "Use an event name such as messageCreate",
124
+ });
125
+ // Readiness is connection state, not an event, so point to the ways to run code at startup
126
+ if (readyNames.has(event.toLowerCase()))
127
+ return new ConfigurationError("event", `Unknown event name ${JSON.stringify(event)}`, {
128
+ hint: "Fluxerly has no ready event. runBot logs when the bot is connected, and its setup option runs startup work before the bot connects. With createClient, code after client.connect() runs once the bot is connected, and client.observeState reports each connection state",
129
+ });
130
+ let best;
131
+ let distance = Infinity;
132
+ for (const name of names) {
133
+ const candidate = editDistance(event.toLowerCase(), name.toLowerCase());
134
+ if (candidate < distance) {
135
+ best = name;
136
+ distance = candidate;
137
+ }
138
+ }
139
+ const suggestion = best !== undefined && distance <= Math.max(2, Math.floor(event.length / 3)) ? best : undefined;
140
+ return new ConfigurationError("event", `Unknown event name ${JSON.stringify(event)}`, {
141
+ hint: `${suggestion === undefined ? "" : `Did you mean ${JSON.stringify(suggestion)}? `}Event names are listed in EventMap, such as messageCreate and guildMemberAdd`,
142
+ });
143
+ }
144
+ /** Narrow the two message-bearing dispatch names without treating other events as messages */
145
+ export function isMessageEvent(event, _message) {
146
+ return event === "messageCreate" || event === "messageUpdate";
147
+ }
148
+ const maximumTimerMs = 2_147_483_647;
149
+ function eventWaitSettings(options, allowSignal) {
150
+ const input = options === undefined ? {} : options;
151
+ if (!record(input))
152
+ return new ConfigurationError("eventOptions", "Event wait options must be an object");
153
+ const supported = [
154
+ "filter",
155
+ "timeoutMs",
156
+ "maxPendingMessages",
157
+ "maxPendingBytes",
158
+ ...(allowSignal ? ["signal"] : []),
159
+ ];
160
+ const unsupported = Object.keys(input).find((key) => !supported.includes(key));
161
+ if (unsupported !== undefined)
162
+ return new ConfigurationError("eventOptions", `Unsupported event wait option ${JSON.stringify(unsupported)}`, {
163
+ hint: unsupportedKeyHint(unsupported, supported),
164
+ });
165
+ // Read each option once, so the validated values are the ones the wait uses
166
+ const timeoutInput = input.timeoutMs;
167
+ const timeoutMs = timeoutInput === undefined ? 30_000 : timeoutInput;
168
+ if (typeof timeoutMs !== "number" ||
169
+ !Number.isSafeInteger(timeoutMs) ||
170
+ timeoutMs <= 0 ||
171
+ timeoutMs > maximumTimerMs)
172
+ return new ConfigurationError("timeoutMs", `The event wait option "timeoutMs" must be a positive safe integer of at most ${maximumTimerMs} ms`);
173
+ const filter = input.filter;
174
+ if (filter !== undefined && typeof filter !== "function")
175
+ return new ConfigurationError("filter", 'The event wait option "filter" must be a function');
176
+ const maxPendingMessages = input.maxPendingMessages;
177
+ const maxPendingBytes = input.maxPendingBytes;
178
+ return {
179
+ buffer: {
180
+ ...(maxPendingMessages === undefined ? {} : { maxPendingMessages }),
181
+ ...(maxPendingBytes === undefined ? {} : { maxPendingBytes }),
182
+ },
183
+ filter: filter,
184
+ timeoutMs,
185
+ };
186
+ }
187
+ function limits(options, defaultOverflow) {
188
+ if (options === undefined)
189
+ options = {};
190
+ if (!record(options))
191
+ return new ConfigurationError("eventOptions", "Event options must be an object");
192
+ const partition = options.partition;
193
+ if (partition !== undefined && partition !== "guild" && partition !== "channel" && typeof partition !== "function")
194
+ return new ConfigurationError("partition", 'The event option "partition" must be "guild", "channel" or a function');
195
+ const defaults = {
196
+ concurrency: partition === undefined ? 1 : partitionedConcurrency,
197
+ maxPendingMessages: 256,
198
+ maxPendingBytes: 4_194_304,
199
+ };
200
+ for (const key of Object.keys(defaults)) {
201
+ const value = options[key];
202
+ if (value !== undefined) {
203
+ if (typeof value !== "number" || !Number.isSafeInteger(value) || value <= 0)
204
+ return new ConfigurationError(key, `The event option ${JSON.stringify(key)} must be a positive safe integer`);
205
+ defaults[key] = value;
206
+ }
207
+ }
208
+ const overflow = options.overflow ?? defaultOverflow;
209
+ if (overflow !== "stop" && overflow !== "dropOldest" && overflow !== "dropNewest")
210
+ return new ConfigurationError("overflow", 'The event option "overflow" must be "stop", "dropOldest" or "dropNewest"');
211
+ return { ...defaults, overflow, partition: partition };
212
+ }
213
+ /** One bounded subscription. Gateway callbacks never await asynchronous consumer work, though a waiting synchronous filter can continue immediately after admission */
214
+ export class EventSource {
215
+ release;
216
+ closed = Deferred.makeUnsafe();
217
+ limits;
218
+ #pending = [];
219
+ #bytes = 0;
220
+ #waiters = new Set();
221
+ #active = true;
222
+ #reading = false;
223
+ #failure;
224
+ #stopWorker;
225
+ #managed = false;
226
+ #cleanupCause = Cause.empty;
227
+ #arrival;
228
+ meta;
229
+ constructor(limits, release, meta = { event: "messageCreate", id: "messageCreate#0", logger: undefined, managed: false }) {
230
+ this.release = release;
231
+ this.limits = limits;
232
+ this.meta = meta;
233
+ }
234
+ /** Stable subscription identifier used in failure reports and log records */
235
+ get id() {
236
+ return this.meta.id;
237
+ }
238
+ get active() {
239
+ return this.#active;
240
+ }
241
+ get failure() {
242
+ return this.#failure;
243
+ }
244
+ /** Events waiting in this source's queue */
245
+ get pendingCount() {
246
+ return this.#pending.length;
247
+ }
248
+ /** Call this function after each event that enters the queue, for a worker that selects events with takeFirst */
249
+ onArrival(callback) {
250
+ this.#arrival = callback;
251
+ }
252
+ /** Remove and return the first waiting event that accept selects, or undefined when none qualifies */
253
+ takeFirst(accept) {
254
+ if (!this.#active)
255
+ return undefined;
256
+ const index = this.#pending.findIndex(accept);
257
+ if (index === -1)
258
+ return undefined;
259
+ const [delivery] = this.#pending.splice(index, 1);
260
+ this.#bytes -= delivery.bytes;
261
+ return delivery;
262
+ }
263
+ /** Admit one event received by a shard, in a frame of the given byte length */
264
+ offer(message, bytes, shardId = 0) {
265
+ if (!this.#active)
266
+ return;
267
+ const waiter = this.#waiters.values().next().value;
268
+ if (waiter) {
269
+ this.#waiters.delete(waiter);
270
+ waiter(Effect.succeed({ message, bytes, shardId }));
271
+ return;
272
+ }
273
+ const full = () => this.#pending.length >= this.limits.maxPendingMessages || bytes > this.limits.maxPendingBytes - this.#bytes;
274
+ if (!full()) {
275
+ this.#pending.push({ message, bytes, shardId });
276
+ this.#bytes += bytes;
277
+ this.#arrival?.();
278
+ return;
279
+ }
280
+ const limit = this.#pending.length >= this.limits.maxPendingMessages ? "messages" : "bytes";
281
+ const policy = this.limits.overflow;
282
+ if (policy === "dropOldest" && bytes <= this.limits.maxPendingBytes) {
283
+ let dropped = 0;
284
+ while (full() && this.#pending.length) {
285
+ this.#bytes -= this.#pending.shift().bytes;
286
+ dropped++;
287
+ }
288
+ this.#pending.push({ message, bytes, shardId });
289
+ this.#bytes += bytes;
290
+ this.#dropped(dropped, dropped === 1 ? "the oldest waiting event" : "the oldest waiting events", limit);
291
+ this.#arrival?.();
292
+ return;
293
+ }
294
+ if (policy !== "stop") {
295
+ this.#dropped(1, "the newest event", limit);
296
+ return;
297
+ }
298
+ const discarded = this.#pending.length + 1;
299
+ const failure = new EventOverflowError(limit, limit === "messages" ? this.limits.maxPendingMessages : this.limits.maxPendingBytes);
300
+ const logger = this.meta.logger?.();
301
+ logger?.countDrop("overflow", discarded);
302
+ if (!this.meta.managed)
303
+ logger?.log({
304
+ level: "warn",
305
+ category: "events",
306
+ code: "events.overflow",
307
+ message: `The ${this.meta.event} subscription ${this.meta.id} stopped because ${limit === "messages" ? `more than ${failure.capacity} ${failure.capacity === 1 ? "event was" : "events were"} waiting (maxPendingMessages)` : `waiting events exceeded ${failure.capacity} bytes (maxPendingBytes)`}, so ${discarded} unhandled ${discarded === 1 ? "event was" : "events were"} discarded`,
308
+ event: this.meta.event,
309
+ subscriptionId: this.meta.id,
310
+ fields: { limit, capacity: failure.capacity, discarded },
311
+ error: failure,
312
+ });
313
+ this.stop(failure);
314
+ }
315
+ #dropped(count, which, limit) {
316
+ const logger = this.meta.logger?.();
317
+ if (!logger)
318
+ return;
319
+ logger.drop({ event: "overflow", amount: count }, {
320
+ level: "warn",
321
+ category: "events",
322
+ code: "events.dropped",
323
+ message: `The queue of the ${this.meta.event} subscription ${this.meta.id} is full (${limit === "messages" ? "maxPendingMessages" : "maxPendingBytes"}), so ${which} ${count === 1 ? "was" : "were"} dropped`,
324
+ event: this.meta.event,
325
+ subscriptionId: this.meta.id,
326
+ fields: {
327
+ limit,
328
+ capacity: limit === "messages" ? this.limits.maxPendingMessages : this.limits.maxPendingBytes,
329
+ policy: this.limits.overflow,
330
+ },
331
+ });
332
+ }
333
+ /** Stop intake and discard waiting events. The reason names who stopped it in the record of what was discarded */
334
+ stop(failure, reason = "subscriptionClosed") {
335
+ if (!this.#active)
336
+ return;
337
+ this.#active = false;
338
+ this.#failure = failure;
339
+ // An overflow stop has already recorded and counted the events it discarded
340
+ if (!failure && this.#pending.length)
341
+ this.#discarded(this.#pending.length, reason);
342
+ this.#pending = [];
343
+ this.#bytes = 0;
344
+ for (const resume of this.#waiters)
345
+ resume(failure ? Effect.fail(failure) : Effect.succeed(null));
346
+ this.#waiters.clear();
347
+ this.#stopWorker?.();
348
+ if (!this.#managed)
349
+ this.finish(Exit.void);
350
+ }
351
+ /** Count the waiting events a stop discards and log one summary: Info when the client closes, Debug when the subscription closes */
352
+ #discarded(count, reason) {
353
+ const logger = this.meta.logger?.();
354
+ logger?.countDrop("closed", count);
355
+ logger?.log({
356
+ level: reason === "clientClosed" ? "info" : "debug",
357
+ category: "events",
358
+ code: "events.discarded",
359
+ message: `The ${this.meta.event} subscription ${this.meta.id} discarded ${count} waiting ${count === 1 ? "event" : "events"}, because ${reason === "clientClosed" ? "the client is closing" : "the subscription closed"}`,
360
+ event: this.meta.event,
361
+ subscriptionId: this.meta.id,
362
+ fields: { discarded: count, reason },
363
+ });
364
+ }
365
+ manage(stopWorker) {
366
+ this.#managed = true;
367
+ this.#stopWorker = stopWorker;
368
+ if (!this.#active)
369
+ stopWorker();
370
+ }
371
+ recordCleanup(exit) {
372
+ if (!this.#active && Exit.isFailure(exit) && Cause.hasDies(exit.cause)) {
373
+ this.#cleanupCause = Cause.combine(this.#cleanupCause, Cause.fromReasons(exit.cause.reasons.filter((reason) => reason._tag !== "Fail")));
374
+ }
375
+ }
376
+ finish(exit) {
377
+ this.#active = false;
378
+ this.#pending = [];
379
+ this.#bytes = 0;
380
+ this.#stopWorker = undefined;
381
+ this.#arrival = undefined;
382
+ this.release();
383
+ let cause = this.#failure ? Cause.fail(this.#failure) : Cause.empty;
384
+ if (Exit.isFailure(exit) && Cause.hasDies(exit.cause)) {
385
+ cause = Cause.combine(cause, Cause.fromReasons(exit.cause.reasons.filter((reason) => reason._tag !== "Fail")));
386
+ }
387
+ cause = Cause.fromReasons([...new Set([...cause.reasons, ...this.#cleanupCause.reasons])]);
388
+ Deferred.doneUnsafe(this.closed, cause.reasons.length ? Effect.failCause(cause) : Effect.void);
389
+ }
390
+ take() {
391
+ return Effect.map(this.takeDelivery(), (delivery) => (delivery === null ? null : delivery.message));
392
+ }
393
+ /** Take the next event with the shard and frame size it arrived with */
394
+ takeDelivery() {
395
+ return Effect.suspend(() => {
396
+ if (this.#failure)
397
+ return Effect.fail(this.#failure);
398
+ if (!this.#active)
399
+ return Effect.succeed(null);
400
+ const item = this.#pending.shift();
401
+ if (item) {
402
+ this.#bytes -= item.bytes;
403
+ return Effect.succeed(item);
404
+ }
405
+ return Effect.callback((resume) => {
406
+ this.#waiters.add(resume);
407
+ return Effect.sync(() => {
408
+ this.#waiters.delete(resume);
409
+ });
410
+ });
411
+ });
412
+ }
413
+ next() {
414
+ return Effect.suspend(() => {
415
+ if (this.#reading)
416
+ return Effect.fail(new EventReadBusyError());
417
+ this.#reading = true;
418
+ return this.take().pipe(Effect.ensuring(Effect.sync(() => {
419
+ this.#reading = false;
420
+ })));
421
+ });
422
+ }
423
+ }
424
+ class EventWait {
425
+ source;
426
+ deadline;
427
+ clock;
428
+ #stopped = false;
429
+ #filter;
430
+ constructor(source, filter, deadline, clock) {
431
+ this.source = source;
432
+ this.deadline = deadline;
433
+ this.clock = clock;
434
+ this.#filter = filter;
435
+ }
436
+ stop() {
437
+ if (this.#stopped)
438
+ return;
439
+ this.#stopped = true;
440
+ this.#filter = undefined;
441
+ this.source.stop();
442
+ }
443
+ #now() {
444
+ return nowMs(this.clock);
445
+ }
446
+ #expired() {
447
+ return this.#now() >= this.deadline;
448
+ }
449
+ #accept(event) {
450
+ if (!this.#filter)
451
+ return true;
452
+ let accepted;
453
+ try {
454
+ accepted = this.#filter(event);
455
+ }
456
+ catch (error) {
457
+ return new EventWaitError("filter", { cause: error });
458
+ }
459
+ discardInvalidCallbackReturn(accepted);
460
+ return typeof accepted === "boolean" ? accepted : new EventWaitError("filter");
461
+ }
462
+ wait() {
463
+ return Effect.suspend(() => {
464
+ const remaining = this.deadline - this.#now();
465
+ if (remaining <= 0) {
466
+ this.stop();
467
+ return Effect.fail(new EventWaitError("timeout"));
468
+ }
469
+ const waiter = this;
470
+ const wait = Effect.gen(function* () {
471
+ while (true) {
472
+ const event = yield* waiter.source.take();
473
+ if (event === null)
474
+ return yield* Effect.fail(new ClientClosedError());
475
+ if (waiter.#expired())
476
+ return yield* Effect.fail(new EventWaitError("timeout"));
477
+ const accepted = waiter.#accept(event);
478
+ if (accepted instanceof EventWaitError)
479
+ return yield* Effect.fail(accepted);
480
+ if (waiter.#expired())
481
+ return yield* Effect.fail(new EventWaitError("timeout"));
482
+ if (accepted)
483
+ return event;
484
+ }
485
+ });
486
+ return wait.pipe(withDeadline(Math.max(1, Math.ceil(remaining)), () => new EventWaitError("timeout")), Effect.ensuring(Effect.sync(() => this.stop())));
487
+ });
488
+ }
489
+ }
490
+ export class EventBus {
491
+ logging;
492
+ failures;
493
+ constructor(logging, failures) {
494
+ this.logging = logging;
495
+ this.failures = failures;
496
+ }
497
+ #nextId = 0;
498
+ #reactionCollectors = new Map();
499
+ /** Open reaction listeners that also receive single removals, so Identify keeps MESSAGE_REACTION_REMOVE */
500
+ #reactionRemovalListeners = 0;
501
+ /**
502
+ * Exact message selection precedes queue admission, and user filters run outside gateway decoding.
503
+ * With removals, single messageReactionRemove events reach the listener in the same order as additions
504
+ */
505
+ listenReactions(target, listener, shardId, removals = false) {
506
+ const key = `${target.channelId}:${target.id}`;
507
+ let listeners = this.#reactionCollectors.get(key);
508
+ if (!listeners)
509
+ this.#reactionCollectors.set(key, (listeners = new Set()));
510
+ const offer = (message, bytes, sourceShard, removal) => {
511
+ if ((removals || !removal) && (shardId === undefined || shardId === sourceShard))
512
+ listener(message, bytes);
513
+ };
514
+ listeners.add(offer);
515
+ if (removals)
516
+ this.#reactionRemovalListeners += 1;
517
+ let open = true;
518
+ return () => {
519
+ if (!open)
520
+ return;
521
+ open = false;
522
+ if (removals)
523
+ this.#reactionRemovalListeners -= 1;
524
+ listeners.delete(offer);
525
+ if (!listeners.size)
526
+ this.#reactionCollectors.delete(key);
527
+ };
528
+ }
529
+ #collectors = new Map();
530
+ /** Channel selection precedes collector queue admission. These callbacks only enqueue, never run user filters */
531
+ listenMessages(channelId, listener, shardId) {
532
+ let listeners = this.#collectors.get(channelId);
533
+ if (!listeners)
534
+ this.#collectors.set(channelId, (listeners = new Set()));
535
+ const offer = (message, bytes, sourceShard) => {
536
+ if (shardId === undefined || shardId === sourceShard)
537
+ listener(message, bytes);
538
+ };
539
+ listeners.add(offer);
540
+ return () => {
541
+ listeners.delete(offer);
542
+ if (!listeners.size)
543
+ this.#collectors.delete(channelId);
544
+ };
545
+ }
546
+ #sources = {
547
+ userUpdate: new Set(),
548
+ directMessageCreate: new Set(),
549
+ directMessageUpdate: new Set(),
550
+ directMessageDelete: new Set(),
551
+ directMessageRecipientAdd: new Set(),
552
+ directMessageRecipientRemove: new Set(),
553
+ guildCreate: new Set(),
554
+ guildUpdate: new Set(),
555
+ guildDelete: new Set(),
556
+ webhooksUpdate: new Set(),
557
+ inviteCreate: new Set(),
558
+ inviteDelete: new Set(),
559
+ guildAuditLogEntryCreate: new Set(),
560
+ guildEmojisUpdate: new Set(),
561
+ guildStickersUpdate: new Set(),
562
+ guildChannelCreate: new Set(),
563
+ guildChannelUpdate: new Set(),
564
+ guildChannelDelete: new Set(),
565
+ guildChannelUpdateBulk: new Set(),
566
+ threadCreate: new Set(),
567
+ threadUpdate: new Set(),
568
+ threadDelete: new Set(),
569
+ threadListSync: new Set(),
570
+ threadMembersUpdate: new Set(),
571
+ channelPinsUpdate: new Set(),
572
+ guildMemberAdd: new Set(),
573
+ guildMemberUpdate: new Set(),
574
+ guildMemberRemove: new Set(),
575
+ presenceUpdate: new Set(),
576
+ presenceUpdateBulk: new Set(),
577
+ voiceStateSnapshot: new Set(),
578
+ voiceStateUpdate: new Set(),
579
+ guildBanAdd: new Set(),
580
+ guildBanRemove: new Set(),
581
+ guildRoleDelete: new Set(),
582
+ guildRoleCreate: new Set(),
583
+ guildRoleUpdate: new Set(),
584
+ guildRoleUpdateBulk: new Set(),
585
+ typingStart: new Set(),
586
+ messageCreate: new Set(),
587
+ messageUpdate: new Set(),
588
+ messageDelete: new Set(),
589
+ messageDeleteBulk: new Set(),
590
+ messageReactionAdd: new Set(),
591
+ messageReactionAddMany: new Set(),
592
+ messageReactionRemove: new Set(),
593
+ messageReactionRemoveAll: new Set(),
594
+ messageReactionRemoveEmoji: new Set(),
595
+ guildHealthUpdate: new Set(),
596
+ entranceSoundPlay: new Set(),
597
+ callCreate: new Set(),
598
+ callUpdate: new Set(),
599
+ callDelete: new Set(),
600
+ raw: new Set(),
601
+ };
602
+ /** Registered middleware in registration order. Replaced rather than mutated, so an invocation keeps the list it started with */
603
+ #middleware = [];
604
+ /** Whether the bus stopped with its client, so registration fails with ClientClosedError */
605
+ get closed() {
606
+ return this.#closed;
607
+ }
608
+ /** Add middleware around later on handler invocations, returning its idempotent removal */
609
+ addMiddleware(middleware) {
610
+ // A wrapper gives each registration its own identity, even for a middleware function registered twice
611
+ const entry = (invocation, next) => middleware(invocation, next);
612
+ this.#middleware = [...this.#middleware, entry];
613
+ return () => {
614
+ this.#middleware = this.#middleware.filter((candidate) => candidate !== entry);
615
+ };
616
+ }
617
+ /** Whether any open source currently receives this event, so producers can skip building unused payloads */
618
+ hasSources(event) {
619
+ return this.#sources[event].size > 0;
620
+ }
621
+ /** Event names with at least one open subscription, stream, wait or collector */
622
+ registeredEvents() {
623
+ const names = new Set(Object.keys(this.#sources).filter((event) => this.#sources[event].size > 0));
624
+ if (this.#collectors.size)
625
+ names.add("messageCreate");
626
+ if (this.#reactionCollectors.size) {
627
+ names.add("messageReactionAdd");
628
+ names.add("messageReactionAddMany");
629
+ }
630
+ if (this.#reactionRemovalListeners)
631
+ names.add("messageReactionRemove");
632
+ return names;
633
+ }
634
+ #closed = false;
635
+ /** Whether intake stopped for a draining shutdown: New events and registrations are refused, admitted work continues */
636
+ #sealed = false;
637
+ /** Events refused after sealing that an open subscription or collector would have received, reported once when the bus stops */
638
+ #refused = 0;
639
+ /** Handler invocations started and not yet finished, counted from admission so a drain never misses one about to start */
640
+ #running = 0;
641
+ /** Released and replaced whenever a handler invocation finishes, so a drain can wait for progress */
642
+ #progress = Deferred.makeUnsafe();
643
+ #closingSources = [];
644
+ #handlerFibers = new Set();
645
+ ownsHandler(fiberId) {
646
+ return this.#handlerFibers.has(fiberId);
647
+ }
648
+ /** Stop intake for a draining shutdown. Handlers keep running, and events already waiting in on handler queues still run */
649
+ seal() {
650
+ this.#sealed = true;
651
+ }
652
+ /** Handler invocations still running and events still waiting in on handler queues */
653
+ drainState() {
654
+ let waiting = 0;
655
+ for (const sources of Object.values(this.#sources))
656
+ for (const source of sources)
657
+ if (source.meta.managed && source.active)
658
+ waiting += source.pendingCount;
659
+ return { running: this.#running, waiting };
660
+ }
661
+ /** Wait until the next handler invocation finishes */
662
+ progress() {
663
+ return Effect.suspend(() => Deferred.await(this.#progress));
664
+ }
665
+ #invocationFinished() {
666
+ this.#running--;
667
+ this.#signalProgress();
668
+ }
669
+ /** Wake a waiting drain after its work changed without a finished invocation, such as a closed subscription */
670
+ #signalProgress() {
671
+ const released = this.#progress;
672
+ this.#progress = Deferred.makeUnsafe();
673
+ Deferred.doneUnsafe(released, Effect.void);
674
+ }
675
+ diagnostics() {
676
+ return {
677
+ subscriptions: Object.values(this.#sources).reduce((total, sources) => total + sources.size, 0),
678
+ messageCollectors: [...this.#collectors.values()].reduce((total, listeners) => total + listeners.size, 0),
679
+ reactionCollectors: [...this.#reactionCollectors.values()].reduce((total, listeners) => total + listeners.size, 0),
680
+ activeHandlers: this.#handlerFibers.size,
681
+ };
682
+ }
683
+ /**
684
+ * Open a source for one event. Misuse fails with ConfigurationError before the closed check. On a closing or closed
685
+ * bus, whenClosed "closed" returns an already-stopped source that never receives events, because shutdown can race a
686
+ * still-running handler that registers, and whenClosed "fail" fails with ClientClosedError for one-shot waits.
687
+ * An omitted overflow policy uses defaultOverflow, stop unless the caller names another
688
+ */
689
+ open(event, options, behavior = {}) {
690
+ const { managed = false, whenClosed = "closed", defaultOverflow = "stop" } = behavior;
691
+ return Effect.suspend(() => {
692
+ if (typeof event !== "string" || !Object.hasOwn(this.#sources, event))
693
+ return Effect.fail(unknownEventError(event, Object.keys(this.#sources)));
694
+ let settings;
695
+ try {
696
+ settings = limits(options, defaultOverflow);
697
+ }
698
+ catch (error) {
699
+ return Effect.failCause(inputDefect(error));
700
+ }
701
+ if (settings instanceof ConfigurationError)
702
+ return Effect.fail(settings);
703
+ // A draining client receives no new events, so a new registration is as closed as after shutdown
704
+ if (this.#closed || this.#sealed)
705
+ return whenClosed === "fail"
706
+ ? Effect.fail(new ClientClosedError())
707
+ : Effect.succeed(this.#closedSource(event, settings, managed));
708
+ const sources = this.#sources[event];
709
+ const source = new EventSource(settings, () => {
710
+ sources.delete(source);
711
+ this.#signalProgress();
712
+ }, {
713
+ event,
714
+ id: `${event}#${++this.#nextId}`,
715
+ logger: this.logging,
716
+ managed,
717
+ });
718
+ sources.add(source);
719
+ return Effect.succeed(source);
720
+ });
721
+ }
722
+ /** A source registered after shutdown began: Stopped at once, never added to the bus and recorded as a warning */
723
+ #closedSource(event, settings, managed) {
724
+ const id = `${event}#${++this.#nextId}`;
725
+ const source = new EventSource(settings, () => undefined, {
726
+ event,
727
+ id,
728
+ logger: this.logging,
729
+ managed,
730
+ });
731
+ source.stop();
732
+ this.logging?.().log({
733
+ level: "warn",
734
+ category: "events",
735
+ code: "events.registeredAfterShutdown",
736
+ message: `The ${event} subscription ${id} was registered after the client began shutting down, so it starts closed and receives no events`,
737
+ event,
738
+ subscriptionId: id,
739
+ });
740
+ return source;
741
+ }
742
+ offer(event, message, bytes, shardId = 0) {
743
+ const reaction = event === "messageReactionAdd" ||
744
+ event === "messageReactionAddMany" ||
745
+ (event === "messageReactionRemove" && this.#reactionRemovalListeners)
746
+ ? message
747
+ : undefined;
748
+ const reactionCollectors = reaction && this.#reactionCollectors.get(`${reaction.channelId}:${reaction.id}`);
749
+ const messageCollectors = event === "messageCreate" && isMessageEvent(event, message)
750
+ ? this.#collectors.get(message.channelId)
751
+ : undefined;
752
+ if (this.#sealed) {
753
+ // Collectors count too, so an event only a collector would have received is still recorded
754
+ if (this.#sources[event].size || reactionCollectors || messageCollectors)
755
+ this.#refused++;
756
+ return;
757
+ }
758
+ for (const offer of reactionCollectors ?? [])
759
+ offer(reaction, bytes, shardId, event === "messageReactionRemove");
760
+ for (const offer of messageCollectors ?? [])
761
+ offer(message, bytes, shardId);
762
+ for (const source of this.#sources[event])
763
+ source.offer(message, bytes, shardId);
764
+ }
765
+ stop() {
766
+ if (this.#closed)
767
+ return;
768
+ this.#closed = true;
769
+ if (this.#refused) {
770
+ const logger = this.logging?.();
771
+ logger?.countDrop("closed", this.#refused);
772
+ logger?.log({
773
+ level: "info",
774
+ category: "events",
775
+ code: "events.refused",
776
+ message: `The draining shutdown refused ${this.#refused} received ${this.#refused === 1 ? "event" : "events"} that open subscriptions or collectors would have received, because it accepts no new events`,
777
+ fields: { refused: this.#refused },
778
+ });
779
+ }
780
+ this.#closingSources = Object.values(this.#sources).flatMap((sources) => [...sources]);
781
+ for (const source of this.#closingSources)
782
+ source.stop(undefined, "clientClosed");
783
+ }
784
+ shutdown() {
785
+ return Effect.suspend(() => {
786
+ this.stop();
787
+ return Effect.forEach(this.#closingSources, (source) => Effect.exit(Deferred.await(source.closed)), {
788
+ concurrency: "unbounded",
789
+ }).pipe(Effect.flatMap((exits) => {
790
+ const reasons = exits.flatMap((exit) => Exit.isFailure(exit) && Cause.hasDies(exit.cause)
791
+ ? exit.cause.reasons.filter((reason) => reason._tag !== "Fail")
792
+ : []);
793
+ return reasons.length ? Effect.failCause(Cause.fromReasons(reasons)) : Effect.void;
794
+ }), Effect.ensuring(Effect.sync(() => {
795
+ this.#closingSources = [];
796
+ })));
797
+ });
798
+ }
799
+ stream(event, options) {
800
+ const bus = this;
801
+ return Stream.unwrap(Effect.gen(function* () {
802
+ const source = yield* Effect.acquireRelease(bus.open(event, options), (source) => Effect.sync(() => source.stop()));
803
+ return Stream.fromEffectRepeat(source.take()).pipe(Stream.takeWhile((message) => message !== null), Stream.map((message) => message));
804
+ }));
805
+ }
806
+ on(event, handler, options, onError, scope, command) {
807
+ const bus = this;
808
+ return Effect.uninterruptible(Effect.gen(function* () {
809
+ if (typeof handler !== "function")
810
+ return yield* Effect.fail(new ConfigurationError("handler", "The event handler must be a function"));
811
+ if (onError !== undefined && typeof onError !== "function")
812
+ return yield* Effect.fail(new ConfigurationError("onError", 'The option "onError" must be a function'));
813
+ // Handlers drop the oldest waiting event by default, so one burst never ends a long-lived handler
814
+ const source = yield* bus.open(event, options, { managed: true, defaultOverflow: "dropOldest" });
815
+ // A registration after shutdown began gets an already-closed subscription with no worker or hook queue
816
+ if (!source.active)
817
+ return source;
818
+ // The subscription's own hook gets a bounded queue with one worker in the registration context, so
819
+ // reporting only enqueues: Hooks run one at a time in order and never hold a handler slot or shutdown
820
+ let hooks;
821
+ if (onError !== undefined) {
822
+ const hook = onError;
823
+ const context = (yield* Effect.context());
824
+ const failures = bus.failures?.();
825
+ hooks = failures
826
+ ? failures.subscriptionQueue(hook, context)
827
+ : standaloneHookQueue(() => bus.logging?.(), hook, context);
828
+ }
829
+ const report = (kind, cause, message) => Effect.withFiber((fiber) => {
830
+ const logger = bus.logging?.();
831
+ try {
832
+ const internal = makeReport({
833
+ kind,
834
+ cause,
835
+ event,
836
+ command,
837
+ subscriptionId: source.id,
838
+ message: messageReference(message),
839
+ }, logger?.secrets);
840
+ if (kind === "handler")
841
+ metrics.handlerFailure(command ?? event, fiber.context);
842
+ if (hooks) {
843
+ if (kind === "handler")
844
+ logger?.count("handlerFailures");
845
+ hooks.offer(internal);
846
+ return Effect.void;
847
+ }
848
+ const failures = bus.failures?.();
849
+ if (failures)
850
+ failures.report(internal, fiber.context);
851
+ else if (logger)
852
+ logHandlerReport(logger, internal, fiber.context);
853
+ }
854
+ catch (fault) {
855
+ // Reporting never alters handler scheduling or subscription lifetime
856
+ logger?.outputFailure(fault);
857
+ }
858
+ return Effect.void;
859
+ });
860
+ const failed = (outcome, cause, message) => {
861
+ outcome.failure ??= cause;
862
+ return report("handler", cause, message);
863
+ };
864
+ const reported = (effect, message, outcome) => effect.pipe(Effect.asVoid, Effect.catchCause((cause) => Cause.hasInterrupts(cause)
865
+ ? Effect.failCause(Cause.fromReasons(cause.reasons.filter((reason) => reason._tag !== "Fail")))
866
+ : failed(outcome, cause, message)));
867
+ // Run the middleware registered when this invocation starts, first registered outermost, around the handler
868
+ const invoke = (message, context, outcome) => {
869
+ const chain = bus.#middleware;
870
+ if (chain.length === 0)
871
+ return handler(message, context);
872
+ const invocation = Object.freeze({
873
+ event,
874
+ payload: message,
875
+ context,
876
+ subscriptionId: source.id,
877
+ });
878
+ const step = (index) => {
879
+ if (index === chain.length)
880
+ return Effect.suspend(() => handler(message, context));
881
+ return Effect.suspend(() => {
882
+ let started;
883
+ let finished = false;
884
+ const next = Effect.suspend(() => {
885
+ if (finished)
886
+ return failed(outcome, Cause.fail(new ConfigurationError("next", "Event middleware called next after it finished, so the rest of the chain did not run", { hint: "Return or await the result of next inside the middleware" })), message);
887
+ // A repeated call observes the same run instead of invoking the handler again
888
+ if (started)
889
+ return Deferred.await(started);
890
+ const done = (started = Deferred.makeUnsafe());
891
+ return reported(step(index + 1), message, outcome).pipe(Effect.ensuring(Effect.sync(() => Deferred.doneUnsafe(done, Effect.void))));
892
+ });
893
+ return Effect.exit(Effect.suspend(() => chain[index](invocation, next))).pipe(Effect.flatMap((exit) => {
894
+ finished = true;
895
+ // A middleware that started next without awaiting it still holds this handler slot until the chain ends
896
+ return started ? Deferred.await(started).pipe(Effect.andThen(exit)) : exit;
897
+ }));
898
+ });
899
+ };
900
+ return step(0);
901
+ };
902
+ /** Report one finished invocation to the application observer */
903
+ const observeInvocation = (exit, outcome, context, startedAt) => {
904
+ const logger = bus.logging?.();
905
+ const cancelled = Exit.isFailure(exit) && Cause.hasInterrupts(exit.cause);
906
+ const failure = cancelled ? undefined : outcome.failure;
907
+ emitObservation(logger, {
908
+ type: "handler",
909
+ event,
910
+ ...(outcome.command === undefined ? {} : { command: outcome.command }),
911
+ subscriptionId: source.id,
912
+ shardId: context.shardId,
913
+ durationMs: performance.now() - startedAt,
914
+ outcome: cancelled ? "cancelled" : failure ? "failure" : "success",
915
+ ...(failure ? failureFacts(primaryError(failure), logger?.secrets ?? []) : {}),
916
+ });
917
+ };
918
+ let active = 0;
919
+ let capacity = Deferred.makeUnsafe();
920
+ // Replace the latch before releasing it. Completion resumes the waiting loop synchronously, and a loop
921
+ // that found the completed latch again would spin
922
+ const wake = () => {
923
+ const released = capacity;
924
+ capacity = Deferred.makeUnsafe();
925
+ Deferred.doneUnsafe(released, Effect.void);
926
+ };
927
+ const partition = source.limits.partition;
928
+ /** Partition keys with a running invocation, so later events of the same key wait their turn */
929
+ const busyKeys = new Set();
930
+ const worker = (delivery) => Effect.withFiber((fiber) => {
931
+ const { message } = delivery;
932
+ const context = eventContext(delivery);
933
+ const outcome = { command, failure: undefined };
934
+ const startedAt = observing(bus.logging?.()) ? performance.now() : undefined;
935
+ // Rejection records of this invocation wait for its outcome, so a failure is logged once
936
+ const rejections = new RejectionScope();
937
+ invocationOutcomes.set(rejections, outcome);
938
+ const invocation = Effect.gen(function* () {
939
+ bus.#handlerFibers.add(fiber.id);
940
+ yield* Effect.scoped(Effect.suspend(() => invoke(message, context, outcome))).pipe(Effect.withSpan(command === undefined ? "fluxerly.event.handle" : "fluxerly.command.execute", {
941
+ attributes: {
942
+ "fluxerly.event": event,
943
+ "fluxerly.subscription": source.id,
944
+ ...(command === undefined ? {} : { "fluxerly.command": command }),
945
+ },
946
+ },
947
+ // The SDK-internal call site gives applications nothing, and capturing it costs every invocation
948
+ { captureStackTrace: false }), Effect.onExit((exit) => Effect.sync(() => {
949
+ source.recordCleanup(exit);
950
+ })), Effect.catchCause((cause) => {
951
+ if (Cause.hasInterrupts(cause))
952
+ return Effect.failCause(Cause.fromReasons(cause.reasons.filter((reason) => reason._tag !== "Fail")));
953
+ return failed(outcome, cause, message);
954
+ }));
955
+ });
956
+ return withRejectionScope(invocation, rejections).pipe(Effect.ensuring(Effect.sync(() => rejections.end())), Effect.onExit((exit) => Effect.sync(() => {
957
+ invocationOutcomes.delete(rejections);
958
+ if (startedAt !== undefined)
959
+ observeInvocation(exit, outcome, context, startedAt);
960
+ })));
961
+ });
962
+ /** Release an invocation's slot and key. Runs as a fiber observer, so it also runs for a worker interrupted before it started */
963
+ const finished = (fiberId, key) => {
964
+ bus.#handlerFibers.delete(fiberId);
965
+ active--;
966
+ if (key !== undefined)
967
+ busyKeys.delete(key);
968
+ bus.#invocationFinished();
969
+ wake();
970
+ };
971
+ /** The partition key of a waiting event, computed once. A throwing or invalid partition function becomes the event's failure */
972
+ const keyOf = (delivery) => {
973
+ if (delivery.key !== undefined)
974
+ return delivery.key;
975
+ let key;
976
+ try {
977
+ const value = partitionKey(partition, event, delivery.message);
978
+ key =
979
+ value === undefined
980
+ ? ""
981
+ : typeof value === "string"
982
+ ? value
983
+ : {
984
+ failure: new ConfigurationError("partition", "The partition function must return a string or undefined"),
985
+ };
986
+ }
987
+ catch (error) {
988
+ key = { failure: error };
989
+ }
990
+ delivery.key = key;
991
+ return key;
992
+ };
993
+ // An event whose key is running waits, while a later event of another key can start before it
994
+ const eligible = (delivery) => {
995
+ const key = keyOf(delivery);
996
+ return typeof key !== "string" || !busyKeys.has(key);
997
+ };
998
+ // Allocate work only for received messages, not one idle fiber for every configured concurrency slot
999
+ const program = Effect.scoped(Effect.gen(function* () {
1000
+ if (partition !== undefined)
1001
+ source.onArrival(wake);
1002
+ while (source.active) {
1003
+ if (active >= source.limits.concurrency) {
1004
+ yield* Deferred.await(capacity);
1005
+ continue;
1006
+ }
1007
+ let delivery;
1008
+ let key;
1009
+ if (partition === undefined) {
1010
+ delivery = yield* source.takeDelivery();
1011
+ if (delivery === null || !source.active)
1012
+ return;
1013
+ }
1014
+ else {
1015
+ // Nothing can arrive or finish between this scan and the wait, so no wake-up is missed
1016
+ const latch = capacity;
1017
+ delivery = source.takeFirst(eligible);
1018
+ if (delivery === undefined) {
1019
+ yield* Deferred.await(latch);
1020
+ continue;
1021
+ }
1022
+ const selected = keyOf(delivery);
1023
+ if (typeof selected !== "string") {
1024
+ // The handler cannot run without a key, so the failure is reported in its place
1025
+ yield* report("handler", Cause.fail(selected.failure), delivery.message);
1026
+ bus.#signalProgress();
1027
+ continue;
1028
+ }
1029
+ key = selected;
1030
+ busyKeys.add(key);
1031
+ }
1032
+ active++;
1033
+ bus.#running++;
1034
+ const invocation = yield* Effect.forkScoped(worker(delivery).pipe(
1035
+ // allow-silent: The worker reports handler failures itself, so only interruption reaches this point
1036
+ Effect.catchCause(() => Effect.void)));
1037
+ const selectedKey = key;
1038
+ invocation.addObserver(() => finished(invocation.id, selectedKey));
1039
+ }
1040
+ }).pipe(Effect.onExit(() => Effect.sync(() => source.stop())))).pipe(Effect.interruptible, Effect.onExit((exit) => Effect.gen(function* () {
1041
+ source.stop();
1042
+ if (source.failure)
1043
+ yield* report("overflow", Cause.fail(source.failure));
1044
+ source.finish(exit);
1045
+ })),
1046
+ // allow-silent: The source.finish call retains the subscription outcome for waitForClose
1047
+ Effect.catchCause(() => Effect.void));
1048
+ // Effect.forkIn retains the registration caller's context, with no hidden native runPromise or detached runtime
1049
+ // Install closure before enabling interruption, including cancellation before the first fiber turn
1050
+ const fiber = yield* Effect.forkIn(program, scope, { uninterruptible: true });
1051
+ source.manage(() => fiber.interruptUnsafe());
1052
+ return source;
1053
+ }));
1054
+ }
1055
+ }
1056
+ function openEventWait(bus, event, options, allowSignal = false) {
1057
+ return Clock.clockWith((clock) => Effect.gen(function* () {
1058
+ const settings = yield* readInput(() => eventWaitSettings(options, allowSignal));
1059
+ if (settings instanceof ConfigurationError)
1060
+ return yield* Effect.fail(settings);
1061
+ // A one-shot wait on a closing client keeps its distinct ClientClosedError failure
1062
+ const source = yield* bus.open(event, settings.buffer, { whenClosed: "fail" });
1063
+ const now = nowMs(clock);
1064
+ return new EventWait(source, settings.filter, now + settings.timeoutMs, clock);
1065
+ }));
1066
+ }
1067
+ /** One lazy wait. Its internal scope releases intake on completion, timeout, interruption or client shutdown */
1068
+ export function waitForEvent(bus, event, options, allowSignal = false) {
1069
+ return Effect.scoped(Effect.acquireRelease(openEventWait(bus, event, options, allowSignal), (source) => Effect.sync(() => source.stop())).pipe(Effect.flatMap((source) => source.wait())));
1070
+ }
1071
+ //# sourceMappingURL=events.js.map