@erinjs/core 1.0.0 → 1.2.4

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 (394) hide show
  1. package/{core/LICENSE → LICENSE} +203 -203
  2. package/README.md +46 -0
  3. package/dist/index.d.mts +2084 -0
  4. package/dist/index.d.ts +2084 -0
  5. package/dist/index.js +3867 -0
  6. package/dist/index.mjs +3809 -0
  7. package/package.json +50 -15
  8. package/core/.changeset/README.md +0 -8
  9. package/core/.changeset/community-bootstrap-release.md +0 -17
  10. package/core/.changeset/config.json +0 -11
  11. package/core/.changeset/no-changelog.js +0 -16
  12. package/core/.changeset/pre.json +0 -17
  13. package/core/.editorconfig +0 -13
  14. package/core/.gitattributes +0 -2
  15. package/core/.github/CODE_OF_CONDUCT.md +0 -23
  16. package/core/.github/FUNDING.yml +0 -7
  17. package/core/.github/ISSUE_TEMPLATE/bug_report.md +0 -31
  18. package/core/.github/ISSUE_TEMPLATE/feature_request.md +0 -23
  19. package/core/.github/PULL_REQUEST_TEMPLATE.md +0 -16
  20. package/core/.github/dependabot.yml +0 -16
  21. package/core/.github/workflows/autoapp.yml +0 -16
  22. package/core/.github/workflows/ci.yml +0 -187
  23. package/core/.github/workflows/codeql.yml +0 -30
  24. package/core/.github/workflows/deploy-docs.yml +0 -54
  25. package/core/.github/workflows/publish.yml +0 -43
  26. package/core/.lintstagedrc.json +0 -4
  27. package/core/.nvmrc +0 -1
  28. package/core/.prettierignore +0 -8
  29. package/core/.prettierrc +0 -11
  30. package/core/CONTRIBUTING.md +0 -70
  31. package/core/README.md +0 -61
  32. package/core/SECURITY.md +0 -21
  33. package/core/apps/docs/index.html +0 -28
  34. package/core/apps/docs/middleware.ts +0 -21
  35. package/core/apps/docs/package.json +0 -33
  36. package/core/apps/docs/public/@flux.png +0 -0
  37. package/core/apps/docs/public/docs/latest/guides.json +0 -1420
  38. package/core/apps/docs/public/docs/latest/main.json +0 -14981
  39. package/core/apps/docs/public/docs/latest/rag-index.json +0 -1
  40. package/core/apps/docs/public/docs/v1.0.5/guides.json +0 -226
  41. package/core/apps/docs/public/docs/v1.0.5/main.json +0 -7920
  42. package/core/apps/docs/public/docs/v1.0.6/guides.json +0 -226
  43. package/core/apps/docs/public/docs/v1.0.6/main.json +0 -7920
  44. package/core/apps/docs/public/docs/v1.0.7/guides.json +0 -259
  45. package/core/apps/docs/public/docs/v1.0.7/main.json +0 -8652
  46. package/core/apps/docs/public/docs/v1.0.8/guides.json +0 -313
  47. package/core/apps/docs/public/docs/v1.0.8/main.json +0 -9618
  48. package/core/apps/docs/public/docs/v1.0.9/guides.json +0 -319
  49. package/core/apps/docs/public/docs/v1.0.9/main.json +0 -10694
  50. package/core/apps/docs/public/docs/v1.1.0/guides.json +0 -589
  51. package/core/apps/docs/public/docs/v1.1.0/main.json +0 -12576
  52. package/core/apps/docs/public/docs/v1.1.2/guides.json +0 -650
  53. package/core/apps/docs/public/docs/v1.1.2/main.json +0 -13239
  54. package/core/apps/docs/public/docs/v1.1.3/guides.json +0 -650
  55. package/core/apps/docs/public/docs/v1.1.3/main.json +0 -13239
  56. package/core/apps/docs/public/docs/v1.1.4/guides.json +0 -708
  57. package/core/apps/docs/public/docs/v1.1.4/main.json +0 -13231
  58. package/core/apps/docs/public/docs/v1.1.5/guides.json +0 -1035
  59. package/core/apps/docs/public/docs/v1.1.5/main.json +0 -13838
  60. package/core/apps/docs/public/docs/v1.1.6/guides.json +0 -1041
  61. package/core/apps/docs/public/docs/v1.1.6/main.json +0 -14313
  62. package/core/apps/docs/public/docs/v1.1.8/guides.json +0 -1047
  63. package/core/apps/docs/public/docs/v1.1.8/main.json +0 -14421
  64. package/core/apps/docs/public/docs/v1.1.9/guides.json +0 -1047
  65. package/core/apps/docs/public/docs/v1.1.9/main.json +0 -14421
  66. package/core/apps/docs/public/docs/v1.2.0/guides.json +0 -1212
  67. package/core/apps/docs/public/docs/v1.2.0/main.json +0 -14663
  68. package/core/apps/docs/public/docs/v1.2.1/guides.json +0 -1293
  69. package/core/apps/docs/public/docs/v1.2.1/main.json +0 -14828
  70. package/core/apps/docs/public/docs/v1.2.2/guides.json +0 -1293
  71. package/core/apps/docs/public/docs/v1.2.2/main.json +0 -15025
  72. package/core/apps/docs/public/docs/v1.2.3/guides.json +0 -1420
  73. package/core/apps/docs/public/docs/v1.2.3/main.json +0 -14954
  74. package/core/apps/docs/public/docs/v1.2.4/guides.json +0 -1420
  75. package/core/apps/docs/public/docs/v1.2.4/main.json +0 -14981
  76. package/core/apps/docs/public/docs/versions.json +0 -24
  77. package/core/apps/docs/public/flux.png +0 -0
  78. package/core/apps/docs/public/locales/en.json +0 -50
  79. package/core/apps/docs/public/locales/guides-en.json +0 -512
  80. package/core/apps/docs/public/robots.txt +0 -4
  81. package/core/apps/docs/public/sitemap.xml +0 -33
  82. package/core/apps/docs/src/App.vue +0 -538
  83. package/core/apps/docs/src/components/ApiCategorySection.vue +0 -42
  84. package/core/apps/docs/src/components/ApiDiscordCompat.vue +0 -65
  85. package/core/apps/docs/src/components/ApiEndpointCard.vue +0 -313
  86. package/core/apps/docs/src/components/ApiSchemaBlock.vue +0 -131
  87. package/core/apps/docs/src/components/CodeBlock.vue +0 -177
  88. package/core/apps/docs/src/components/CommunityCallout.vue +0 -90
  89. package/core/apps/docs/src/components/ConstructorSection.vue +0 -82
  90. package/core/apps/docs/src/components/DocDescription.vue +0 -40
  91. package/core/apps/docs/src/components/FluxerLogo.vue +0 -3
  92. package/core/apps/docs/src/components/Footer.vue +0 -106
  93. package/core/apps/docs/src/components/GuideCodeBlock.vue +0 -102
  94. package/core/apps/docs/src/components/GuideDiscordCompat.vue +0 -77
  95. package/core/apps/docs/src/components/GuideDiscordCompatCallout.vue +0 -83
  96. package/core/apps/docs/src/components/GuideTable.vue +0 -77
  97. package/core/apps/docs/src/components/GuideTip.vue +0 -38
  98. package/core/apps/docs/src/components/MethodsSection.vue +0 -195
  99. package/core/apps/docs/src/components/ParamsTable.vue +0 -70
  100. package/core/apps/docs/src/components/PropertiesSection.vue +0 -143
  101. package/core/apps/docs/src/components/SearchBar.vue +0 -76
  102. package/core/apps/docs/src/components/SearchModal.vue +0 -361
  103. package/core/apps/docs/src/components/SidebarNav.vue +0 -225
  104. package/core/apps/docs/src/components/SponsorBanner.vue +0 -153
  105. package/core/apps/docs/src/components/TypeSignature.vue +0 -187
  106. package/core/apps/docs/src/components/VersionPicker.vue +0 -191
  107. package/core/apps/docs/src/composables/useSearchIndex.ts +0 -144
  108. package/core/apps/docs/src/composables/useVersionedPath.ts +0 -20
  109. package/core/apps/docs/src/data/apiEndpoints.ts +0 -1073
  110. package/core/apps/docs/src/data/changelog.ts +0 -717
  111. package/core/apps/docs/src/data/guides.ts +0 -2362
  112. package/core/apps/docs/src/env.d.ts +0 -7
  113. package/core/apps/docs/src/locales/guides-en.json +0 -512
  114. package/core/apps/docs/src/main.ts +0 -27
  115. package/core/apps/docs/src/pages/ApiReferenceLayout.vue +0 -175
  116. package/core/apps/docs/src/pages/ApiReferencePage.vue +0 -128
  117. package/core/apps/docs/src/pages/Changelog.vue +0 -288
  118. package/core/apps/docs/src/pages/ClassPage.vue +0 -319
  119. package/core/apps/docs/src/pages/ClassesList.vue +0 -100
  120. package/core/apps/docs/src/pages/DocsLayout.vue +0 -127
  121. package/core/apps/docs/src/pages/GuidePage.vue +0 -279
  122. package/core/apps/docs/src/pages/GuidesIndex.vue +0 -166
  123. package/core/apps/docs/src/pages/GuidesLayout.vue +0 -245
  124. package/core/apps/docs/src/pages/Home.vue +0 -125
  125. package/core/apps/docs/src/pages/NotFound.vue +0 -57
  126. package/core/apps/docs/src/pages/TypedefPage.vue +0 -230
  127. package/core/apps/docs/src/pages/TypedefsList.vue +0 -168
  128. package/core/apps/docs/src/pages/VersionLayout.vue +0 -15
  129. package/core/apps/docs/src/router.ts +0 -73
  130. package/core/apps/docs/src/stores/docs.ts +0 -54
  131. package/core/apps/docs/src/stores/guides.ts +0 -53
  132. package/core/apps/docs/src/stores/version.ts +0 -67
  133. package/core/apps/docs/src/styles/main.css +0 -278
  134. package/core/apps/docs/src/styles/prism.css +0 -95
  135. package/core/apps/docs/src/types/doc-schema.ts +0 -112
  136. package/core/apps/docs/tsconfig.json +0 -17
  137. package/core/apps/docs/tsconfig.node.json +0 -10
  138. package/core/apps/docs/vite.config.d.ts +0 -2
  139. package/core/apps/docs/vite.config.js +0 -26
  140. package/core/apps/docs/vite.config.ts +0 -28
  141. package/core/apps/docs-vitepress/.vitepress/config.ts +0 -141
  142. package/core/apps/docs-vitepress/api-data/latest/main.json +0 -15035
  143. package/core/apps/docs-vitepress/api-data/v1.2.4/main.json +0 -15035
  144. package/core/apps/docs-vitepress/api-data/versions.json +0 -6
  145. package/core/apps/docs-vitepress/index.md +0 -15
  146. package/core/apps/docs-vitepress/package-lock.json +0 -2924
  147. package/core/apps/docs-vitepress/package.json +0 -20
  148. package/core/apps/docs-vitepress/public/CNAME +0 -1
  149. package/core/apps/docs-vitepress/scripts/generate-api.ts +0 -243
  150. package/core/apps/docs-vitepress/scripts/migrate-guides.ts +0 -129
  151. package/core/apps/docs-vitepress/tsconfig.json +0 -11
  152. package/core/apps/docs-vitepress/v/latest/guides/attachments-by-url.md +0 -57
  153. package/core/apps/docs-vitepress/v/latest/guides/attachments.md +0 -62
  154. package/core/apps/docs-vitepress/v/latest/guides/basic-bot.md +0 -49
  155. package/core/apps/docs-vitepress/v/latest/guides/channels.md +0 -180
  156. package/core/apps/docs-vitepress/v/latest/guides/deprecated-apis.md +0 -58
  157. package/core/apps/docs-vitepress/v/latest/guides/discord-js-compatibility.md +0 -42
  158. package/core/apps/docs-vitepress/v/latest/guides/editing-embeds.md +0 -65
  159. package/core/apps/docs-vitepress/v/latest/guides/embed-media.md +0 -87
  160. package/core/apps/docs-vitepress/v/latest/guides/embeds.md +0 -166
  161. package/core/apps/docs-vitepress/v/latest/guides/emojis.md +0 -77
  162. package/core/apps/docs-vitepress/v/latest/guides/events.md +0 -202
  163. package/core/apps/docs-vitepress/v/latest/guides/gifs.md +0 -47
  164. package/core/apps/docs-vitepress/v/latest/guides/installation.md +0 -10
  165. package/core/apps/docs-vitepress/v/latest/guides/moderation.md +0 -89
  166. package/core/apps/docs-vitepress/v/latest/guides/permissions.md +0 -130
  167. package/core/apps/docs-vitepress/v/latest/guides/prefix-commands.md +0 -41
  168. package/core/apps/docs-vitepress/v/latest/guides/profile-urls.md +0 -58
  169. package/core/apps/docs-vitepress/v/latest/guides/reactions.md +0 -69
  170. package/core/apps/docs-vitepress/v/latest/guides/roles.md +0 -130
  171. package/core/apps/docs-vitepress/v/latest/guides/sending-without-reply.md +0 -172
  172. package/core/apps/docs-vitepress/v/latest/guides/voice.md +0 -109
  173. package/core/apps/docs-vitepress/v/latest/guides/wait-for-guilds.md +0 -37
  174. package/core/apps/docs-vitepress/v/latest/guides/webhook-attachments-embeds.md +0 -73
  175. package/core/apps/docs-vitepress/v/latest/guides/webhooks.md +0 -131
  176. package/core/eslint.config.js +0 -80
  177. package/core/examples/.env.example +0 -22
  178. package/core/examples/README.md +0 -68
  179. package/core/examples/first-steps-bot.js +0 -118
  180. package/core/examples/minimal-bot.js +0 -17
  181. package/core/examples/moderation-bot.js +0 -209
  182. package/core/examples/package.json +0 -14
  183. package/core/examples/ping-bot.js +0 -1146
  184. package/core/examples/reaction-bot.js +0 -70
  185. package/core/examples/reaction-roles-bot.js +0 -140
  186. package/core/examples/webhook-bot.js +0 -239
  187. package/core/flux.png +0 -0
  188. package/core/package.json +0 -78
  189. package/core/packages/builders/package.json +0 -51
  190. package/core/packages/builders/src/index.ts +0 -13
  191. package/core/packages/builders/src/messages/AttachmentBuilder.test.ts +0 -79
  192. package/core/packages/builders/src/messages/AttachmentBuilder.ts +0 -69
  193. package/core/packages/builders/src/messages/EmbedBuilder.test.ts +0 -266
  194. package/core/packages/builders/src/messages/EmbedBuilder.ts +0 -239
  195. package/core/packages/builders/src/messages/MessagePayload.test.ts +0 -118
  196. package/core/packages/builders/src/messages/MessagePayload.ts +0 -122
  197. package/core/packages/builders/tsconfig.json +0 -9
  198. package/core/packages/builders/tsup.config.ts +0 -9
  199. package/core/packages/builders/vitest.config.ts +0 -9
  200. package/core/packages/collection/package.json +0 -47
  201. package/core/packages/collection/src/Collection.test.ts +0 -232
  202. package/core/packages/collection/src/Collection.ts +0 -196
  203. package/core/packages/collection/src/index.ts +0 -1
  204. package/core/packages/collection/tsconfig.json +0 -9
  205. package/core/packages/collection/tsup.config.ts +0 -9
  206. package/core/packages/collection/vitest.config.ts +0 -9
  207. package/core/packages/docgen/package.json +0 -26
  208. package/core/packages/docgen/src/extract.ts +0 -262
  209. package/core/packages/docgen/src/formatType.ts +0 -24
  210. package/core/packages/docgen/src/index.ts +0 -103
  211. package/core/packages/docgen/src/schema.ts +0 -100
  212. package/core/packages/docgen/src/visitor.ts +0 -147
  213. package/core/packages/docgen/tsconfig.json +0 -9
  214. package/core/packages/docgen/tsup.config.ts +0 -9
  215. package/core/packages/fluxer-core/README.md +0 -26
  216. package/core/packages/fluxer-core/package.json +0 -60
  217. package/core/packages/fluxer-core/src/client/ChannelManager.ts +0 -143
  218. package/core/packages/fluxer-core/src/client/Client.gateway.test.ts +0 -84
  219. package/core/packages/fluxer-core/src/client/Client.resolveEmoji.test.ts +0 -45
  220. package/core/packages/fluxer-core/src/client/Client.ts +0 -558
  221. package/core/packages/fluxer-core/src/client/ClientUser.ts +0 -40
  222. package/core/packages/fluxer-core/src/client/EventHandlerRegistry.ts +0 -469
  223. package/core/packages/fluxer-core/src/client/GuildManager.ts +0 -79
  224. package/core/packages/fluxer-core/src/client/GuildMemberManager.ts +0 -91
  225. package/core/packages/fluxer-core/src/client/MessageManager.ts +0 -58
  226. package/core/packages/fluxer-core/src/client/UsersManager.ts +0 -122
  227. package/core/packages/fluxer-core/src/errors/ErrorCodes.test.ts +0 -19
  228. package/core/packages/fluxer-core/src/errors/ErrorCodes.ts +0 -12
  229. package/core/packages/fluxer-core/src/errors/FluxerError.test.ts +0 -32
  230. package/core/packages/fluxer-core/src/errors/FluxerError.ts +0 -15
  231. package/core/packages/fluxer-core/src/index.ts +0 -85
  232. package/core/packages/fluxer-core/src/structures/Base.ts +0 -7
  233. package/core/packages/fluxer-core/src/structures/Channel.ts +0 -508
  234. package/core/packages/fluxer-core/src/structures/Guild.test.ts +0 -189
  235. package/core/packages/fluxer-core/src/structures/Guild.ts +0 -734
  236. package/core/packages/fluxer-core/src/structures/GuildBan.ts +0 -35
  237. package/core/packages/fluxer-core/src/structures/GuildEmoji.ts +0 -57
  238. package/core/packages/fluxer-core/src/structures/GuildMember.test.ts +0 -203
  239. package/core/packages/fluxer-core/src/structures/GuildMember.ts +0 -213
  240. package/core/packages/fluxer-core/src/structures/GuildMemberRoleManager.ts +0 -121
  241. package/core/packages/fluxer-core/src/structures/GuildSticker.ts +0 -56
  242. package/core/packages/fluxer-core/src/structures/Invite.test.ts +0 -103
  243. package/core/packages/fluxer-core/src/structures/Invite.ts +0 -121
  244. package/core/packages/fluxer-core/src/structures/Message.test.ts +0 -109
  245. package/core/packages/fluxer-core/src/structures/Message.ts +0 -397
  246. package/core/packages/fluxer-core/src/structures/MessageReaction.ts +0 -72
  247. package/core/packages/fluxer-core/src/structures/PartialMessage.ts +0 -12
  248. package/core/packages/fluxer-core/src/structures/Role.test.ts +0 -77
  249. package/core/packages/fluxer-core/src/structures/Role.ts +0 -112
  250. package/core/packages/fluxer-core/src/structures/User.test.ts +0 -110
  251. package/core/packages/fluxer-core/src/structures/User.ts +0 -109
  252. package/core/packages/fluxer-core/src/structures/Webhook.test.ts +0 -109
  253. package/core/packages/fluxer-core/src/structures/Webhook.ts +0 -258
  254. package/core/packages/fluxer-core/src/util/Constants.test.ts +0 -16
  255. package/core/packages/fluxer-core/src/util/Constants.ts +0 -7
  256. package/core/packages/fluxer-core/src/util/Events.ts +0 -46
  257. package/core/packages/fluxer-core/src/util/MessageCollector.ts +0 -87
  258. package/core/packages/fluxer-core/src/util/Options.ts +0 -33
  259. package/core/packages/fluxer-core/src/util/ReactionCollector.ts +0 -116
  260. package/core/packages/fluxer-core/src/util/cdn.test.ts +0 -108
  261. package/core/packages/fluxer-core/src/util/cdn.ts +0 -130
  262. package/core/packages/fluxer-core/src/util/guildUtils.ts +0 -33
  263. package/core/packages/fluxer-core/src/util/messageUtils.test.ts +0 -74
  264. package/core/packages/fluxer-core/src/util/messageUtils.ts +0 -119
  265. package/core/packages/fluxer-core/src/util/permissions.test.ts +0 -95
  266. package/core/packages/fluxer-core/src/util/permissions.ts +0 -43
  267. package/core/packages/fluxer-core/tsconfig.json +0 -9
  268. package/core/packages/fluxer-core/tsup.config.ts +0 -9
  269. package/core/packages/fluxer-core/vitest.config.ts +0 -9
  270. package/core/packages/rest/package.json +0 -52
  271. package/core/packages/rest/src/REST.test.ts +0 -64
  272. package/core/packages/rest/src/REST.ts +0 -90
  273. package/core/packages/rest/src/RateLimitManager.test.ts +0 -71
  274. package/core/packages/rest/src/RateLimitManager.ts +0 -60
  275. package/core/packages/rest/src/RequestManager.test.ts +0 -87
  276. package/core/packages/rest/src/RequestManager.ts +0 -172
  277. package/core/packages/rest/src/errors/FluxerAPIError.test.ts +0 -57
  278. package/core/packages/rest/src/errors/FluxerAPIError.ts +0 -21
  279. package/core/packages/rest/src/errors/HTTPError.test.ts +0 -55
  280. package/core/packages/rest/src/errors/HTTPError.ts +0 -25
  281. package/core/packages/rest/src/errors/RateLimitError.test.ts +0 -41
  282. package/core/packages/rest/src/errors/RateLimitError.ts +0 -15
  283. package/core/packages/rest/src/errors/index.ts +0 -3
  284. package/core/packages/rest/src/index.ts +0 -6
  285. package/core/packages/rest/src/utils/constants.test.ts +0 -31
  286. package/core/packages/rest/src/utils/constants.ts +0 -5
  287. package/core/packages/rest/src/utils/files.test.ts +0 -37
  288. package/core/packages/rest/src/utils/files.ts +0 -75
  289. package/core/packages/rest/tsconfig.json +0 -9
  290. package/core/packages/rest/tsup.config.ts +0 -9
  291. package/core/packages/rest/vitest.config.ts +0 -9
  292. package/core/packages/types/package.json +0 -46
  293. package/core/packages/types/src/api/ban.ts +0 -8
  294. package/core/packages/types/src/api/channel.ts +0 -65
  295. package/core/packages/types/src/api/embed.ts +0 -82
  296. package/core/packages/types/src/api/emoji.ts +0 -12
  297. package/core/packages/types/src/api/errors.ts +0 -68
  298. package/core/packages/types/src/api/gateway.ts +0 -14
  299. package/core/packages/types/src/api/guild.ts +0 -123
  300. package/core/packages/types/src/api/index.ts +0 -15
  301. package/core/packages/types/src/api/instance.ts +0 -32
  302. package/core/packages/types/src/api/interaction.ts +0 -26
  303. package/core/packages/types/src/api/invite.ts +0 -28
  304. package/core/packages/types/src/api/message.ts +0 -140
  305. package/core/packages/types/src/api/role.ts +0 -41
  306. package/core/packages/types/src/api/sticker.ts +0 -14
  307. package/core/packages/types/src/api/user.ts +0 -79
  308. package/core/packages/types/src/api/webhook.ts +0 -41
  309. package/core/packages/types/src/common/index.ts +0 -1
  310. package/core/packages/types/src/common/snowflake.test.ts +0 -9
  311. package/core/packages/types/src/common/snowflake.ts +0 -8
  312. package/core/packages/types/src/gateway/events.ts +0 -189
  313. package/core/packages/types/src/gateway/index.ts +0 -3
  314. package/core/packages/types/src/gateway/opcodes.ts +0 -17
  315. package/core/packages/types/src/gateway/payloads.ts +0 -481
  316. package/core/packages/types/src/index.ts +0 -4
  317. package/core/packages/types/src/rest/index.ts +0 -1
  318. package/core/packages/types/src/rest/routes.test.ts +0 -169
  319. package/core/packages/types/src/rest/routes.ts +0 -109
  320. package/core/packages/types/tsconfig.json +0 -9
  321. package/core/packages/types/tsup.config.ts +0 -9
  322. package/core/packages/types/vitest.config.ts +0 -9
  323. package/core/packages/util/package.json +0 -51
  324. package/core/packages/util/src/BitField.test.ts +0 -96
  325. package/core/packages/util/src/BitField.ts +0 -105
  326. package/core/packages/util/src/MessageFlagsBitField.test.ts +0 -42
  327. package/core/packages/util/src/MessageFlagsBitField.ts +0 -20
  328. package/core/packages/util/src/PermissionsBitField.test.ts +0 -79
  329. package/core/packages/util/src/PermissionsBitField.ts +0 -97
  330. package/core/packages/util/src/SnowflakeUtil.test.ts +0 -69
  331. package/core/packages/util/src/SnowflakeUtil.ts +0 -65
  332. package/core/packages/util/src/UserFlagsBitField.test.ts +0 -39
  333. package/core/packages/util/src/UserFlagsBitField.ts +0 -48
  334. package/core/packages/util/src/deprecation.test.ts +0 -44
  335. package/core/packages/util/src/deprecation.ts +0 -28
  336. package/core/packages/util/src/emojiShortcodes.generated.ts +0 -5
  337. package/core/packages/util/src/emojiShortcodes.test.ts +0 -41
  338. package/core/packages/util/src/emojiShortcodes.ts +0 -22
  339. package/core/packages/util/src/formatters.test.ts +0 -65
  340. package/core/packages/util/src/formatters.ts +0 -35
  341. package/core/packages/util/src/index.ts +0 -34
  342. package/core/packages/util/src/resolvers.test.ts +0 -198
  343. package/core/packages/util/src/resolvers.ts +0 -127
  344. package/core/packages/util/src/tenorUtils.test.ts +0 -75
  345. package/core/packages/util/src/tenorUtils.ts +0 -86
  346. package/core/packages/util/tsconfig.json +0 -9
  347. package/core/packages/util/tsup.config.ts +0 -9
  348. package/core/packages/util/vitest.config.ts +0 -9
  349. package/core/packages/voice/README.md +0 -42
  350. package/core/packages/voice/package.json +0 -67
  351. package/core/packages/voice/src/LiveKitRtcConnection.receive.test.ts +0 -24
  352. package/core/packages/voice/src/LiveKitRtcConnection.ts +0 -1767
  353. package/core/packages/voice/src/VoiceConnection.ts +0 -413
  354. package/core/packages/voice/src/VoiceManager.receive.test.ts +0 -61
  355. package/core/packages/voice/src/VoiceManager.test.ts +0 -44
  356. package/core/packages/voice/src/VoiceManager.ts +0 -503
  357. package/core/packages/voice/src/exports.test.ts +0 -38
  358. package/core/packages/voice/src/index.ts +0 -51
  359. package/core/packages/voice/src/livekit.test.ts +0 -48
  360. package/core/packages/voice/src/livekit.ts +0 -33
  361. package/core/packages/voice/src/mp4box.d.ts +0 -32
  362. package/core/packages/voice/src/opusUtils.test.ts +0 -29
  363. package/core/packages/voice/src/opusUtils.ts +0 -86
  364. package/core/packages/voice/src/streamPreviewPlaceholder.test.ts +0 -16
  365. package/core/packages/voice/src/streamPreviewPlaceholder.ts +0 -8
  366. package/core/packages/voice/src/ws.d.ts +0 -1
  367. package/core/packages/voice/tsconfig.json +0 -5
  368. package/core/packages/voice/tsup.config.ts +0 -10
  369. package/core/packages/voice/vitest.config.ts +0 -9
  370. package/core/packages/ws/package.json +0 -52
  371. package/core/packages/ws/src/WebSocketManager.ts +0 -130
  372. package/core/packages/ws/src/WebSocketShard.ts +0 -296
  373. package/core/packages/ws/src/index.ts +0 -12
  374. package/core/packages/ws/src/utils/constants.test.ts +0 -46
  375. package/core/packages/ws/src/utils/constants.ts +0 -22
  376. package/core/packages/ws/src/utils/getWebSocket.ts +0 -55
  377. package/core/packages/ws/src/ws.d.ts +0 -10
  378. package/core/packages/ws/tsconfig.json +0 -9
  379. package/core/packages/ws/tsup.config.ts +0 -9
  380. package/core/pnpm-lock.yaml +0 -7033
  381. package/core/pnpm-workspace.yaml +0 -4
  382. package/core/scripts/generate-ai-rag.ts +0 -240
  383. package/core/scripts/generate-docs.ts +0 -143
  384. package/core/scripts/generate-emoji-shortcodes.ts +0 -58
  385. package/core/scripts/generate-types.ts +0 -6
  386. package/core/scripts/publish-ordered.js +0 -63
  387. package/core/scripts/test-cjs-require.mjs +0 -43
  388. package/core/scripts/test-esm-imports.mjs +0 -42
  389. package/core/scripts/test-package-exports.mjs +0 -98
  390. package/core/scripts/test-smoke.mjs +0 -103
  391. package/core/tsconfig.json +0 -18
  392. package/core/turbo.json +0 -30
  393. package/core/vitest.config.ts +0 -17
  394. package/core/wrangler.jsonc +0 -9
