@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,24 +0,0 @@
1
- {
2
- "versions": [
3
- "1.2.4",
4
- "1.2.3",
5
- "1.2.2",
6
- "1.2.1",
7
- "1.2.0",
8
- "1.1.9",
9
- "1.1.8",
10
- "1.1.6",
11
- "1.1.5",
12
- "1.1.4",
13
- "1.1.3",
14
- "1.1.2",
15
- "1.1.1",
16
- "1.1.0",
17
- "1.0.9",
18
- "1.0.8",
19
- "1.0.7",
20
- "1.0.6",
21
- "1.0.5"
22
- ],
23
- "latest": "1.2.4"
24
- }
Binary file
@@ -1,50 +0,0 @@
1
- {
2
- "common": {
3
- "guides": "Guides",
4
- "restApi": "REST API",
5
- "docs": "Docs",
6
- "changelog": "Changelog",
7
- "github": "GitHub",
8
- "fluxer": "Fluxer",
9
- "filter": "Filter",
10
- "filterGuides": "Search guides...",
11
- "loading": "Loading...",
12
- "allPackages": "All packages",
13
- "classes": "Classes",
14
- "interfaces": "Interfaces",
15
- "enums": "Enums",
16
- "skipToContent": "Skip to main content",
17
- "openMenu": "Open menu",
18
- "closeMenu": "Close menu",
19
- "toggleNav": "Toggle navigation menu",
20
- "onThisPage": "On this page",
21
- "guideNotFound": "Guide not found.",
22
- "backToGuides": "Back to guides",
23
- "joinCommunity": "Join our Fluxer community",
24
- "joinCommunityAction": "Join our Fluxer community →",
25
- "selectLanguage": "Select language"
26
- },
27
- "home": {
28
- "title": "Fluxer.js",
29
- "lead": "SDK for building bots on Fluxer.",
30
- "getStarted": "Get started — your first bot"
31
- },
32
- "guidesIndex": {
33
- "title": "Guides",
34
- "lead": "Learn how to build bots with Fluxer.js. Pick a guide to get started.",
35
- "quickLinks": "Quick links:"
36
- },
37
- "footer": {
38
- "community": "Join our Fluxer community →",
39
- "sdkForBots": "Fluxer.js v{version} · SDK for Fluxer bots"
40
- },
41
- "categories": {
42
- "getting-started": "Getting Started",
43
- "webhooks": "Webhooks",
44
- "voice": "Voice",
45
- "sending-messages": "Sending Messages",
46
- "media": "Media",
47
- "events": "Events",
48
- "other": "Other"
49
- }
50
- }
@@ -1,512 +0,0 @@
1
- {
2
- "installation": {
3
- "title": "Installation",
4
- "description": "Install the package and configure your bot token.",
5
- "sections": [
6
- {
7
- "title": null,
8
- "description": null
9
- }
10
- ]
11
- },
12
- "basic-bot": {
13
- "title": "Basic Bot",
14
- "description": "A minimal bot that responds to !ping with Pong.",
15
- "sections": [
16
- {
17
- "title": null,
18
- "description": null
19
- }
20
- ]
21
- },
22
- "sending-without-reply": {
23
- "title": "Sending Without Reply",
24
- "description": "Send messages to the same channel or to specific channels. Covers message.send(), message.sendTo(), client.channels.send(), and client.channels.fetch().",
25
- "sections": [
26
- {
27
- "title": "message.send() vs message.reply()",
28
- "description": "message.reply() sends a message that references another message (shows as a \"reply\" in Discord). message.send() sends to the same channel with no reference—a regular standalone message."
29
- },
30
- {
31
- "title": "Sending to the same channel",
32
- "description": "Use message.send() when you want to post in the channel without replying. Same signature as reply(): pass a string or object with content and/or embeds."
33
- },
34
- {
35
- "title": "Sending to a specific channel (e.g. logging)",
36
- "description": "Use message.sendTo(channelId, payload) to send to another channel—handy for logging, announcements, or forwarding. You only need the target channel ID."
37
- },
38
- {
39
- "title": "client.channels.send() — send by channel ID",
40
- "description": "Use client.channels.send(channelId, payload) when you have a channel ID. Works even if the channel is not cached. No need to fetch first when you only need to send."
41
- },
42
- {
43
- "title": "client.channels.fetch() — get channel by ID",
44
- "description": "Fetch a channel by ID from the API (or cache). Use channel.isSendable() before sending. For sending when you only have an ID, prefer client.channels.send() which skips the fetch."
45
- },
46
- {
47
- "title": "fetch message by id",
48
- "description": "Use channel.messages.fetch(messageId) when you have the channel. For IDs-only, fetch the channel first."
49
- },
50
- {
51
- "title": "message.channel and message.guild",
52
- "description": "Access the channel or guild from a message. Resolved from cache; null if not cached (e.g. DM channel)."
53
- },
54
- {
55
- "title": "Quick reference",
56
- "description": null
57
- }
58
- ]
59
- },
60
- "embeds": {
61
- "title": "Embeds",
62
- "description": "Complete reference for EmbedBuilder: title, description, author, footer, fields, color, media, and more.",
63
- "sections": [
64
- {
65
- "title": "Overview",
66
- "description": "Use EmbedBuilder to create rich embeds. Call toJSON() when passing to reply(), send(), or edit(). An embed must have at least one of: title, description, fields, or image/thumbnail. A description-only embed (no title) is valid."
67
- },
68
- {
69
- "title": "Basic embed",
70
- "description": "Minimal embed with title, description, color, fields, footer, and timestamp."
71
- },
72
- {
73
- "title": "Title, Description, and URL",
74
- "description": "setTitle() and setDescription() accept strings (max 256 and 4096 chars). setURL() makes the title a clickable link."
75
- },
76
- {
77
- "title": "Color",
78
- "description": "setColor() accepts: number (0x5865f2), hex string (\"#5865f2\"), or [r, g, b] array."
79
- },
80
- {
81
- "title": "Author",
82
- "description": "setAuthor() adds a header line with name. Optional: iconURL, url."
83
- },
84
- {
85
- "title": "Footer",
86
- "description": "setFooter() adds text at the bottom. Optional: iconURL."
87
- },
88
- {
89
- "title": "Timestamp",
90
- "description": "setTimestamp() shows a date. Omit or pass null for current time. Pass Date or number (ms) for a specific time."
91
- },
92
- {
93
- "title": "Fields",
94
- "description": "addFields() adds name/value pairs. Max 25 fields. Use inline: true for side-by-side layout. spliceFields() to insert/remove."
95
- },
96
- {
97
- "title": "Image and Thumbnail",
98
- "description": "setImage() adds a large image. setThumbnail() adds a small image (e.g. top-right). Pass a URL string or EmbedMediaOptions (url, width, height, content_type, etc)."
99
- },
100
- {
101
- "title": "Video and Audio",
102
- "description": "setVideo() and setAudio() add video/audio to embeds (Fluxer supports these). Pass URL or EmbedMediaOptions. Include a title when using video. See Embed Media guide for full examples."
103
- },
104
- {
105
- "title": "Multiple embeds",
106
- "description": "Messages can include up to 10 embeds. Pass an array to embeds."
107
- },
108
- {
109
- "title": "Load from existing embed",
110
- "description": "EmbedBuilder.from() creates a builder from an API embed (e.g. from a received message). Edit and toJSON() to send."
111
- },
112
- {
113
- "title": "Limits",
114
- "description": "Title ≤256, description ≤4096, field name ≤256, field value ≤1024, footer ≤2048, author name ≤256. Max 25 fields. Combined title+description+fields+footer ≤6000 chars."
115
- }
116
- ]
117
- },
118
- "editing-embeds": {
119
- "title": "Editing Embeds",
120
- "description": "Edit existing message embeds with message.edit().",
121
- "sections": [
122
- {
123
- "title": "Overview",
124
- "description": "The Fluxer API supports editing existing messages via PATCH. You can update the message content, embeds, or both. Only the message author (or admins with proper permissions) can edit messages."
125
- },
126
- {
127
- "title": "Edit Content",
128
- "description": "Update the text content of a message you sent."
129
- },
130
- {
131
- "title": "Edit Embeds",
132
- "description": "Replace or update embeds on an existing message. Pass an array of EmbedBuilder instances or APIEmbed objects."
133
- },
134
- {
135
- "title": "Edit Content and Embeds Together",
136
- "description": "You can update both content and embeds in a single edit call."
137
- },
138
- {
139
- "title": "API Reference",
140
- "description": "The edit endpoint is PATCH /channels/{channel_id}/messages/{message_id}. See openapi.json for the full request body schema. The SDK Message.edit() accepts { content?: string; embeds?: (APIEmbed | EmbedBuilder)[] }."
141
- }
142
- ]
143
- },
144
- "embed-media": {
145
- "title": "Embed Media",
146
- "description": "Add images, thumbnails, video, and audio to embeds with EmbedBuilder and EmbedMediaOptions.",
147
- "sections": [
148
- {
149
- "title": "Images and Thumbnails",
150
- "description": "Use setImage() and setThumbnail() with a URL string, or pass full EmbedMediaOptions for width, height, content_type, and other metadata."
151
- },
152
- {
153
- "title": "Image with Full Media Options",
154
- "description": "Pass an object to setImage or setThumbnail with url, width, height, content_type, description, placeholder, duration, and flags. Use EmbedMediaFlags.IS_ANIMATED for animated GIFs."
155
- },
156
- {
157
- "title": "GIFs in embeds",
158
- "description": "Embeds require GIF format for animated images (not MP4). Add EmbedMediaFlags.IS_ANIMATED to the flags field. For Tenor URLs, use resolveTenorToImageUrl() to get the GIF URL and flag — see the GIFs (Tenor) guide."
159
- },
160
- {
161
- "title": "Video in Embeds",
162
- "description": "Use setVideo() to add video to a rich embed. Fluxer supports the .video field. Include a title when using video. Pass a URL or EmbedMediaOptions (e.g. duration for progress bars)."
163
- },
164
- {
165
- "title": "Audio in Embeds",
166
- "description": "Use setAudio() to add audio to an embed. Pass a URL or EmbedMediaOptions (e.g. duration, content_type)."
167
- }
168
- ]
169
- },
170
- "gifs": {
171
- "title": "GIFs (Tenor)",
172
- "description": "Send Tenor GIFs as content (gifv) or in embeds using resolveTenorToImageUrl() for GIF URLs.",
173
- "sections": [
174
- {
175
- "title": "How Tenor GIFs Work",
176
- "description": "Tenor embeds are created by the Fluxer unfurler when you send a Tenor URL as message content. Do not use custom embeds for Tenor GIFs—the API turns the URL into a type: \"gifv\" embed."
177
- },
178
- {
179
- "title": "Send a Tenor GIF",
180
- "description": "Send the Tenor URL as content. No embeds needed. The unfurler detects the URL and creates the gifv embed."
181
- },
182
- {
183
- "title": "Tenor URL in an embed",
184
- "description": "Tenor page URLs do not work as setImage() URLs. Use resolveTenorToImageUrl() to fetch the Tenor page or oEmbed, derive the GIF URL (embeds require GIF, not MP4), and return { url, flags: IS_ANIMATED }. For full gifv embeds, send the Tenor URL as content."
185
- },
186
- {
187
- "title": "Important",
188
- "description": "Custom embeds cannot create gifv embeds. For full animated gifv, send the Tenor URL as content. resolveTenorToImageUrl() returns GIF URL + IS_ANIMATED (derived from media.tenor.com path)."
189
- }
190
- ]
191
- },
192
- "attachments": {
193
- "title": "File Attachments",
194
- "description": "Upload files with messages and set attachment metadata (title, description, flags for spoiler, animated, explicit).",
195
- "sections": [
196
- {
197
- "title": "Basic File Upload",
198
- "description": "Pass files in your send options. Each file needs a name and data (Buffer, Blob, Uint8Array). Use with message.reply(), message.send(), or channel.send()."
199
- },
200
- {
201
- "title": "Attachment Metadata",
202
- "description": "When using files, you can pass attachments to set metadata per file: filename, title, description, and flags. The id in each attachment matches the file index (0, 1, 2...)."
203
- },
204
- {
205
- "title": "Attachment Flags",
206
- "description": "MessageAttachmentFlags: IS_SPOILER (8) blurs until clicked, CONTAINS_EXPLICIT_MEDIA (16) for explicit content, IS_ANIMATED (32) for GIFs and animated WebP. Combine with bitwise OR."
207
- }
208
- ]
209
- },
210
- "attachments-by-url": {
211
- "title": "File Attachments by URL",
212
- "description": "Attach files by passing a URL instead of buffer data. The SDK fetches the URL and uploads it as a normal attachment.",
213
- "sections": [
214
- {
215
- "title": "Using a URL",
216
- "description": "Pass { name, url } in the files array. The SDK fetches the URL (30s timeout), validates it with URL.canParse(), and uploads the result. Works with channel.send(), message.reply(), message.send(), webhook.send(), and client.channels.send()."
217
- },
218
- {
219
- "title": "Mixing buffers and URLs",
220
- "description": "You can combine file data and URLs in the same message. Order is preserved; attachments metadata id matches the file index."
221
- },
222
- {
223
- "title": "Optional filename override",
224
- "description": "Use filename to control the displayed attachment name independently from the local name used during upload."
225
- }
226
- ]
227
- },
228
- "profile-urls": {
229
- "title": "Profile URLs",
230
- "description": "Get avatar, banner, and other CDN URLs easily with User/Webhook/GuildMember methods or standalone CDN helpers for raw API data.",
231
- "sections": [
232
- {
233
- "title": "User avatar and banner",
234
- "description": "When you have a User object (e.g. message.author), use avatarURL(), displayAvatarURL(), and bannerURL(). These handle animated avatars (a_ prefix) and default fallbacks."
235
- },
236
- {
237
- "title": "Raw API data: CDN helpers",
238
- "description": "When you have raw API data (e.g. from client.rest.get(Routes.user(id))), use the standalone CDN helpers. They work with id + hash and support size and extension options."
239
- },
240
- {
241
- "title": "Guild member and webhook avatars",
242
- "description": "GuildMember has displayAvatarURL() (guild avatar or fallback to user) and bannerURL(). Webhook has avatarURL()."
243
- }
244
- ]
245
- },
246
- "reactions": {
247
- "title": "Reactions",
248
- "description": "Add, remove, and listen for message reactions with Message.react(), removeReaction(), and reaction events.",
249
- "sections": [
250
- {
251
- "title": "Add a Reaction",
252
- "description": "Use message.react() to add an emoji reaction as the bot. Pass a unicode emoji string or custom emoji { name, id }."
253
- },
254
- {
255
- "title": "Remove Reactions",
256
- "description": "Remove the bot's reaction with removeReaction(emoji). Remove a specific user's reaction with removeReaction(emoji, userId). Clear all reactions with removeAllReactions() or removeReactionEmoji(emoji)."
257
- },
258
- {
259
- "title": "Listen for Reactions",
260
- "description": "MessageReactionAdd and MessageReactionRemove emit (reaction, user, messageId, channelId, emoji, userId). Use client.on(Events.X, handler) or client.events.MessageReactionAdd(handler)."
261
- },
262
- {
263
- "title": "Reaction Roles Example",
264
- "description": "See examples/reaction-roles-bot.js for a full bot that assigns roles when users react to a message. Uses (reaction, user), Guild.fetchMember(), Guild.addRoleToMember()/removeRoleFromMember(), and guild.createRole() if you need to create roles programmatically. See the Roles guide for role CRUD."
265
- }
266
- ]
267
- },
268
- "webhooks": {
269
- "title": "Webhooks",
270
- "description": "A complete guide to Discord webhooks—sending messages without a gateway, creating, editing, and managing webhooks.",
271
- "sections": [
272
- {
273
- "title": "What are Webhooks?",
274
- "description": "Webhooks let you send messages to a channel using a URL (ID + token). You can use them in scripts, CI pipelines, or anywhere you need to post without a full bot connection. No gateway, no events—just REST."
275
- },
276
- {
277
- "title": "Webhooks Without a Bot",
278
- "description": "A Client with intents: 0 is enough. No need to connect to the gateway or handle events. Ideal for scripts or one-off sends."
279
- },
280
- {
281
- "title": "Creating a Webhook",
282
- "description": "Create a webhook on a text channel. Requires Manage Webhooks permission. The token is returned only when creating—store it securely. It will never be returned when listing or fetching."
283
- },
284
- {
285
- "title": "Sending Messages",
286
- "description": "Send text, embeds, or both. You can override the username and avatar for each message."
287
- },
288
- {
289
- "title": "Simple text only",
290
- "description": null
291
- },
292
- {
293
- "title": "Embeds without a title",
294
- "description": "Embeds can use only a description—no title required. At least one of title, description, fields, or image is needed."
295
- },
296
- {
297
- "title": "Fetching & Listing Webhooks",
298
- "description": "Fetch by ID or list channel/guild webhooks. Requires a logged-in bot. Fetched webhooks have no token and cannot send—but you can edit or delete them with bot auth."
299
- },
300
- {
301
- "title": "Editing a Webhook",
302
- "description": "Use webhook.edit() to change name, avatar, or (with bot auth) channel. With a token (e.g. from createWebhook or fromToken), you can update name and avatar. Without a token (fetched webhook), bot auth lets you also change the target channel."
303
- },
304
- {
305
- "title": "Deleting a Webhook",
306
- "description": null
307
- }
308
- ]
309
- },
310
- "webhook-attachments-embeds": {
311
- "title": "Webhook Attachments & Embeds",
312
- "description": "Send embeds with or without a title, and attach files to webhook messages—same API as channel messages.",
313
- "sections": [
314
- {
315
- "title": "Overview",
316
- "description": "Webhooks support rich embeds and file attachments. Embeds can have just a description (no title required), and you can attach files the same way as with channel.send or message.reply."
317
- },
318
- {
319
- "title": "Embeds Without a Title",
320
- "description": "You do not need a title for embeds to work. At least one of title, description, fields, or image/thumbnail is required. A description-only embed is valid."
321
- },
322
- {
323
- "title": "Direct Attachments",
324
- "description": "Attach files to webhook messages using the files array. Each file needs name and data (Blob, ArrayBuffer, or Uint8Array). Optional filename overrides the display name."
325
- },
326
- {
327
- "title": "Full Example: Embed + Files",
328
- "description": "Combine content, description-only embed, and file attachments in a single webhook send."
329
- }
330
- ]
331
- },
332
- "voice": {
333
- "title": "Voice",
334
- "description": "Join voice channels and play audio with @erinjs/voice. Supports WebM/Opus streams—no FFmpeg required.",
335
- "sections": [
336
- {
337
- "title": "Installation",
338
- "description": "Add the voice package alongside the core library."
339
- },
340
- {
341
- "title": "Setup",
342
- "description": "Create a VoiceManager before login so it receives VoiceStatesSync from READY/GUILD_CREATE. This lets the manager see users already in voice when the bot starts."
343
- },
344
- {
345
- "title": "Join a Voice Channel",
346
- "description": "Get the user's voice channel with getVoiceChannelId, then join. The connection resolves when ready."
347
- },
348
- {
349
- "title": "Play Audio",
350
- "description": "Play a WebM/Opus URL or stream. The voice package does not use FFmpeg—input must be WebM with Opus. Use yt-dlp or similar to get direct stream URLs from YouTube."
351
- },
352
- {
353
- "title": "Getting Stream URLs from YouTube",
354
- "description": "Use youtube-dl-exec or yt-dlp to extract a WebM/Opus URL."
355
- },
356
- {
357
- "title": "Volume Control",
358
- "description": "LiveKitRtcConnection supports setVolume(0-200) and getVolume(). 100 = normal, 50 = half, 200 = double. Affects current and future playback."
359
- },
360
- {
361
- "title": "Stop and Leave",
362
- "description": "Stop playback and disconnect. getConnection accepts channel ID or guild ID. leave(guildId) leaves all channels; leaveChannel(channelId) leaves a specific channel."
363
- },
364
- {
365
- "title": "LiveKit and serverLeave",
366
- "description": "If using LiveKit, the server may emit serverLeave. Listen and reconnect if needed."
367
- }
368
- ]
369
- },
370
- "events": {
371
- "title": "Events",
372
- "description": "Listen to gateway events with client.on. Handle messages, guild updates, voice state changes, and more.",
373
- "sections": [
374
- {
375
- "title": "Basic Usage",
376
- "description": "Use client.on(Events.X, handler) to subscribe to events. Handlers receive event-specific payloads."
377
- },
378
- {
379
- "title": "Common Events",
380
- "description": "Essential events for most bots."
381
- },
382
- {
383
- "title": "Reaction Events",
384
- "description": "Listen for when users add or remove reactions. Handlers receive (reaction, user, messageId, channelId, emoji, userId). Use MessageReactionRemoveAll and MessageReactionRemoveEmoji for moderator actions."
385
- },
386
- {
387
- "title": "Error Handling",
388
- "description": null
389
- },
390
- {
391
- "title": "Gateway Dispatch Events Reference",
392
- "description": "All events the Fluxer gateway can send. Use GatewayDispatchEvents from @erinjs/types for type-safe checks."
393
- },
394
- {
395
- "title": "Event Payload Reference",
396
- "description": "Payload structure for each event. Handler receives (data) or (message), (reaction, user, ...) etc. Types: Gateway*DispatchData from @erinjs/types."
397
- }
398
- ]
399
- },
400
- "permissions": {
401
- "title": "Permissions",
402
- "description": "Check member permissions (guild-level and channel-specific), bot permissions via guild.members.me, owner override, and PermissionFlags.",
403
- "sections": [
404
- {
405
- "title": "Overview",
406
- "description": "Use member.permissions for guild-level checks (roles only) and member.permissionsIn(channel) for channel-specific permissions (includes overwrites). The server owner always has all permissions."
407
- },
408
- {
409
- "title": "Guild-level permissions",
410
- "description": "member.permissions returns an object with has(permission). Use it for server-wide actions like ban, kick, manage roles."
411
- },
412
- {
413
- "title": "Bot's own permissions (guild.members.me)",
414
- "description": "Use guild.members.me to get the bot's GuildMember. Returns null if not cached. Use guild.members.fetchMe() to load it. Discord.js parity."
415
- },
416
- {
417
- "title": "Editing the bot's guild profile (nickname)",
418
- "description": "Use guild.members.me.edit({ nick }) to change the bot's nickname in that guild. Pass nick: null to clear and show the username. Requires Change Nickname permission (or bot has Manage Nicknames). See examples/ping-bot.js for a !setnick command."
419
- },
420
- {
421
- "title": "Owner override",
422
- "description": "The guild owner automatically receives all permissions regardless of roles. No need to give the owner a role with Administrator."
423
- },
424
- {
425
- "title": "Channel-specific permissions",
426
- "description": "member.permissionsIn(channel) applies channel overwrites. Use it when checking if a user can send messages, read history, or connect to voice in a specific channel."
427
- },
428
- {
429
- "title": "Managing roles",
430
- "description": "Create, fetch, edit, and delete roles with guild.createRole(), guild.fetchRoles(), guild.fetchRole(roleId), role.edit(), and role.delete(). Use resolvePermissionsToBitfield() for permission bitfields. See the Roles guide for full examples."
431
- },
432
- {
433
- "title": "PermissionFlags reference",
434
- "description": "Common flags: BanMembers, KickMembers, Administrator, ManageRoles, ManageChannels, ManageGuild, ViewAuditLog, ManageMessages, SendMessages, EmbedLinks, AttachFiles, ReadMessageHistory, MentionEveryone, Connect, Speak, MuteMembers, ModerateMembers, CreateExpressions, PinMessages, BypassSlowmode."
435
- }
436
- ]
437
- },
438
- "moderation": {
439
- "title": "Moderation",
440
- "description": "Implement ban, kick, and unban commands. Check permissions first (see Permissions guide).",
441
- "sections": [
442
- {
443
- "title": "Overview",
444
- "description": "Use guild.ban(), guild.kick(), and guild.unban() for moderation. Always check member permissions before allowing moderation commands—see the Permissions guide."
445
- },
446
- {
447
- "title": "Ban a member",
448
- "description": "guild.ban(userId, options) bans a user. Pass reason for the audit log. Requires BanMembers permission."
449
- },
450
- {
451
- "title": "Kick a member",
452
- "description": "guild.kick(userId, options) kicks a user from the guild. Pass reason for the audit log. Requires KickMembers permission."
453
- },
454
- {
455
- "title": "Unban a user",
456
- "description": "guild.unban(userId, reason?) removes a ban. Requires BanMembers permission."
457
- },
458
- {
459
- "title": "Full moderation example",
460
- "description": "See examples/moderation-bot.js for a complete bot with !ban, !kick, !unban, and !perms commands."
461
- }
462
- ]
463
- },
464
- "roles": {
465
- "title": "Roles",
466
- "description": "Create, fetch, edit, and delete guild roles. Use PermissionFlags and resolvePermissionsToBitfield for permission bitfields.",
467
- "sections": [
468
- {
469
- "title": "Overview",
470
- "description": "Guild roles can be created, fetched, edited, and deleted. Use guild.createRole(), guild.fetchRoles(), guild.fetchRole(roleId), role.edit(), and role.delete(). Requires Manage Roles permission. For permission bitfields, use resolvePermissionsToBitfield() or role.has() to check a role's permissions."
471
- },
472
- {
473
- "title": "Create a role",
474
- "description": "Use guild.createRole() to create a new role. Pass name, permissions, color, hoist, mentionable, unicode_emoji, position, or hoist_position. Permissions accept PermissionResolvable (string, number, array) for convenience."
475
- },
476
- {
477
- "title": "Fetch roles",
478
- "description": "Use guild.fetchRoles() to fetch all roles from the API and cache them. Use guild.fetchRole(roleId) to fetch a single role by ID. Throws FluxerError with ROLE_NOT_FOUND on 404."
479
- },
480
- {
481
- "title": "Edit a role",
482
- "description": "Use role.edit() to update a role. Pass any of name, permissions, color, hoist, mentionable, unicode_emoji, position, hoist_position. Permissions accept PermissionResolvable."
483
- },
484
- {
485
- "title": "Delete a role",
486
- "description": "Use role.delete() to remove a role. The role is removed from guild.roles cache."
487
- },
488
- {
489
- "title": "Check role permissions",
490
- "description": "Use role.has(permission) to check if a role has a specific permission. Administrator implies all permissions."
491
- },
492
- {
493
- "title": "Permission bitfields for create/edit",
494
- "description": "When creating or editing roles, pass permissions as a string (API format), number, PermissionString, or array. Use resolvePermissionsToBitfield() to combine multiple permissions. Handles high bits (PinMessages, ModerateMembers, etc.) correctly with BigInt."
495
- }
496
- ]
497
- },
498
- "prefix-commands": {
499
- "title": "Prefix Commands",
500
- "description": "Handle !commands by listening to MessageCreate and parsing the content.",
501
- "sections": [
502
- {
503
- "title": "Basic Structure",
504
- "description": "Check for a prefix, split args, and dispatch to command handlers."
505
- },
506
- {
507
- "title": "Guild-Only Commands",
508
- "description": null
509
- }
510
- ]
511
- }
512
- }
@@ -1,4 +0,0 @@
1
- User-agent: *
2
- Allow: /
3
-
4
- Sitemap: /sitemap.xml
@@ -1,33 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3
- <url>
4
- <loc>https://erin.js.org/</loc>
5
- <changefreq>weekly</changefreq>
6
- <priority>1</priority>
7
- </url>
8
- <url>
9
- <loc>https://erin.js.org/changelog</loc>
10
- <changefreq>weekly</changefreq>
11
- <priority>0.9</priority>
12
- </url>
13
- <url>
14
- <loc>https://erin.js.org/v/latest/guides</loc>
15
- <changefreq>weekly</changefreq>
16
- <priority>0.9</priority>
17
- </url>
18
- <url>
19
- <loc>https://erin.js.org/v/latest/docs</loc>
20
- <changefreq>weekly</changefreq>
21
- <priority>0.9</priority>
22
- </url>
23
- <url>
24
- <loc>https://erin.js.org/v/latest/guides/basic-bot</loc>
25
- <changefreq>monthly</changefreq>
26
- <priority>0.8</priority>
27
- </url>
28
- <url>
29
- <loc>https://erin.js.org/v/latest/guides/installation</loc>
30
- <changefreq>monthly</changefreq>
31
- <priority>0.8</priority>
32
- </url>
33
- </urlset>