@@ -1,1073 +0,0 @@
1
- /**
2
- * Bot and Webhook API reference data.
3
- * Source: fluxer_api (Hono routes under /v1).
4
- */
5
-
6
- export interface ApiQueryParam {
7
- name: string;
8
- type: string;
9
- required?: boolean;
10
- description?: string;
11
- }
12
-
13
- export interface ApiSchemaField {
14
- name: string;
15
- type: string;
16
- required?: boolean;
17
- description?: string;
18
- items?: ApiSchemaField[];
19
- nested?: ApiSchemaField[];
20
- }
21
-
22
- export interface ApiEndpoint {
23
- method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
24
- path: string;
25
- summary: string;
26
- description?: string;
27
- auth: 'bot' | 'webhook-token' | 'none';
28
- category: string;
29
- queryParams?: ApiQueryParam[];
30
- requestBody?: ApiSchemaField[];
31
- responseBody?: ApiSchemaField[];
32
- responseCode?: number;
33
- responseRef?: string;
34
- }
35
-
36
- /** Shared schema definitions referenced by multiple endpoints */
37
- export const sharedSchemas = {
38
- messageRequest: [
39
- {
40
- name: 'content',
41
- type: 'string | null',
42
- required: false,
43
- description: 'Message text content',
44
- },
45
- { name: 'embeds', type: 'RichEmbed[]', required: false, description: 'Rich embeds (max 10)' },
46
- {
47
- name: 'attachments',
48
- type: 'AttachmentRequest[]',
49
- required: false,
50
- description: 'Attachment refs (max 10)',
51
- },
52
- {
53
- name: 'message_reference',
54
- type: '{ message_id, channel_id?, guild_id?, type? }',
55
- required: false,
56
- },
57
- {
58
- name: 'allowed_mentions',
59
- type: '{ parse?, users?, roles?, replied_user? }',
60
- required: false,
61
- },
62
- { name: 'flags', type: 'number', required: false, description: 'Message flags (default 0)' },
63
- { name: 'nonce', type: 'string', required: false, description: '1-32 chars, for idempotency' },
64
- { name: 'favorite_meme_id', type: 'string (snowflake)', required: false },
65
- { name: 'sticker_ids', type: 'string[]', required: false, description: 'Max 3 sticker IDs' },
66
- { name: 'tts', type: 'boolean', required: false },
67
- ] as ApiSchemaField[],
68
- messageUpdate: [
69
- { name: 'content', type: 'string | null', required: false },
70
- { name: 'embeds', type: 'RichEmbed[]', required: false },
71
- {
72
- name: 'allowed_mentions',
73
- type: '{ parse?, users?, roles?, replied_user? }',
74
- required: false,
75
- },
76
- { name: 'flags', type: 'number', required: false },
77
- { name: 'attachments', type: 'AttachmentReference[]', required: false },
78
- ] as ApiSchemaField[],
79
- richEmbed: [
80
- { name: 'url', type: 'string', required: false },
81
- { name: 'title', type: 'string', required: false },
82
- { name: 'color', type: 'number', required: false },
83
- { name: 'timestamp', type: 'ISO datetime', required: false },
84
- { name: 'description', type: 'string (1-4096)', required: false },
85
- { name: 'author', type: '{ name, url?, icon_url? }', required: false },
86
- { name: 'image', type: '{ url, description? }', required: false },
87
- { name: 'thumbnail', type: '{ url, description? }', required: false },
88
- { name: 'footer', type: '{ text, icon_url? }', required: false },
89
- { name: 'fields', type: '{ name, value, inline? }[]', required: false, description: 'Max 25' },
90
- ] as ApiSchemaField[],
91
- channelOverwrite: [
92
- { name: 'id', type: 'string (snowflake)', required: true },
93
- { name: 'type', type: '0 | 1', required: true, description: '0=role, 1=member' },
94
- { name: 'allow', type: 'string (permission bitfield)', required: false },
95
- { name: 'deny', type: 'string (permission bitfield)', required: false },
96
- ] as ApiSchemaField[],
97
- };
98
-
99
- export const API_CATEGORIES = [
100
- 'gateway',
101
- 'instance',
102
- 'channels',
103
- 'messages',
104
- 'pins-reactions',
105
- 'guilds',
106
- 'invites',
107
- 'webhooks',
108
- ] as const;
109
-
110
- export const API_CATEGORY_LABELS: Record<(typeof API_CATEGORIES)[number], string> = {
111
- gateway: 'Gateway',
112
- instance: 'Instance',
113
- channels: 'Channels',
114
- messages: 'Messages',
115
- 'pins-reactions': 'Pins & Reactions',
116
- guilds: 'Guilds',
117
- invites: 'Invites',
118
- webhooks: 'Webhooks',
119
- };
120
-
121
- export const apiEndpoints: ApiEndpoint[] = [
122
- // --- Gateway ---
123
- {
124
- method: 'GET',
125
- path: '/gateway/bot',
126
- summary: 'Get gateway connection URL for bot',
127
- auth: 'bot',
128
- category: 'gateway',
129
- responseBody: [
130
- { name: 'url', type: 'string', description: 'WebSocket URL' },
131
- { name: 'shards', type: 'number', description: 'Recommended shard count (1)' },
132
- {
133
- name: 'session_start_limit',
134
- type: 'object',
135
- nested: [
136
- { name: 'total', type: 'number' },
137
- { name: 'remaining', type: 'number' },
138
- { name: 'reset_after', type: 'number', description: 'ms' },
139
- { name: 'max_concurrency', type: 'number' },
140
- ],
141
- },
142
- ],
143
- },
144
-
145
- // --- Instance ---
146
- {
147
- method: 'GET',
148
- path: '/instance',
149
- summary: 'Get instance info and endpoints',
150
- auth: 'none',
151
- category: 'instance',
152
- responseBody: [
153
- { name: 'api_code_version', type: 'string' },
154
- {
155
- name: 'endpoints',
156
- type: 'object',
157
- nested: [
158
- { name: 'api', type: 'string' },
159
- { name: 'gateway', type: 'string' },
160
- ],
161
- },
162
- { name: 'captcha', type: 'object' },
163
- { name: 'features', type: 'object', nested: [{ name: 'voice_enabled', type: 'boolean' }] },
164
- { name: 'push', type: 'object' },
165
- ],
166
- },
167
-
168
- // --- Channels ---
169
- {
170
- method: 'GET',
171
- path: '/channels/:channel_id',
172
- summary: 'Get channel',
173
- auth: 'bot',
174
- category: 'channels',
175
- responseRef: 'ChannelResponse',
176
- },
177
- {
178
- method: 'PATCH',
179
- path: '/channels/:channel_id',
180
- summary: 'Update channel',
181
- auth: 'bot',
182
- category: 'channels',
183
- requestBody: [
184
- { name: 'type', type: 'number', required: true, description: 'Channel type (required)' },
185
- { name: 'name', type: 'string', required: false },
186
- { name: 'topic', type: 'string (1-1024)', required: false },
187
- { name: 'url', type: 'string', required: false },
188
- { name: 'parent_id', type: 'string (snowflake)', required: false },
189
- { name: 'bitrate', type: 'number (8000-320000)', required: false },
190
- { name: 'user_limit', type: 'number (0-99)', required: false },
191
- { name: 'nsfw', type: 'boolean', required: false },
192
- { name: 'rate_limit_per_user', type: 'number (0-21600)', required: false },
193
- { name: 'icon', type: 'base64 string', required: false },
194
- { name: 'owner_id', type: 'string (snowflake)', required: false },
195
- { name: 'permission_overwrites', type: 'ChannelOverwrite[]', required: false },
196
- { name: 'nicks', type: 'Record<string, string>', required: false },
197
- { name: 'rtc_region', type: 'string (1-64)', required: false },
198
- ],
199
- responseRef: 'ChannelResponse',
200
- },
201
- {
202
- method: 'DELETE',
203
- path: '/channels/:channel_id',
204
- summary: 'Delete channel',
205
- auth: 'bot',
206
- category: 'channels',
207
- queryParams: [{ name: 'silent', type: 'boolean', required: false }],
208
- responseCode: 204,
209
- },
210
- {
211
- method: 'PUT',
212
- path: '/channels/:channel_id/recipients/:user_id',
213
- summary: 'Add recipient to group DM',
214
- auth: 'bot',
215
- category: 'channels',
216
- responseCode: 204,
217
- },
218
- {
219
- method: 'DELETE',
220
- path: '/channels/:channel_id/recipients/:user_id',
221
- summary: 'Remove recipient from group DM',
222
- auth: 'bot',
223
- category: 'channels',
224
- queryParams: [{ name: 'silent', type: 'boolean', required: false }],
225
- responseCode: 204,
226
- },
227
- {
228
- method: 'PUT',
229
- path: '/channels/:channel_id/permissions/:overwrite_id',
230
- summary: 'Set permission overwrite',
231
- auth: 'bot',
232
- category: 'channels',
233
- requestBody: [
234
- { name: 'type', type: '0 | 1', required: true, description: '0=role, 1=member' },
235
- { name: 'allow', type: 'string (snowflake)', required: false },
236
- { name: 'deny', type: 'string (snowflake)', required: false },
237
- ],
238
- responseCode: 204,
239
- },
240
- {
241
- method: 'DELETE',
242
- path: '/channels/:channel_id/permissions/:overwrite_id',
243
- summary: 'Delete permission overwrite',
244
- auth: 'bot',
245
- category: 'channels',
246
- responseCode: 204,
247
- },
248
-
249
- // --- Messages ---
250
- {
251
- method: 'GET',
252
- path: '/channels/:channel_id/messages',
253
- summary: 'List channel messages',
254
- auth: 'bot',
255
- category: 'messages',
256
- queryParams: [
257
- { name: 'limit', type: 'number (1-100)', required: false, description: 'Default 50' },
258
- { name: 'before', type: 'string (snowflake)', required: false },
259
- { name: 'after', type: 'string (snowflake)', required: false },
260
- { name: 'around', type: 'string (snowflake)', required: false },
261
- ],
262
- responseRef: 'MessageResponse[]',
263
- },
264
- {
265
- method: 'GET',
266
- path: '/channels/:channel_id/messages/:message_id',
267
- summary: 'Get message',
268
- auth: 'bot',
269
- category: 'messages',
270
- responseRef: 'MessageResponse',
271
- },
272
- {
273
- method: 'POST',
274
- path: '/channels/:channel_id/messages',
275
- summary: 'Send message',
276
- auth: 'bot',
277
- category: 'messages',
278
- description: 'Accepts JSON or multipart/form-data',
279
- requestBody: sharedSchemas.messageRequest,
280
- responseRef: 'MessageResponse',
281
- },
282
- {
283
- method: 'PATCH',
284
- path: '/channels/:channel_id/messages/:message_id',
285
- summary: 'Edit message',
286
- auth: 'bot',
287
- category: 'messages',
288
- requestBody: sharedSchemas.messageUpdate,
289
- responseRef: 'MessageResponse',
290
- },
291
- {
292
- method: 'DELETE',
293
- path: '/channels/:channel_id/messages/:message_id',
294
- summary: 'Delete message',
295
- auth: 'bot',
296
- category: 'messages',
297
- responseCode: 204,
298
- },
299
- {
300
- method: 'DELETE',
301
- path: '/channels/:channel_id/messages/:message_id/attachments/:attachment_id',
302
- summary: 'Delete message attachment',
303
- auth: 'bot',
304
- category: 'messages',
305
- responseCode: 204,
306
- },
307
- {
308
- method: 'POST',
309
- path: '/channels/:channel_id/messages/bulk-delete',
310
- summary: 'Bulk delete messages',
311
- auth: 'bot',
312
- category: 'messages',
313
- requestBody: [{ name: 'message_ids', type: 'string[] (snowflakes)', required: true }],
314
- responseCode: 204,
315
- },
316
- {
317
- method: 'POST',
318
- path: '/channels/:channel_id/typing',
319
- summary: 'Trigger typing indicator',
320
- auth: 'bot',
321
- category: 'messages',
322
- responseCode: 204,
323
- },
324
-
325
- // --- Pins & Reactions ---
326
- {
327
- method: 'GET',
328
- path: '/channels/:channel_id/messages/pins',
329
- summary: 'List pinned messages',
330
- auth: 'bot',
331
- category: 'pins-reactions',
332
- queryParams: [
333
- { name: 'limit', type: 'number (1-50)', required: false },
334
- { name: 'before', type: 'ISO datetime', required: false },
335
- ],
336
- responseRef: 'ChannelPinResponse[]',
337
- },
338
- {
339
- method: 'PUT',
340
- path: '/channels/:channel_id/pins/:message_id',
341
- summary: 'Pin message',
342
- auth: 'bot',
343
- category: 'pins-reactions',
344
- responseCode: 204,
345
- },
346
- {
347
- method: 'DELETE',
348
- path: '/channels/:channel_id/pins/:message_id',
349
- summary: 'Unpin message',
350
- auth: 'bot',
351
- category: 'pins-reactions',
352
- responseCode: 204,
353
- },
354
- {
355
- method: 'GET',
356
- path: '/channels/:channel_id/messages/:message_id/reactions/:emoji',
357
- summary: 'Get users who reacted',
358
- auth: 'bot',
359
- category: 'pins-reactions',
360
- queryParams: [
361
- { name: 'limit', type: 'number', required: false },
362
- { name: 'after', type: 'string (snowflake)', required: false },
363
- ],
364
- responseRef: 'UserPartialResponse[]',
365
- },
366
- {
367
- method: 'PUT',
368
- path: '/channels/:channel_id/messages/:message_id/reactions/:emoji/@me',
369
- summary: 'Add own reaction',
370
- auth: 'bot',
371
- category: 'pins-reactions',
372
- responseCode: 204,
373
- },
374
- {
375
- method: 'DELETE',
376
- path: '/channels/:channel_id/messages/:message_id/reactions/:emoji/@me',
377
- summary: 'Remove own reaction',
378
- auth: 'bot',
379
- category: 'pins-reactions',
380
- responseCode: 204,
381
- },
382
- {
383
- method: 'DELETE',
384
- path: '/channels/:channel_id/messages/:message_id/reactions/:emoji/:target_id',
385
- summary: 'Remove user reaction',
386
- auth: 'bot',
387
- category: 'pins-reactions',
388
- responseCode: 204,
389
- },
390
- {
391
- method: 'DELETE',
392
- path: '/channels/:channel_id/messages/:message_id/reactions/:emoji',
393
- summary: 'Remove all reactions for emoji',
394
- auth: 'bot',
395
- category: 'pins-reactions',
396
- responseCode: 204,
397
- },
398
- {
399
- method: 'DELETE',
400
- path: '/channels/:channel_id/messages/:message_id/reactions',
401
- summary: 'Remove all reactions',
402
- auth: 'bot',
403
- category: 'pins-reactions',
404
- responseCode: 204,
405
- },
406
-
407
- // --- Guilds ---
408
- {
409
- method: 'POST',
410
- path: '/guilds',
411
- summary: 'Create guild',
412
- auth: 'bot',
413
- category: 'guilds',
414
- requestBody: [
415
- { name: 'name', type: 'string (1-100)', required: true },
416
- { name: 'icon', type: 'base64 string', required: false },
417
- { name: 'empty_features', type: 'boolean', required: false },
418
- ],
419
- responseRef: 'GuildResponse',
420
- },
421
- {
422
- method: 'GET',
423
- path: '/guilds/:guild_id',
424
- summary: 'Get guild',
425
- auth: 'bot',
426
- category: 'guilds',
427
- responseRef: 'GuildResponse',
428
- },
429
- {
430
- method: 'PATCH',
431
- path: '/guilds/:guild_id',
432
- summary: 'Update guild',
433
- auth: 'bot',
434
- category: 'guilds',
435
- requestBody: [
436
- { name: 'name', type: 'string (1-100)', required: false },
437
- { name: 'icon', type: 'base64', required: false },
438
- { name: 'system_channel_id', type: 'string | null', required: false },
439
- { name: 'system_channel_flags', type: 'number', required: false },
440
- { name: 'afk_channel_id', type: 'string | null', required: false },
441
- { name: 'afk_timeout', type: 'number (60-3600)', required: false },
442
- { name: 'default_message_notifications', type: 'number (0-1)', required: false },
443
- { name: 'verification_level', type: 'number', required: false },
444
- { name: 'mfa_level', type: 'number', required: false },
445
- { name: 'explicit_content_filter', type: 'number', required: false },
446
- { name: 'banner', type: 'base64', required: false },
447
- { name: 'splash', type: 'base64', required: false },
448
- { name: 'embed_splash', type: 'base64', required: false },
449
- { name: 'splash_card_alignment', type: 'string', required: false },
450
- { name: 'features', type: 'string[]', required: false },
451
- ],
452
- responseRef: 'GuildResponse',
453
- },
454
- {
455
- method: 'POST',
456
- path: '/guilds/:guild_id/delete',
457
- summary: 'Delete guild',
458
- auth: 'bot',
459
- category: 'guilds',
460
- responseCode: 204,
461
- },
462
- {
463
- method: 'GET',
464
- path: '/guilds/:guild_id/vanity-url',
465
- summary: 'Get vanity URL',
466
- auth: 'bot',
467
- category: 'guilds',
468
- responseBody: [
469
- { name: 'code', type: 'string | null' },
470
- { name: 'uses', type: 'number' },
471
- ],
472
- },
473
- {
474
- method: 'PATCH',
475
- path: '/guilds/:guild_id/text-channel-flexible-names',
476
- summary: 'Update text channel flexible names',
477
- auth: 'bot',
478
- category: 'guilds',
479
- requestBody: [{ name: 'enabled', type: 'boolean', required: true }],
480
- responseRef: 'GuildResponse',
481
- },
482
- {
483
- method: 'PATCH',
484
- path: '/guilds/:guild_id/detached-banner',
485
- summary: 'Update detached banner feature',
486
- auth: 'bot',
487
- category: 'guilds',
488
- requestBody: [{ name: 'enabled', type: 'boolean', required: true }],
489
- responseRef: 'GuildResponse',
490
- },
491
- {
492
- method: 'PATCH',
493
- path: '/guilds/:guild_id/disallow-unclaimed-accounts',
494
- summary: 'Update disallow unclaimed accounts',
495
- auth: 'bot',
496
- category: 'guilds',
497
- requestBody: [{ name: 'enabled', type: 'boolean', required: true }],
498
- responseRef: 'GuildResponse',
499
- },
500
- {
501
- method: 'GET',
502
- path: '/guilds/:guild_id/channels',
503
- summary: 'List guild channels',
504
- auth: 'bot',
505
- category: 'guilds',
506
- responseRef: 'ChannelResponse[]',
507
- },
508
- {
509
- method: 'POST',
510
- path: '/guilds/:guild_id/channels',
511
- summary: 'Create channel',
512
- auth: 'bot',
513
- category: 'guilds',
514
- requestBody: [
515
- {
516
- name: 'type',
517
- type: 'number',
518
- required: true,
519
- description: '0=text, 2=voice, 4=category, 5=link',
520
- },
521
- { name: 'name', type: 'string', required: true },
522
- { name: 'topic', type: 'string (1-1024)', required: false },
523
- { name: 'url', type: 'string', required: false },
524
- { name: 'parent_id', type: 'string (snowflake)', required: false },
525
- { name: 'bitrate', type: 'number (8000-320000)', required: false },
526
- { name: 'user_limit', type: 'number (0-99)', required: false },
527
- { name: 'nsfw', type: 'boolean', required: false },
528
- { name: 'permission_overwrites', type: 'ChannelOverwrite[]', required: false },
529
- ],
530
- responseRef: 'ChannelResponse',
531
- },
532
- {
533
- method: 'PATCH',
534
- path: '/guilds/:guild_id/channels',
535
- summary: 'Reorder channels',
536
- auth: 'bot',
537
- category: 'guilds',
538
- description: 'Request body is array of channel update objects',
539
- requestBody: [
540
- { name: 'id', type: 'string (snowflake)', required: true, description: 'Per item in array' },
541
- { name: 'position', type: 'number', required: false },
542
- { name: 'parent_id', type: 'string | null', required: false },
543
- { name: 'lock_permissions', type: 'boolean', required: false },
544
- ],
545
- responseCode: 204,
546
- },
547
- {
548
- method: 'GET',
549
- path: '/guilds/:guild_id/members',
550
- summary: 'List guild members',
551
- auth: 'bot',
552
- category: 'guilds',
553
- queryParams: [
554
- { name: 'limit', type: 'number', required: false },
555
- { name: 'after', type: 'string (snowflake)', required: false },
556
- ],
557
- responseRef: 'GuildMemberResponse[]',
558
- },
559
- {
560
- method: 'GET',
561
- path: '/guilds/:guild_id/members/@me',
562
- summary: 'Get current member',
563
- auth: 'bot',
564
- category: 'guilds',
565
- responseRef: 'GuildMemberResponse',
566
- },
567
- {
568
- method: 'GET',
569
- path: '/guilds/:guild_id/members/:user_id',
570
- summary: 'Get guild member',
571
- auth: 'bot',
572
- category: 'guilds',
573
- responseRef: 'GuildMemberResponse',
574
- },
575
- {
576
- method: 'PATCH',
577
- path: '/guilds/:guild_id/members/@me',
578
- summary: 'Update current member',
579
- auth: 'bot',
580
- category: 'guilds',
581
- requestBody: [
582
- { name: 'nick', type: 'string (1-32)', required: false },
583
- { name: 'avatar', type: 'base64', required: false },
584
- { name: 'banner', type: 'base64', required: false },
585
- { name: 'bio', type: 'string (1-320)', required: false },
586
- { name: 'pronouns', type: 'string (1-40)', required: false },
587
- { name: 'accent_color', type: 'number', required: false },
588
- { name: 'profile_flags', type: 'number', required: false },
589
- { name: 'mute', type: 'boolean', required: false },
590
- { name: 'deaf', type: 'boolean', required: false },
591
- { name: 'communication_disabled_until', type: 'ISO datetime', required: false },
592
- { name: 'timeout_reason', type: 'string (1-512)', required: false },
593
- { name: 'channel_id', type: 'string (snowflake)', required: false },
594
- { name: 'connection_id', type: 'string (1-32)', required: false },
595
- ],
596
- responseRef: 'GuildMemberResponse',
597
- },
598
- {
599
- method: 'PATCH',
600
- path: '/guilds/:guild_id/members/:user_id',
601
- summary: 'Update guild member',
602
- auth: 'bot',
603
- category: 'guilds',
604
- requestBody: [
605
- { name: 'nick', type: 'string (1-32)', required: false },
606
- { name: 'roles', type: 'string[] (snowflakes, max 100)', required: false },
607
- { name: 'avatar', type: 'base64', required: false },
608
- { name: 'banner', type: 'base64', required: false },
609
- { name: 'bio', type: 'string (1-320)', required: false },
610
- { name: 'pronouns', type: 'string (1-40)', required: false },
611
- { name: 'accent_color', type: 'number', required: false },
612
- { name: 'profile_flags', type: 'number', required: false },
613
- { name: 'mute', type: 'boolean', required: false },
614
- { name: 'deaf', type: 'boolean', required: false },
615
- { name: 'communication_disabled_until', type: 'ISO datetime', required: false },
616
- { name: 'timeout_reason', type: 'string (1-512)', required: false },
617
- { name: 'channel_id', type: 'string (snowflake)', required: false },
618
- { name: 'connection_id', type: 'string (1-32)', required: false },
619
- ],
620
- responseRef: 'GuildMemberResponse',
621
- },
622
- {
623
- method: 'DELETE',
624
- path: '/guilds/:guild_id/members/:user_id',
625
- summary: 'Remove guild member',
626
- auth: 'bot',
627
- category: 'guilds',
628
- responseCode: 204,
629
- },
630
- {
631
- method: 'POST',
632
- path: '/guilds/:guild_id/transfer-ownership',
633
- summary: 'Transfer guild ownership',
634
- auth: 'bot',
635
- category: 'guilds',
636
- requestBody: [
637
- { name: 'new_owner_id', type: 'string (snowflake)', required: true },
638
- { name: 'password', type: 'string', required: false },
639
- ],
640
- responseRef: 'GuildResponse',
641
- },
642
- {
643
- method: 'GET',
644
- path: '/guilds/:guild_id/bans',
645
- summary: 'List guild bans',
646
- auth: 'bot',
647
- category: 'guilds',
648
- queryParams: [
649
- { name: 'limit', type: 'number', required: false },
650
- { name: 'after', type: 'string (snowflake)', required: false },
651
- ],
652
- responseRef: 'GuildBanResponse[]',
653
- },
654
- {
655
- method: 'PUT',
656
- path: '/guilds/:guild_id/bans/:user_id',
657
- summary: 'Ban user',
658
- auth: 'bot',
659
- category: 'guilds',
660
- requestBody: [
661
- {
662
- name: 'delete_message_days',
663
- type: 'number (0-7)',
664
- required: false,
665
- description: 'Default 0',
666
- },
667
- { name: 'reason', type: 'string (0-512)', required: false },
668
- {
669
- name: 'ban_duration_seconds',
670
- type: 'number',
671
- required: false,
672
- description: '0=permanent, or valid temp duration',
673
- },
674
- ],
675
- responseRef: 'GuildBanResponse',
676
- },
677
- {
678
- method: 'DELETE',
679
- path: '/guilds/:guild_id/bans/:user_id',
680
- summary: 'Unban user',
681
- auth: 'bot',
682
- category: 'guilds',
683
- responseCode: 204,
684
- },
685
- {
686
- method: 'PUT',
687
- path: '/guilds/:guild_id/members/:user_id/roles/:role_id',
688
- summary: 'Add role to member',
689
- auth: 'bot',
690
- category: 'guilds',
691
- responseCode: 204,
692
- },
693
- {
694
- method: 'DELETE',
695
- path: '/guilds/:guild_id/members/:user_id/roles/:role_id',
696
- summary: 'Remove role from member',
697
- auth: 'bot',
698
- category: 'guilds',
699
- responseCode: 204,
700
- },
701
- {
702
- method: 'GET',
703
- path: '/guilds/:guild_id/roles',
704
- summary: 'List guild roles',
705
- auth: 'bot',
706
- category: 'guilds',
707
- responseRef: 'GuildRoleResponse[]',
708
- },
709
- {
710
- method: 'POST',
711
- path: '/guilds/:guild_id/roles',
712
- summary: 'Create role',
713
- auth: 'bot',
714
- category: 'guilds',
715
- requestBody: [
716
- { name: 'name', type: 'string (1-100)', required: true },
717
- { name: 'color', type: 'number', required: false, description: 'Default 0' },
718
- { name: 'permissions', type: 'string (snowflake)', required: false },
719
- ],
720
- responseRef: 'GuildRoleResponse',
721
- },
722
- {
723
- method: 'PATCH',
724
- path: '/guilds/:guild_id/roles',
725
- summary: 'Reorder roles',
726
- auth: 'bot',
727
- category: 'guilds',
728
- requestBody: [
729
- { name: 'id', type: 'string (snowflake)', required: true },
730
- { name: 'position', type: 'number', required: false },
731
- ],
732
- responseRef: 'GuildRoleResponse[]',
733
- },
734
- {
735
- method: 'PATCH',
736
- path: '/guilds/:guild_id/roles/hoist-positions',
737
- summary: 'Update role hoist positions',
738
- auth: 'bot',
739
- category: 'guilds',
740
- requestBody: [
741
- { name: 'id', type: 'string (snowflake)', required: true },
742
- { name: 'hoist_position', type: 'number', required: false },
743
- ],
744
- responseRef: 'GuildRoleResponse[]',
745
- },
746
- {
747
- method: 'DELETE',
748
- path: '/guilds/:guild_id/roles/hoist-positions',
749
- summary: 'Reset role hoist positions',
750
- auth: 'bot',
751
- category: 'guilds',
752
- responseRef: 'GuildRoleResponse[]',
753
- },
754
- {
755
- method: 'PATCH',
756
- path: '/guilds/:guild_id/roles/:role_id',
757
- summary: 'Update role',
758
- auth: 'bot',
759
- category: 'guilds',
760
- requestBody: [
761
- { name: 'name', type: 'string (1-100)', required: false },
762
- { name: 'color', type: 'number', required: false },
763
- { name: 'permissions', type: 'string (snowflake)', required: false },
764
- { name: 'hoist', type: 'boolean', required: false },
765
- { name: 'hoist_position', type: 'number', required: false },
766
- { name: 'mentionable', type: 'boolean', required: false },
767
- ],
768
- responseRef: 'GuildRoleResponse',
769
- },
770
- {
771
- method: 'DELETE',
772
- path: '/guilds/:guild_id/roles/:role_id',
773
- summary: 'Delete role',
774
- auth: 'bot',
775
- category: 'guilds',
776
- responseCode: 204,
777
- },
778
- {
779
- method: 'GET',
780
- path: '/guilds/:guild_id/emojis',
781
- summary: 'List guild emojis',
782
- auth: 'bot',
783
- category: 'guilds',
784
- responseRef: 'GuildEmojiResponse[]',
785
- },
786
- {
787
- method: 'POST',
788
- path: '/guilds/:guild_id/emojis',
789
- summary: 'Create emoji',
790
- auth: 'bot',
791
- category: 'guilds',
792
- requestBody: [
793
- { name: 'name', type: 'string (2-32, letters/numbers/underscore)', required: true },
794
- { name: 'image', type: 'base64 string', required: true },
795
- ],
796
- responseRef: 'GuildEmojiWithUserResponse',
797
- },
798
- {
799
- method: 'POST',
800
- path: '/guilds/:guild_id/emojis/bulk',
801
- summary: 'Bulk create emojis',
802
- auth: 'bot',
803
- category: 'guilds',
804
- requestBody: [
805
- {
806
- name: 'emojis',
807
- type: 'GuildEmojiCreateRequest[]',
808
- required: true,
809
- description: '1-50 emojis',
810
- },
811
- ],
812
- responseRef: 'GuildEmojiWithUserResponse[]',
813
- },
814
- {
815
- method: 'PATCH',
816
- path: '/guilds/:guild_id/emojis/:emoji_id',
817
- summary: 'Update emoji',
818
- auth: 'bot',
819
- category: 'guilds',
820
- requestBody: [{ name: 'name', type: 'string (2-32)', required: true }],
821
- responseRef: 'GuildEmojiWithUserResponse',
822
- },
823
- {
824
- method: 'DELETE',
825
- path: '/guilds/:guild_id/emojis/:emoji_id',
826
- summary: 'Delete emoji',
827
- auth: 'bot',
828
- category: 'guilds',
829
- responseCode: 204,
830
- },
831
- {
832
- method: 'GET',
833
- path: '/guilds/:guild_id/stickers',
834
- summary: 'List guild stickers',
835
- auth: 'bot',
836
- category: 'guilds',
837
- responseRef: 'GuildStickerResponse[]',
838
- },
839
- {
840
- method: 'POST',
841
- path: '/guilds/:guild_id/stickers',
842
- summary: 'Create sticker',
843
- auth: 'bot',
844
- category: 'guilds',
845
- requestBody: [
846
- { name: 'name', type: 'string (2-30)', required: true },
847
- { name: 'description', type: 'string (1-100)', required: false },
848
- { name: 'tags', type: 'string[]', required: false, description: 'Max 10, each 1-30 chars' },
849
- { name: 'image', type: 'base64 string', required: true },
850
- ],
851
- responseRef: 'GuildStickerWithUserResponse',
852
- },
853
- {
854
- method: 'POST',
855
- path: '/guilds/:guild_id/stickers/bulk',
856
- summary: 'Bulk create stickers',
857
- auth: 'bot',
858
- category: 'guilds',
859
- requestBody: [
860
- {
861
- name: 'stickers',
862
- type: 'GuildStickerCreateRequest[]',
863
- required: true,
864
- description: '1-50 stickers',
865
- },
866
- ],
867
- responseRef: 'GuildStickerWithUserResponse[]',
868
- },
869
- {
870
- method: 'PATCH',
871
- path: '/guilds/:guild_id/stickers/:sticker_id',
872
- summary: 'Update sticker',
873
- auth: 'bot',
874
- category: 'guilds',
875
- requestBody: [
876
- { name: 'name', type: 'string (2-30)', required: false },
877
- { name: 'description', type: 'string (1-100)', required: false },
878
- { name: 'tags', type: 'string[]', required: false },
879
- ],
880
- responseRef: 'GuildStickerWithUserResponse',
881
- },
882
- {
883
- method: 'DELETE',
884
- path: '/guilds/:guild_id/stickers/:sticker_id',
885
- summary: 'Delete sticker',
886
- auth: 'bot',
887
- category: 'guilds',
888
- responseCode: 204,
889
- },
890
-
891
- // --- Invites ---
892
- {
893
- method: 'GET',
894
- path: '/invites/:invite_code',
895
- summary: 'Get invite',
896
- auth: 'bot',
897
- category: 'invites',
898
- responseRef: 'GuildInviteResponse | GroupDmInviteResponse | PackInviteResponse',
899
- },
900
- {
901
- method: 'DELETE',
902
- path: '/invites/:invite_code',
903
- summary: 'Delete invite',
904
- auth: 'bot',
905
- category: 'invites',
906
- responseCode: 204,
907
- },
908
- {
909
- method: 'POST',
910
- path: '/channels/:channel_id/invites',
911
- summary: 'Create channel invite',
912
- auth: 'bot',
913
- category: 'invites',
914
- requestBody: [
915
- { name: 'max_uses', type: 'number (0-100)', required: false, description: 'Default 0' },
916
- {
917
- name: 'max_age',
918
- type: 'number (0-604800)',
919
- required: false,
920
- description: 'Seconds, default 0',
921
- },
922
- { name: 'unique', type: 'boolean', required: false, description: 'Default false' },
923
- { name: 'temporary', type: 'boolean', required: false, description: 'Default false' },
924
- ],
925
- responseRef: 'GuildInviteMetadataResponse',
926
- },
927
- {
928
- method: 'GET',
929
- path: '/channels/:channel_id/invites',
930
- summary: 'List channel invites',
931
- auth: 'bot',
932
- category: 'invites',
933
- responseRef: 'InviteMetadata[]',
934
- },
935
- {
936
- method: 'GET',
937
- path: '/guilds/:guild_id/invites',
938
- summary: 'List guild invites',
939
- auth: 'bot',
940
- category: 'invites',
941
- responseRef: 'InviteMetadata[]',
942
- },
943
-
944
- // --- Webhooks ---
945
- {
946
- method: 'GET',
947
- path: '/guilds/:guild_id/webhooks',
948
- summary: 'List guild webhooks',
949
- auth: 'bot',
950
- category: 'webhooks',
951
- responseRef: 'WebhookResponse[]',
952
- },
953
- {
954
- method: 'GET',
955
- path: '/channels/:channel_id/webhooks',
956
- summary: 'List channel webhooks',
957
- auth: 'bot',
958
- category: 'webhooks',
959
- responseRef: 'WebhookResponse[]',
960
- },
961
- {
962
- method: 'POST',
963
- path: '/channels/:channel_id/webhooks',
964
- summary: 'Create webhook',
965
- auth: 'bot',
966
- category: 'webhooks',
967
- requestBody: [
968
- { name: 'name', type: 'string', required: true },
969
- { name: 'avatar', type: 'base64 string', required: false },
970
- ],
971
- responseRef: 'WebhookResponse',
972
- },
973
- {
974
- method: 'GET',
975
- path: '/webhooks/:webhook_id',
976
- summary: 'Get webhook (bot token)',
977
- auth: 'bot',
978
- category: 'webhooks',
979
- responseRef: 'WebhookResponse',
980
- },
981
- {
982
- method: 'GET',
983
- path: '/webhooks/:webhook_id/:token',
984
- summary: 'Get webhook (token auth)',
985
- auth: 'webhook-token',
986
- category: 'webhooks',
987
- responseRef: 'WebhookResponse',
988
- },
989
- {
990
- method: 'PATCH',
991
- path: '/webhooks/:webhook_id',
992
- summary: 'Update webhook (bot token)',
993
- auth: 'bot',
994
- category: 'webhooks',
995
- requestBody: [
996
- { name: 'name', type: 'string', required: false },
997
- { name: 'avatar', type: 'base64', required: false },
998
- { name: 'channel_id', type: 'string (snowflake)', required: false },
999
- ],
1000
- responseRef: 'WebhookResponse',
1001
- },
1002
- {
1003
- method: 'PATCH',
1004
- path: '/webhooks/:webhook_id/:token',
1005
- summary: 'Update webhook (token auth)',
1006
- auth: 'webhook-token',
1007
- category: 'webhooks',
1008
- requestBody: [
1009
- { name: 'name', type: 'string', required: false },
1010
- { name: 'avatar', type: 'base64', required: false },
1011
- { name: 'channel_id', type: 'string (snowflake)', required: false },
1012
- ],
1013
- responseRef: 'WebhookResponse',
1014
- },
1015
- {
1016
- method: 'DELETE',
1017
- path: '/webhooks/:webhook_id',
1018
- summary: 'Delete webhook (bot token)',
1019
- auth: 'bot',
1020
- category: 'webhooks',
1021
- responseCode: 204,
1022
- },
1023
- {
1024
- method: 'DELETE',
1025
- path: '/webhooks/:webhook_id/:token',
1026
- summary: 'Delete webhook (token auth)',
1027
- auth: 'webhook-token',
1028
- category: 'webhooks',
1029
- responseCode: 204,
1030
- },
1031
- {
1032
- method: 'POST',
1033
- path: '/webhooks/:webhook_id/:token',
1034
- summary: 'Execute webhook',
1035
- auth: 'webhook-token',
1036
- category: 'webhooks',
1037
- description: 'Token in URL. Use ?wait=true to receive MessageResponse instead of 204.',
1038
- queryParams: [
1039
- { name: 'wait', type: 'boolean', required: false, description: 'Return message if true' },
1040
- ],
1041
- requestBody: [
1042
- ...sharedSchemas.messageRequest,
1043
- {
1044
- name: 'username',
1045
- type: 'string',
1046
- required: false,
1047
- description: 'Override webhook username',
1048
- },
1049
- {
1050
- name: 'avatar_url',
1051
- type: 'string (URL)',
1052
- required: false,
1053
- description: 'Override webhook avatar',
1054
- },
1055
- ],
1056
- responseBody: [
1057
- {
1058
- name: '204 or MessageResponse',
1059
- type: 'see MessageResponse',
1060
- description: 'If wait=true returns message',
1061
- },
1062
- ],
1063
- responseCode: 204,
1064
- },
1065
- ];
1066
-
1067
- export function getEndpointsByCategory() {
1068
- const byCategory: Record<string, ApiEndpoint[]> = {};
1069
- for (const cat of API_CATEGORIES) {
1070
- byCategory[cat] = apiEndpoints.filter((e) => e.category === cat);
1071
- }
1072
- return byCategory;
1073
- }